{"version":3,"sources":["app-react/themes/architecture/theme-names.ts","app-react/themes/architecture/css-helpers/flex.ts","common/const/game_groups_consts.ts","app-react/services/game-runner/interfaces/game-step/game-run-step.interface.ts","app-react/themes/architecture/gray-colors.ts","app-react/services/arenas/arena-consts.ts","app-react/components/modal-dialog/boxes/actions/buttons-wrapper.box.ts","app-react/components/modal-dialog/boxes/actions/button-wrapper.box.ts","app-react/components/modal-dialog/boxes/actions/link-action.box.ts","app-react/components/modal-dialog/boxes/actions/link-wrapper.box.ts","app-react/components/modal-dialog/modal-dialog-actions.component.tsx","app-react/basic-components/space-between-items-consts.ts","sdk/src/exceptions/cgp_error_codes.ts","app-react/themes/assets.ts","utils/disposable-object.ts","common/const/free_play_consts.ts","common/const/jackpot_map_ids.ts","app-react/components/base-components/orbit-suspense/orbit-suspense.tsx","sdk/src/services/toaster/toaster_service_consts.ts","sdk/src/utils/date_formatter.ts","common/const/responsible-gaming.ts","app-react/components/base-components/routed-component/routed.component.ts","app-react/themes/definitions/si/base-colors.ts","app-react/components/cms-banner/banner-container/banner-container.box.ts","app-react/components/cms-banner/banner-container/banner-container.default.box.ts","app-react/components/cms-banner/cms-banner.component.tsx","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/css-constants.ts","common/const/wallet_balance_type.ts","app-react/basic-ui-components/form/select.component.tsx","app-react/components/top-image/boxes/top-banner/top-banner.default.box.ts","app-react/components/top-image/boxes/top-banner/top-banner.777.box.ts","app-react/components/top-image/boxes/top-banner/top-banner.si.box.ts","app-react/components/top-image/boxes/top-banner/top-banner.box.ts","app-react/components/top-image/boxes/top-banner-image/top-banner-image.box.ts","app-react/components/top-image/boxes/top-banner-image/top-banner-image.default.box.ts","app-react/components/top-image/boxes/top-banner-logo-image/top-banner-logo-image.default.box.ts","app-react/components/top-image/boxes/top-banner-logo-image/top-banner-logo-image.casino777.box.ts","app-react/components/top-image/boxes/top-banner-logo-image/top-banner-logo-image.box.ts","app-react/components/top-image/boxes/top-banner-title/top-banner-title.default.box.ts","app-react/components/top-image/boxes/top-banner-title/top-banner-title.casino777.box.ts","app-react/components/top-image/boxes/top-banner-title/top-banner-title.box.ts","app-react/components/top-image/boxes/top-banner-live-logo/top-banner-live-logo.default.box.ts","app-react/components/top-image/boxes/top-banner-live-logo/top-banner-live-logo.casino777.box.ts","app-react/components/top-image/boxes/top-banner-live-logo/top-banner-live-logo.box.ts","app-react/components/top-image/top-image.component.tsx","app-react/components/responsible-gambling/responsible-gaming-buttons/regulations/germany/boxes/panic-button.box.ts","app-react/components/responsible-gambling/responsible-gaming-buttons/regulations/germany/css-classes.ts","app-react/components/responsible-gambling/responsible-gaming-buttons/regulations/germany/boxes/panic-button-tooltip.box.ts","app-react/components/responsible-gambling/responsible-gaming-buttons/regulations/germany/boxes/panic-button-popup.box.ts","app-react/components/responsible-gambling/responsible-gaming-buttons/regulations/germany/boxes/panic-button-popup-time.box.ts","app-react/components/responsible-gambling/responsible-gaming-buttons/regulations/germany/boxes/panic-button-popup-ok.box.ts","app-react/components/responsible-gambling/responsible-gaming-buttons/regulations/germany/panic-button-popup.component.tsx","app-react/components/responsible-gambling/responsible-gaming-buttons/regulations/germany/boxes/panic-button-tooltip-click-here.ts","app-react/components/responsible-gambling/responsible-gaming-buttons/regulations/germany/boxes/panic-button-tooltip-close.box.ts","app-react/components/responsible-gambling/responsible-gaming-buttons/regulations/germany/boxes/panic-button-mobile-overlay.box.ts","app-react/components/responsible-gambling/responsible-gaming-buttons/regulations/germany/responsible-gaming-buttons-germany.component.tsx","app-react/components/admin-banner/boxes/admin-banner-wrapper.box.ts","app-react/components/admin-banner/admin-banner.component.tsx","app-react/components/banner/banner.component.tsx","app-react/services/external-links/handlers/my-account/my-account.external-link-handler.interface.ts","common/utils/image-preload.ts","common/const/cashier-session-types.ts","app-react/services/gaming-history/gaming-history-type.ts","common/interfaces/orbit-component-to-sdk-adapter/components-props/time-spent-reminder-options.ts","sdk/src/events/events.ts","app-react/components/geo/boxes/geo-modal-wrapper.box.ts","app-react/components/balance-box/balance-value.component.tsx","app-react/themes/architecture/styled-by-theme.tsx","sdk/src/utils/event.ts","app-react/components/daily-deal/boxes/daily-deal-container.box.ts","app-react/components/daily-deal/boxes/daily-deal-chest-glow.box.ts","app-react/components/daily-deal/boxes/daily-deal-chest.box.ts","app-react/components/daily-deal/boxes/daily-deal-text-strip.box.ts","app-react/components/daily-deal/boxes/daily-deal-chest-halo.box.ts","app-react/components/daily-deal/daily-deal.component.tsx","app-react/components/link-to-offer/boxes/link-to-offer-base/link-to-offer-box-base.ts","app-react/components/link-to-offer/boxes/link-to-offer-icon/link-to-offer-icon.default.box.ts","app-react/components/link-to-offer/boxes/link-to-offer-icon/link-to-offer-icon.box.ts","app-react/components/link-to-offer/boxes/link-to-offer-dialog-close/link-to-offer-dialog-close.box.ts","app-react/components/link-to-offer/boxes/link-to-offer-dialog-close/link-to-offer-dialog-close.default.box.ts","app-react/components/link-to-offer/link-to-offer.component.tsx","app-react/components/orbit-swiper/swiper-window.component.tsx","app-react/components/arena-games-lists/arena-games-lists.component.tsx","common/cy-classes.ts","app-react/components/inside-orbit-menu-container/inside-orbit-menu-container.consts.ts","app-react/basic-ui-components/x-close-button/x-close-button.box.ts","app-react/themes/definitions/casino777/base-colors.ts","app-react/services/games-filter/games-filter.service.interface.ts","common/const/ab-testing-names.ts","common/utils/cashier-util.ts","sdk/src/components/external_links/handlers/my_account/external_links_my_account_handler_consts.js","common/const/state-of-residence-cookie_const.ts","app-react/components/inside-orbit-menu-container/inside-orbit-menu-container.component.tsx","app-react/components/clock/clock.component.tsx","app-react/components/sdk/sdk.component.tsx","app-react/basic-components/main-screen/main-screen.component.tsx","app-react/themes/definitions/harrahs/base-colors.ts","settings/configuration/languages/eng.ts","app-react/app-bootstrap/application-startup-configurations-reader/application-startup-configurations-reader.ts","app-react/app-bootstrap/sdk-initializer/sdk-hooks-provider.ts","app-react/services/configurations/evaluation/properties-evaluator/properties-evaluator.ts","app-react/services/configurations/evaluation/statements/statements-evaluator/statements-evaluator.ts","app-react/services/configurations/evaluation/value-evaluators/object-evaluator/object-evaluator.ts","app-react/services/configurations/evaluation/value-evaluators/array-evaluator/array-evaluator.ts","app-react/services/configurations/evaluation/value-evaluators/simple-value-evaluator/simple-value-evaluator.ts","app-react/services/configurations/evaluation/statements/statement-evaluator/statement-evaluator.ts","app-react/services/configurations/evaluation/statements/logical-operators/base-logical-operator.ts","app-react/services/configurations/evaluation/statements/logical-operators/or-logical-operator/or-logical-operator.ts","app-react/services/configurations/evaluation/statements/logical-operators/and-logical-operator/and-logical-operator.ts","app-react/services/configurations/evaluation/statements/segmentation-rule/segmentation-rule.ts","app-react/services/configurations/evaluation/statements/comparison-operators/base-comparison-operator.ts","app-react/services/configurations/evaluation/statements/comparison-operators/equal-operator/equal-operator.ts","app-react/services/configurations/evaluation/statements/comparison-operators/not-equal-operator/not-equal-operator.ts","app-react/services/configurations/evaluation/property-level-context/property-level-context.ts","app-react/services/configurations/evaluation/property-evaluator/property-evaluator.ts","app-react/services/configurations/create-statements-definition.ts","app-react/services/configurations/evaluation/special-properties-evaluators/games-id-property-evaluator/games-id-property-evaluator.ts","app-react/services/configurations/evaluation/statements/comparison-operators/is-falsy-operator/is-falsy-operator.ts","app-react/services/configurations/evaluation/statements/comparison-operators/greater-than-operator/greater-than-operator.ts","app-react/services/configurations/evaluation/statements/comparison-operators/less-than-operator/less-than-operator.ts","app-react/services/configurations/evaluation/statements/comparison-operators/any-of-operator/any-of-operator.ts","app-react/services/configurations/evaluation/configuration-evaluation-context/configuration-evaluation-context.ts","app-react/services/game-preview-features-selector/preview-features/game-preview-feature.interface.ts","app-react/app-bootstrap/sdk-initializer/sdk-initializer.ts","app-react/services/qa-environment-pop-up-blocker/qa-environment-pop-up-blocker.service.constants.ts","app-react/services/ServiceBase.ts","app-react/services/qa-environment-pop-up-blocker/qa-environment-pop-up-blocker.service.ts","app-react/services/video-live-stream/video-playing-service-base.ts","app-react/services/video-live-stream/live-stream-playing.service.ts","app-react/services/translation/text-translation.ts","app-react/services/translation/translation.service.ts","app-react/services/currency/currency-symbol.interface.ts","app-react/services/currency/currency.service.ts","app-react/services/analytics/analytics.service.ts","app-react/services/lobby-game-info-preview/lobby-game-info-preview.service.ts","app-react/services/running-game/running-game.service.ts","app-react/components/lobby-game-info-preview/intermediate-page/title/boxes/game-info-button/game-info-button.default.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/title/boxes/game-info-button/game-info-button.casino777.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/title/boxes/game-info-button/game-info-button.box.ts","app-react/components/modal-dialog/boxes/title/dialog-title.default.box.ts","app-react/components/modal-dialog/boxes/title/dialog-title.box.ts","app-react/components/modal-dialog/boxes/close-button/dialog-close-button.box.ts","app-react/components/modal-dialog/boxes/close-button/dialog-close-button.default.box.ts","app-react/components/modal-dialog/css-classes.ts","app-react/components/modal-dialog/boxes/header/dialog-header.default.box.ts","app-react/components/modal-dialog/boxes/header/dialog-header.cip.box.ts","app-react/components/modal-dialog/boxes/header/dialog-header.box.ts","app-react/components/modal-dialog/boxes/header-buttons/header-buttons-container.box.ts","app-react/components/modal-dialog/parts/header/dialog-header.component.tsx","app-react/components/lobby-game-info-preview/intermediate-page/title/title.component.tsx","app-react/components/lobby-game-info-preview/common/trailer-or-stripe-image/stripe-image/boxes/stripe-image/stripe-image.default.box.ts","app-react/components/lobby-game-info-preview/common/trailer-or-stripe-image/stripe-image/boxes/stripe-image/stripe-image.box.ts","app-react/components/lobby-game-info-preview/common/trailer-or-stripe-image/stripe-image/game-stripe-image.component.tsx","app-react/components/lobby-game-info-preview/common/trailer-or-stripe-image/trailer/boxes/trailer/trailer.box.ts","app-react/components/lobby-game-info-preview/common/trailer-or-stripe-image/trailer/boxes/trailer/trailer.default.box.ts","app-react/components/lobby-game-info-preview/common/trailer-or-stripe-image/trailer/game-trailer.component.tsx","app-react/components/lobby-game-info-preview/common/trailer-or-stripe-image/trailer-or-stripe-image.component.tsx","app-react/components/lobby-game-info-preview/common/game-info-container/features/cell/boxes/cell-value-bool/cell-value-bool.default.box.ts","app-react/services/games/games-categories.enum.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/cell/boxes/cell-value-bool/cell-value-bool.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/cell/boxes/cell-value-text/cell-value-text.default.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/cell/boxes/cell-value-text/cell-value-text.casino777.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/cell/boxes/cell-value-text/cell-value-text.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/cell/boxes/cell-title/cell-title.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/cell/boxes/cell-title/cell-title.default.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/cell/game-feature-cell.component.tsx","app-react/components/lobby-game-info-preview/common/game-info-container/features/table/boxes/table-container/table-container.default.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/table/boxes/table-container/table-container.casino777.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/table/boxes/table-container/table-container.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/table/game-features-table.component.tsx","app-react/components/lobby-game-info-preview/common/game-info-container/about/boxes/game-description-text/game-description-text.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/about/boxes/game-description-text/game-description-text.default.box.ts","app-react/basic-components/general-title/general-title.default.box.ts","app-react/components/lobby-game-info-preview/common/boxes/section-title/section-title.default.box.ts","app-react/basic-components/general-title/general-title.casino777.box.ts","app-react/components/lobby-game-info-preview/common/boxes/section-title/section-title.casino777.box.ts","app-react/components/lobby-game-info-preview/common/boxes/section-title/section-title.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/about/game-about.component.tsx","app-react/components/lobby-game-info-preview/common/game-info-container/jackpot/boxes/game-jackpot-preview/game-jackpot-preview.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/jackpot/boxes/game-jackpot-preview/game-jackpot-preview.default.box.ts","app-react/components/game-jackpot/boxes/root/game-jackpot.default.box.ts","app-react/components/game-jackpot/boxes/root/game-jackpot.si.box.ts","app-react/components/game-jackpot/boxes/root/game-jackpot.box.ts","app-react/components/game-jackpot/boxes/value/game-jackpot-value.default.box.ts","app-react/components/game-jackpot/boxes/value/game-jackpot-value.si.box.ts","app-react/components/game-jackpot/boxes/value/game-jackpot-value.box.ts","app-react/components/game-jackpot/game-jackpot.component.tsx","app-react/components/lobby-game-info-preview/common/game-info-container/jackpot/boxes/jackpot-amount-preview/jackpot-amount-preview.default.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/jackpot/boxes/jackpot-amount-preview/jackpot-amount-preview.casino777.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/jackpot/boxes/jackpot-amount-preview/jackpot-amount-preview.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/jackpot/game-jackpot-preview.component.tsx","app-react/components/lobby-game-info-preview/common/game-info-container/game-preview-info-container.default.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/game-preview-info-container.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/game-preview-info-container.component.tsx","app-react/components/lobby-game-info-preview/intermediate-page/game-icon-and-play-buttons/boxes/container/container.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/game-icon-and-play-buttons/boxes/container/container.default.box.ts","app-react/basic-components/game-icon/game-icon.box.ts","app-react/basic-components/game-icon/game-icon.default.box.ts","app-react/basic-components/play-buttons/play-buttons.box.ts","app-react/basic-components/play-buttons/play-buttons.default.box.ts","app-react/basic-components/game-icon-wrapper/game-icon-wrapper.box.ts","app-react/basic-components/game-icon-wrapper/game-icon-wrapper.default.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/game-icon-and-play-buttons/game-icon-and-play-buttons.component.tsx","app-react/components/lobby-game-info-preview/intermediate-page/boxes/intermediate-page/intermediate-page.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/boxes/intermediate-page/intermediate-page.default.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/boxes/stripe-image-and-buttons/stripe-image-and-buttons.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/boxes/stripe-image-and-buttons/stripe-image-and-buttons.default.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/boxes/gradient/gradient.default.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/boxes/gradient/gradient.casino777.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/boxes/gradient/gradient.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/only-real-money-warning/boxes/warning-image/warning-image.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/only-real-money-warning/boxes/warning-image/warning-image.default.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/only-real-money-warning/boxes/warning-text/warning-text.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/only-real-money-warning/boxes/warning-text/warning-text.default.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/only-real-money-warning/boxes/warning-message/warning-message.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/only-real-money-warning/boxes/warning-message/warning-message.default.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/only-real-money-warning/only-real-money-warning.component.tsx","app-react/components/lobby-game-info-preview/intermediate-page/open-game-intermediate-page.component.tsx","app-react/services/restrictions/no-game-restriction.ts","app-react/services/games/game-info.tsx","app-react/services/configurations/inject-admin-arenas.ts","app-react/services/games/games.service.ts","app-react/services/configurations/configurations.service.ts","app-react/services/user/user.service.ts","common/const/ai-trending-list-ids-map.ts","common/interfaces/cashier-widgets-eligibility-details.interface.ts","app-react/services/browser-buttons-handler/browser-buttons-handler.service.ts","app-react/services/segmentation-aggregator/segmentation-aggregator.service.ts","app-react/services/client-device/features/client-device.features.ts","app-react/services/client-device/detected/client-device.detected.ts","app-react/services/client-device/client-device.service.ts","app-react/services/device/device.service.ts","app-react/consts/seo-categories.ts","app-react/services/ai-engine/ai-engine.service.ts","app-react/services/safezone/safezone.service.interface.ts","app-react/services/deep-link/deep-link-builders/deeplink-json-object-builder/deeplink-json-object-builder.ts","app-react/services/deep-link/deep-link-parsers/parsers/deep-link-json-object-parser/deep-link-json-object-parser.ts","app-react/services/deep-link/deep-link-parsers/deep-link-parser.service.ts","app-react/services/deep-link/deep-link.service.ts","app-react/services/sdk/cgp-sdk.interface.ts","app-react/services/sdk/sdk-events.ts","app-react/services/sdk/sdk-events-trigger.ts","app-react/services/sdk/sdk.service.ts","app-react/services/games-filter/strategies/no-filter/no-games-filter.strategy.ts","app-react/services/games-filter/games-filter.service.ts","app-react/services/configurations/config-data-sections/arenas.configuration.ts","app-react/services/user-menu/useful-link-actions.ts","app-react/components/useful-links/boxes/useful-links-item/useful-links-item.default.box.ts","app-react/components/useful-links/boxes/useful-links-item/useful-links-item.casino777.box.ts","app-react/components/useful-links/boxes/useful-links-item/useful-links-item.cip.box.ts","app-react/components/useful-links/boxes/useful-links-item/useful-links-item.box.ts","app-react/services/user-menu/useful-links/config-useful-link.tsx","app-react/components/useful-links/boxes/useful-links-item/useful-links-item-side-text.box.ts","app-react/services/user-menu/useful-links/sdk-useful-link.tsx","app-react/services/user-menu/user-menu.service.ts","app-react/components/single-game/common/boxes/game-badge/game-badge.default.box.ts","app-react/components/single-game/common/boxes/game-badge/game-badge.casino777.box.ts","app-react/components/single-game/common/boxes/game-badge/game-badge.si.box.ts","app-react/components/single-game/common/boxes/game-badge/game-badge.box.ts","app-react/components/single-game/common/parts/game-badge/game-badge.component.tsx","app-react/components/single-game/css-constants.ts","app-react/components/single-game/common/boxes/game-image/game-image.default.box.ts","app-react/components/single-game/common/boxes/game-image/game-image.box.ts","app-react/components/single-game/common/boxes/game-image/game-image-animated.box.ts","app-react/components/single-game/common/boxes/game-image/game-image-animated.default.box.ts","app-react/components/single-game/common/parts/game-image/game-image-animated.component.tsx","app-react/components/raw-components/aspect-ratio-container/aspect-ratio-container.component.tsx","app-react/components/single-game/common/parts/game-image/game-image.component.tsx","app-react/components/single-game/common/parts/game-image-container.component/game-image-container.component.tsx","app-react/components/single-game/regular-template/boxes/game-title/game-title.default.box.ts","app-react/components/single-game/regular-template/boxes/game-title/game-title.casino777.box.ts","app-react/components/single-game/regular-template/boxes/game-title/game-title.cip.box.ts","app-react/components/single-game/regular-template/boxes/game-title/game-title.si.box.ts","app-react/components/single-game/regular-template/boxes/game-title/game-title.box.ts","app-react/components/single-game/regular-template/boxes/min-max-bet-amount/min-max-bet-amount.default.box.ts","app-react/components/single-game/regular-template/boxes/min-max-bet-amount/min-max-bet-amount.casino777.box.ts","app-react/components/single-game/regular-template/boxes/min-max-bet-amount/min-max-bet-amount.si.box.ts","app-react/components/single-game/regular-template/boxes/min-max-bet-amount/min-max-bet-amount.box.ts","app-react/components/single-game/regular-template/parts/info-page-button/info-page-button.component.tsx","app-react/components/single-game/regular-template/boxes/game-buttons/game-buttons.box.ts","app-react/components/single-game/regular-template/boxes/game-buttons/game-buttons.default.box.ts","app-react/components/single-game/regular-template/parts/play-demo-button/play-demo-button.component.tsx","app-react/components/single-game/regular-template/boxes/game-details-container/game-details-container.default.box.ts","app-react/components/single-game/regular-template/boxes/game-details-container/game-details-container.casino777.box.ts","app-react/components/single-game/regular-template/boxes/game-details-container/game-details-container.box.ts","app-react/components/single-game/regular-template/boxes/jackpot-amount/jackpot-amount.default.box.ts","app-react/components/single-game/regular-template/boxes/jackpot-amount/jackpot-amount.casino777.box.ts","app-react/components/single-game/regular-template/boxes/jackpot-amount/jackpot-amount.si.box.ts","app-react/components/single-game/regular-template/boxes/jackpot-amount/jackpot-amount.box.ts","app-react/components/single-game/regular-template/boxes/game-info-container/game-info-container.box.ts","app-react/components/single-game/regular-template/boxes/game-info-container/game-info-container.default.box.ts","app-react/components/single-game/regular-template/boxes/amount-container/amount-container.box.ts","app-react/components/single-game/regular-template/boxes/two-rows-game-title-container/two-rows-game-title-container.box.ts","app-react/components/single-game/regular-template/parts/game-details-container/game-details-container.component.tsx","app-react/components/single-game/regular-template/boxes/game/game.default.box.ts","app-react/components/single-game/regular-template/boxes/game/game.casino777.box.ts","app-react/components/single-game/regular-template/boxes/game/game.cis.box.ts","app-react/components/single-game/regular-template/boxes/game/game.box.ts","app-react/components/single-game/regular-template/boxes/play-real-button/play-real-button.default.box.ts","app-react/components/single-game/regular-template/boxes/play-real-button/play-real-button.casino777.box.ts","app-react/components/single-game/regular-template/boxes/play-real-button/play-real-button.box.tsx","app-react/components/single-game/regular-template/boxes/game-image-container/game-image-container.default.box.ts","app-react/components/single-game/regular-template/boxes/game-image-container/game-image-container.casino777.box.ts","app-react/components/single-game/video-template/single-game-video-template.component.tsx","app-react/components/single-game/regular-template/boxes/game-image-container/game-image-container.box.ts","app-react/components/single-game/regular-template/boxes/game-number-badge/game-number-badge.box.ts","app-react/components/single-game/regular-template/single-game-regular-template.component.tsx","utils/css-class-name-builder.ts","app-react/components/single-game/jackpot-template/boxes/game/game.default.box.ts","app-react/components/single-game/jackpot-template/boxes/game/game.box.ts","app-react/components/single-game/jackpot-template/boxes/game-image-container/game-image-container.default.box.ts","app-react/components/single-game/jackpot-template/boxes/game-image-container/game-image-container.box.ts","app-react/components/single-game/jackpot-template/boxes/game-details-container/game-details-container.box.ts","app-react/components/single-game/jackpot-template/boxes/game-details-container/game-details-container.default.box.ts","app-react/components/single-game/jackpot-template/boxes/game-title/game-title.default.box.ts","app-react/components/single-game/jackpot-template/boxes/game-title/game-title.casino777.box.ts","app-react/components/single-game/jackpot-template/boxes/game-title/game-title.box.ts","app-react/components/single-game/jackpot-template/boxes/jackpot-amount/jackpot-amount.default.box.ts","app-react/components/single-game/jackpot-template/boxes/jackpot-amount/jackpot-amount.casino777.box.ts","app-react/components/single-game/jackpot-template/boxes/jackpot-amount/jackpot-amount.box.ts","app-react/components/single-game/jackpot-template/parts/game-details-container/game-details-container.component.tsx","app-react/components/single-game/jackpot-template/single-game-jackpot-template.component.tsx","app-react/components/single-game/live-template/boxes/live-game-container/live-game-container.box.ts","app-react/components/single-game/live-template/boxes/live-game-container/live-game-container.default.box.ts","app-react/components/single-game/live-template/single-game-live-template.component.tsx","app-react/components/live-streaming-tile/video-common-components/video-tile/boxes/video-tile.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile/boxes/video-tile-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-overlay-item/video-overlay-item.box.ts","app-react/components/live-streaming-tile/video-common-components/video-overlay-item/video-overlay-item.default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-sound-button/boxes/video-sound-button.box.ts","app-react/components/live-streaming-tile/video-common-components/video-sound-button/boxes/video-sound-button-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-sound-button/video-sound-button.component.tsx","app-react/components/live-streaming-tile/video-common-components/video-tile-overlay/video-tile-overlay.component.tsx","app-react/components/live-streaming-tile/video-common-components/video-tile-overlay/boxes/video-tile-overlay.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-overlay/boxes/video-tile-overlay-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-static-image-overlay/video-tile-static-image-overlay.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-static-image-overlay/video-tile-static-image-overlay-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-skeleton-container/video-tile-skeleton-container.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-skeleton-container/video-tile-skeleton-container-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-component/boxes/video-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-component/boxes/video.box.ts","app-react/components/live-streaming-tile/video-common-components/video-play-button/video-play-button.box.tsx","app-react/components/live-streaming-tile/video-common-components/video-play-button/video-play-button.default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-container/video-container-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-container/video-container.box.ts","app-react/components/live-streaming-tile/video-common-components/video-component/video.component.tsx","app-react/components/live-streaming-tile/video-common-components/video-tile-skeleton/skeleton-animated-button.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-skeleton/skeleton-animated-rectangle.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-footer/boxes/video-tile-footer.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-footer/boxes/video-tile-footer-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-skeleton/video-tile.skeletonbox.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-skeleton/video-tile-skeleton.defaultbox.ts","app-react/components/single-game/single-game-skeleton.component.tsx","app-react/components/live-streaming-tile/video-common-components/video-retry-screen/video-retry-screen-boxes/video-retry-screen-tile.box.ts","app-react/components/live-streaming-tile/video-common-components/video-retry-screen/video-retry-screen-boxes/video-retry-screen-tile-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-retry-screen/video-retry-screen-boxes/video-retry-screen-icon.box.ts","app-react/components/live-streaming-tile/video-common-components/video-retry-screen/video-retry-screen-boxes/video-retry-screen-icon-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-retry-screen/video-retry-screen-boxes/video-retry-screen-title.box.ts","app-react/components/live-streaming-tile/video-common-components/video-retry-screen/video-retry-screen-boxes/video-retry-screen-title-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-retry-screen/video-retry-screen-boxes/video-retry-screen-text.box.ts","app-react/components/live-streaming-tile/video-common-components/video-retry-screen/video-retry-screen-boxes/video-retry-screen-text-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-retry-screen/video-retry-screen.component.tsx","app-react/components/live-streaming-tile/video-common-components/video-thumbnail-image/video-thumbnail-image.component.tsx","app-react/components/live-streaming-tile/video-common-components/video-tile-betting-range/video-tile-betting-range.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-betting-range/video-tile-betting-range-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-game-title/video-tile-game-title.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-game-title/video-tile-game-title-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-footer/boxes/video-tile-footer-section.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-footer/boxes/video-tile-footer-section-default.box.ts","app-react/components/live-streaming-tile/static-video-specific-components/video-list-jackpot-value/video-list-jackpot-value.box.tsx","app-react/components/live-streaming-tile/static-video-specific-components/video-list-jackpot-container/video-list-jackpot-container.box.tsx","app-react/components/live-streaming-tile/video-common-components/video-tile-footer/video-tile-footer.component.tsx","app-react/components/live-streaming-tile/video-common-components/video-tile/video-tile.component.tsx","app-react/components/single-game/video-template/boxes/video-item-container.box.ts","app-react/components/single-game/video-template/boxes/video-item-container-default.box.ts","app-react/components/single-game/single-game.component.tsx","app-react/components/single-game-placeholder/boxes/placeholder/game-placeholder.default.box.ts","app-react/services/jackpots-with-state/jackpots-with-state.service.interface.ts","app-react/components/single-game-placeholder/boxes/placeholder/game-placeholder.box.ts","app-react/components/single-game-placeholder/boxes/game-image/game-image.box.ts","app-react/components/single-game-placeholder/boxes/game-image/game-image.default.box.ts","app-react/components/single-game-placeholder/single-game-placeholder.component.tsx","app-react/components/orbit-swiper/boxes/swiper-wrapper/swiper-wrapper.default.box.ts","app-react/components/orbit-swiper/boxes/swiper-wrapper/swiper-wrapper.casino777.box.ts","app-react/components/orbit-swiper/boxes/swiper-wrapper/swiper-wrapper.box.ts","app-react/components/orbit-swiper/boxes/swiper-games-list/swiper-games-list.default.box.ts","app-react/components/orbit-swiper/boxes/swiper-games-list/swiper-games-list.box.ts","app-react/components/orbit-swiper/boxes/swiper/swiper.box.ts","app-react/components/orbit-swiper/boxes/swiper/swiper.default.box.ts","app-react/components/orbit-swiper/orbit-swiper.component.tsx","app-react/components/recently-played/recently-played.component.tsx","app-react/services/arenas/models/lists/games-list-base.model.tsx","app-react/components/game-list-title/constants.ts","app-react/components/game-list-title/boxes/list-title-icon/list-title-icon.default.box.ts","app-react/components/game-list-title/boxes/list-title-icon/list-title-icon.wsop.cip.box.ts","app-react/components/game-list-title/boxes/list-title-icon/list-title-icon.cis.box.ts","app-react/components/game-list-title/boxes/list-title-icon/list-title-icon.box.ts","app-react/components/jackpot-widget/boxes/jackpot-widget.default.box.ts","app-react/components/jackpot-widget/boxes/jackpot-widget.box.ts","app-react/components/jackpot-widget/boxes/bg/jackpot-widget-bg.box.ts","app-react/components/jackpot-widget/boxes/logo/jackpot-widget-logo.box.ts","app-react/components/jackpot-widget/boxes/amount/jackpot-widget-amount.box.ts","app-react/components/jackpot-widget/boxes/footer/jackpot-widget-footer.box.ts","app-react/components/jackpot-widget/boxes/footer/clock/label/jackpot-widget-clock-label.box.ts","app-react/components/jackpot-widget/boxes/footer/clock/box/jackpot-widget-clock.box.ts","app-react/components/jackpot-widget/jackpot-widget-clock.component.tsx","app-react/components/jackpot-widget/boxes/amount/label/jackpot-widget-amount-label.box.ts","app-react/components/jackpot-widget/boxes/footer/collecting/label/jackpot-widget-collecting-label.ts","app-react/components/jackpot-widget/boxes/footer/collecting/amount/jackpot-widget-collecting-amount.ts","app-react/components/jackpot-widget/boxes/shine/jackpot-widget-shine.box.ts","app-react/components/jackpot-widget/jackpot-widget.component.tsx","app-react/components/jackpot-widget/boxes/aspect-ratio/jackpot-widget-aspect-ratio.box.ts","app-react/components/jackpot-widget/boxes/amount/jackpot-widget-amount-container.box.ts","app-react/components/jackpot-widget/skeleton/boxes/footer/jackpot-widget-footer-element-skeleton.box.ts","app-react/components/jackpot-widget/skeleton/boxes/footer/jackpot-widget-clock-label-skeleton.box.ts","app-react/components/jackpot-widget/skeleton/boxes/footer/jackpot-widget-collecting-label-skeleton.box.ts","app-react/components/jackpot-widget/skeleton/boxes/footer/jackpot-widget-footer-container-skeleton.box.ts","app-react/components/jackpot-widget/skeleton/boxes/jackpot-widget-amount-skeleton.box.ts","app-react/services/pixi-app/animated-icon-base-service.service.ts","app-react/components/orbit-swiper/boxes/jackpot-widget-wrapper/jackpot-widget-wrapper.default.box.ts","app-react/components/orbit-swiper/boxes/jackpot-widget-wrapper/jackpot-widget-wrapper.box.ts","app-react/components/red-tiger-widget/boxes/widget/red-tiger-widget.default.box.ts","app-react/components/red-tiger-widget/boxes/widget/red-tiger-widget.box.ts","app-react/components/red-tiger-widget/boxes/hitArea/red-tiger-widget-hit-area.default.box.ts","app-react/components/red-tiger-widget/boxes/hitArea/red-tiger-widget-hit-area.casino777.box.ts","app-react/components/red-tiger-widget/boxes/hitArea/red-tiger-widget-hit-area.box.ts","app-react/components/red-tiger-widget/boxes/frameContainer/red-tiger-widget-frame-container.default.box.ts","app-react/components/red-tiger-widget/boxes/frameContainer/red-tiger-widget-frame-container.box.ts","app-react/components/red-tiger-widget/red-tiger-widget.component.tsx","app-react/basic-components/general-title/general-title.si.box.ts","app-react/basic-components/general-title/general-title.box.tsx","app-react/components/game-list-title/boxes/list-title-text/list-title-text.default.box.ts","app-react/components/game-list-title/boxes/list-title-text/list-title-text.casino777.box.ts","app-react/components/game-list-title/boxes/list-title-text/list-title-text.cip.box.ts","app-react/components/game-list-title/boxes/list-title-text/list-title-text.cis.box.ts","app-react/components/game-list-title/boxes/list-title-text/list-title-text.si.box.ts","app-react/components/game-list-title/boxes/list-title-text/list-title-text.mrgreen.box.ts","app-react/components/game-list-title/boxes/list-title-text/list-title-text.box.ts","app-react/components/game-list-title/boxes/list-title/list-title.default.box.ts","app-react/components/game-list-title/boxes/list-title/list-title.casino777.box.ts","app-react/components/game-list-title/boxes/list-title/list-title.cip.box.ts","app-react/components/game-list-title/boxes/list-title/list-title.cis.box.ts","app-react/components/game-list-title/boxes/list-title/list-title.box.ts","app-react/components/game-list-title/game-list-title.component.tsx","app-react/components/orbit-swiper/orbit-swiper-buttons/boxes/wrapper/swiper-buttons.default.box.ts","app-react/components/orbit-swiper/orbit-swiper-buttons/boxes/wrapper/swiper-buttons.casino777.box.ts","app-react/components/orbit-swiper/orbit-swiper-buttons/boxes/wrapper/swiper-buttons.box.ts","app-react/components/orbit-swiper/orbit-swiper-buttons/boxes/button/swiper-button.box.ts","app-react/components/orbit-swiper/orbit-swiper-buttons/orbit-swiper-buttons.tsx","app-react/services/arenas/models/swiper-logic-handler/swipe-logic-handler.ts","app-react/services/arenas/models/lists/swiper-list-base.model.tsx","app-react/services/arenas/models/lists/api-list-base.model.tsx","app-react/services/arenas/models/lists/recently-played/recently-played-list.model.tsx","app-react/components/ai-list/top-picks.component.tsx","app-react/services/arenas/models/lists/top-picks/top-picks-list.model.tsx","app-react/components/ai-new-games-list/ai-new-games-list.component.tsx","app-react/services/arenas/models/lists/new-games/new-games-list.model.tsx","app-react/components/players-like-you/players-like-you.component.tsx","app-react/services/arenas/models/lists/players-like-you/players-like-you-list.model.tsx","app-react/services/arenas/models/lists/static-swiper/static-swiper-list.model.tsx","app-react/components/games-grid/games-grid-batch/games-grid-batch.component.tsx","app-react/components/games-grid/boxes/games-grid/games-grid.default.box.ts","app-react/components/games-grid/boxes/games-grid/games-grid.casino777.box.ts","app-react/components/games-grid/boxes/games-grid/games-grid.box.ts","app-react/components/games-grid/boxes/no-games-found-message/no-games-found-message.box.ts","app-react/components/games-grid/boxes/no-games-found-message/no-games-found-message.default.box.ts","app-react/components/games-grid/boxes/games-grid-container.box.ts","app-react/components/games-grid/games-grid.component.tsx","app-react/services/arenas/models/lists/games-grid/games-grid-list.model.tsx","app-react/services/arenas/models/lists/live-casino/live-casino-list.model.tsx","app-react/components/because-you-played/because-you-played.component.tsx","app-react/services/arenas/models/lists/because-you-played/because-you-played-list.model.tsx","app-react/components/live-streaming-tile/live-streaming-specific-components/live-streaming-list-title/live-streaming-list-title.box.ts","app-react/components/live-streaming-tile/live-streaming-specific-components/live-streaming-list-title/live-streaming-list-title.default.box.ts","app-react/components/live-streaming-tile/live-streaming-specific-components/live-streaming-title-icon/live-streaming-title-icon.box.ts","app-react/components/live-streaming-tile/live-streaming-specific-components/live-streaming-title-icon/live-streaming-title-icon.default.box.ts","app-react/services/arenas/models/swiper-logic-handler/live-stream-swipe-logic-handler.ts","app-react/components/live-streaming-tile/video-common-components/video-navigation/video-navigation.default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-navigation/video-navigation.box.ts","app-react/components/video-list-component/video-list.component.tsx","app-react/services/arenas/models/lists/video-list/default-video-list.model.tsx","app-react/services/arenas/models/lists/video-list/live-streaming-video-list.model.tsx","app-react/services/arenas/models/lists/video-list/static-video-list.model.tsx","app-react/services/arenas/models/lists/list-factory.ts","app-react/services/arenas/models/arenas/arena-base.model.tsx","app-react/components/home-page-header-arenas/boxes/home-page-header-arena-icon/home-page-header-arena-icon.default.box.ts","app-react/components/home-page-header-arenas/boxes/home-page-header-arena-icon/home-page-header-arena-icon.si.box.ts","app-react/components/home-page-header-arenas/boxes/home-page-header-arena-icon/home-page-header-arena-icon.box.ts","app-react/components/home-page-header-arenas/boxes/home-page-header-arena-title/home-page-header-arena-title.default.box.ts","app-react/components/home-page-header-arenas/boxes/home-page-header-arena-title/home-page-header-arena-title.si.box.ts","app-react/components/home-page-header-arenas/boxes/home-page-header-arena-title/home-page-header-arena-title.box.ts","app-react/components/home-page-header-arenas/boxes/home-page-header-arena-badge/home-page-header-arena-badge.default.box.ts","app-react/components/home-page-header-arenas/boxes/home-page-header-arena-badge/home-page-header-arena-badge.si.box.ts","app-react/components/home-page-header-arenas/boxes/home-page-header-arena-badge/home-page-header-arena-badge.box.ts","app-react/components/home-page-header-arenas/boxes/home-page-header-arenas-container.default.box.ts","app-react/components/home-page-header-arenas/boxes/home-page-header-arenas-container.box.ts","app-react/components/home-page-header-arenas/boxes/home-page-header-arena-link/home-page-header-arena-link.box.ts","app-react/components/home-page-header-arenas/boxes/home-page-header-arena-link/home-page-header-arena-link.default.box.ts","app-react/components/home-page-header-arenas/boxes/home-page-header-arena-skeleton/home-page-header-arena-skeleton.default.box.ts","app-react/components/home-page-header-arenas/boxes/home-page-header-arena-skeleton/home-page-header-arena-skeleton.si.box.ts","app-react/components/home-page-header-arenas/boxes/home-page-header-arena-skeleton/home-page-header-arena-skeleton.box.ts","app-react/components/home-page-header-arenas/home-page-header-arena-icon.component.tsx","app-react/components/home-page-header-arenas/home-page-header-arenas.component.tsx","app-react/components/home-page/boxes/home-page-top-banner-background.box.ts","app-react/components/home-page/boxes/home-page-top-banner-divider-line.ts","app-react/components/free-to-play-animated-icon/boxes/free-to-play-animated-icon.default.box.ts","app-react/components/free-to-play-animated-icon/boxes/free-to-play-animated-icon.box.ts","app-react/services/user-game-orientation/user-game-orientation.service.interface.ts","app-react/components/free-to-play-animated-icon/free-to-play-animated-icon.component.tsx","app-react/components/home-page/home-page.component.tsx","app-react/services/arenas/models/arenas/home-page/home-page-arena.model.tsx","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/arena-info-preview/boxes/arena-picture/arena-picture.box.ts","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/arena-info-preview/boxes/arena-picture/arena-picture.default.box.ts","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/arena-info-preview/boxes/arena-title/arena-title.box.ts","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/arena-info-preview/boxes/arena-title/arena-title.default.box.ts","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/arena-info-preview/boxes/arena-description-text/arena-description-text.box.ts","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/arena-info-preview/boxes/arena-description-text/arena-description-text.default.box.ts","app-react/components/lobby-game-info-preview/pc-game-info-preview/boxes/lobby-game-info/lobby-game-info.default.box.ts","app-react/components/lobby-game-info-preview/pc-game-info-preview/boxes/lobby-game-info/lobby-game-info.box.ts","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/arena-info-preview/arena-info-preview.component.tsx","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/game-info-preview/title/pc-game-preview-title.component.tsx","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/game-info-preview/game-info-preview.component.tsx","app-react/components/lobby-game-info-preview/pc-game-info-preview/pc-game-info-preview.component.tsx","app-react/components/arena-host/casino-arena/casino-arena.template-types.ts","app-react/components/arena-host/casino-arena/casino-arena.component.tsx","app-react/services/arenas/models/filters-configuration-to-map.ts","app-react/services/games-filter/evaluators/game-filter-evaluator.interface.ts","app-react/services/games-filter/strategies/games-filter-strategy-base.ts","app-react/components/filters/advanced-filtering/filter-categories-list/boxes/container.box.ts","app-react/components/filters/advanced-filtering/filter-categories-list/boxes/filter-by.box.ts","app-react/components/filters/advanced-filtering/filter-category/boxes/preview.box.ts","app-react/components/filters/advanced-filtering/filter-category/boxes/open-container.box.ts","app-react/components/filters/advanced-filtering/filter-category/boxes/filter-item-title.box.ts","app-react/components/filters/advanced-filtering/filter-category/boxes/container.box.ts","app-react/components/filters/advanced-filtering/filter-category/boxes/title-container.box.ts","app-react/components/filters/advanced-filtering/filter-category/boxes/title.box.ts","app-react/components/filters/advanced-filtering/filter-category/boxes/filter-Item.box.ts","app-react/components/filters/advanced-filtering/filter-category/boxes/input.box.ts","app-react/components/filters/advanced-filtering/filter-category/filter-category.component.tsx","app-react/components/filters/advanced-filtering/filter-categories-list/filter-categories-list.component.tsx","app-react/components/filters/advanced-filtering/advanced-games-filter.component.tsx","app-react/services/games-filter/strategies/advanced-filter/advanced-games-filter-drawer-renderer.tsx","app-react/services/games-filter/arena-filters/categories/arena-game-filters-category-editor.ts","app-react/services/games-filter/strategies/advanced-filter/advanced-strategy-filters-editor.ts","app-react/services/games-filter/evaluators/and-game-filters-evaluator.ts","app-react/components/filters/filters-games-list-mobile/boxes/menu-button/filters-mobile-button.default.box.ts","app-react/components/filters/filters-games-list-mobile/boxes/menu-button/filters-mobile-button.casino777.box.ts","app-react/components/filters/filters-games-list-mobile/boxes/menu-button/filters-mobile-button.box.ts","app-react/components/filters/filters-games-list-mobile/boxes/menu-button/filters-mobile-icon.default.box.ts","app-react/components/filters/filters-games-list-mobile/boxes/menu-button/filters-mobile-icon.casino777.box.ts","app-react/components/filters/filters-games-list-mobile/boxes/menu-button/filters-mobile-icon.box.ts","app-react/components/header/top-header-left/filters/filters-mobile-button.component.tsx","app-react/components/filters/advanced-filtering/boxes/indicator-container.box.ts","app-react/components/filters/advanced-filtering/advanced-games-filtering-pc-indicator.component.tsx","app-react/services/games-filter/arena-filters/categories/arena-game-filters-category-base.ts","app-react/services/games-filter/arena-filters/filters/arena-game-filter-editor.ts","app-react/services/games-filter/arena-filters/filters/arena-game-filter-base.ts","app-react/services/games-filter/arena-filters/filters/dynamic-arena-game-filter.ts","app-react/services/games-filter/arena-filters/categories/dynamic-arena-game-filters-category.ts","app-react/services/games-filter/evaluators/or-game-filters-evaluator.ts","app-react/services/games-filter/filters-categories-definitions/filter-category-definition-base.ts","app-react/services/games-filter/filters-definitions/game-filter-definition-base.ts","app-react/services/games-filter/filters-definitions/volatility/high-volatility.filter-definition.ts","app-react/services/games-filter/filters-definitions/volatility/low-volatility.filter-definition.ts","app-react/services/games-filter/filters-definitions/volatility/medium-volatility.filter-definition.ts","app-react/services/games-filter/filters-categories-definitions/volatility.filters-category-definition.ts","app-react/services/games-filter/filters-definitions/game-feature-filter-definition-base.ts","app-react/services/games-filter/filters-definitions/game-features/one-to-twenty-five.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-features/twenty-five-plus.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-features/new-game.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-features/low-stake.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-features/bonus-game.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-features/free-spins.filter-definition.ts","app-react/services/games-filter/filters-categories-definitions/game-features.filters-category-definition.ts","app-react/services/games-filter/filters-definitions/jackpot/has-jackpot.filter-definition.ts","app-react/services/games-filter/filters-definitions/jackpot/has-no-jackpot.filter-definition.ts","app-react/services/games-filter/filters-definitions/jackpot/has-dailight-jackpot.filter-definition.ts","app-react/services/games-filter/filters-definitions/jackpot/has-twilight-jackpot.filter-definition.ts","app-react/services/games-filter/filters-definitions/jackpot/has-captain8-jackpot.filter-definition.ts","app-react/services/games-filter/filters-categories-definitions/jackpot-types.filters-category-definition.ts","app-react/services/games-filter/filters-categories-definitions/has-jackpot.filters-category-definition.ts","app-react/services/games-filter/filters-definitions/vendor/vendor.filter-definition.ts","app-react/services/games-filter/filters-categories-definitions/game-vendor.filters-category-definition.ts","app-react/services/games-filter/filters-definitions/game-group-filter-definition-base.ts","app-react/services/games-filter/filters-definitions/game-group/baccarat.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-group/blackjack.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-group/craps.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-group/keno.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-group/live-elite-lunge.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-group/live-elite-lounge-or-exclusive.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-group/live-game-shows.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-group/poker.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-group/roulette.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-group/scratchcards.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-group/slots.filter-definition.ts","app-react/services/games-filter/filters-categories-definitions/game-group.filters-category-definition.ts","app-react/services/games-filter/filters-definitions/theme/game-theme.filter-definition.ts","app-react/services/games-filter/filters-categories-definitions/game-theme.filters-category-definition.ts","app-react/services/games-filter/filters-categories-definitions/filter-category-definition-factory.ts","app-react/services/games-filter/strategies/advanced-filter/advanced-games-filter.strategy.tsx","app-react/components/filters/filter-link/boxes/icon/filter-link-icon.default.box.ts","app-react/components/filters/filter-link/boxes/icon/filter-link-icon.casino777.box.ts","app-react/components/filters/filter-link/boxes/icon/filter-link-icon.si.box.ts","app-react/components/filters/filter-link/boxes/icon/filter-link-icon.box.ts","app-react/components/filters/filter-link/boxes/filter-link.default.box.ts","app-react/components/filters/filter-link/boxes/filter-link.casino777.box.ts","app-react/components/filters/filter-link/boxes/filter-link.si.box.ts","app-react/components/filters/filter-link/boxes/filter-link.box.ts","app-react/components/filters/filter-link/filter-link.component.tsx","app-react/components/filters/filter-link-list/filters-games-list.default.box.ts","app-react/components/filters/filter-link-list/filters-games-list.box.ts","app-react/components/filters/filter-link-list/filter-link-list.component.tsx","app-react/components/filters/filters-games-list-mobile/boxes/popup/filters-games-mobile-popup.box.ts","app-react/components/filters/filters-games-list-mobile/boxes/popup/menu/filters-mobile-buttons.box.ts","app-react/components/filters/filters-games-list-mobile/boxes/popup/menu/filters-mobile-buttons.default.box.ts","app-react/components/filters/filters-games-list-mobile/filters-games-list-mobile.component.tsx","app-react/services/games-filter/strategies/simple-games-filter/simple-strategy-filters-editor.ts","app-react/services/games-filter/filters-definitions/other/other.filter-definition.ts","app-react/services/games-filter/filters-categories-definitions/other.filters-category-definition.ts","app-react/services/games-filter/arena-filters/filters/static-arena-game-filter.ts","app-react/services/games-filter/arena-filters/categories/static-arena-game-filters-category.ts","app-react/components/filters/filters-games-list-pc/boxes/filters-game-list-pc.box.ts","app-react/components/filters/filters-games-list-pc/boxes/filters-game-list-pc.default.box.ts","app-react/components/filters/filters-games-list-pc/filters-games-list-pc.component.tsx","app-react/services/games-filter/arena-filters/filters/adhoc-arena-game-filter.ts","app-react/services/games-filter/filters-definitions/company/company.filter-definitions.ts","app-react/services/games-filter/arena-filters/categories/adhoc-arena-games-filters-category.ts","app-react/services/games-filter/strategies/simple-games-filter/simple-games-filter.strategy.tsx","app-react/services/arenas/models/arenas/casino-lobby/casino-lobby-arena.model.tsx","app-react/services/arenas/models/arenas/void-arena/void-arena.model.ts","app-react/services/arenas/models/lists-sort-order-storage.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-filter-button-icon/live-casino-filter-button-icon.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-filter-button-icon/live-casino-filter-button-icon.si.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-filter-button-icon/live-casino-filter-button-icon.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-filter-button-label/live-casino-filter-button-label.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-filter-button-label/live-casino-filter-button-label.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-filter-button-label/live-casino-filter-button-label.si.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-filter-button-label/live-casino-filter-button-label.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-arena-navbar-button/live-casino-arena-navbar-button.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-arena-navbar-button/live-casino-arena-navbar-button.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-arena-navbar-button/live-casino-arena-navbar-button.si.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-arena-navbar-button/live-casino-arena-navbar-button.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/live-casino-arena-navbar-button.component.tsx","app-react/components/arena-host/new-live-casino-arena/new-live-casino-arena.component.tsx","app-react/services/arenas/models/arenas/new-live-casino/new-live-casino-arena.model.tsx","app-react/services/arenas/models/arenas/live-casino/live-casino-arena.model.tsx","app-react/services/arenas/arenas.service.tsx","app-react/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.tsx","app-react/services/sitemap/breadcrumbs/non-navigatable-breadcrumb.tsx","app-react/services/sitemap/breadcrumbs/navigatable-breadcrumb.tsx","app-react/services/sitemap/sitemap-node.ts","app-react/services/sitemap/sitemap.service.ts","app-react/services/marketing/marketing.service.ts","app-react/services/language/language-switcher/language-switcher-item.ts","app-react/services/language/language-switcher/language-switcher-section.ts","app-react/services/language/language-switcher/selected-language-switcher-item.ts","app-react/services/language/language.service.ts","app-react/services/configurations/helpers/side-menu-typeguards.helpers.ts","app-react/services/side-menu/side-menu.service.ts","app-react/services/game-search/game-search-result.ts","app-react/services/external-links/external-links.service.interface.ts","app-react/components/game-search/search-result/search-box-title/boxes/search-title-box/search-title.box.ts","app-react/components/game-search/search-result/search-box-title/boxes/search-title-box/search-title.default.box.ts","app-react/components/game-search/search-result/search-box-title/search-box-title.component.tsx","app-react/components/game-search/search-result/found-games/boxes/search-games-list/search-games-list.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/search-link.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/search-link.default.box.ts","app-react/components/game-search/search-result/found-games/boxes/search-no-game-found/search-no-games-found.default.box.ts","app-react/components/game-search/search-result/found-games/boxes/search-no-game-found/search-no-games-found.casino777.box.ts","app-react/components/game-search/search-result/found-games/boxes/search-no-game-found/search-no-games-found.box.ts","app-react/components/game-search/search-result/search-game-item/boxes/search-game-item/search-game-item.box.ts","app-react/components/game-search/search-result/highlight-search-list-item/boxes/search-match.box.ts","app-react/components/game-search/search-result/highlight-search-list-item/boxes/search-match.default.box.ts","app-react/components/game-search/search-result/highlight-search-list-item/highlight-search-list-item.component.tsx","app-react/components/game-search/search-result/search-game-item/boxes/search-text-wrapper/search-text-wrapper.box.ts","app-react/components/game-search/search-result/search-game-item/search-game-item.component.tsx","app-react/components/game-search/search-result/suggested-games/suggested-games.component.tsx","app-react/components/game-search/search-result/found-games/boxes/more-games/more-games.box.ts","app-react/components/game-search/search-result/found-games/found-games.component.tsx","app-react/components/game-search/search-result/search-result-item/boxes/search-result-item-box/search-result-item.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-result-item-box/search-result-item.default.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/slots-search-link/slots-search-link.default.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/slots-search-link/slots-search-link.casino777.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/slots-search-link/slots-search-link.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/live-search-link/live-search-link.default.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/live-search-link/live-search-link.casino777.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/live-search-link/live-search-link.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/card-and-table-search-link/card-and-table-search.default.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/card-and-table-search-link/card-and-table-search-link.casino777.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/card-and-table-search-link/card-and-table-search-link.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/regular-search-link/regular-search-link.default.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/regular-search-link/regular-search-link.casino777.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/regular-search-link/regular-search-link.box.ts","app-react/components/game-search/search-result/search-result-item/search-result-item.component.tsx","app-react/components/game-search/search-result/suggested-links/boxes/search-links-list/search-links-list.box.ts","app-react/components/game-search/search-result/suggested-links/boxes/search-links-list/search-links-list.default.box.ts","app-react/components/game-search/search-result/suggested-links/suggested-links.component.tsx","app-react/components/game-search/search-result/boxes/search-form-results-box/search-form-results.default.box.ts","app-react/components/game-search/search-result/boxes/search-form-results-box/search-form-results.casino777.box.ts","app-react/components/game-search/search-result/boxes/search-form-results-box/search-form-results.box.ts","app-react/components/game-search/search-result/boxes/search-form-results-wrapper-box/search-form-results-wrapper.default.box.ts","app-react/components/game-search/search-result/boxes/search-form-results-wrapper-box/search-form-results-wrapper.casino777.box.ts","app-react/components/game-search/search-result/boxes/search-form-results-wrapper-box/search-form-results-wrapper.box.ts","app-react/components/game-search/search-result/search-result.component.tsx","app-react/components/game-search/search-input/search-input-mobile/boxes/search-clear-icon/search-clear-icon.default.box.ts","app-react/components/game-search/search-input/search-input-mobile/boxes/search-clear-icon/search-clear-icon.casino777.box.ts","app-react/components/game-search/search-input/search-input-mobile/boxes/search-clear-icon/search-clear-icon.box.ts","app-react/components/game-search/search-input/search-input-mobile/boxes/search-input-mobile/search-input-mobile.default.box.ts","app-react/components/game-search/search-input/search-input-mobile/boxes/search-input-mobile/search-input-mobile.casino777.box.ts","app-react/components/game-search/search-input/search-input-mobile/boxes/search-input-mobile/search-input-mobile.box.ts","app-react/components/game-search/search-input/search-input-mobile/boxes/search-box-mobile-icon/search-box-mobile-icon.default.box.ts","app-react/components/game-search/search-input/search-input-mobile/boxes/search-box-mobile-icon/search-box-mobile-icon.casino777.box.ts","app-react/components/game-search/search-input/search-input-mobile/boxes/search-box-mobile-icon/search-box-mobile-icon.box.ts","app-react/components/game-search/search-input/search-input-area/boxes/search-input-area-box/search-input-area.default.box.ts","app-react/components/game-search/search-input/search-input-area/boxes/search-input-area-box/search-input-area.casino777.box.ts","app-react/components/game-search/search-input/search-input-area/boxes/search-input-area-box/search-input-area.harrahs.box.ts","app-react/components/game-search/search-input/search-input-area/boxes/search-input-area-box/search-input-area.casino888.box.ts","app-react/components/game-search/search-input/search-input-area/boxes/search-input-area-box/search-input-area.ballysdover.box.ts","app-react/components/game-search/search-input/search-input-area/boxes/search-input-area-box/search-input-area.delawarepark.box.ts","app-react/components/game-search/search-input/search-input-area/boxes/search-input-area-box/search-input-area.harrington.box.ts","app-react/components/game-search/search-input/search-input-area/boxes/search-input-area-box/search-input-arena.si.box.ts","app-react/components/game-search/search-input/search-input-area/boxes/search-input-area-box/search-input-area.box.ts","app-react/components/game-search/search-input/search-input-area/search-input-area.tsx","app-react/components/game-search/search-input/search-input-mobile/search-input-mobile.component.tsx","app-react/components/game-search/search-input/search-input-pc/boxes/search-input-form/search-input-form.box.ts","app-react/components/game-search/search-input/search-input-pc/boxes/search-input-form/search-input-form.default.box.ts","app-react/components/game-search/search-input/search-input-pc/boxes/search-pc-icon/search-pc-icon.default.box.ts","app-react/components/game-search/search-input/search-input-pc/boxes/search-pc-icon/search-pc-icon.casino777.box.ts","app-react/components/game-search/search-input/search-input-pc/boxes/search-pc-icon/search-pc-icon.harrahs.box.ts","app-react/components/game-search/search-input/search-input-pc/boxes/search-pc-icon/search-pc-icon.wsop.box.ts","app-react/components/game-search/search-input/search-input-pc/boxes/search-pc-icon/search-pc-icon.box.ts","app-react/components/game-search/search-input/search-input-pc/search-input-pc.component.tsx","app-react/components/game-search/boxes/game-search-box/game-search.box.ts","app-react/components/game-search/game-search.component.tsx","app-react/services/game-search/game-search.service.tsx","app-react/services/external-links/strategies/external-links-legacy.strategy.ts","app-react/services/external-links/strategies/external-links-modern.strategy.ts","app-react/services/external-links/external-links.service.ts","app-react/services/cms/cms-api/cms-api.service.ts","app-react/components/cms-banner/banner-content/banner-content.component.tsx","app-react/services/cms/cms-banners/banner-definition/banner-definition.tsx","app-react/services/cms/cms-banners/cms-banners.service.ts","app-react/services/cms/cms-pages/cms-pages.service.ts","app-react/services/cms/cms-segmentation/cms-segmentation.service.ts","app-react/services/deep-link/deep-link-actions/deep-link-action-base.ts","app-react/services/deep-link/deep-link-actions/cashier/cashier-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/login/login-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/play-game/play-game-deep-link-action-base.ts","app-react/services/deep-link/deep-link-actions/play-game/play-game-real/play-game-real-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/play-game/play-game-demo/play-game-demo-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/register/register-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/my-account/my-account-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/redirect/redirect-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/terminate/terminate-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/upload-document/upload-document-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/freeplay/freeplay-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/open-list/open-list-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/control-center/control-center-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/free-to-play/free-to-play-deeplink-action.ts","app-react/services/deep-link/deep-link-action-factory/deep-link-actions-factory.service.ts","app-react/services/sdk-component-factory/sdk-component-factory.service.ts","app-react/components/sticky-handler/sticky-handler.ts","app-react/services/sticky-handler-factory/sticky-handler-factory.service.ts","app-react/services/game-preview-features-selector/preview-features/boolean-game-preview-feature.ts","app-react/services/game-preview-features-selector/preview-features/money-game-preview-feature.ts","app-react/services/game-preview-features-selector/preview-features/numeric-game-preview-feature.ts","app-react/services/game-preview-features-selector/preview-features/all-features.ts","app-react/services/game-preview-features-selector/game-preview-features-selector.service.ts","app-react/services/game-route-handler/game-route-handler.service.ts","app-react/app-bootstrap/launcher-overrides-reader/launcher-overrides-reader.ts","app-react/services/launcher/launcher.service.ts","app-react/services/spinner/spinner.service.ts","app-react/services/web-vitals/web-vitals.service.ts","app-react/services/menu-flow/menu-flow.service.ts","app-react/services/analytics/analytics-data-layer.service.interface.ts","app-react/services/poker-integration/poker-integration.service.ts","app-react/components/mini-orbit/routing/mini-orbit-routing-definition.tsx","app-react/services/routing-configuration/routing-configuration.service.tsx","app-react/services/routing/route/orbit-route.ts","app-react/services/routing/routing.service.ts","app-react/services/overlay/overlay.service.ts","app-react/services/time/time.service.ts","app-react/services/ai-new-games-engine/ai-new-games.service.ts","app-react/services/theme/theme.service.tsx","app-react/services/mini-orbit/adapters/void/void-communication-adapter.ts","app-react/services/mini-orbit/mini-orbit.service.tsx","app-react/components/modal-dialog/boxes/consumer-content/dialog-consumer-content.default.box.ts","app-react/components/modal-dialog/boxes/consumer-content/dialog-consumer-content.casino777.box.ts","app-react/components/modal-dialog/boxes/consumer-content/dialog-consumer-content.box.ts","app-react/components/modal-dialog/boxes/overlay/dialog-overlay.default.box.ts","app-react/components/modal-dialog/boxes/overlay/dialog-overlay.box.ts","app-react/components/modal-dialog/boxes/overlay-content/dialog-overlay-constants.ts","app-react/components/modal-dialog/boxes/overlay-content/dialog-overlay-content.default.box.ts","app-react/components/modal-dialog/boxes/overlay-content/dialog-overlay-content.box.ts","app-react/components/modal-dialog/boxes/icon-wrapper/dialog-icon-wrapper.box.ts","app-react/components/modal-dialog/boxes/icon-wrapper/dialog-icon-wrapper.default.box.ts","app-react/components/modal-dialog/modal-dialog.component.tsx","app-react/components/modal-dialog/standard-dialogs/simple-message/boxes/simple-message-dialog.box.ts","app-react/components/modal-dialog/standard-dialogs/simple-message/boxes/simple-message-dialog-content.box.ts","app-react/components/modal-dialog/standard-dialogs/simple-message/boxes/simple-message-dialog-buttons-container.box.ts","app-react/components/modal-dialog/standard-dialogs/simple-message/boxes/simple-message-dialog-button.box.ts","app-react/components/modal-dialog/standard-dialogs/simple-message/simple-message-dialog-button.component.tsx","app-react/components/modal-dialog/standard-dialogs/simple-message/boxes/simple-message-dialog-icon-container.box.ts","app-react/components/modal-dialog/standard-dialogs/simple-message/simple-message-dialog.component.tsx","app-react/services/dialog/dialog.service.tsx","app-react/services/header/header.service.ts","app-react/services/tooltip/tooltip.modifiers.ts","app-react/components/tooltip/tooltips/icon-title-text/boxes/container.box.ts","app-react/components/tooltip/tooltips/icon-title-text/boxes/text-container.box.ts","app-react/components/tooltip/tooltips/icon-title-text/boxes/title.box.ts","app-react/components/tooltip/tooltips/icon-title-text/boxes/icon.box.ts","app-react/components/tooltip/tooltips/icon-title-text/boxes/separator/separator.default.box.ts","app-react/components/tooltip/tooltips/icon-title-text/boxes/separator/separator.777.box.ts","app-react/components/tooltip/tooltips/icon-title-text/boxes/separator/separator.box.ts","app-react/components/tooltip/tooltips/icon-title-text/icon-title-text.tooltip.tsx","app-react/components/tooltip/tooltips/ios-add-to-home/boxes/icon-container.box.ts","app-react/components/tooltip/tooltips/ios-add-to-home/boxes/ios-add-to-home-share-icon.box.ts","app-react/components/tooltip/tooltips/ios-add-to-home/boxes/message-body-container.box.ts","app-react/components/tooltip/tooltips/ios-add-to-home/ios-add-to-home.component.tsx","app-react/services/progressive-web-app/progressive-web-app.service.tsx","app-react/services/manifest/pwa-manifest.service.ts","app-react/services/manifest/pwa-manifest-constants.ts","app-react/services/mini-orbit/adapters/poker/poker-communication-adapter.ts","app-react/services/mini-orbit/adapters/sport/sport-communication-adapter.ts","app-react/services/mini-orbit/adapter-factory/mini-orbit-communication-adapter-factory.service.ts","utils/memoize.ts","app-react/services/live-table-feeds-service/live-table-feeds.service.ts","app-react/services/drawer/drawer-content-decorator.ts","app-react/services/drawer/drawer-handler.ts","app-react/services/drawer/drawer.service.ts","app-react/services/daily-deal/daily-deal.service.ts","app-react/services/jackpots-with-state/jackpot-handler/jackpot-handler.ts","app-react/services/jackpots-with-state/jackpots-with-state.service.ts","app-react/services/jackpots/jackpots.service.ts","utils/ab-testing-feature-check.ts","app-react/services/ab-testing/ab-testing-feature-data-provider.service.ts","utils/gradual-increase-helper.ts","app-react/services/gradual-increase-helper-factory/gradual-increase-helper-factory.service.ts","app-react/services/safezone/safezone.service.ts","app-react/components/safezone/boxes/full-safezone-content.box.tsx","app-react/components/safezone/boxes/full-safezone-content-default.box.tsx","app-react/components/on-error/boxes/on-error.box.tsx","app-react/components/on-error/boxes/on-error-default.box.tsx","app-react/components/on-error/boxes/on-error-icon.box.tsx","app-react/components/on-error/boxes/on-error-title.box.tsx","app-react/components/on-error/boxes/on-error-message.box.tsx","app-react/components/on-error/boxes/on-error-buttons.box.ts","app-react/components/on-error/on-error.component.tsx","app-react/components/safezone/full-safezone.component.tsx","app-react/services/homepage/homepage.service.tsx","app-react/services/safezone/safezone-handler-base.ts","app-react/services/safezone/full-safezone-handler.tsx","app-react/services/safezone/mini-safezone-handler.ts","app-react/services/safezone/safezone-object-factory.service.ts","app-react/services/wallet-proxy/wallet-proxy.service.ts","app-react/components/game-popup/boxes/game-view/games-view.default.box.ts","app-react/components/game-popup/boxes/game-view/games-view.box.ts","app-react/components/game-popup/boxes/game-icon-container/game-icon-container.default.box.ts","app-react/components/game-popup/boxes/game-icon-container/game-icon-container.box.ts","app-react/components/game-popup/boxes/game-view-section/game-view-section.box.ts","app-react/components/game-popup/boxes/game-popup/game-popup.default.box.ts","app-react/components/game-popup/boxes/game-popup/game-popup.box.ts","app-react/components/game-popup/boxes/sub-title-container/sub-title-container.box.ts","app-react/components/game-popup/boxes/game-view-divider/games-view-divider.default.box.ts","app-react/components/game-popup/boxes/menu-container/menu-container.box.ts","app-react/components/game-popup/boxes/description-container/description-container.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/side-menu-item.box.ts","app-react/components/side-menu-rework/side-menu-link/side-menu-item.component.tsx","app-react/components/side-menu-rework/side-menu-link/boxes/link/generic-side-menu-link.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/link/generic-side-menu-label.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/link/generic-side-menu-icon.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/link/generic-pre-icon-menu-link.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/link/generic-side-menu-image.box.ts","app-react/components/side-menu-rework/side-menu-link/internal-nav-side-menu-link.component.tsx","app-react/components/loyalty-bar/loyalty-bar-wrapper.component.tsx","app-react/components/side-menu-rework/side-menu-link/loyaltybar-side-menu-link.component.tsx","app-react/components/side-menu-rework/side-menu-link/boxes/link/deposit-side-menu-link.default.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/link/deposit-side-menu-link.casino777.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/link/deposit-side-menu-link.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/link/signup-side-menu-link.box.ts","app-react/components/side-menu-rework/side-menu-link/icons/arrow-side-menu-link.icon.ts","app-react/components/side-menu-rework/side-menu-link/signup-side-menu-link.component.tsx","app-react/components/side-menu-rework/side-menu-link/deposit-side-menu-link.component.tsx","app-react/components/side-menu/boxes/side-menu-component.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/side-menu-list.box.ts","app-react/components/side-menu-rework/side-menu-links-group/side-menu-links-group.component.tsx","app-react/components/game-popup/boxes/game-popup-checkbox-container/game-popup-checkbox-container.box.ts","app-react/components/game-popup/boxes/game-popup-checkbox/game-popup-checkbox.box.ts","app-react/components/game-popup/game-popup.component.tsx","app-react/services/game-popup/game-popup.service.tsx","app-react/services/analytics/analytics-data-layer.service.ts","app-react/components/session-cooldown-popup/boxes/session-cooldown.popup.box.ts","app-react/components/session-cooldown-popup/boxes/session-cooldown-popup.default.box.ts","app-react/components/session-cooldown-popup/boxes/session-cooldown-popup-text.box.ts","app-react/components/session-cooldown-popup/boxes/session-cooldown-popup-text.default.box.ts","app-react/components/session-cooldown-popup/boxes/session-cooldown-popup-timer.box.ts","app-react/components/session-cooldown-popup/boxes/session-cooldown-popup-timer.default.box.ts","app-react/components/session-cooldown-popup/boxes/session-cooldown-popup-timer-remaining.box.ts","app-react/components/session-cooldown-popup/boxes/session-cooldown-popup-timer-remaining.default.box.ts","app-react/components/session-cooldown-popup/session-cooldown-popup.component.tsx","app-react/services/session-cooldown/session-cooldown.service.tsx","app-react/components/time-spent-reminder/with-dropdown/time-spent-reminder-with-dropdown.component.tsx","app-react/services/media-query/media-query-listener.ts","app-react/services/media-query/media-query.service.ts","app-react/orbit-api.ts","app-react/orbit-api.interface.ts","app-react/services/tools/tools.service.ts","app-react/components/vertical-games-list/boxes/vertical-games-list.box.ts","app-react/components/vertical-games-list/boxes/header.box.ts","app-react/components/vertical-games-list/boxes/games-list.box.ts","app-react/components/vertical-games-list/boxes/game.box.ts","app-react/components/vertical-games-list/boxes/game-details.box.ts","app-react/components/vertical-games-list/boxes/game-divider.box.ts","app-react/components/balance-box/balance-box-buttons/boxes/button-wrapper.box.ts","app-react/components/vertical-games-list/boxes/game-image.box.ts","app-react/components/vertical-games-list/css-classes.ts","app-react/components/vertical-games-list/boxes/game-details-name.box.ts","app-react/components/vertical-games-list/boxes/game-details-jp.box.ts","app-react/components/vertical-games-list/vertical-games-list-game.component.tsx","app-react/components/vertical-games-list/boxes/header-title.box.ts","app-react/components/vertical-games-list/boxes/header-close.box.ts","app-react/components/vertical-games-list/boxes/dj-widget.box.ts","app-react/components/vertical-games-list/vertical-games-list.component.tsx","app-react/services/vertical-games-list/vertical-games-list.service.tsx","app-react/services/user-game-orientation/user-game-orientation.service.ts","app-react/services/api/api-controller-base.ts","app-react/services/api/api.service.ts","app-react/components/time-spent-reminder/with-dropdown/boxes/tsr-with-dropdown.box.ts","app-react/components/time-spent-reminder/with-dropdown/boxes/tsr-with-dropdown-option-selector.box.ts","app-react/components/time-spent-reminder/with-dropdown/boxes/tsr-with-dropdown-main-text.default.box.ts","app-react/components/time-spent-reminder/with-dropdown/boxes/tsr-with-dropdown-main-text.casino777.box.ts","app-react/components/time-spent-reminder/with-dropdown/boxes/tsr-with-dropdown-main-text.box.ts","app-react/components/time-spent-reminder/with-dropdown/boxes/tsr-with-dropdown-selector-container.box.ts","app-react/components/geo/geo-permission-popup/geo-permission-popup.component.tsx","app-react/components/time-spent-reminder/with-balance/boxes/tsr-with-balance.box.ts","app-react/components/time-spent-reminder/with-balance/time-spent-reminder-with-balance.component.tsx","app-react/components/game-item/boxes/game-item-container.box.ts","app-react/components/game-item/boxes/game-item-img-wrapper.box.ts","app-react/components/game-item/boxes/game-item-fp-thumb.box.ts","app-react/components/game-item/boxes/game-item-delimiter.box.ts","app-react/components/game-item/boxes/game-item-details-wrapper.box.ts","app-react/components/game-item/boxes/game-item-title.box.ts","app-react/components/game-item/boxes/game-item-jackpot.box.ts","app-react/components/game-item/boxes/game-item-buttons-area.box.ts","app-react/components/game-item/game-item.component.tsx","app-react/components/idle-recommendation/boxes/idle-recommendation-toaster.box.ts","app-react/components/idle-recommendation/boxes/idle-recommendation-header.box.ts","app-react/components/idle-recommendation/boxes/idle-recommendation-header-title-wrapper.box.ts","app-react/components/idle-recommendation/boxes/idle-recommendation-header-title.box.ts","app-react/components/idle-recommendation/boxes/idle-recommendation-game-details.box.ts","app-react/components/idle-recommendation/boxes/idle-recommendation-toaster-background.box.ts","app-react/components/idle-recommendation/idle-recommendation.component.tsx","app-react/components/about-component/boxes/about.box.ts","app-react/components/about-component/boxes/about-info-section.box.ts","app-react/components/about-component/boxes/about-footer-section.box.ts","app-react/components/about-component/about.component.tsx","app-react/components/geo/geo-install-plugin/boxes/geo-dialog-list.box.ts","app-react/components/geo/geo-install-plugin/boxes/geo-dialog-list-item.box.ts","app-react/components/geo/geo-install-plugin/boxes/geo-dialog-colored-text.box.ts","app-react/components/geo/geo-install-plugin/geo-install-plugin-popup-component.tsx","app-react/basic-ui-components/layout/spacer.box.ts","app-react/components/geo/geo-freeze/geo-freeze-popup.component.tsx","app-react/services/orbit-component-to-sdk-adapter/orbit-component-to-sdk-adapter.service.tsx","app-react/services/omg-proxy/omg-proxy.service.ts","app-react/services/casinofied/message-broker/message-broker.consts.ts","app-react/services/casinofied/message-broker/message-broker.service.ts","app-react/services/casinofied/casinofied-helper-functions.ts","app-react/services/casinofied/app-launcher/apps/adapters/casinofied-zoid-application-adapter.ts","app-react/services/casinofied/app-launcher/apps/adapters/casinofied-regular-application-adapter.ts","app-react/services/casinofied/app-launcher/apps/casinofied-application-base.ts","app-react/services/casinofied/app-launcher/apps/casinofied-application.interface.ts","app-react/services/casinofied/app-launcher/apps/inside-drawer.application.tsx","app-react/services/casinofied/app-launcher/apps/chat/chat.application.ts","app-react/services/casinofied/app-launcher/casinofied-app-sdk-loader.ts","app-react/services/casinofied/app-launcher/components/casinofied-bubble.component.tsx","app-react/services/casinofied/app-launcher/components/casinofied-component-base.ts","app-react/services/casinofied/app-launcher/apps/adapters/unified-cashier-zoid-adapter.ts","app-react/services/casinofied/app-launcher/apps/deposit-widget/deposit-widget.application.ts","app-react/components/payments-redirect-focus/boxes/payment-redirect-focus-title/payment-redirect-focus-title.box.ts","app-react/components/payments-redirect-focus/boxes/payment-redirect-focus-title/payment-redirect-focus-title.default.box.ts","app-react/components/payments-redirect-focus/boxes/payment-redirect-focus-container/payment-redirect-focus.box.ts","app-react/components/payments-redirect-focus/payments-redirect-focus.component.tsx","app-react/services/casinofied/app-launcher/apps/payments-redirect/payments-redirect.application.tsx","app-react/services/casinofied/app-launcher/apps/full-cashier/full-cashier.application.ts","app-react/services/casinofied/app-launcher/apps/cashout-widget/cashout-widget.application.ts","app-react/services/casinofied/app-launcher/apps/transaction-history/transaction-history.application.ts","app-react/services/casinofied/app-launcher/apps/customer-relations/customer-relations.application.ts","app-react/services/casinofied/app-launcher/apps/free-to-play-bonus-games/free-to-play-bonus-games.application.ts","app-react/services/casinofied/app-launcher/apps/help-centre/help-centre.application.ts","app-react/services/casinofied/app-launcher/apps/control-center/init-params-helper.ts","app-react/services/casinofied/app-launcher/apps/control-center/control-center-full.application.ts","app-react/services/external-links/external-links-z-indexes.ts","app-react/services/casinofied/app-launcher/apps/control-center/control-center-mini.application.ts","app-react/services/casinofied/app-launcher/apps/control-center/control-center-analytics-helper.ts","app-react/services/casinofied/app-launcher/casinofied-app-factory.ts","app-react/services/casinofied/app-launcher/casinofied-app-launcher.service.ts","app-react/services/casinofied/action-handler/action-handler-base.ts","app-react/services/casinofied/action-handler/handlers/open-banking.action-handler.ts","app-react/services/casinofied/action-handler/handlers/upload-documents.action-handler.ts","app-react/services/casinofied/action-handler/handlers/open-deposit.action-handler.ts","app-react/services/casinofied/action-handler/handlers/open-withdraw.action-handler.ts","app-react/services/casinofied/action-handler/handlers/open-link.action-handler.ts","app-react/services/casinofied/action-handler/handlers/open-chat.action-handler.ts","app-react/services/casinofied/action-handler/handlers/open-link-with-form-post.action-handler.ts","app-react/services/casinofied/action-handler/handlers/open-control-center-full.action-handler.ts","app-react/services/casinofied/action-handler/handlers/open-client-page.action-handler.ts","app-react/services/casinofied/action-handler/handlers/logout.action-handler.ts","app-react/services/casinofied/action-handler/casinofied-action-handler.service.ts","app-react/services/floating-bubbles/floating-bubbles.service.ts","app-react/components/source-of-funds/boxes/source-of-funds.box.ts","app-react/components/source-of-funds/source-of-funds-popup.component.tsx","app-react/services/restriction-ruler/restriction-ruler.service.tsx","app-react/services/restriction-ruler/restriction-ruler.service.interface.ts","app-react/services/red-tiger/red-tiger.service.ts","app-react/services/casinofied/analytics-publisher/casinofied-analytics.service.ts","app-react/services/http/http-with-request-time-measurement.service.ts","app-react/services/ab-testing-ai-sort/ab-testing-ai-sort-games-lists.service.ts","app-react/services/cashier/cashier.service.ts","utils/case-insensitive-property-reader.ts","app-react/services/external-links/handlers/external-link-handler-base.ts","app-react/services/external-links/handlers/registration/registration.external-link-handler.ts","app-react/components/external-links/boxes/external-link-iframe.box.ts","app-react/components/external-links/boxes/external-link-iframe-container.box.ts","app-react/components/external-links/boxes/external-link-close-button.box.ts","app-react/components/external-links/boxes/external-link-close-button-wrapper.box.ts","app-react/components/external-links/external-link-iframe.component.tsx","app-react/services/external-links/renderers/external-link-iframe.renderer.tsx","app-react/services/external-links/handlers/my-account/my-account.external-link-handler.tsx","app-react/services/limits-toaster/limits-toaster.service.ts","app-react/services/external-links/handlers-factory/external-links-handlers-factory.ts","app-react/services/regulation/legacy-regulation-wrapper.ts","app-react/services/regulation/germany/germany-regulation.ts","app-react/services/regulation/regulation.service.ts","app-react/services/burnout/player-burnout.service.ts","app-react/services/player-offerings/player-offerings/offers/offer-base.ts","app-react/services/player-offerings/player-offerings/offers/welcome-offer.tsx","app-react/components/wheel-of-fortune/boxes/wheel-of-fortune-shell.box.ts","app-react/components/wheel-of-fortune/boxes/wheel-of-fortune-colors.box.ts","app-react/components/wheel-of-fortune/boxes/wheel-of-fortune-wrapper.box.ts","app-react/components/wheel-of-fortune/wheel-of-fortune.component.tsx","app-react/services/player-offerings/player-offerings/offers/wheel-of-fortune-offer.tsx","app-react/components/link-to-offer/boxes/link-to-offer-banner/link-to-offer-banner.default.box.ts","app-react/components/link-to-offer/boxes/link-to-offer-banner/link-to-offer-banner.box.ts","app-react/services/player-offerings/player-offerings/offers/registration-offer.tsx","app-react/services/player-offerings/player-offerings.service.tsx","app-react/services/pixi-app/pixi-app-creator.ts","app-react/services/pixi-app/pixi-app.service.ts","app-react/services/storage/local-storage-keys.ts","app-react/services/game-animated-icons-manager/game-animated-icons-manager.service.ts","app-react/services/webgl-context-manager/webgl-context-manager.service.ts","app-react/services/exit-popup/exit-popup-consts.ts","app-react/services/exit-popup/exit-popup.service.tsx","app-react/services/tooltip/tooltip.model.ts","app-react/services/tooltip/on-boarding-tooltip.model.ts","app-react/services/tooltip/tooltip.service.ts","app-react/services/gaming-history/models/paginator/history-paginator-base.model.ts","app-react/services/gaming-history/models/record/history-record-base.model.ts","app-react/services/gaming-history/models/record/user-gaming-history-record.model.ts","app-react/services/gaming-history/models/paginator/user-gaming-history-paginator.model.ts","app-react/services/gaming-history/models/record/session-gaming-history-record.model.ts","app-react/services/gaming-history/models/paginator/session-gaming-history-paginator.model.ts","app-react/services/gaming-history/gaming-history.service.ts","app-react/services/companies/companies.service.ts","app-react/services/because-you-played/because-you-played.service.ts","app-react/services/game-runner/running-game-browser-tab-controller.ts","common/interfaces/crm-sdk-lib.interface.ts","app-react/services/game-runner/loading-indicators/game-loading-indicator-base.model.ts","app-react/components/game-window/loading-indicators/hybrid-embedded/boxes/root/hybrid-embedded-game-loading-indicator-root.box.ts","app-react/components/game-window/loading-indicators/hybrid-embedded/boxes/header/hybrid-embedded-game-loading-indicator-header.box.ts","app-react/components/game-window/loading-indicators/hybrid-embedded/boxes/content/hybrid-embedded-game-loading-indicator-content.box.ts","app-react/components/game-window/loading-indicators/hybrid-embedded/boxes/spinner/hybrid-embedded-game-loading-indicator-spinner.box.ts","app-react/components/game-window/loading-indicators/hybrid-embedded/boxes/progress/hybrid-embedded-game-loading-indicator-progress.box.ts","app-react/themes/defaults/icons/loading-circle-large.icon.tsx","app-react/components/game-window/loading-indicators/hybrid-embedded/hybrid-embedded-game-loading-indicator.component.tsx","app-react/services/game-runner/loading-indicators/hybrid-embedded-game-loading-indicator.model.tsx","app-react/components/game-window/loading-indicators/web-app/web-app-game-loading-indicator.component.tsx","app-react/services/game-runner/loading-indicators/web-app-game-loading-indicator.model.tsx","app-react/services/game-runner/game-runner.service.ts","app-react/services/hybrid/hybrid.service.ts","app-react/services/video-live-stream/static-video-playing.service.ts","app-react/services/storage/session-storage.service.ts","app-react/services/storage/cookies.service.ts","app-react/services/free-play/free-play-game/free-play-game.model.ts","app-react/services/free-play/vouchers/voucher-base.model.ts","app-react/services/free-play/vouchers/free-play/free-play-voucher.model.ts","app-react/services/free-play/vouchers/jackpot-free-play/jackpot-free-play-voucher.model.ts","app-react/services/free-play/vouchers/free-spins/free-spins-voucher.model.ts","app-react/services/free-play/vouchers/jackpot-free-spins/jackpot-free-spins-voucher.model.ts","app-react/services/free-play/providers/vouchers-provider-base.ts","app-react/services/free-play/providers/888/888-free-play-vouchers.provider.ts","app-react/services/free-play/free-play-constants.ts","app-react/services/free-play/free-play-tooltip-notification.handler.tsx","app-react/services/free-play/providers/3rdparty/third-party-vouchers.provider.ts","app-react/services/free-play/free-play.service.ts","app-react/services/restrictions/restrictions.service.ts","app-react/services/free-to-play/free-to-play.service.ts","app-react/services/gnwp/gnwp.service.ts","app-react/services/scrip-loader/script-loader.service.ts","app-react/services/admin-banner/admin-banner.service.ts","app-react/services/session-timer/session-timer.service.ts","app-react/services/geo-location/geo-location.service.ts","app-react/services/crm/crm.service.ts","app-react/services/dialog-factory/dialog-factory.service.interface.ts","app-react/components/lugas/boxes/line-box.ts","app-react/components/lugas/lugas-active-popup.component.tsx","app-react/services/specific-dialogs/specific-dialogs.service.tsx","app-react/services/tipping-history/models/tipping-history-view-model.ts","app-react/services/tipping-history/tipping-history.service.ts","app-react/services/loyalty-indicator/models/loyalty-indicator.model.ts","app-react/services/loyalty-indicator/loyalty-indicator.service.ts","app-react/components/state-popup/boxes/state-popup-wrapper.box.ts","app-react/components/state-popup/state-popup.component.tsx","app-react/components/state-popup/boxes/state-popup-error-message.box.ts","app-react/components/state-popup/boxes/state-popup-select-wrapper.box.ts","app-react/components/state-popup/state-popup-with-dropdown.component.tsx","app-react/services/state-of-residence-identifier/state-popup-strategies.ts","app-react/services/state-of-residence-identifier/state-of-residence-identifier.service.tsx","app-react/components/profile-box-messages-indicator/consts/indicator-layout.ts","app-react/services/dialog-factory/dialog-factory.service.tsx","app-react/services/service-factory.ts","app-react/components/user-menu/logo-box/boxes/logo-container/logo-container.default.box.ts","app-react/components/user-menu/logo-box/boxes/logo-container/logo-container.casino888.box.ts","app-react/components/user-menu/logo-box/boxes/logo-container/logo-container.casino777.box.ts","app-react/components/user-menu/logo-box/boxes/logo-container/logo-container.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/default-logo-icon/logo-image.casino777.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/default-logo-icon/logo-image.harrington.delaware.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/default-logo-icon/logo-image.ballysdover.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/default-logo-icon/logo-image.wsop.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/default-logo-icon/logo-icon.harrahs.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/default-logo-icon/logo-image.default.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/default-logo-icon/logo-image.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/vip-logo-icon/vip-logo-icon.default.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/vip-logo-icon/vip-logo-image.casino777.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/vip-logo-icon/vip-logo-image.harrington.delaware.ballysdover.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/vip-logo-icon/vip-logo-image.si.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/vip-logo-icon/vip-logo-icon.harrahs.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/vip-logo-icon/vip-logo-image.wsop.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/vip-logo-icon/vip-logo-icon.box.ts","app-react/components/user-menu/logo-box/logo-box.component.tsx","app-react/components/user-info/user-info.component.tsx","app-react/components/profile-box/profile-picture/boxes/profile-picture.box.ts","app-react/components/profile-box/profile-picture/boxes/profile-user-name.box.ts","app-react/components/profile-box/profile-picture/profile-picture.component.tsx","app-react/components/profile-box-messages-indicator/boxes/indicator.box.ts","app-react/components/profile-box-messages-indicator/boxes/indicator-icon.box.ts","app-react/components/profile-box-messages-indicator/boxes/indicator-badge.box.ts","app-react/components/profile-box-messages-indicator/boxes/indicator-text.box.ts","app-react/components/profile-box-messages-indicator/boxes/indicator-icon-wrapper-default.box.ts","app-react/components/profile-box-messages-indicator/boxes/indicator-icon-wrapper.777.box.ts","app-react/components/profile-box-messages-indicator/boxes/indicator-icon-wrapper.box.ts","app-react/components/profile-box-messages-indicator/profile-box-messages-indicator.component.tsx","app-react/components/profile-box-messages-indicator/indicators/omg-indicator.component.tsx","app-react/components/profile-box-messages-indicator/indicators/freeplay-indicator.component.tsx","app-react/components/profile-box/boxes/profile-messages-divider.box.ts","app-react/components/profile-box/boxes/profile-buttons.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-button.default.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-button.casino777.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-button.casino888.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-button.ballysdover.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-button.harrington.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-button.harrahswsop.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-button.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-add-button/profile-cashier-add-button.default.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-add-button/profile-cashier-add-button.harrahswsop.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-add-button/profile-cashier-add-button.box.ts","app-react/components/profile-box/boxes/profile-wrapper.box.ts","app-react/components/profile-box/boxes/profile-box-messages/profile-messages.box.ts","app-react/components/profile-box/profile-box.component.tsx","app-react/components/side-menu/brand-list/boxes/brand-switch-list.box.ts","app-react/components/side-menu/brand-list/boxes/brand-switch-list-item.box.ts","app-react/components/side-menu/brand-list/boxes/brand-switch-list-item-icon.box.ts","app-react/components/side-menu/brand-list/brand-list.component.tsx","app-react/components/side-menu/store-button/store-button.component.tsx","app-react/components/side-menu/boxes/menu-links-goups-container.box.ts","app-react/components/side-menu/boxes/side-menu-container.box.ts","app-react/components/side-menu/boxes/mobile-menu-item-container.box.ts","app-react/components/side-menu/boxes/mobile-menu-item-link.box.ts","app-react/components/side-menu/mobile-help-menu-item/mobile-help-center-menu-item.component.tsx","app-react/components/side-menu/mobile-lang-switcher-menu-item/boxes/mobile-lang-switcher-menu-item-selected-lang.box.ts","app-react/components/side-menu/mobile-lang-switcher-menu-item/boxes/mobile-lang-switcher-container.box.ts","app-react/components/side-menu/boxes/mobile-language-menu-item.box.ts","app-react/components/side-menu/mobile-lang-switcher-menu-item/mobile-lang-switcher-menu-item.component.tsx","app-react/components/side-menu/horizontal-ruler/side-menu-horizontal-line.box.ts","app-react/components/side-menu/boxes/mobile-menu-items-container.box.ts","app-react/components/main-nav/boxes/related-sites/related-sites-wrapper.box.ts","app-react/components/main-nav/boxes/related-sites/related-site-link.box.ts","app-react/components/header/top-header-right/state-selector-button/state-selector-button.component.tsx","app-react/components/side-menu/mobile-state-selector-menu-item/mobile-state-selector-menu-item.component.tsx","app-react/components/side-menu/side-menu.component.tsx","app-react/components/language-switcher-dropdown/boxes/language-switcher-dropdown.default.box.ts","app-react/components/language-switcher-dropdown/boxes/language-switcher-dropdown.box.ts","app-react/components/language-switcher-dropdown/language-switcher-section/boxes/section-list/language-switcher-section-list.default.box.ts","app-react/components/language-switcher-dropdown/language-switcher-section/boxes/section-list/language-switcher-section-list.box.ts","app-react/components/language-switcher-dropdown/language-switcher-section/boxes/section-title/language-switcher-section-title.default.box.ts","app-react/components/language-switcher-dropdown/language-switcher-section/boxes/section-title/language-switcher-section-title.box.ts","app-react/components/language-switcher-dropdown/language-switcher-section/boxes/section-list/section-list-item/language-switcher-section-list-item.default.box.ts","app-react/components/language-switcher-dropdown/language-switcher-section/boxes/section-list/section-list-item/language-switcher-section-list-item.box.ts","app-react/components/language-switcher-dropdown/language-switcher-section/boxes/section-list/section-list-item/section-list-item-label/language-switcher-item-label.default.box.ts","app-react/components/language-switcher-dropdown/language-switcher-section/boxes/section-list/section-list-item/section-list-item-label/language-switcher-item-label.box.ts","app-react/components/language-switcher-dropdown/language-switcher-section/boxes/section-list/section-list-item/section-list-item-checkbox/language-switcher-item-checkbox.default.box.ts","app-react/components/language-switcher-dropdown/language-switcher-section/boxes/section-list/section-list-item/section-list-item-checkbox/language-switcher-item-checkbox.box.ts","app-react/components/language-switcher-dropdown/language-switcher-section/language-switcher-section.component.tsx","app-react/components/language-switcher-dropdown/language-switcher-section/boxes/section-separator/language-switcher-section-separator.default.box.ts","app-react/components/language-switcher-dropdown/language-switcher-section/boxes/section-separator/language-switcher-section-separator.box.ts","app-react/components/language-switcher-dropdown/language-switcher-dropdown.component.tsx","app-react/components/main-nav/boxes/mobile/mobile-menu-header.default.box.ts","app-react/components/main-nav/boxes/mobile/mobile-menu-header.si.box.ts","app-react/components/main-nav/boxes/mobile/mobile-menu-header.box.ts","app-react/components/main-nav/boxes/mobile/back/mobile-back.box.ts","app-react/components/main-nav/boxes/mobile/back/mobile-back-label.box.ts","app-react/components/main-nav/boxes/main-nav-canvas/main-nav-canvas.default.box.ts","app-react/components/main-nav/boxes/main-nav-canvas/main-nav-canvas.casino777.box.ts","app-react/components/main-nav/boxes/main-nav-canvas/main-nav-canvas.si.box.ts","app-react/components/main-nav/boxes/main-nav-canvas/main-nav-canvas.box.ts","app-react/components/main-nav/boxes/main-nav.box.ts","app-react/components/main-nav/boxes/main-nav-content-wrapper.box.ts","app-react/components/main-nav/boxes/main-nav-menu.box.ts","app-react/components/main-nav/main-nav.component.tsx","app-react/components/user-menu/user-menu/boxes/user-menu-section.box.ts","app-react/components/loyalty-bar/boxes/loyalty-bar-section.box.ts","app-react/components/loyalty-bar/loyalty-bar.component.tsx","app-react/components/user-details/boxes/user-details-section.box.ts","app-react/components/user-details/boxes/user-details-wrapper.box.ts","app-react/components/user-details/boxes/user-menu-picture.box.ts","app-react/components/user-menu/user-menu/boxes/user-menu-title.box.ts","app-react/components/user-details/boxes/user-menu-title-account.box.ts","app-react/components/user-details/boxes/user-menu-title-mobile.box.ts","app-react/components/user-info/user-info-label.box.ts","app-react/components/user-details/user-details.component.tsx","app-react/components/useful-links/boxes/useful-links-section.box.ts","app-react/components/useful-links/boxes/log-out/log-out-section.box.ts","app-react/components/user-menu/user-menu/boxes/user-menu-section-icon.box.ts","app-react/components/useful-links/boxes/useful-links-section-icon.box.ts","app-react/components/useful-links/boxes/log-out/log-out-link.box.ts","app-react/components/useful-links/useful-links.component.tsx","app-react/components/balance-box/bonus-and-cash-balance/boxes/bonus-and-cash-balance.box.ts","app-react/components/balance-box/bonus-and-cash-balance/boxes/balance-inner.box.ts","app-react/components/balance-box/bonus-and-cash-balance/boxes/balance-title-inner.box.ts","app-react/components/balance-box/balance-value-boxes/balance-value-bonus-and-cash.box.ts","app-react/components/balance-box/bonus-and-cash-balance/bonus-and-cash-balance.component.tsx","app-react/components/balance-box/balance-box-buttons/boxes/balance-buttons-group.box.ts","app-react/components/balance-box/balance-box-buttons/user-balance-buttons.component.tsx","app-react/components/balance-box/boxes/user-menu-balance-title.box.ts","app-react/components/balance-box/boxes/user-balance-section.box.ts","app-react/components/balance-box/boxes/user-balance-section-icon.box.ts","app-react/components/balance-box/balance-value-boxes/balance-value-primary.box.ts","app-react/components/balance-box/user-balance.component.tsx","app-react/components/user-menu/user-challenges/boxes/user-challenges-container.box.ts","app-react/components/user-menu/user-challenges/boxes/user-challenges-title.box.ts","app-react/components/user-menu/user-challenges/user-challenge.component.tsx","app-react/components/user-menu/user-challenges/user-challenges.component.tsx","app-react/components/user-menu/mini-safezone/boxes/mini-safezone.default.box.tsx","app-react/components/user-menu/mini-safezone/boxes/mini-safezone.box.ts","app-react/components/user-menu/mini-safezone/mini-safezone.component.tsx","app-react/components/user-menu/user-menu/boxes/user-menu-scroll-wrapper.box.ts","app-react/components/user-menu/user-menu/boxes/user-menu-fake-ios-padding.box.ts","app-react/components/user-menu/user-menu/user-menu-mobile.component.tsx","app-react/components/welcome-user/boxes/welcome-user.box.ts","app-react/components/welcome-user/boxes/welcome-greeting.box.ts","app-react/components/welcome-user/boxes/welcome-user-info.box.ts","app-react/components/welcome-user/welcome-user.component.tsx","app-react/components/user-menu/close-button/boxes/user-menu-close-pc-button.box.ts","app-react/components/user-menu/close-button/boxes/user-menu-close-icon.box.tsx","app-react/components/user-menu/user-menu/boxes/user-menu-header.box.ts","app-react/components/user-menu/user-menu/user-menu-pc.component.tsx","app-react/components/free-play/boxes/container/free-play-container.box.ts","app-react/components/free-play/boxes/vouchers-swiper/vouchers-swiper.box.ts","app-react/components/free-play/boxes/vouchers-swiper/arrow/voucher-swiper-arrow-container.box.ts","app-react/components/free-play/parts/voucher-card/swiper/vouchers-swiper.component.tsx","app-react/components/free-play/boxes/voucher-games-list/voucher-games-list.box.ts","app-react/components/free-play/boxes/vouchers-swiper/vouchers-swiper-title.box.ts","app-react/components/free-play/boxes/vouchers-swiper/vouchers-swiper-background.box.ts","app-react/components/free-play/boxes/voucher-games-list-title/voucher-games-list-title.box.ts","app-react/components/free-play/free-play-container.component.tsx","app-react/components/user-menu/user-menu/boxes/root/user-menu-root.default.box.ts","app-react/components/user-menu/user-menu/boxes/root/user-menu-root.casino777.box.ts","app-react/components/user-menu/user-menu/boxes/root/user-menu-root.box.ts","app-react/components/user-menu/user-menu/boxes/wrapper/user-menu-wrapper.default.box.ts","app-react/components/user-menu/user-menu/boxes/wrapper/user-menu-wrapper.box.ts","app-react/components/user-menu/user-menu/boxes/holder/user-menu-holder.default.box.ts","app-react/components/user-menu/user-menu/boxes/holder/user-menu-holder.box.ts","app-react/components/user-menu/user-menu.component.tsx","app-react/components/header/top-header-right/help-button/help-button.component.tsx","app-react/components/icons/base/sprite-icon.box.tsx","app-react/components/icons/icons.component.tsx","app-react/components/icons/library/close.icon.tsx","app-react/components/icons/library/poker-brand-small.icon.tsx","app-react/components/icons/library/sport-brand-small.icon.tsx","app-react/components/icons/library/casino-brand-small.icon.tsx","app-react/components/header/top-header-left/cross-brand/boxes/cross-brand-list.default.box.ts","app-react/components/header/top-header-left/cross-brand/boxes/cross-brand-list.box.ts","app-react/components/header/top-header-left/cross-brand/boxes/cross-brand-item.default.box.ts","app-react/components/header/top-header-left/cross-brand/boxes/cross-brand-item.box.ts","app-react/components/header/top-header-left/cross-brand/boxes/cross-brand-item-icon.default.box.ts","app-react/components/header/top-header-left/cross-brand/boxes/cross-brand-item-icon.box.ts","app-react/components/header/top-header-left/cross-brand/cross-brands.component.tsx","app-react/components/header/top-header-left/mobile-burger-menu/boxes/icon/burger-icon.default.box.ts","app-react/components/header/top-header-left/mobile-burger-menu/boxes/icon/burger-icon.casino777.box.ts","app-react/components/header/top-header-left/mobile-burger-menu/boxes/icon/burger-icon.si.box.ts","app-react/components/header/top-header-left/mobile-burger-menu/boxes/icon/burger-icon.box.ts","app-react/components/header/top-header-left/mobile-burger-menu/boxes/container/burger-menu-container.box.ts","app-react/components/header/top-header-left/mobile-burger-menu/boxes/container/burger-menu-container.default.box.ts","app-react/components/header/top-header-left/mobile-burger-menu/mobile-burger-menu.component.tsx","app-react/components/header/boxes/language-switcher/header-language-switcher.box.ts","app-react/components/header/top-header-right/language-switcher/header-language-switcher.component.tsx","app-react/components/header/boxes/navbar-separator/navbar-separator.default.box.ts","app-react/components/header/boxes/navbar-separator/navbar-separator.si.box.ts","app-react/components/header/boxes/navbar-separator/navbar-separator.box.ts","app-react/components/header/boxes/header-navbar-container/header-navbar-container.default.box.ts","app-react/components/header/boxes/header-navbar-container/header-navbar-container.wsop.box.ts","app-react/components/header/boxes/header-navbar-container/header-navbar-container.harrahs.box.ts","app-react/components/header/boxes/header-navbar-container/header-navbar-container.casino777.box.ts","app-react/components/header/boxes/header-navbar-container/header-navbar-container.si.box.ts","app-react/components/header/boxes/header-navbar-container/header-navbar-container.box.ts","app-react/components/header/boxes/header-navbar-mobile-wrapper/header-navbar-mobile-wrapper.default.box.ts","app-react/components/header/boxes/header-navbar-mobile-wrapper/header-navbar-mobile-wrapper.si.box.ts","app-react/components/header/boxes/header-navbar-mobile-wrapper/header-navbar-mobile-wrapper.box.ts","app-react/components/header/boxes/navbar-left-container/header-navbar-left-container.box.ts","app-react/components/header/boxes/navbar-left-container/header-navbar-left-container.default.box.ts","app-react/components/header/boxes/navbar-right-container/header-navbar-right-container.box.ts","app-react/components/header/boxes/navbar-right-container/header-navbar-right-container.default.box.ts","app-react/components/header/header.component.tsx","app-react/components/drawer/boxes/body/drawer-body.box.tsx","app-react/components/drawer/boxes/body/drawer-body.default.box.tsx","app-react/components/drawer/boxes/content/drawer-content.box.ts","app-react/components/drawer/drawer.component.tsx","app-react/components/overlay/boxes/overlay.component.box.tsx","app-react/components/overlay/boxes/overlay.component.default.box.tsx","app-react/components/overlay/overlay.component.tsx","app-react/components/spinner/boxes/spinner/spinner.box.ts","app-react/components/spinner/boxes/spinner/spinner.default.box.ts","app-react/components/spinner/boxes/spinner-brand/spinner-brand.box.ts","app-react/components/spinner/boxes/spinner-brand/spinner-brand.default.box.ts","app-react/components/spinner/boxes/spinner-background/spinner-background.default.box.ts","app-react/components/spinner/boxes/spinner-background/spinner-background.casino777.box.ts","app-react/components/spinner/boxes/spinner-background/spinner-background.cip.box.ts","app-react/components/spinner/boxes/spinner-background/spinner-background.cis.box.ts","app-react/components/spinner/boxes/spinner-background/spinner-background.box.ts","app-react/components/spinner/boxes/spinner-logo/spinner-logo.default.box.ts","app-react/components/spinner/boxes/spinner-logo/spinner-logo.casino777.box.ts","app-react/components/spinner/boxes/spinner-logo/spinner-logo.cip.box.ts","app-react/components/spinner/boxes/spinner-logo/spinner-logo.wsop.box.ts","app-react/components/spinner/boxes/spinner-logo/spinner-logo.delawarepark.box.ts","app-react/components/spinner/boxes/spinner-logo/spinner-logo.ballysdover.box.ts","app-react/components/spinner/boxes/spinner-logo/spinner-logo.harrington.box.ts","app-react/components/spinner/boxes/spinner-logo/spinner-logo.cis.box.ts","app-react/components/spinner/boxes/spinner-logo/spinner-logo.box.ts","app-react/components/spinner/spinner.component.tsx","app-react/components/breadcrumbs/breadcrumbs.component.tsx","app-react/components/app-footer/app-footer.component.tsx","app-react/components/router-outlet/boxes/router-outlet.default.box.ts","app-react/components/router-outlet/boxes/router-outlet.casino777.box.ts","app-react/components/router-outlet/boxes/router-outlet.casino888.box.ts","app-react/components/router-outlet/boxes/router-outlet.harrahs.box.ts","app-react/components/router-outlet/boxes/router-outlet.wsop.box.ts","app-react/components/router-outlet/boxes/router-outlet.si.box.ts","app-react/components/router-outlet/boxes/router-outlet.box.ts","app-react/components/router-outlet/router-outlet.component.tsx","app-react/components/sticky-navigation-menu/boxes/bottom-sticky-navbar-container.box.ts","app-react/components/sticky-navigation-menu/boxes/bottom-sticky-navbar-container.default.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-list/sticky-navigation-menu-list.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-list/sticky-navigation-menu-list.default.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-item/sticky-navigation-menu-item.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-item/sticky-navigation-menu-item.default.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-item/sticky-navigation-menu-item-icon.default.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-item/sticky-navigation-menu-item-icon.si.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-item/sticky-navigation-menu-item-icon.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-active-indicator/sticky-navigation-menu-active-indicator.default.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-active-indicator/sticky-navigation-menu-active-indicator.wsop.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-active-indicator/sticky-navigation-menu-active-indicator.harrahs.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-active-indicator/sticky-navigation-menu-active-indicator.casino777.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-active-indicator/sticky-navigation-menu-active-indicator.ballysdover.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-active-indicator/sticky-navigation-menu-active-indicator.harrington.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-active-indicator/sticky-navigation-menu-active-indicator.delawarepark.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-active-indicator/sticky-navigation-menu-active-indicator.si.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-active-indicator/sticky-navigation-menu-active-indicator.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-active-indicator/sticky-navigation-menu-active-indicator-rail.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-active-indicator/sticky-navigation-menu-active-indicator-rail.default.box.ts","app-react/components/sticky-navigation-menu/sticky-navigation-menu-active-indicator.component.tsx","app-react/components/sticky-navigation-menu/sticky-navigation-menu-list.component.tsx","app-react/components/sticky-navigation-menu/sticky-navigation-menu.component.tsx","app-react/components/floating-bubbles/boxes/floating-bubbles-container.box.ts","app-react/components/floating-bubbles/boxes/floating-bubble.box.ts","app-react/components/floating-bubbles/floating-bubbles.component.tsx","app-react/components/container/boxes/main-wrapper.default.box.ts","app-react/components/container/boxes/main-wrapper.cip.box.ts","app-react/components/container/boxes/main-wrapper.box.ts","app-react/components/container/container.component.tsx","app-react/components/modal-dialog/modal-dialogs-container.component.tsx","app-react/components/sdk/orbit-components-rendered-inside-sdk-container.tsx","app-react/components/burnout/player-burnout-layer.component.tsx","app-react/components/tooltip/boxes/tooltip-arrow/tooltip-arrow.default.ts","app-react/components/tooltip/boxes/tooltip-arrow/tooltip-arrow.777.ts","app-react/components/tooltip/boxes/tooltip-arrow/tooltip-arrow.box.ts","app-react/components/tooltip/boxes/tooltip-close-button.box.ts","app-react/components/tooltip/boxes/tooltip-container/tooltip-container.default.ts","app-react/components/tooltip/boxes/tooltip-container/tooltip-container.box.ts","app-react/components/tooltip/boxes/tooltip-glow/tooltip-glow.default.ts","app-react/components/tooltip/boxes/tooltip-glow/tooltip-glow.777.ts","app-react/components/tooltip/boxes/tooltip-glow/tooltip-glow.box.ts","app-react/components/tooltip/boxes/tooltip-content.box.ts","app-react/components/tooltip/tooltip-container.component.tsx","app-react/components/game-window/loading-indicators/boxes/game-loading-indicator-root.box.ts","app-react/components/game-window/loading-indicators/game-loading-indicator.component.tsx","app-react/components/current-game-container/current-game-container.component.tsx","app-react/components/app/app.component.tsx","app-react/services/storage/in-memory-local-storage.service.ts","app-react/app-bootstrap/b2c-framework-loader/b2c-framework-loader.ts","settings/configuration/config.ts","app-react/themes/select-theme.ts","main.ts","app-react/components/lobby-header/boxes/lobby-header.default.box.ts","app-react/components/lobby-header/boxes/lobby-header.casino777.box.ts","app-react/components/lobby-header/boxes/lobby-header.si.box.ts","app-react/components/lobby-header/boxes/lobby-header.box.ts","app-react/components/lobby-header/boxes/title/lobby-header-title.default.box.ts","app-react/components/lobby-header/boxes/title/lobby-header-title.si.box.ts","app-react/components/lobby-header/boxes/title/lobby-header-title.box.ts","app-react/components/lobby-header/boxes/line/lobby-header-line.default.box.ts","app-react/components/lobby-header/boxes/line/lobby-header-line.casino777.box.ts","app-react/components/lobby-header/boxes/line/lobby-header-line.box.ts","app-react/components/lobby-header/boxes/buttons/lobby-header-buttons-container.box.ts","app-react/components/lobby-header/boxes/buttons/lobby-header-button.default.box.ts","app-react/components/lobby-header/boxes/buttons/lobby-header-button.777.box.ts","app-react/components/lobby-header/boxes/buttons/lobby-header-button.box.ts","app-react/components/lobby-header/boxes/title/lobby-header-title.container.box.ts","app-react/components/lobby-header/lobby-header.component.tsx","app-react/basic-ui-components/icon/svg-icon/svg.icon.tsx","app-react/basic-components/loading-dots/boxes/loading-dot.box.ts","app-react/basic-components/loading-dots/boxes/loading-dots.box.ts","app-react/basic-components/loading-dots/loading-dots.component.tsx","app-react/components/arena-host/seo-bread-crumbs/seo-breadcrumbs-container.box.ts","app-react/components/arena-host/seo-bread-crumbs/seo-bread-crumbs.component.tsx","app-react/themes/architecture/styled-by-device.tsx","app-react/themes/architecture/by-theme-registry.ts","sdk/src/services/games_information/games_information_service_interface.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/shared-components/table-seats.component.tsx","app-react/services/cms/cms-banners/cm-banner-id/cms-banner-id.ts","app-react/basic-components/layout-wrapper/layout-wrapper.box.ts","app-react/basic-components/layout-wrapper/layout-wrapper.default.box.ts","app-react/basic-components/intersection-spy/intersection-spy.component.tsx","app-react/themes/definitions/casino888/cis/base-colors.ts","common/const/service-worker-constants.ts","app-react/services/storage/session-storage-keys.ts","app-react/components/game-window/header-bar/common/boxes/close-game-button/game-header-bar-close-button.box.ts","app-react/components/game-window/game-css-constants.ts","app-react/themes/defaults/icons/info.icon.tsx","app-react/components/free-play/voucher-card-css-constants.ts","app-react/themes/architecture/asset.ts","sdk/src/components/external_links/external_links_consts.js","sdk/src/services/hybrid/native/native_const.js","app-react/themes/architecture/css-helpers/css-rule.ts","app-react/basic-components/blank-separator/blank-horizontal-separator.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/live-casino-grid-item-infobar.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/live-casino-grid-item-infobar.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/live-casino-grid-item-infobar.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/bet-interval/live-casino-grid-item-bet-interval.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/bet-interval/live-casino-grid-item-bet-interval.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/bet-interval/live-casino-grid-item-bet-interval.si.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/bet-interval/live-casino-grid-item-bet-interval.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/closed-message/live-casino-grid-item-closed-message.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/closed-message/live-casino-grid-item-closed-message.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/closed-message/live-casino-grid-item-closed-message.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/thumbnail/live-casino-grid-item-thumbnail-overlay.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/thumbnail/live-casino-grid-item-thumbnail-overlay.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/thumbnail/live-casino-grid-item-thumbnail.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/thumbnail/live-casino-grid-item-thumbnail.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/wrapper/live-casino-grid-item-wrapper.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/wrapper/live-casino-grid-item-wrapper.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/wrapper/live-casino-grid-item-wrapper.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/title/live-casino-grid-item-title.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/title/live-casino-grid-item-title.si.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/title/live-casino-grid-item-title.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/bet-behind/live-casino-grid-item-bet-behind-button.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/bet-behind/live-casino-grid-item-bet-behind-button.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/bet-behind/live-casino-grid-item-bet-behind-button.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/jackpot/live-casino-grid-item-jackpot.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/jackpot/live-casino-grid-item-jackpot.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/jackpot/live-casino-grid-item-jackpot.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/closed-message/live-casino-grid-item-open-at.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/live-casino-arena-grid-item.component.tsx","app-react/components/free-play/boxes/voucher-card/voucher-card.box.ts","app-react/components/free-play/boxes/voucher-card/voucher-card-side.box.ts","app-react/components/free-play/boxes/voucher-card/face/voucher-card-face.box.ts","app-react/components/free-play/boxes/voucher-card/face/content/voucher-card-face-content.box.ts","app-react/components/free-play/boxes/voucher-card/common/footer/voucher-card-side-footer.box.ts","app-react/components/free-play/boxes/voucher-card/face/footer/voucher-card-face-footer.box.ts","app-react/components/free-play/boxes/voucher-card/face/content/icon/voucher-card-face-icon-container.box.ts","app-react/components/free-play/boxes/voucher-card/face/content/details/voucher-card-face-details.box.ts","app-react/components/free-play/boxes/voucher-card/face/content/details/original-amount/voucher-card-face-original-amount.box.ts","app-react/components/free-play/boxes/voucher-card/face/content/details/name/voucher-card-face-voucher-name.box.ts","app-react/components/free-play/boxes/voucher-card/face/content/details/current-amount/voucher-card-face-current-amount-container.box.ts","app-react/components/free-play/boxes/voucher-card/face/content/icon/voucher-card-face-icon.box.ts","app-react/components/free-play/boxes/voucher-card/face/content/details/current-amount/voucher-card-face-current-amount.box.ts","app-react/components/free-play/boxes/voucher-card/common/footer/side-toggle/voucher-card-side-toggle-button.box.ts","app-react/components/free-play/boxes/voucher-card/common/footer/footer-content/voucher-card-side-footer-content.box.ts","app-react/components/free-play/boxes/voucher-card/face/header/voucher-card-face-header.box.ts","app-react/components/free-play/parts/voucher-card/face/voucher-card-face-header.component.tsx","app-react/components/free-play/parts/voucher-card/face/voucher-card-face.component.tsx","app-react/components/free-play/boxes/voucher-card/back/voucher-card-back.box.ts","app-react/components/free-play/boxes/voucher-card/back/header/voucher-card-back-header.box.ts","app-react/components/free-play/boxes/voucher-card/back/content/voucher-card-back-content.box.ts","app-react/components/free-play/boxes/voucher-card/back/footer/voucher-card-back-footer.box.ts","app-react/components/free-play/parts/voucher-card/back/voucher-card-back.component.tsx","app-react/components/free-play/parts/voucher-card/voucher-card.component.tsx","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-filter-buttons/live-casino-filter-buttons.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-filter-buttons/live-casino-filter-buttons.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-filter-buttons/live-casino-filter-buttons.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-navbar-scroll/live-casino-navbar-scroll.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-navbar-scroll/live-casino-navbar-scroll.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-navbar-overflow/live-casino-navbar-overflow.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-navbar-overflow/live-casino-navbar-overflow.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-navbar/live-casino-navbar.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-navbar/live-casino-navbar.cip.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-navbar/live-casino-navbar.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-navbar/live-casino-navbar.cis.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-navbar/live-casino-navbar.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/buttons-active-indicator/buttons-active-indicator.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/buttons-active-indicator/buttons-active-indicator.si.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/buttons-active-indicator/buttons-active-indicator.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/live-casino-arena-navbar.component.tsx","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/css-constants.ts","app-react/components/header/top-header-right/header-welcome-buttons/boxes/header-welcome-buttons-container.default.box.ts","app-react/components/header/top-header-right/header-welcome-buttons/boxes/header-welcome-buttons-container.harrahs.box.ts","app-react/components/header/top-header-right/header-welcome-buttons/boxes/header-welcome-buttons-container.si.box.ts","app-react/components/header/top-header-right/header-welcome-buttons/boxes/header-welcome-buttons-container.box.ts","app-react/components/header/top-header-right/header-welcome-buttons/boxes/header-welcome-buttons-button.box.ts","app-react/components/header/top-header-right/header-welcome-buttons/buttons/get-the-app-button/get-the-app-button.default.box.ts","app-react/components/header/top-header-right/header-welcome-buttons/buttons/get-the-app-button/get-the-app-button.si.box.ts","app-react/components/header/top-header-right/header-welcome-buttons/buttons/get-the-app-button/get-the-app-button.box.ts","app-react/components/header/top-header-right/header-welcome-buttons/buttons/register-button/register-button.default.box.ts","app-react/components/header/top-header-right/header-welcome-buttons/buttons/register-button/register-button.si.box.ts","app-react/components/header/top-header-right/header-welcome-buttons/buttons/register-button/register-button.box.ts","app-react/components/header/top-header-right/header-welcome-buttons/header-welcome-buttons.component.tsx","app-react/components/header/top-header-left/regulatory-data/boxes/regulatory-data.box.ts","app-react/components/header/top-header-left/regulatory-data/boxes/regulatory-data.default.box.ts","app-react/components/header/gambling-warning/boxes/gambling-warning.default.box.ts","app-react/components/header/gambling-warning/boxes/gambling-warning.box.ts","app-react/components/header/gambling-warning/gambling-warning.component.tsx","app-react/components/header/responsible-icons/boxes/responsible-gaming-icons.default.box.ts","app-react/components/header/responsible-icons/boxes/responsible-gaming-icons.box.ts","app-react/components/header/responsible-icons/responsible-icons.component.tsx","app-react/components/header/top-header-left/regulatory-data/regulatory-data.component.tsx","app-react/components/clock-and-last-login-box/boxes/clock-last-login.default.box.ts","app-react/components/clock-and-last-login-box/boxes/clock-last-login.casino777.box.ts","app-react/components/clock-and-last-login-box/boxes/clock-last-login.si.box.ts","app-react/components/clock-and-last-login-box/boxes/clock-last-login.box.ts","app-react/components/clock-and-last-login-box/boxes/last-login.default.box.ts","app-react/components/clock-and-last-login-box/boxes/last-login.si.box.ts","app-react/components/clock-and-last-login-box/boxes/last-login.box.ts","app-react/components/clock-and-last-login-box/clock-and-last-login-box.component.tsx","app-react/components/burnout/burnout-animation/burnout-animation-constants.ts","app-react/components/burnout/burnout-animation/boxes/burnout-animation-container.box.ts","app-react/components/burnout/burnout-animation/boxes/burnout-animation.box.ts","app-react/components/burnout/burnout-animation/boxes/burnout-animation-text.box.ts","app-react/components/burnout/burnout-animation/burnout-animation.component.tsx","app-react/components/burnout/burnout-animation/boxes/burnout-fab.box.tsx","app-react/components/burnout/burnout-animation/burnout-animation-wrapper.component.tsx","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/grid/live-casino-grid.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/grid/live-casino-grid.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/grid/live-casino-grid.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/grid/skeleton/live-casino-grid-item-skeleton.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/grid/skeleton/live-casino-grid-item-skeleton-title.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/grid/skeleton/live-casino-grid-item-skeleton-wrapper.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/live-casino-arena-grid.component.tsx","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/draws/live-casino-grid-item-draws.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/draws/live-casino-grid-item-draws.defatult.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/draws/live-casino-grid-item-draw.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/draws/live-casino-grid-item-draw.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/draws/live-casino-grid-item-draw.si.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/draws/live-casino-grid-item-draw.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/shared-components/roulette-draws.component.tsx","app-react/basic-components/lobby-wrapper/lobby-wrapper.default.box.ts","app-react/basic-components/lobby-wrapper/lobby-wrapper.casino777.box.ts","app-react/basic-components/lobby-wrapper/lobby-wrapper.si.box.ts","app-react/basic-components/lobby-wrapper/lobby-wrapper.box.ts","app-react/components/useful-links/boxes/useful-links-list/useful-links-list.default.box.ts","app-react/components/useful-links/boxes/useful-links-list/useful-links-list.cip.box.ts","app-react/components/useful-links/boxes/useful-links-list/useful-links-list.box.ts","app-react/components/useful-links/parts/useful-links-list/useful-links-list.component.tsx","app-react/components/cms-banner/empty-banner/empty-banner-container.box.ts","app-react/components/cms-banner/empty-banner/empty-banner.component.tsx","app-react/services/cms/cms-banners/banner-definition/empty-banner-definition.tsx","app-react/services/media-query/breakpoints.ts","app-react/services/media-query/media-query-builder.ts","app-react/services/media-query/media-queries.ts","app-react/services/cms/cms-content-decorator/cms-link.ts","app-react/services/cms/cms-content-decorator/evaluate-scripts.ts","app-react/services/cms/cms-content-decorator/cms-content-decorator.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/info-item/live-casino-grid-item-info-item.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/info-item/live-casino-grid-item-info-item.si.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/info-item/live-casino-grid-item-info-item.box.ts","app-react/basic-components/lobby-grid/lobby-grid.default.box.ts","app-react/basic-components/lobby-grid/lobby-grid.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/grid-item/live-casino-grid-item.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/grid-item/live-casino-grid-item.default.box.ts","app-react/components/clock/boxes/clock.component.box.tsx","app-react/components/clock/boxes/clock.component.default.box.tsx","app-react/basic-ui-components/button/base/boxes/button.box.ts","app-react/basic-ui-components/button/base/boxes/button-label.box.ts","app-react/basic-ui-components/button/base/boxes/button-icon-wrapper.box.ts","app-react/basic-ui-components/button/base/button.component.tsx","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/infobar-icon/live-casino-grid-item-infobar-icon.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/infobar-icon/live-casino-grid-item-infobar-icon.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/thumbnail/live-casino-grid-item-thumbnail-image.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/thumbnail/live-casino-grid-item-thumbnail-image.default.box.ts","sdk/src/services/overlay_manager/overlay_manager_levels.ts","common/const/casinofied-analytics-consts.ts","app-react/components/raw-components/link/link.tsx","app-react/services/companies/companies-models lazy /^/.*/.company/-model$/ groupOptions: {} namespace object","app-react/basic-components/pipe-separator/pipe-horizontal-separator.box.ts","app-react/themes/definitions lazy /^/.*/theme/.definition$/ groupOptions: {} namespace object","settings/configuration/languages lazy /^/.*$/ groupOptions: {} namespace object","app-react/themes/hex-to-rgba.ts","app-react/services/dialog/dialog.service.interface.ts","app-react/services/game-runner/interfaces/game-context/game-context-view-model.interface.ts","sdk/src/services/regulation/regulation_const.ts","app-react/components/modal-dialog/boxes/text/dialog-text.box.ts"],"names":["ThemeName","flexRowContainerMixin","css","flexRowReverseContainerMixin","flexColumnContainerMixin","flexAlignItemsMixin","props","alignItems","flexCenterAlignItemsMixin","flexGrowItem","flexBasis","flexFixedSizeItem","flexAdaptiveSizeItem","FlexGrowItemBox","styled","div","FlexContainerBox","justifyContent","GAME_GROUP","GameStepsExecutionResultEnum","grayColors","black","gray013","gray023","gray033","gray043","gray053","gray063","gray073","gray083","gray093","gray103","gray113","gray123","gray133","gray143","gray153","gray163","gray173","gray183","gray193","gray203","gray213","gray223","gray233","gray243","gray253","white","transparent","LIVE_CASINO_ARENA_NAME","NEW_LIVE_CASINO_ARENA_NAME","CIP_ALL_GAMES_ARENA_NAME","SLOTS_ARENA_NAME","CASINO_GAMES_ARENA_NAME","JACKPOTS_ARENA_NAME","EXCLUSIVE_ARENA_NAME","SCRATCH_CARDS_ARENA_NAME","VIDEO_POKER_ARENA_NAME","INSTANT_WIN_GAMES_ARENA_NAME","BLACKJACK_ARENA_NAME","VIRTUAL_SPORT_ARENA_NAME","ROULETTE_ARENA_NAME","PROGRESSIVE_SLOTS_ARENA_NAME","NEW_GAMES_ARENA_NAME","HOME_PAGE_ARENA","ALL_ARENAS","Array","of","ButtonsWrapperDefaultBox","buttonsOnSeparateLines","ButtonWrapperDefaultBox","ButtonSpacerDefaultBox","LinkActionBox","button","theme","font","presets","body","colors","brandPrimary","LinkWrapperDefaultBox","ModalDialogActionsComponent","this","className","classNames","CyClass","onClick","primaryAction","disabled","preset","fullWidth","text","secondaryAction","useWarningPreset","linkAction","React","Component","PC_HORIZONTAL_SPACE_BETWEEN_ITEMS","multiplier","MOBILE_HORIZONTAL_SPACE_BETWEEN_ITEMS","CGP_ERROR_CODES","GENERAL_ERROR_SUPPORT","RESTRICTED_COUNTRY","INVALID_CREDENTIALS","LOGIN_RESTRICTION","INVALID_REFRESH_TOKEN","CAPTCHA_REQUIRED","TOUCH_ID_CHANGE_PASS","TOUCH_ID_EXPIRE","GENERAL_ERROR","OPENING_GAME_ERROR","UNSUPPORTED_ANONYMOUS","TIME_LIMIT_REACHED_DAILY","TIME_LIMIT_REACHED_WEEKLY","TIME_LIMIT_REACHED_MONTHLY","TOKEN_NOT_VALID","PENDING_ACTION_REQUIRED","INVALID_GRANT","isRefreshTokenError","errorCode","toString","Assets","fonts","_888_Black_eot","Asset","_888_Black_otf","_888_Black_svg","_888_Black_ttf","_888_Black_woff","_888_Black_woff2","_888_Bold_eot","_888_Bold_otf","_888_Bold_svg","_888_Bold_ttf","_888_Bold_woff","_888_DemiBold_eot","_888_DemiBold_otf","_888_DemiBold_svg","_888_DemiBold_ttf","_888_DemiBold_woff","_888_DemiBold_woff2","_888_Light_eot","_888_Light_otf","_888_Light_svg","_888_Light_ttf","_888_Light_woff","_888_Light_woff2","_888_Medium_eot","_888_Medium_otf","_888_Medium_svg","_888_Medium_ttf","_888_Medium_woff","_888_Medium_woff2","_888_Regular_eot","_888_Regular_otf","_888_Regular_svg","_888_Regular_ttf","_888_Regular_woff","_888_Regular_woff2","_888_SemiCondensedBold_eot","_888_SemiCondensedBold_otf","_888_SemiCondensedBold_svg","_888_SemiCondensedBold_ttf","_888_SemiCondensedBold_woff","_888_SemiCondensedBold_woff2","_888_SemiCondensedDemiBold_eot","_888_SemiCondensedDemiBold_otf","_888_SemiCondensedDemiBold_svg","_888_SemiCondensedDemiBold_ttf","_888_SemiCondensedDemiBold_woff","_888_SemiCondensedDemiBold_woff2","_888_Thin_eot","_888_Thin_otf","_888_Thin_svg","_888_Thin_ttf","_888_Thin_woff","_888_Thin_woff2","_888_Ultra_eot","_888_Ultra_otf","_888_Ultra_svg","_888_Ultra_ttf","_888_Ultra_woff","_888_Ultra_woff2","digital_7_mono_ttf","Lobster_Regular_eot","Lobster_Regular_otf","Lobster_Regular_svg","Lobster_Regular_ttf","Lobster_Regular_woff","Lobster_Regular_woff2","oleo_script_reg_eot","oleo_script_reg_svg","oleo_script_reg_ttf","oleo_script_reg_woff","oleo_script_reg_woff2","oleo_script_reg_ext_woff2","RobotoCondensed_Bold_ttf","TradeGothicLTStd_Bd2_otf","Bello_Script_eot","Bello_Script_svg","Bello_Script_ttf","Bello_Script_woff","Bello_Script_woff2","Futura_PT_Bold_eot","Futura_PT_Bold_otf","Futura_PT_Bold_svg","Futura_PT_Bold_ttf","Futura_PT_Bold_woff","Futura_PT_Bold_woff2","Futura_PT_Book_eot","Futura_PT_Book_otf","Futura_PT_Book_svg","Futura_PT_Book_ttf","Futura_PT_Book_woff","Futura_PT_Book_woff2","Futura_PT_Demi_eot","Futura_PT_Demi_otf","Futura_PT_Demi_svg","Futura_PT_Demi_ttf","Futura_PT_Demi_woff","Futura_PT_Demi_woff2","Futura_PT_Heavy_eot","Futura_PT_Heavy_otf","Futura_PT_Heavy_svg","Futura_PT_Heavy_ttf","Futura_PT_Heavy_woff","Futura_PT_Heavy_woff2","Futura_PT_Medium_eot","Futura_PT_Medium_otf","Futura_PT_Medium_svg","Futura_PT_Medium_ttf","Futura_PT_Medium_woff","Futura_PT_Medium_woff2","FuturaPTBold_otf","FuturaPTBoldOblique_otf","FuturaPTBook_otf","FuturaPTBookOblique_otf","FuturaPTCondBold_otf","FuturaPTCondBoldOblique_otf","FuturaPTCondBook_otf","FuturaPTCondBookOblique_otf","FuturaPTCondExtraBold_otf","FuturaPTCondExtraBoldOblique_otf","FuturaPTCondMedium_otf","FuturaPTCondMediumOblique_otf","FuturaPTDemi_otf","FuturaPTDemiOblique_otf","FuturaPTExtraBold_otf","FuturaPTExtraBoldOblique_otf","FuturaPTHeavy_otf","FuturaPTHeavyOblique_otf","FuturaPTLight_otf","FuturaPTLightOblique_otf","FuturaPTMedium_otf","FuturaPTMediumOblique_otf","a_and_s_signwriter_ttf","Gotham_Black_otf","Gotham_BlackItalic_otf","Gotham_Bold_otf","Gotham_BoldItalic_otf","Gotham_Book_otf","Gotham_BookItalic_otf","Gotham_Light_otf","Gotham_LightItalic_otf","Gotham_Medium_otf","Gotham_MediumItalic_otf","Gotham_Thin_otf","Gotham_ThinItalic_otf","Gotham_Ultra_otf","Gotham_UltraItalic_otf","GothamXNarrow_Black_otf","GothamXNarrow_BlackItalic_otf","GothamXNarrow_Bold_otf","GothamXNarrow_BoldItalic_otf","GothamXNarrow_Book_otf","GothamXNarrow_BookItalic_otf","GothamXNarrow_Light_otf","GothamXNarrow_LightItalic_otf","GothamXNarrow_Medium_otf","GothamXNarrow_MediumItalic_otf","GothamXNarrow_Thin_otf","GothamXNarrow_ThinItalic_otf","GothamXNarrow_Ultra_otf","GothamXNarrow_UltraItalic_otf","Industry_Black_eot","Industry_Black_ttf","Industry_Black_woff","Industry_BlackItalic_eot","Industry_BlackItalic_ttf","Industry_BlackItalic_woff","Industry_Bold_eot","Industry_Bold_ttf","Industry_Bold_woff","Industry_BoldItalic_eot","Industry_BoldItalic_ttf","Industry_BoldItalic_woff","Industry_Book_eot","Industry_Book_ttf","Industry_Book_woff","Industry_BookItalic_eot","Industry_BookItalic_ttf","Industry_BookItalic_woff","Industry_Demi_eot","Industry_Demi_ttf","Industry_Demi_woff","Industry_DemiItalic_eot","Industry_DemiItalic_ttf","Industry_DemiItalic_woff","Industry_Light_eot","Industry_Light_ttf","Industry_Light_woff","Industry_LightItalic_eot","Industry_LightItalic_ttf","Industry_LightItalic_woff","Industry_Medium_eot","Industry_Medium_ttf","Industry_Medium_woff","Industry_MediumItalic_eot","Industry_MediumItalic_ttf","Industry_MediumItalic_woff","Poppins_Regular_ttf","Poppins_SemiBold_ttf","SolanoGothicMVB_Bd_ttf","images","arena_shaddow_png","broken_link_icon_png","casino_live_logo_mobile_png","casino_live_logo_png","check_png","checkbox_checked_png","checkbox_empty_png","close_modal_dialog_png","empty_image_sq_gif","empty_image_gif","exclusives_list_icon_png","full_screen_off_png","full_screen_on_png","game_default_background_png","horizontal_line_glow_mobile_png","horizontal_line_glow_png","idle_recomm_toaster_bg_png","infoBTN_png","ios_share_svg","jackpot_widget_title_crown_png","lamp_png","live_tables_top_border_png","party_jackpot_logo_png","placeholder_game_icon_png","placeholder_game_icon_sq_png","right_arrow_png","shaddow_bg_png","side_menu_header_decoration_png","splash_page_logo_0_0_png","splash_page_logo_0_111_png","splash_page_logo_1_53_png","splash_page_logo_31_46_png","splash_page_logo_58_82_png","splash_page_logo_68_98_png","splash_page_logo_69_100_png","splash_page_logo_70_102_png","splash_page_logo_71_104_png","splash_page_logo_72_105_png","splash_page_logo_73_107_png","splash_page_logo_75_113_png","splash_page_logo_76_119_png","splash_page_logo_79_125_png","splash_page_logo_8_78_png","splash_page_logo_81_129_png","splash_page_logo_84_137_png","splash_page_logo_87_141_png","splash_page_logo_88_144_png","splash_page_logo_91_151_png","splash_page_logo_cip8_0_0_png","splash_page_logo_cip8_1_53_png","splash_page_logo_cip8_31_46_png","splash_page_logo_cip8_58_82_png","splash_page_logo_cip8_71_104_png","splash_page_logo_cip8_73_107_png","splash_page_logo_cip8_75_113_png","splash_page_logo_cip8_76_119_png","splash_page_logo_cip8_79_125_png","splash_page_logo_cip8_8_78_png","splash_page_logo_cip8_81_129_png","splash_page_logo_cip8_84_137_png","splash_page_logo_cip8_87_142_png","splash_page_logo_cip8_88_145_png","splash_page_logo_cip8_png","splash_page_logo_cis_0_0_png","splash_page_logo_cis_1_53_png","splash_page_logo_cis_31_46_png","splash_page_logo_cis_58_82_png","splash_page_logo_cis_71_104_png","splash_page_logo_cis_73_107_png","splash_page_logo_cis_75_113_png","splash_page_logo_cis_76_119_png","splash_page_logo_cis_79_125_png","splash_page_logo_cis_8_78_png","splash_page_logo_cis_81_129_png","splash_page_logo_cis_84_137_png","splash_page_logo_cis_87_142_png","splash_page_logo_cis_88_145_png","splash_page_logo_cis_png","SpriteSheetPC1920_png","texture_png","top_banner_placeholder_gif","vertical_line_glow_png","www_splash_page_logo_1_111_png","_3px_tile_png","_888casinologo_png","brilliant_png","close_modal_dialog_hover_png","history_bg_title_png","home_content_banner_png","home_page_top_banner_png","info_img_png","jackpots_bg_png","lang_reg_icon_png","lang_selected_icon_png","letter_info_png","letter_play_png","letter_design_png","live_arena_banner_png","live_chat_png","live_content_banner_png","notification_off_png","only_real_money_game_warning_png","pay_icon_png","swiper_layout_bottom_shaddow_png","user_menu_box_icon_png","user_png","_888casinologo_dark_png","blackSquare_png","div_lang_png","germany_panic_icon_png","ballysdover_logo_png","delaware_park_logo_png","hccasinologo_png","harrington_logo_png","si_island_resort_png","si_sports_book_png","si_logo_mobile_png","si_logo_pc_png","animated_icons_poc","millionaire_genie_megaways","genie_megaways_v1_atlas","genie_megaways_v1_json","genie_megaways_v1_png","genie_megaways_v2_atlas","genie_megaways_v2_json","genie_megaways_v2_png","genie_megaways_v3_atlas","genie_megaways_v3_json","genie_megaways_v3_png","genie_megaways_v4_atlas","genie_megaways_v4_json","genie_megaways_v4_png","arena_link_to_offer","Close_BTN_green_svg","Gift_BTN_green_svg","browser_icons","chrome_icon_PNG","microsoft_edge_png","mozilla_firefox_png","burnout","burnout_animation_atlas","burnout_animation_json","burnout_animation_png","burnout_animation_last_frame_png","daily_deal","daily_deal_chest_glow_png","daily_deal_chest_halo_png","daily_deal_chest_text_strip_svg","daily_deal_chest_png","f2p","freeToPlay_atlas","freeToPlay_json","freeToPlay_png","free_play","fp_left_arrow_png","fp_right_arrow_png","fp_step_msg_bg_png","fp_vouchers_bg_png","freeplay_bg_type_fp_png","freeplay_bg_type_fs_png","freeplay_bg_type_jfp_png","freeplay_bg_type_jfs_png","freeplay_type_fp_png","freeplay_type_fs_png","freeplay_type_jfp_png","freeplay_type_jfs_png","games_icons_background","BGcardandtable_png","BGGameBlack_png","BGGameBlackSquare_png","BGicon_png","BGredTiger_png","game_frame","demo_left_corner_png","demo_right_corner_png","freeplay_indicator_png","freeplay_indicator_selected_png","freeplay_left_corner_png","freeplay_right_corner_png","real_left_corner_png","real_right_corner_png","regulation_strip_clock_png","history","history_details_left_corner_png","history_calendar_png","jackpot_widget","crown_png","daily","background_png","logo_png","high_noon","hourly_captain8","background_landscape_png","info_dialog","mobile_png","mobile_landscape_png","pc_png","live_party","in_game_widget_background_png","party","toaster_icon_png","winning_png","twilight","live_arena","active_indicator_bg_png","dealer_icon_png","seat_icon_png","seat_icon_dark_png","live_arena_widget","capsule_end_png","capsule_mid_png","capsule_start_png","separator_png","regulation_specific","denmark","safe_to_play_png","self_exclusion_png","self_test_png","ontario","safe_to_play_icon_png","sweeden","sw_resp_game_limit_symbol_png","sw_resp_game_limit_png","sw_resp_game_panic_symbol_png","sw_resp_game_panic_png","sw_resp_game_self_test_symbol_png","sw_resp_game_self_test_png","responsible_gambling","age_18plus_capsule_png","age_18plus_flat_png","age_18plus_round_png","age_21plus_flat_png","age_21plus_round_png","begambleaeare_logo_png","gamecare_logo_png","safeZoneIcon_svg","wheel_of_fortune","colors_svg","shell_svg","arenas","CasinoGames","online_blackjack_png","online_casino_games_png","online_jackpot_png","online_roulette_png","online_slots_png","HomePage","blackjack_arena_info_png","cards_arena_info_png","casino_games_arena_png","daily_jackpots_arena_icon_png","default_arena_png","live_arena_png","new_games_arena_png","new_games_arena_info_png","roulette_arena_info_png","scratch_cards_arena_png","scratch_cards_arena_info_png","slots_arena_info_png","slots_jackpots_arena_png","video_poker_arena_info_png","_888exclusive_arena_png","_888exclusive_arena_info_png","blackjack_arena_png","cards_arena_png","InstantWin_game_info_png","live_arena_elite_lounge_png","live_game_shows_arena_png","roulette_arena_png","scratch_cards_arena_icon_png","video_poker_arena_png","visual_sport_arena_info_png","progressive_slots_arena_icon_png","progressive_slots_arena_info_png","si_exclusive_arena_png","LiveArenas","default_live_arena_png","live_arena_baccarat_png","live_arena_bj_png","live_arena_dream_catcher_png","live_arena_poker_png","live_arena_roulette_png","avatars","diamond_vip","my_account_diamond_vip_png","post_login_diamond_vip_avatar_hover_png","post_login_diamond_vip_avatar_regular_png","post_login_diamond_vip_avatar_selected_pressed_png","pre_login_diamond_vip_avatar_hover_png","pre_login_diamond_vip_avatar_pressed_png","pre_login_diamond_vip_avatar_regular_png","gold_vip","my_account_gold_vip_png","post_login_gold_vip_avatar_hover_png","post_login_gold_vip_avatar_regular_png","post_login_gold_vip_avatar_selected_pressed_png","pre_login_gold_vip_avatar_hover_png","pre_login_gold_vip_avatar_pressed_png","pre_login_gold_vip_avatar_regular_png","PREV_post_login_gold_vip_avatar_regular_png","Wpost_login_gold_vip_avatar_regular_png","platinum_vip","my_account_vip_platinum_png","post_login_vip_platinum_avatar_hover_png","post_login_vip_platinum_avatar_regular_png","post_login_vip_platinum_avatar_selected_pressed_png","pre_login_vip_platinum_avatar_hover_png","pre_login_vip_platinum_avatar_pressed_png","pre_login_vip_platinum_avatar_regular_png","reg","post_login_hover_png","post_login_pressed_png","post_login_reg_png","pre_login_hover_png","pre_login_pressed_png","pre_login_reg_png","reg_vip","my_account_vip_reg_png","post_login_reg_vip_avatar_hover_png","post_login_reg_vip_avatar_icon_selected_pressed_png","post_login_reg_vip_avatar_regular_png","pre_login_reg_vip_avatar_icon_hover_png","pre_login_reg_vip_avatar_icon_pressed_png","pre_login_reg_vip_avatar_icon_regular_png","My_account_VIP_REG_icon_png","post_login_reg_vip_avatar_selected_pressed_png","badges","exclusive_png","hot_png","new_badge_png","vip_badge_png","banners","_777InstantWin_arena_banner_mobile_png","_777InstantWin_arena_banner_pc_png","_777InstantWin_arena_banner_tablet_png","all_casino_games_arena_banner_mobile_png","all_casino_games_arena_banner_pc_png","all_casino_games_arena_banner_tablet_png","blackjack_arena_banner_mobile_png","blackjack_arena_banner_pc_png","blackjack_arena_banner_tablet_png","casino_games_arena_banner_mobile_png","casino_games_arena_banner_pc_png","casino_games_arena_banner_tablet_png","evo_lobby_banner_mobile_png","evo_lobby_banner_pc_png","evo_lobby_banner_tablet_png","jackpot_arena_banner_mobile_png","jackpot_arena_banner_pc_png","jackpot_arena_banner_tablet_png","live_arena_banner_mobile_png","live_arena_banner_pc_png","live_arena_banner_tablet_png","new_games_arena_banner_mobile_png","new_games_arena_banner_pc_png","new_games_arena_banner_tablet_png","roulette_arena_banner_mobile_png","roulette_arena_banner_pc_png","roulette_arena_banner_tablet_png","scrach_card_arena_banner_mobile_png","scrach_card_arena_banner_pc_png","scrach_card_arena_banner_tablet_png","slots_arena_banner_mobile_png","slots_arena_banner_pc_png","slots_arena_banner_tablet_png","video_poker_arena_banner_mobile_png","video_poker_arena_banner_pc_png","video_poker_arena_banner_tablet_png","_888exclusive_arena_banner_mobile_png","_888exclusive_arena_banner_pc_png","_888exclusive_arena_banner_tablet_png","_888exclusive_arena_preview_image_png","cards_arena_banner_mobile_png","cards_arena_banner_pc_png","cards_arena_banner_tablet_png","InstantWin_arena_banner_mobile_png","InstantWin_arena_banner_pc_png","InstantWin_arena_banner_tablet_png","virtual_sports_arena_banner_mobile_png","virtual_sports_arena_banner_pc_png","virtual_sports_arena_banner_tablet_png","progressive_slots_arena_banner_mobile_png","progressive_slots_arena_banner_pc_png","progressive_slots_arena_banner_tablet_png","si_exclusive_arena_banner_mobile_png","si_exclusive_arena_banner_pc_png","si_exclusive_arena_banner_tablet_png","blackjack_arena_banner_mobile_rtl_png","blackjack_arena_banner_pc_rtl_png","blackjack_arena_banner_tablet_rtl_png","roulette_arena_banner_mobile_rtl_png","roulette_arena_banner_pc_rtl_png","roulette_arena_banner_tablet_rtl_png","logos","vip_diamond_logo_mobile_png","vip_diamond_logo_pc_png","vip_diamond_logo_pc_dark_png","vip_gold_logo_mobile_png","vip_gold_logo_pc_png","vip_gold_logo_pc_dark_png","vip_platinum_logo_mobile_png","vip_platinum_logo_pc_png","vip_platinum_logo_pc_dark_png","vip_regular_logo_mobile_png","vip_regular_logo_pc_png","vip_regular_logo_pc_dark_png","sdk_icons","_18_plus_png","_21_plus_png","Close_png","Close_hover_png","fprightarrow_png","fpvoucherback_png","fpVoucherBG_png","fpvoucherfreeplay_png","fpvoucherfreespin_png","fpvoucherinfoclose_png","fpvoucherinfoopen_png","fpvoucherjackpotfreeplay_png","fpvoucherjackpotfreespin_png","freeplayVoucherBG_png","freeSpinsVoucherBG_png","full_screen_png","game_frame_fp_indicator_png","game_frame_freeplay_mode_left_png","game_frame_freeplay_mode_right_png","game_frame_practicel_mode_left_png","game_frame_practicel_mode_right_png","game_frame_real_mode_left_png","game_frame_real_mode_right_png","general_notification_png","hat_png","icons_down_arrow_png","jackpotplayFreePlayVoucherBG_png","jackpotplayFreeSpinVoucherBG_png","jackpotplayVoucherBG_png","leftarrow_png","password_png","rightarrow_png","toaster_information_message_png","touchFinger_png","username_png","game_frame_bg_fp_left_png","game_frame_bg_fp_right_png","post_login_mobile_png","store","store_button_android_eng_png","store_button_android_fin_png","store_button_android_fre_png","store_button_android_ger_png","store_button_android_nor_png","store_button_android_por_png","store_button_android_rus_png","store_button_android_spa_png","store_button_android_swe_png","store_button_ios_eng_svg","store_button_ios_fin_svg","store_button_ios_fre_svg","store_button_ios_ger_svg","store_button_ios_nor_svg","store_button_ios_por_svg","store_button_ios_rus_svg","store_button_ios_spa_svg","store_button_ios_swe_svg","tooltip","gift_svg","mini_orbit","cip","exclusives_list_icon_cip_png","x_close_png","arenas_header_buttons","casino_games_icon_png","jackpots_icon_png","live_icon_png","my_casino_icon_png","selected_png","slots_icon_png","unselected_png","header_icons","gift_png","moreMenu_png","search_png","cis","videos","harmonium_mp4","games","game_icon_placeholder_png","about","eng_about_json","preview_default_images","default_game_strip_card_and_table_png","default_game_strip_card_and_table_mobile_png","default_game_strip_live_png","default_game_strip_live_mobile_png","default_game_strip_slots_png","default_game_strip_slots_mobile_png","fallbackCMSComponent","default_cgp_shell_css","defaultFooter_html","harrahsFooter_html","wsopFooter_html","DisposableObject","_reactions","_gameEventsSubscription","_sdkEventsSubscriptions","_namedIntervals","_namedTimeouts","_domEventsSubscriptions","expression","effect","opts","push","mobxReaction","subscription","unsubscribe","index","findIndex","s","splice","name","handler","interval","ref","namedSetInterval","clear","clearInterval","i","namedSetTimeout","clearTimeout","t","forEach","r","off","dispose","FP_VOUCHER_TYPES","FP_MESSAGE_MODE","POPUP","EMBEDDED_INTERNAL","JackpotInternalId","JackpotType","JACKPOT_STATE","OrbitSuspense","fallback","children","PureComponent","TOASTER_NOTIFICATION_TYPES","PENDING_TOASTERS_KEY","DISPLAYED_TOASTERS_KEY","TOAST_TYPES","TRANSITIONS","POSITION","TOASTER_UI_CONFIG","globalClass","titleFont","titleSize","titleColor","messageFont","messageSize","messageColor","backgroundColor","progressColor","progressBackgroundColor","buttonColor","buttonFont","buttonTextColor","buttonCornerRadius","LIB_CSS_IDS","closeBtn","container","cover","toastBody","toastTexts","DEFAULT_CONFIG","imageWidth","layout","close","rtl","position","TOP_RIGHT","targetFirst","timeout","drag","pauseOnHover","resetOnHover","progressBar","animateInside","transitionIn","FADE_IN_LEFT","transitionOut","FADE_OUT_RIGHT","transitionInMobile","transitionOutMobile","DateFormatter","_token","_timezone","_timezoneClip","_masks","shortDate","mediumDate","longDate","fullDate","shortTime","mediumTime","longTime","isoDate","isoTime","isoDateTime","isoUtcDateTime","shortTime12","shortTime24","_i18n","dayNames","monthNames","date","mask","utc","arguments","length","Object","prototype","call","test","undefined","Date","isNaN","SyntaxError","String","slice","_","d","D","m","y","H","M","L","o","getTimezoneOffset","flags","dd","_pad","ddd","dddd","mm","mmm","mmmm","yy","yyyy","h","hh","HH","MM","ss","l","Math","round","tt","T","TT","Z","match","pop","replace","floor","abs","S","$0","val","len","valAsString","format","GermanyResponsibleGamingButtonPlacement","RoutedComponent","OrbitComponent","baseColors","base01","base01Contrast","base01Dark","base01Light","base02","base02Contrast","base02Dark","base02Light","base03","base03Contrast","base03Dark","base03Light","base04","BannerContainerBox","LOBBY_PAGE","background","minHeight","CmsBannerComponent","observer","services","cmsBanners","loadBanner","_bannerId","CmsBannerId","componentID","templateID","fallbackComponent","contentDefinition","bannersMap","key","EmptyBannerDefinition","_bannerDefinition","render","showPlaceholder","ITEM_WRAPPER_BOX","RED","GREEN","BalanceType","SelectWrapperBox","width","textLight","SelectBox","select","regular","backgroundMiddleDark","border","radius","hasError","danger","boxBorderLighter","boxBorderContrast","SelectBoxArrow","Select","passThroughProps","selectWidth","ArrowIcon","currentTheme","icons","rightArrowIcon","size","TopBannerDefaultBox","NEW_LIVE_CASINO_PAGE","mediaQuery","mAndBelow","GAMING_HISTORY_PAGE","TIPPING_HISTORY_PAGE","sAndBelow","TopBanner777Box","lAndBelow","TopBannerSIBox","backgroundDark","TopBannerBox","styledByTheme","forCasino777","forSI","apply","TopBannerImageBox","Image","PCBox","MobileBox","TopBannerLogoImageDefaultBox","styledByDevice","TopBannerLogoImageCasino777Box","LIVE_CASINO_PAGE","TopBannerLogoImageBox","DefaultBox","h1","medium","TopBannerTitleDefaultBox","TopBannerTitleCasino777Box","bold","TopBannerTitleBox","TopBannerLiveLogoDefaultBox","TopBannerLiveLogoCasino777Box","TopBannerLiveLogoBox","TopImageComponent","title","srcLogo","device","isMobile","liveArena","casinoLiveLogoMobile","casinoLiveLogoPC","alt","translation","translate","src","image","topImageRef","altText","_renderLogoAndTitle","PanicButtonBox","germanyPanicButton","ACTIVE","backgroundContrast","portrait","IN_DETAILED_HISTORY","PanicButtonTooltipBox","textDark","sAndAbove","landscape","hoverNone","PanicButtonPopupBox","PanicButtonPopupTimeBox","span","PanicButtonPopupOkBox","PanicButtonPopupComponent","_closeDialog","dialogHandler","now","TimeSpan","getHours","getMinutes","textMessage1","textMessage2","_getTime","textMessage3","TooltipClickHereBox","PanicButtonTooltipCloseBox","PanicButtonMobileOverlayBox","ResponsibleGamingButtonsGermanyComponent","state","isTooltipVisible","setState","user","panicRestrictUser","then","data","console","log","_openPopup","catch","err","_sendAnalytics","dialog","showModal","shouldBeClosedOnlyByUser","hideCloseButton","isHighPriority","hover","event","stopPropagation","label","analytics","sendAnalytics","_closeToolTip","_getTooltipBox","_restrictUser","Fragment","onMouseEnter","_onMouseEnterPanicBtn","onMouseLeave","_onMouseLeavePanicBtn","onClickPanicBtn","placement","inDetailedHistory","_renderTooltipClickHere","_renderCloseBtn","_renderMobileOverlay","OrbitComponentWithState","AdminBannerBoxPC","AdminBannerBoxMobile","AdminBannerBox","AdminBannerComponent","bannerSegmentation","JSON","stringify","adminBanner","getSegmentationsForAdminBanner","bannerConfig","getConfigForAdminBanner","bannerAdminPlaceholderId","config","segmentation","BannerComponent","adminBannerEnabled","_shouldUseAdminBanner","MyAccountTab","imagePreload","fromMinutes","Promise","res","rej","onload","timeoutRejection","error","backgroundUrl","imageObj","onerror","setTimeout","totalMilliseconds","imagePreloadWithDefault","defaultPath","CASHIER_SESSION_TYPES","DEPOSIT","TRANSACTIONS_HISTORY","WITHDRAWAL","FULL_CASHIER_CDH","FULL_CASHIER","QUICK_DEPOSIT","COOLING_OFF","VERIFY_ID","MOBILE_VERIFY_ID","GamingHistoryType","TSR_TYPE","SYSTEM_EVENTS","ON_INIT_COMPLETE","ON_ORBIT_INIT_COMPLETE","RUN_AUTOLOGIN","RUN_AUTOLOGIN_TOUCH_ID","MESSAGE_OPEN","MESSAGE_CLOSE","ON_BEFORE_OAUTH_STATE_CHANGE","OAUTH_STATE_CHANGE","AUTOLOGIN_SUCCESS","AUTOLOGIN_FAILED","SUCCESSFULLY_LOGIN_RESPONSE","ON_RUN_AUTOLOGIN","FAIL_LOGIN_RESPONSE","CLOSE_GAME","LOGIN_FORM_OPEN","LOGIN_FORM_CLOSE","GET_NEW_TOUCH_TOKEN","SCREEN_CHANGE_STATE","POST_MESSAGE_ARRIVE","HYBRID_POST_MESSAGE_ARRIVE","EXTEND_USER_TIME_TO_LIVE","SCREEN_RESIZE_CHANGED","GAME_OPEN","OPEN_GAME_ERROR","FULL_SCREEN_CHANGE","OPEN_OVERLAY","CLOSE_OVERLAY","CLOSE_ALL_OVERLAY","EXTERNAL_LINK_OPEN","EXTERNAL_LINK_CLOSED","EXTERNAL_LINK_OPENED","APP_RESUMED","APP_PAUSED","LOGIN_SESSION_RESUMED","ANALYTIC_TRIGGER_ACTIVATED","ANALYTIC_DATA_LAYER_UPDATE","ANALYTICS_EXPERIMENT_ACTIVATED","ANALYTICS_OPTIMIZE_TRIGGER","INCOMING_MARKETING_DATA","INCOMING_MARKETING_FLOW","PLAYER_ACTION","BALANCE_UPDATED","CURRENCY_UPDATED","RECENTLY_PLAYED_GAMES_UPDATED","LIVE_FEEDS_LATEST_WINNERS_UPDATED","LIVE_FEEDS_WINNINGS_UPDATED","LIVE_FEEDS_TOTAL_JACKPOTS_UPDATED","LIVE_FEEDS_JACKPOT_AMOUNTS_UPDATED","LIVE_FEEDS_STATE_JACKPOTS_UPDATED","OMG_AWAITING_MESSAGES_UPDATED","OMG_OPEN_AWAITING_MESSAGES","OAUTH_REMOVE_FROM_LOCAL_STORAGE","LOCAL_STORAGE_CHANGED","ELEMENT_CREATED","FREE_PLAY_UPDATED","FREE_PLAY_VOUCHER_REMOVED","FREE_PLAY_OPEN_VOUCHERS_MSG","RESIZE_FORM","BEGIN_LOGIN_AFTER_REGISTRATION","LOGIN_COMPLETED_AFTER_REGISTERATION","LOGIN_FAILED_AFTER_REGISTRATION","REGISTRATION_COMPLETED","DETACH_REGISTER_EVENT","FREE_PLAY_VOUCHER_MSG_OPENED","FREE_PLAY_OPEN_INTERNAL_VOUCHERS_MESSAGE","TOAST_CREATED","TOAST_SHOW","TOAST_HIDE","TOAST_CLOSE_BUTTON","TOAST_USER_DISMISS","HYBRID_ALERT","HYBRID_OPEN_MAIL","HYBRID_UPDATE_INFO_KEY","FIREBASE_GOT_NEW_TOKEN","TOUCH_ID_GET_TOKEN_FROM_SRV","TOUCH_ID_INIT_SCREEN_SHOW","TOUCH_ID_TRY_AGAIN_SKIP","TOUCH_ID_CHECK_TOKEN_ENABLE","TOUCH_ID_TOKEN_ENABLE_RES","TOUCH_ID_CLEAR_TOKEN","TOUCH_ID_NATIVE_CANCEL","TOUCH_ID_LOGIN_ERROR","TOUCH_ID_AUTO_LOGIN","TOUCH_ID_STATE_CHANGED","WEB_VIEW_NAVIGATE_GAME","WEB_VIEW_NAVIGATE_DEPOSIT_WIDGET","WEB_VIEW_NAVIGATE_MIT_ID","WEB_VIEW_NAVIGATE_CASHIER","SECOND_WEB_VIEW_OLD_CALL","SECOND_WEB_VIEW_CLOSE","SECOND_WEB_VIEW_OPEN","SECOND_WEB_VIEW_CLOSE_ALL","MINI_CASHIER_HEIGHT_CHANGED","CONTENT_LOADED","OVERLAY_OPEN_AWAIT","OVERLAY_CLOSE_EXPIRED","FABRIC_ADD_EVENT","ADD_TAG_OPEN_APP_VER","ADD_TAG","REM_TAG","DEEPLINK_RECEIVED","WEB_LOGIN_OPEN_REGISTER","ROUTE_CHANGED","RESTRICTIONS_CHANGED","SESSION_TIMER_UPDATE","WINDOW_FOCUS_GAIN","WINDOW_FOCUS_LOSS","GEO_HYBRID_UPDATE_ENABLE","GEO_HYBRID_GT_CB","GEO_HYBRID_GET_LOCATION","GEO_HYBRID_GET_LOCATION_RES","GEO_LOCATION_FAILED","GEO_LOCATION_SUCCEED","GEO_KICK_EVENT","SESSION_EVENT_KICK","SESSION_EVENT_WALLET","SESSION_EVENT_OMG_RECEIVED","SESSION_EVENT_FREE_PLAY_RECEIVED","SESSION_EVENT_FREE_PLAY_REMOVED","SESSION_EVENT_FREE_PLAY_BATCH_ADDED","SESSION_EVENT_FREE_PLAY_BATCH_UPDATED","SESSION_EVENT_FREE_PLAY_BATCH_REMOVED","SESSION_EVENT_THIRD_PARTY_FREE_PLAY_UPDATED","SESSION_EVENT_NET_POSITION_UPDATE","SESSION_EVENT_RECEIVED_TOASTER","SESSION_EVENT_UPDATERESTRICTION_RECEIVED","SESSION_EVENT_PLAYER_BURNOUT_MESSAGE_RECEIVED","NET_POSITION_VALUE_UPDATE","SECOND_WEB_VIEW_NAVIGATE_SPORT","TIME_UPDATED_FROM_SERVER","ON_BROWSER_PAGE_HIDE","TOKEN_LIFETIME_EXPIRED","LIVE_TABLES_UPDATE","LOADING_INDICATOR_EMBEDDED_UPDATE","LOADING_INDICATOR_EMBEDDED_UPDATE_V2","LOADING_INDICATOR_EMBEDDED_CLOSED_BY_X","GAMES_QUESTIONNAIRE_COMPLETED","GAME_SEQUENCE_FINISH","GAME_POPUP_SHOW","USER_APPROVE_GAME_POPUP","BONUS_ABUSE_PARKING_MONEY","SHOW_POPUP_ABOVE_HYBRID_SECOND_WEB_VIEW","CLOSE_POPUP_ABOVE_HYBRID_SECOND_WEB_VIEW","DEPOSIT_WIDGET_CLOSED","DAILY_DEAL_REMOVE_INDICATION","LOCATION_POPUP_OPEN","LOCATION_POPUP_CLOSED","PLAYER_MESSAGES_STRATEGY_READY","CHANGE_OVERLAY_PRIORITY","OMG_DISPLAYED","LIVE_GAME_SWITCHED","PROMOTIONS_CHANGED","ODR_CLEAR_ALL_GAMES","SERIAL_UPDATE","CLIENT_EVENTS","MENU_CLICKED","LOGIN_BUTTON_CLICKED","REALITY_CHECK_OPENED","REALITY_CHECK_CLOSED","USER_EVENTS","ON_CLICK","ON_DOUBLE_CLICK","ON_SUBMIT","ON_MOUSE_MOVE","ON_MOUSE_DOWN","ON_KEY_PRESS","ON_DOM_MOUSE_SCROLL","ON_MOUSE_WHEEL","ON_TOUCH_START","ON_TOUCH_MOVE","ON_TOUCH_END","ON_MSPOINTER_MOVE","ON_RESIZE","ON_FOCUS","ON_CHANGE","ON_BLUR","USER_ACTIVITY_EVENTS_ALL","USER_ACTIVITY_EVENTS_FOR_HYBRID","GeoModalWrapperBox","BalanceValue","balance","bankroll","walletProxy","balanceType","numberIndex","search","symbolIndex","min","WrapperComponent","defaultProps","BOTH","moneyColor","StyledByTheme","getRegistryItem","ComponentDefinition","themeName","forwardedRef","forwardRef","ByThemeRegistry","defaultComponent","Event","_subscriptions","callback","context","eName","eCallback","eContext","Error","isArray","eventName","cleanFunctions","eventIdx","on","self","onceCallback","_originalCallback","params","subscriptions","getAllSubscriptions","events","concat","ex","cb","cleanFn","isHybridEmbedded","PcBox","DailyDealContainerBox","glowRotateAnimation","keyframes","DailyDealChestGlowBox","dailyDeal","glow","chestScaleAnimation","DailyDealChestBox","img","DailyDealTextStripBox","textStrip","DailyDealChestHaloBox","halo","DailyDealComponent","_onDailyDealClick","getCurrentArena","arenaName","visitDailyDeal","dailyDealCampaignId","hybrid","isEmbedded","chest","LinkToOfferBoxBase","CssRule","For","mobile","build","hasCircle","linkToOfferIconKeyframes","hexToRgba","LinkToOfferIconBox","shouldAnimate","not","tablet","LinkToOfferDialogCloseBox","zIndex","LinkToOfferComponent","_onCloseDialog","playerOfferings","hasOpenedPopup","closeCurrentPopup","setWelcomeOfferConfig","linkToOfferConfig","welcomeBonus","CloseIconComponent","linkToOfferCloseIcon","isHighPriorityOffer","getMaxCGPOverlayZIndex","sizeIsHeight","currentOffer","currentLinkToOffer","_onLinkToOfferClicked","shouldUseLinkToOfferAnimation","offer","analyticsCategory","routing","currentRoute","arenaType","options","onPopupClosed","showOfferPopup","SwiperWindowComponent","arena","renderList","windowPosition","ArenaGamesListsComponent","_intersectionSpy","_timeoutRef","_onIntersect","_loadNextBatch","_onCaptureIntersectionSpyRef","element","_onFailedToCreateIntersectionSpy","swiperWindowsCount","_arena","listsCount","getArena","reaction","isAuthorized","nextBatch","getNextBatchSize","_ensureIntersectionSpyIsOutsideOfViewPort","spyBoxRectangle","getBoundingClientRect","top","bottom","window","innerHeight","document","documentElement","clientHeight","from","x","range","_windowsRange","map","listWindowPosition","onIntersect","onCaptureIntersectionSpyRef","onFailedToCreateIntersectionSpy","cyClass","INSIDE_ORBIT_MENU_CONTAINER","XCloseButtonBox","closeModalDialog","base04Contrast","base04Dark","base04Light","base05","base05Contrast","base05Dark","base05Light","PcFilterIndicatorRenderingLocation","FEATURE_GAME_RECOMMENDATIONS","FEATURE_ROUTE_OVERWRITE","FEATURE_TRANSACTION_HISTORY_WIDGET","FEATURE_NAME_SAFE_ZONE_TOGGLE","FEATURE_NAME_LIST_ON_TOP","FEATURE_NAME_TOP_BANNER_REDESIGN","FEATURE_NAME_SEARCH_GAME_SUGGESTED_BY_AI","FEATURE_NAME_PLAYERS_LIKE_YOU_GAMES_LIST_TYPE_ID","FEATURE_NAME_VIDEO_LIVE_STREAM","FEATURE_NAME_STATIC_VIDEO_LIST","FEATURE_NAME_AI_SORT_GAME_LIST","FEATURE_NAME_BECAUSE_YOU_PLAYED_LIST","FEATURE_NAME_DISABLE_ANIMATED_GAME_ICONS","isDepositSessionType","sessionType","Check","isNullOrUndefined","isCashoutSessionType","MY_ACCOUNT_POST_ACTIONS","GAME","CASHIER","CASINO","SPORT","EXTERNAL_URL","CLOSE","RICH","INTERNAL_URL","STATE_OF_RESIDENCE_COOKIE_KEY","InsideOrbitMenuContainerComponent","isInsideAutomation","style","display","textAlign","id","ClockComponent","sdkProps","datetime","box","ClockComponentBox","componentId","SdkComponent","_elementRef","_captureElementRef","_renderSdkComponent","_sdkComponentRenderer","sdkComponentFactory","createComponentRenderer","sdkComponentRenderer","_disposeSdkComponent","prevProps","prevState","snapshot","Box","e","_passOnClick","MainScreenComponent","MAIN_SCREEN","overrideJson","require","ApplicationStartupConfigurationsReader","_defaultOrbitConfigurations","_window","_launcherOverridesReader","_http","_logger","_launcherOverrides","_b2cConfigurations","a","getOverrides","_getB2CConfigurations","_getCasinoConfigurations","casinoConfigurations","configs","configurationPath","_getConfigPath","orbitServer","sdk","ExtraProperties","paths","server","brandName","brand","country","orbit","admin","adminConfig","b2c","userSelectedState","mockApplicationStartupConfigs","endsWith","getGlobalProperty","ALL_CONFIGS_KEY","_applyOrbitConfigsOverrides","_applySdkConfigOverrides","Language","iso3","language","iso2","orbitLang","lang","SDKTexts","b2cConfigs","languageIso3Override","languageIso2Override","publicationIdOverride","publicationID","publicationId","segmentsOverrides","webData","segments","_applyB2COverrides","SdkHooksProvider","url","isAbsolutUrl","location","redirect","href","miniOrbit","isEnabled","openUrl","_isMiniOrbit","MINI_CIP_BASE_ROUTE","MINI_CIS_BASE_ROUTE","basePath","Uri","URL","pathName","getBase","toLowerCase","mapperData","configuration","usedGameTypesBySite","gameType","header","getHeaderRegulationDataElement","imageFilePath","resolveGameImagePath","orbitComponentInsideSdkProvider","cashier","gameRunner","casinofiedAnalytics","PropertiesEvaluator","_propertiesEvaluators","_config","propEvaluator","defineProperty","propertyName","get","evaluate","configurable","enumerable","rootObject","keys","propName","createPropertyEvaluator","StatementsEvaluator","_statementsEvaluators","_defaultValue","evaluators","evaluatedValue","_applyValueTransformation","defaultValue","value","parsePropertyValue","ObjectEvaluator","_object","_evaluatedValue","isUndefined","properties","obj","configEvaluator","ArrayEvaluator","_itemsEvaluators","item","createPropertyContext","SimpleValueEvaluator","_value","applyValueTransformation","getCurrentPropertyPath","StatementEvaluator","_statementDefinition","rules","definition","rule","createSegmentationRule","createLogicalOperator","condition","BaseLogicalOperator","_rules","OrLogicalOperator","AndLogicalOperator","SegmentationRule","_ruleDefinition","innerRules","operator","createComparisonOperator","segmentValue","getSegmentValue","compare","BaseComparisonOperator","EqualOperator","value1","value2","_isBooleanAsString","NotEqualOperator","PropertyLevelContext","_originalContext","_currentPropertyName","operatorName","logicalOperatorName","ruleDefinition","statementDefinition","createStatementEvaluator","propertyPath","propertyOwner","getLauncherGames","PropertyEvaluator","_propertyName","_valueEvaluator","propertyContext","createStatementsDefinition","subLists","statementsDefinition","statements","sublist","Segment","Games","segment","_createStatementsRule","GamesIdPropertyEvaluator","_owner","_adminConfig","gamesAdminRefKey","owner","listsv2","gameTypes","launcherGames","IsFalsyOperator","GreaterThanOperator","isNumber","LessThanOperator","AnyOfOperator","includes","PreviewFeatureType","ConfigurationEvaluationContext","dataProvider","isObject","_hasStatementsOrDefaultValue","_createStatementsEvaluators","statementsDefinitions","toUpperCase","logger","isString","assetPath","propertyValue","gamesSettings","gamesTags","_mergeGamesFromLauncher","existingGamesTags","demoSettings","demoCTAAnonymous","pc","demoCTAAuthorized","intermediatePageAnonymous","intermediatePageAuthorized","SdkInitializer","_applicationConfiguration","_sdkHooksProvider","_windowService","_theme","_waitForMapperCGP","resolve","getGameTypesMappingForSdk","_waitForHeaderRegulationDataElement","headerRegulationDataElement","waitForElement","module","API","Logger","logLevel","sdkApi","sdkConfigOverrides","getSdkConfigOverrides","initialize","CGP_OBJECT_NAME","Country","getCountryServiceOverrides","Skin","getSkinServiceOverrides","Game","getGameServiceOverrides","Integration","getIntegrationServiceOverrides","Themes","getThemesServiceOverrides","Http2","getHttp2ServiceOverrides","JackpotToasters","getJackpotToastersServiceOverrides","OrbitComponentRender","getOrbitComponentRenderOverrides","CashierProxy","getCashierProxyOverrides","GameRunnerProxy","getGameRunnerProxyOverrides","CasinofiedAnalyticsProxy","getCasinofiedAnalyticsProxyOverrides","_evaluateSdkConfigsInsideOrbit","toasterImage","shellTheme","jackpotWidget","generic","crown","skinOverride","SDK","sdkConfig","responsibleGamblingLink","origin","substring","sdkConfigsInsideOrbit","env","configEvaluationDataProvider","segmentName","fromRoot","result","gameDefaultIcon","mainContentTheme","backgroundDefault","gameDefaultBackground","launcherOverrides","gameTypeMapper","_gameTypeMapper","bind","proxyLink","redirectProxy","openInNewWindowHook","isMiniCipFunc","isMiniCip","isMiniCisFunc","isMiniCis","_getHeaderRegulationDataElement","CMSSource","cmsSource","sdkTheme","api","getOrbitComponentToSdkAdapter","getCashierService","getGameRunnerService","getCasinofiedAnalyticsService","QA_ENVIRONMENT_POP_UP_BLOCKER_COOKIE","ServiceBase","_serviceFactory","thisProto","getPrototypeOf","constructor","CLASS","getAbTestingDataForFeature","_getClassName","disposer","md5","QAEnvironmentPopUpBlockerService","password","servicesConfigs","QAEnvironmentPopUp","validationKey","_setCookie","expirationDate","setMonth","getMonth","cookies","createCookie","VideoPlayingServiceBase","observable","action","bound","gaCategory","_swiperHandler","_init","onAppPaused","_setIsAppVisible","onAppResumed","onGameOpen","_setIsVideoMuted","isSupported","isVideoMuted","isAppVisible","currentRegulationCode","regulation","getRegulationCode","disableForRegulationPreLogin","LiveVideoStream","_checkIfSupported","structuredLoggingService","getLogger","addCategory","addAction","info","_setIsSupported","computed","LiveStreamPlayingService","LiveStreamNativePlayer","LiveStreamHlsPlayer","gameInfo","videoReference","dontAutoSwipe","streamSource","videoURL","watchTimeLimit","os","isAndroid","TextTranslation","translationService","translationKey","_parameters","TranslationService","translatedTexts","parameters","translatedPhrase","langData","debug","currentLanguage","_resolveBraces","str","objectKeys","objectKey","resolveConfigurationValue","CURRENCY_SYMBOLS","CAD","NOK","USD","EUR","GBP","DKK","SEK","RON","CurrencyService","withDecimal","formatMoney","minBet","maxBet","getCurrencyIso3","currencyIso3","AnalyticsService","category","omitStructuredLogger","engine","sendToDWH","addLabel","addValue","addCustomData","customData","appID","setAppID","setEventType","eventType","eventData","getGoogleClientID","LobbyGameInfoPreviewService","serviceFactory","_setGamePreviewTimeout","_clearGamePreviewTimeout","_allowPreview","_currentGamePreviewPinned","_resetGamePreview","currentPreviewedGame","gamesMap","clearGamePreview","allowGamePreview","_setCurrentPreviewedGame","RunningGameService","_listenForLastRealGame","_listenForLastOpenDemoGame","isGameRunning","continuePlayingCurrentGame","stopCurrentGameAutoplay","closeRunningGame","lastGameInfo","lastPlayedRealGame","gameInfos","correlatedGamesForLastPlayedRealGame","onGameClose","closeOptions","isReal","isGamePlayed","showNextGameSuggestion","setLastPlayedRealGame","getGameInfo","getCorrelatedGames","correlatedGames","getGamesInfoArray","gameInfosArray","_setLastPlayedRealGame","_setCorrelatedGamesForLastPlayedRealGame","setLastOpenDemoGame","_setLastOpenDemoGame","lastOpenDemoGame","GameInfoButtonDefaultBox","GameInfoButtonCasino777Box","GameInfoButtonBox","DialogTitleBox","DialogCloseButtonBox","components","modalDialog","closeButtonSize","APPLY_BORDERS","APPLY_ANIMATION","MOBILE_CENTERED_HEADER","FORCE_TRANSPARENT_BACKGROUND","FORCE_TRANSPARENT_CONTENT_BACKGROUND","DISABLE_FULLSCREEN_MOBILE","FORCE_CENTRALIZATION","APPLY_MAX_HEIGHT","FORCE_FULLSCREEN_TABLET","APPLY_MODAL_CLOSING_ANIMATION","DialogHeaderDefaultBox","backgroundLight","height","DialogHeaderCipBox","DialogHeaderBox","forCip","forWsopCip","HeaderButtonsContainerBox","DialogHeaderComponent","onCloseButtonClick","renderExtraButtons","_renderExtraButtons","_renderCloseButton","_renderTitle","_renderButtons","headerHeight","_renderContent","TitleComponent","_openGameInfo","_closeInfoMobile","infoPageURL","isEmpty","intermediatePageGameInfoButton","_renderOpenInfoButton","xlAndBelow","StripeImageBox","GameStripeImageComponent","imageSrc","stripImage","stripeImageFallback","fallbackSrc","TrailerBox","GameTrailerComponent","poster","autoPlay","loop","type","TrailerOrStripeImageComponent","hasVideoTrailer","GAMES_CATEGORIES","CellValueBoolBox","checkMark","CellValueTextDefaultBox","brandSecondary","CellValueTextCasino777Box","dangerDark","CellValueTextBox","CellTitleBox","GameFeatureCellComponent","_renderNoInfo","check","_renderCheckbox","_renderDescription","_renderValue","TableContainerDefaultBox","table","boxBorder","boxBorderLight","TableContainerBoxCasino777Box","brandSecondaryDark","TableContainerBox","GameFeaturesTableComponent","cells","reduce","acc","curr","cell","features","chunks","splitArrayToChunks","cellSpacing","chunk","_renderGameInfoTableRow","GameDescriptionTextBox","h2","generalTitle","GeneralTitleDefaultBox","SectionTitleDefaultBox","common","secondary","RTL","spriteSheet","BasePcBox","BaseMobileBox","GeneralTitleCasino777Box","SectionTitleCasino777Box","SectionTitleBox","GameAboutComponent","aboutText","GameJackpotPreviewBox","GameJackpotDefaultBox","GameJackpotSIBox","GameJackpotBox","GameJackpotValueDefaultBox","GameJackpotValueSIBox","GameJackpotValueBox","GameJackpotComponent","jackpotValue","jackpots","getGameJackpot","currency","JackpotAmountPreviewDefaultBox","JackpotAmountPreviewCasino777Box","JackpotAmountPreviewBox","GameJackpotPreviewComponent","GamePreviewInfoContainerBox","GamePreviewInfoContainerComponent","hasJackpot","generalSettings","shouldRenderJackpotPreview","gamesPreviewConfig","shouldDisplayJackpot","gameTitleComponent","gamePreviewFeaturesSelector","getPreviewFeatures","_renderJackpotPreview","ContainerBox","GameIconBox","singleGame","defaultBackgroundImage","PlayButtonsBox","GameIconWrapperBox","xs","GameIconAndPlayButtonsComponent","_openRealGame","open","openGameParams","isRealMode","_openDemoGame","allowDemoButtonInIntermediatePage","gameImageInsideIntermediatePage","getGameImagePlaceHolderUrl","_renderDemoButton","IntermediatePageBox","texture","StripeImageAndButtonsBox","GradientDefaultBox","GradientCasino777Box","GradientBox","WarningImageBox","WarningTextBox","WarningMessageBox","RealMoneyOnlyWarningComponent","onlyRealMoneyGameWarning","OpenGameIntermediatePageComponent","allowWithdrawOnlyFromReal","pageName","_renderOnlyRealMoneyWarning","showIntermediatePage","isCalledFromIntermediatePage","NoGameRestriction","gameInfoComparerByTitle","game1","game2","List_Type","GameInfo","_rawGameData","_aboutText","allowSwitchGameMode","numberOfLines","_hasCustomFilter","filterName","filtersList","filter","hasBonusGames","numberOfDecks","isMultiHand","hasFreeSpins","subGroupName","isEliteLounge","hasSideBets","maxBetPerSpot","ClassicSlots","isAllowedCategory","isCardOrTableGame","isLiveCasino","gameGroup","_isAuthorized","forceDemoButton","_isMobile","isAnonymousSupported","siteMap","isUrlInSiteMap","Boolean","gameGroupId","isVideoSlot","isScratchCards","SLOTS","LIVE","CARD_AND_TABLE","gameCategory","companyName","vendorName","squareIcon","animatedIcon","hybrid_icon","animated_square","getAnimatedJsonUrl","_getResolvedGameImagePath","animated_round","icon","pngImagePath","animatedImageTimings","delay","shouldUseSquareIcons","badge","video_thumbnail","gameBadgePath","maxBetPerBrand","useSquareIcon","gameIconPlaceHolderSq","gameIconPlaceHolder","seoValue","seo","gameName","categoryName","imagePath","strip_mobile","strip_pc","previewDefaultImage","gamesPreviewDefaultImages","gameCategoryWithUnderScores","multiplayer","volatility","GAME_VOLATILITY","High","Low","Medium","forceIntermediatePageForAutorizedUsers","isDemoModeSupported","shouldUseModernMode","_openInModernMode","_openInLegacyMode","cmsSegmentation","isCstatus","_showIntermediatePage","_shouldRedirectToMembership","_openMembership","closeGame","_sendOpenGameAnalytics","gameController","marketingParams","eventsTrigger","updateMarketingParams","openGame","gameMode","GameModeEnum","Real","freePlayParams","skipFreePlaySuggestion","referrerId","Demo","shouldSuggestNextGame","shouldShowIntermediatePage","openGameOptions","showRegister","isCisOrCip","showRegisterButton","freePlayData","freePlayId","freePlayType","marketing","getMarketingData","gameHandler","externalLinks","openLink","source","dl","listTitle","_replaceUnderscore","analyticsLabel","gameIndex","analyticsAction","openFromDrawer","listPosition","aiEngine","AIListTypeID","AdminListID","sendElasticInfoEvent","words","arena_icon","restriction","VIDEO_SLOT","SLOT","BACCARAT","BLACKJACK","CARRIBEAN_POKER","CRAPS","KENO","POKER","POKER_TEMPLATE_GAMES","ROULETTE","SCRATCH_CARD","VIDEO_POKER","LIVE_CASINO","isBlackJack","isRoulette","isBaccarat","isVideoPoker","ROULETTE_LIKE","ARCADE","POWER_VIDEO_POKER","PAI_GOW_POKER","CRAZY_BLACKJACK","externalGameCode","themeId","gameThemes","GamesService","_gamesAboutTexts","_updateGamesMap","fireImmediately","onRecentlyPlayedGamesUpdated","_updateRecentlyPlayedGames","recentlyPlayedGames","isInitialized","getUtils","arraysAreEqual","sdkGamesInfo","_getGamesAboutTexts","aboutTexts","usedGameTypesBySiteMap","accumulator","gt","sdkInfo","gameTagInfo","rawGameData","assign","gamesAboutTextConfigPath","gamesAboutTextPath","gamesAboutTextUrl","http","aboutTextsJson","warning","statusCode","_getGamesInfoMap","_setGamesMap","getGamesInfo","_buildGamesMap","inCacheGames","getGamesInfoForHistory","getGamesInfoMap","numberOfGames","useSquareIcons","animated","getAdminArenaLists","adminArenaConfigData","arenaKey","listType","adminLists","lists","list","currentList","Metadata","SubLists","gamesId","ConfigurationsService","startupConfigs","startupConfiguration","_createConfigData","launcher","getTestedGames","originalConfigData","homePage","gamesLists","Swipers","popularTables","PopularTables","swiperGamesList","allGamesGrid","Grids","injectAdminArenas","_getConfigEvaluationContextServices","_defineCustomConfigProperty","getOwnPropertyNames","parseInt","runInAction","configData","evaluator","gameTypesMap","_getUsedGamesByHomePage","_getUsedGamesByArenas","_getUsedGameTypesByLiveGamesArena","_getUsedGameTypesByNewLiveGamesArena","values","gamesList","gamesIds","arenaConfig","swiperConfig","gamesGridConfig","liveCasinoArenaConfig","gameTypeConfig","gameId","popularTablesConfig","tableConfig","tableGamesIds","fullPath","objectValue","fullPathArray","split","fileName","imageFileName","imagesBasePath","gamesImages","serverPath","path","homePageGamesLists","jackpotId","newGameArenaConfig","find","listConfig","isSelfUpdatedByNewest","_getCurrentArenaLists","listId","homePageHeaderArenas","headerArenasOrder","arenaHeader","homepageHeader","arenaNames","orderedArenas","getConfigs","allLinks","sideMenu","menu_links","LIST_TYPE_ID","UserService","waitForAutoLogin","_updateUserData","onOAuthStateChanged","logoutReason","userData","_userData","localStorage","setItem","statusGroupId","_checkForFaultyCStatus","playerStatus","getItem","scrollTo","_updateSegments","cStatus","IsAuthorized","IsVIP","GenderId","DaysSinceRegistration","daysSinceRegistration","RegistrationCountry","registrationCountry","activeChallengeCount","userName","cid","joinDate","timeSinceRegistration","parse","totalDays","Infinity","playerRMStatus","depositWidgetEligibility","isABEligible","isNtsEligible","errorMessage","ineligibleReason","cashOutWidgetEligibility","getCountryName","getAutoLoginToken","token","getPlatformToken","getFirebaseToken","viewOptions","openLoginForm","logout","isInAutologin","_isInAutoLogin","waitForAutologin","_removeAutoLoginTokenFromUrl","urlWithoutToken","currentUri","removeSearchParam","autoLoginParams","runAutoLogin","offset","time","userController","selfExclusionPanic","timezoneOffset","productPackage","getProductPackageId","tokenInfo","loginIP","BrowserButtonsHandlerService","pushedFakeHistoryState","_subscribe","isMobileSideMenuOpen","isMobileMenuOpen","isUserAreaMenuOpen","userMenu","isOpen","goBack","pushWithoutValidation","pathname","_onBackButtonClicked","closeMobileMenu","closeMenu","_callback","Device","inCasino","subscribeTo","hardwareBackButton","popstate","SegmentationAggregatorService","userSegments","cmsSegments","deviceSegments","isMiniOrbit","isPWAInstallable","progressiveWebApp","_setAllSegments","_extraSegments","allSegments","_allSegments","segmentsLastUpdate","countryCode","brandID","getBrandID","subBrandID","getSubBrandID","regulationID","langCode","ClientDeviceFeatures","ClientDeviceDetected","clientHintsAvailable","platform","brands","buildInfo","navigator","userAgentData","getHighEntropyValues","setAsyncdData","platformVersion","model","uaFullVersion","architecture","bitness","ClientDeviceService","detected","DeviceService","isTablet","browser","feature","isProgressiveWebApp","isStandalone","_updateDeviceType","dom","devicechanged","_sdkDevice","deviceType","isHybrid","isEmbeddedHybrid","operationSystem","tool","isProbablyIPad","isMobileWebApp","isProbablyIOSDevice","SEO_CATEGORIES","SAFEZONE_CONTAINERS_ID","COMPONENT_NAMES","NO_AI_GAMES_RECOMMENDATIONS","AiEngineService","_isLoadTrendingRecommendedGamesForPlayerInProgress","_onOauthChange","onGamesQuestionnaireCompleted","_updateAiRecommendedGames","_loadTrendingRecommendedGamesForPlayer","_trendingGamesRecommendations","gamesByBets","gamesByActiveUsers","tempGameTypesMap","aiRecommendedGames","trendingRecommendedGamesForPlayer","BETS","ACTIVE_USERS","_allAiRecommendedGameTypes","_initalizeTrendingRecommendations","getAIRecommendations","filterOutRecentlyPlayedGames","aiRecommendationsData","_setAiRecommendedGames","maxGames","_setAllAiRecommendedGameTypes","_sendAIRecommendationAnalytics","analyticsObject","sendAIRecommendations","listIDs","insightController","getCasinoRecommendedDynamicListsForPlayer","listsIDs","allAiRecommendedGameTypes","gamesMapOverride","ignoreNumberOfGames","fixedGameTypes","aiGameTypes","originalIndexes","sort","gt1","gt2","index1","index2","getTrendingRecommendedGamesForPlayer","trendingRecommendedGames","_setTrendingRecommendedGamesForPlayer","listTypeId","trendingRecommendedGamesForPlayerByBets","trendingRecommendedGamesForPlayerByActiveUsers","gamesTypesArray","aiGamesByScore","_getGamesTypesByListTypeID","first","second","firstGamePlace","indexOf","secondGamePlace","DeepLinkJsonObjectBuilder","actionsChain","deepLinkObject","resultedMarketingParams","currentActionIndex","currentActionsChainPointer","actionPropName","idPropName","descriptor","actionParams","wtc","nextAction","join","DeepLinkJsonObjectParser","actionNextPropName","idNextPropName","DEEP_LINK_HASH_PARAM","DEEP_LINK_QUERY_PARAM","SPECIFIC_NAVIGATION","SPECIFIC_NAVIGATION_PARAM","DeepLinkParserService","deepLinkJson","_extractDeepLinkJsonFromFragment","_extractDeepLinkJsonFromDeepLinkQueryParam","isDeepLinkFromSpecificNavigation","_extractDeepLinkJsonFromSpecificNavigationQueryParam","_isDeepLinkObject","fragment","hash","decodeUriComponentRecursive","queryParams","getParamValue","DeepLinkService","_isExecuting","_executeDeepLinkFromSdkEvent","_waitForAutologin","deepLinkActionsFactory","createActionFromDeepLinkObject","_executeAction","_executeDeepLinkFromPostMessage","postEvent","messageData","ActionName","deepLinkJsonObject","_subscribeToCurrentUriReaction","onDeepLinkReceived","postMessage","_executeDeepLinkFromCurrentRoute","execute","lastTimeDeepLinkWasExecuted","reactionDisposer","createActionFromCurrentRoute","urlWithoutHash","getUrlWithoutHash","navigate","isArrayOfStrings","CGP_EVENTS_NAMES","SdkEvents","CGP","onEvent","SdkEventsTrigger","fire","gametype","message","SdkService","_events","_updateLocalStorageAccordingToCookie","_displayHybrid","hasNavigationHistory","routeChanged","isFunction","displayHybrid","isLoginFromRegistration","getCGPMaxOverlayZIndex","getRegulationDateAndTimeFormat","rawUserData","getUserData","rawAccountData","accountData","getDepositWidgetEligibilityDetails","getCashoutWidgetEligibilityDetails","firstName","FirstName","lastName","LastName","isVIP","DWHGameGroupOrientation","StatusGroupId","genderID","TimeSinceRegistration","PlayerRMStatus","sessionId","getSessionId","JoinDate","isFTD","FTDSubBrand","IsPromotionPermitted","isSdkReady","getAIList","numberOfRecentlyPlayedGameToFilterOut","aiGameTypesArray","listTypeIds","getAINewGamesList","getCurrentServerDate","getAbTestingData","featureName","waitForAnonymousAbTestingData","getUserSegments","format$$$","linkParams","useCallbackURL","getSourceSubBrandName","callbackUrl","getExternalBrandCallbackURL","openExternalLink","view","openResponsibleGamingLink","navbar","login","getGamesThemes","getRegulationService","isHybridEmbeddedGame","openHybridLink","autologinCookie","getCookie","setAutoLoginToken","removeCookie","getGRSEnvironments","countPlayerChallenges","openInNewWindow","menuActionExecute","method","getExternalBrandCallbackURLMethod","menuJSON","startLiveTableFeeds","startEvolutionLiveFeeds","stopLiveTableFeeds","stopEvolutionLiveFeeds","refreshThirdPartyVouchers","closeCurrentDetailHistory","campaignId","getRichPageUrl","getDailyDealCampaigns","getJackpotsWithState","getJackpotAmountByGameType","getNumberOfAwaitingMessages","openOmgAwaitingMessages","getFreeplayVouchers","toasterData","showToaster","plainNumber","getBankroll","loadSafezoneSdk","getProductPackage","getPlatformSystemID","getSkin","getClientPlatform","getVersion","getCulture","shouldPreventLoginToEnforceHybridAppForMobileWeb","shouldPreventOpenGameForMobileWebApp","getBrandName","getMinimumAge","getSafeToPlayURL","onOrbitInitComplete","getEnvironment","pushDataToDataLayer","getCountryIso3","getSupportedStates","getWrongLocationDetectionPath","requestData","httpPost","httpGet","tagId","loadScript","getRefreshToken","overlayZIndex","fireDepositWidgetClosed","getToken","openHistoryLink","getGeoLocationInfo","getDownloadAppLink","isDepositWidgetSupportedByHybrid","promptPushNotificationPermissionRequest","content","openPopUpOnSecondWebView","closePopUpOnSecondWebView","bringOmgToFront","getBurnoutAnimationZIndex","getCompanyByName","request","openHistoryGame","currentRegulation","getCurrentBrowserTabId","hasOpenOverlays","gnwp","scriptLoader","startGeoLocationOnOpenRealGame","buttons","sdkButtonToModalButton","sdkBtnOpts","cssClass","primarySdkButton","secondarySdkButton","modalDialogButtonsComponentProps","getButtonsForNonRetryGeoFlow","_convertButtonsToOrbitFormat","reject","getRetryMessageButtons","stopGameTimeReminders","isEligibleForGameGeoRetry","NoGamesFilterStrategy","isFilteringAvailable","GamesFilterService","_currentFilteringStrategy","_setCurrentStrategy","currentArena","getGamesFilteringStrategy","filteredGamesMap","urlHash","filterIds","currentAppliedFiltersIds","filterId","renderMobileFiltersIndicator","renderPCFiltersIndicator","showFiltersEditor","OPEN_SAFEZONE_SOURCE_VALUES","CHANNEL","OPEN_SAFEZONE_SOURCE","CLOSE_SAFEZONE_SOURCE_VALUES","SafeZoneDeeplink","ApiListType","ACTIONS","SAFEZONE_EVENTS","UsefulLinkActions","link","_findHandler","linkId","handlerName","charAt","openTransactionHistory","channel","CHANNEL_SOURCE","casinoClient","area","AreaType","UserArea","CHANNEL_ELEMENTS","transactionHistoryButton","openOldCashier","openMyAccount","tabId","ComPoints","openContactUs","target","AppLauncher","apps","CR_HELP_CENTER","enabled","_openHelpWidget","onContactUs","_openLinkAction","appLauncher","openControlCenterFull","businessCorrelationID","tools","getGuid","safezoneUsefulLink","appSpecificParameters","USER_AREA","deeplink","ControlCenterDeeplink","TimeSpentReminderPage","openHelpPage","openHelpWidget","NavigationMenu","AppIdentifiers","CRHelpCenter","CasinoClient","shouldOpenLocal","local","sourceLink","li","boxBorderDark","textHover","backgroundHover","hideArrow","UsefulLinksItemDefaultBox","UsefulLinksItemCasino777Box","UsefulLinksItemCipBox","UsefulLinksItemBox","forCis","ConfigUsefulLink","linkConfig","iconAsset","iconURI","imageAsset","imageAlt","imageURI","renderImageItem","renderTextItem","UsefulLinksItemSideTextBox","SdkUsefulLink","activator","sideText","sideTextClass","ANALYTICS_CATEGORY","USEFUL_LINKS_ACTION","UserMenuService","linkActions","overlay","registerConsumer","reFetchLinks","onTouchIDActiveStateChanged","_fetchLinks","links","_setUsefulLinks","shouldOpen","shouldBeRewards","isRewardsInfo","newLinks","usefulLinks","fetchSteps","_fetchConfigLinks","_fetchSdkLinks","all","stepLinks","combinedLinks","n","orderLinksByPosition","sortingOrder","sortBy","drawer","_doConfigMenuAction","getUsefulLinks","sdkLinks","filteredOutIds","_getSdkFilteredOutUsefulLinksIds","pickedLinks","_doSdkMenuAction","executeAction","current","logoutUser","hour","minute","welcomeMessage","defaultMessage","conditions","ruleHour","ruleMinute","openDeposit","depositButton","openWithdraw","withdrawButton","showLoyalty","menuFlow","hasCustomFlow","executeCustomFlow","continue","externalLinkSource","openMenu","_setIsRewardsInfo","_setIsOpen","right","closeDrawer","GameBadgeDefaultBox","GameBadgeCasino777Box","GameBadgeSIBox","GameBadgeBox","GameBadgeComponent","badgeUrl","supportBadgeOnSquareIcons","lazy","GAME_BOX","GAME_BOX_JACKPOT_TEMPLATE","TWO_LINES_TITLE","ENABLE_HOVER_ANIMATION","SWIPER_MODE","GAME_IMAGE_CONTAINER","SINGLE_GAME_IMAGE","commonGameImageCssMixin","GameImageBox","hide","GameImageAnimatedBox","GameImageAnimatedComponent","animatedImageWrapper","pixiAnimationRegistration","_captureAnimatedImageElementRef","unregister","loadPixiAnimatedIcon","gameAnimatedIconsManager","register","jsonUrl","animationJsonUrl","wrapper","timings","animationTiming","onAnimationLoad","onAnimationBeforeUnload","onAnimationUnload","AspectRatioBox","expectedWidth","expectedHeight","AspectRatioContentBox","useBGColorDuringLoadAnimation","isLoading","AspectRatioContainerComponent","GameImageComponent","_loadAnimatedIconTimeout","onSettled","loadingAnimation","attemptLoadAnimatedIcon","getGameImage","getAnimatedImageTimings","hideStaticImage","onAnimationIconStateChange","abTestingFeatureDataProvider","animatedGameIconsDisabled","seoAlt","getImageSeoAlt","imgUrl","useLazyLoad","useLazyLoading","getGameImageExpectedSizes","onLoadStart","onLoad","GameImageContainerComponent","_handleImageDoneLoading","gameItemImageRef","createRef","allowTap","elementRef","onOpenRealGame","isCasinoGameIcon","playRealGameButton","GameTitleDefaultBox","GameTitleCasino777Box","textContrast","GameTitleCipBox","GameTitleSIBox","GameTitleBox","MinMaxBetAmountDefaultBox","dangerLight","mAndAbove","MinMaxBetAmountCasino777Box","MinMaxBetAmountSIBox","MinMaxBetAmountBox","InfoPageButtonComponent","infoIcon","onOpenInfoPage","margin","GameButtonsBox","PlayDemoButtonComponent","onOpenAnonymousGame","GameDetailsContainerDefaultBox","squareGameIcon","horizontalLineGlowPC","horizontalLineGlowMobile","GameDetailsContainerCasino777Box","GameDetailsContainerBox","JackpotAmountDefaultBox","JackpotAmountCasino777Box","JackpotAmountSiBox","small","JackpotAmountBox","GameInfoContainerBox","AmountContainerBox","TwoRowsGameTitleContainerBox","GameDetailsContainerComponent","disableGameInfoHover","allowHoverDetails","hasInfoPage","allowDemoButtonInSingleGame","_allowHoverDetails","_renderJackpot","formattedMinBaxBets","formatMinMaxBet","allowMinMaxBet","_renderMinBaxBet","hasDetails","_hasDetails","hasTwoLinesTitle","_renderAmount","_renderGameInfoSection","_renderGameButtons","HOME_PAGE","xlAndAbove","GameDefaultBox","GameCasino777Box","GameCisBox","GameBox","PlayRealButtonDefaultBox","lowHeight","xlExact","PlayRealButtonCasino777Box","PlayRealButtonBox","isSquareIcon","emptyImage","cardAndTablesSquareBackgroundImage","cardAndTablesBackgroundImage","defaultSquareBackgroundImage","getPlaceholderBackground","ORBIT_TAP","GameImageContainerDefaultBox","VIDEO_ITEM_TYPE","GameImageContainerCasino777Box","GameImageContainerBox","GameNumberBadgeBox","SingleGameRegularTemplateComponent","isMobileOS","showNumberBadge","_renderGameNumberBadge","_renderPlayRealGameButton","CssClassNameBuilder","_classes","classes","c","verticalLineGlow","ultra","SingleGameJackpotTemplateComponent","LiveGameContainerBox","SingleGameLiveTemplateComponent","tableId","liveTable","liveTableFeeds","getTableInfo","fluidWidth","seoCategory","captureGameElementRef","VideoTileBox","newLiveCasino","gridItem","wrapperBorder","VideoOverlayItemBox","capsule","VideoSoundButtonBox","VideoSoundButtonComponent","videoPlayingService","MuteIcon","muteIcon","UnmuteIcon","unmuteIcon","toggleVideoSound","_handleClick","_renderIcon","VideoTileOverlayComponent","_padding","videoPlaying","bottomLeftComponent","left","bottomRightComponent","_renderTopRight","_renderBottomLeft","_renderBottomRight","VideoTileOverlayBox","VideoTileStaticImageOverlayBox","VideoTileSkeletonContainerBox","VideoDefaultBox","video","VideoBox","VideoPlayButtonBox","VideoContainerDefaultBox","displayVideo","videoIsLoading","videoWatchTimeLimitReached","VideoContainerBox","VideoComponent","_videoElement","_isAppVisible","_captureVideoRef","mediaElement","_playVideo","_videoPlayer","_createVideoPlayer","play","_pauseVideo","pause","_detectIfVideoIsInFocus","isInCenterStage","inViewport","_handlePlayVideoClick","logUIAction","_renderPlayerControls","autoplayAllowed","_retryPlay","_destroyPlayer","player","getVideoPlayer","isLastGametype","liveStreamPlayer","setLiveStreamPlayer","onError","onLoading","watchTimeLimitReached","onWatchTimeLimitReached","playsInline","muted","destroy","SkeletonAnimatedButton","borderRadius","SkeletonAnimatedRectangle","VideoTileFooterBox","VideoTileSkeletonbox","DummyTextBox","DummyTextBoxAbsolute","DummyTextBoxRelative","SingleGameSkeletonComponent","placeholderImageSrc","templateType","JACKPOTS_ITEM","_renderJackpotGameSkeleton","LIVE_STREAMING_ITEM","STATIC_VIDEO_ITEM","_renderVideoSkeleton","_renderRegularGameSkeleton","VideoRetryScreenTileBox","VideoRetryScreenIconBox","VideoRetryScreenTitleBox","VideoRetryScreenTextBox","VideoRetryScreenComponent","_retryAndSetError","retryFn","setHasError","BrokenLinkIcon","brokenLinkIcon","sizeUnit","SvgSizeUnit","Rem","sizeVariant","VideoThumbnailImageComponent","_getImageSource","videoThumbnailUrl","tableInfo","TableImage","gameArenaIcon","imageRandom","random","addQueryParam","filterBlur","VideoTileBettingRangeBox","VideoTileGameTitleBox","VideoTileFooterSectionBox","VideoListJackpotValueBox","VideoListJackpotContainerBox","VideoTileFooterComponent","_tableInfo","MinBet","MaxBet","Name","_renderMinMaxBet","_renderGameTitle","_renderSecondaryText","onClickPlay","VideoTileComponent","_posterImageLoadPromise","_retryFn","onPosterImageLoaded","setPosterImageLoaded","_onPlayClickHandler","_hasError","_posterImageLoaded","_isVideoLoading","firstTimeLoadingDone","_isFirstTimeLoading","_isWatchTimeLimitReached","statusText","setIsVideoLoading","setIsWatchTimeLimitReached","_renderVideoThumbnailImage","_renderPlayerOverlay","_renderTileOverlayComponent","_renderRetryScreen","videoItemType","STATIC","isLiveStreamOverlay","_renderPlayer","_renderFooter","_renderSkeleton","_renderStaticImageOverlay","VideoItemContainerBox","stepBackStyle","SingleGameVideoTemplate","_inSwiperIntersectionObserver","_viewportIntersectionObserver","_videoContainerElement","_captureVideoContainerRef","observe","unobserve","_inSwiperIntersectionObserverCallback","entries","entry","setIsInCenterStage","isIntersecting","_viewportIntersectionObserverCallback","setInViewport","_getVideoPlayingService","LIVE_STREAM","liveStreamPlaying","staticVideoPlaying","_inViewport","_isInCenterStage","onBringInCentralView","intersectionObserverOptions","threshold","root","rootMargin","IntersectionObserver","_triggerOnBringInCentralView","disconnect","_createViewportIntersectionObserver","intersectionTarget","_createSwiperIntersectionObserver","_destroySwiperIntersectionObserver","_destroyViewportIntersectionObserver","SingleGameComponent","animatedIconState","openRealGame","_openGame","openAnonymousGame","openInfoPage","setAnimatedIconState","lobbyGameInfoPreview","setGamePreview","openInRealMode","skipIntermediatePage","builder","append","isInsideSwiper","toCssClass","gameCategoryClassName","_buildComponentClasses","LIVE_CASINO_ITEM","JackpotThemeType","GamePlaceHolderBox","embededHybrid","BaseGameImageBox","SingleGamePlaceholderComponent","SwiperWrapperDefaultBox","SwiperWrapperCasino777Box","SwiperWrapperBox","isTouchDevice","SwiperGamesListBox","SwiperBox","OrbitSwiperComponent","_swiperGameListElement","_captureSwiperGameListElement","viewModel","swipeLogicHandler","setElement","_title","_swiperWrapperElement","_shouldUseSquareIcons","showGameTitleOnMultipleLines","onGameBringInCentralView","numberOfGamesSkeletons","placeHolders","numberOfPlaceholders","numSkeletons","skeletons","_renderOneGame","lastGameType","_renderGamesSkeletons","isVisible","renderListHeader","_captureSwiperWrapperElement","isTouch","renderSpecialWidgets","_renderGames","_renderPlaceholders","renderListNavigation","renderListFooter","RecentlyPlayedComponent","max","GamesListBaseModel","_isAISorted","getAiEngine","maxGamesToShowInList","_shouldBeDisplayed","_applyGameTypesTransformations","_getGameTypes","_reduceGameTypes","_sortGameTypes","_distinctGameTypes","sortGames","_numberOfGamesToBeIgnoredInAISorting","gamesFilter","Set","_forceRoundIcons","_useSquareIcons","_renderList","JACKPOT_WIDGET","RED_TIGER_JACKPOT","ListTitleIconDefaultBox","gamesListTitle","dailyJackpot","EXCLUSIVES_LIST_ICON","exclusive","ListTitleIconWsopCipBox","gamesListTitleOverride","ListTitleIconCisBox","ListTitleIconBox","JackpotWidgetDefaultBox","isClickable","JackpotWidgetBox","JackpotWidgetBgBox","shouldRenderSkeleton","JACKPOT_WIDGET_LAYOUT","LANDSCAPE","LANDSCAPE_WIDE","byType","jackpotType","handleBackgroundImage","JackpotWidgetLogoBox","PORTRAIT","handleAmountBoxFontSize","widgetWidth","JackpotWidgetAmountDefaultBox","Cold","JackpotWidgetAmountCasino777Box","themeType","Light","JackpotWidgetAmountSiBox","JackpotWidgetAmountBox","JackpotWidgetFooterBox","JackpotWidgetClockLabelDefaultBox","Hot","handleClockLabelFontSize","JackpotWidgetClockLabelCasino777Box","JackpotWidgetClockLabelSiBox","JackpotWidgetClockLabelBox","JackpotWidgetClockDefaultBox","clock","handleClockBoxFontSize","JackpotWidgetClockCasino777Box","brandPrimaryContrast","JackpotWidgetClockSiBox","JackpotWidgetClockBox","JackpotWidgetClockComponent","updateClockInterval","clockInit","getMustHitTime","clearClockInterval","updateClock","setInterval","serverDate","mustHitDate","remainingTimeMilis","getTime","remainingTimeTimeSp","fromMilliseconds","clockValue","useTotalHours","jackpotsWithState","getThemeType","JackpotWidgetAmountLabelDefaultBox","handleAmountLabelFontSize","JackpotWidgetAmountLabelCasino777Box","JackpotWidgetAmountLabelSiBox","JackpotWidgetAmountLabelBox","JackpotWidgetCollectingLabelDefaultBox","handleCollectingLabelFontSize","JackpotWidgetCollectingLabelCasino777Box","JackpotWidgetCollectingLabelSiBox","JackpotWidgetCollectingLabelBox","JackpotWidgetCollectingAmountDefaultBox","handleCollectingAmountFontSize","JackpotWidgetCollectingAmountCasino777Box","JackpotWidgetCollectingAmountSiBox","JackpotWidgetCollectingAmountBox","animationProps","JackpotWidgetBorderShine","startPos","BorderShineWidth","endPos","borderShineKeyframes","JackpotWidgetRadialShine","RadialShineWidth","radialShineKeyframes","JackpotWidgetAspectRatioBox","handlePaddingTop","JackpotWidgetAmountContainer","JackpotWidgetFooterElementSkeletonBox","JackpotWidgetClockLabelSkeletonBox","JackpotWidgetCollectingLabelSkeletonBox","JackpotWidgetFooterSkeletonBox","JackpotWidgetAmountSkeletonBox","AnimatedIconUnloadReason","JackpotWidgetComponent","_onWidgetClick","widgetConfig","listInfo","getGamesListByJackpotId","_isWidgetClickable","Party","aspectRatioBox","resizeObserverInstance","_captureJackpotWidgetAspectRatioBoxRef","refEl","ResizeObserver","setWidgetWidth","oldRefEl","readyState","imagesReady","Daily","jackpotHandler","currentJackpots","jackpotData","_isJackpotHandlerReady","logo","_setImagesReady","jackpotState","OffHours","Regular","_shouldRenderSkeleton","startGradual","lastWinAmount","WrapperBox","_getJackpotWidgetLayout","mustHitTimeFn","mustHitTime","jackpotAmount","_getCountDownTimerTranslationKey","elementRectangle","JackpotWidgetWrapperBox","RedTigerWidgetDefaultBox","RedTigerWidgetBox","RedTigerWidgetHitAreaDefaultBox","RedTigerWidgetHitAreaCasino777Box","RedTigerWidgetHitAreaBox","RedTigerWidgetFrameContainerDefaultBox","iframe","RedTigerWidgetFrameContainerBox","RedTigerWidgetComponent","redTiger","redirectToWidgetActionLink","actionLink","skin","_logMissingProps","frameBorder","scrolling","getWidgetUrl","GeneralTitleCasinoSIBox","GeneralTitleBox","ListTitleTextDefaultBox","redTigerJackpot","ListTitleTextCasino777Box","ListTitleTextCipBox","ListTitleTextCisBox","ListTitleTextSiBox","ListTitleTextMrGreenBox","ListTitleTextBox","forMrGreen","ListTitleDefaultBox","ListTitleCasino777Box","ListTitleCipBox","ListTitleCisBox","ListTitleBox","GameListTitleComponent","cssClasses","SwiperButtonsDefaultBox","SwiperButtonsCasino777Box","SwiperButtonsBox","SwiperButtonBox","OrbitSwiperButtons","onSwiperButtonPrevClick","swiper","movePrevious","onSwiperButtonNextClick","moveNext","seeAllClickHandler","seeAllButtonUrl","allowNext","allowPrevious","fixedSize","backIcon","forwardIcon","reverseOnRTL","_renderMoveNextAndPreviousButtons","_renderSeeAllButton","SwipeLogicHandler","_gamesListViewModel","_resizeEventHandler","_isRTLLanguage","_isSwiperOnTheMove","_mobileScrollingTimeout","_onMobileSwipe","isRTLLanguage","_unsubscribe","_element","_setScrollWidth","scrollWidth","_currentTranslateAmount","getElementHorizontalTranslationAmount","resetScrollPosition","transform","resize","updateScrollWidth","addEventListener","removeEventListener","_maximumTranslationAmount","getElementWidth","_scrollWidth","_width","computeIncrement","currentTranslateAmount","increment","translateAmount","_slide","absoluteCurrentTranslationAmount","SwiperListBaseModel","listConfiguration","_swipeLogicHandler","apiListType","getTranslation","_getTitleTranslationParams","HourlyCaptain8","shouldInjectUsernameInTitle","ignoreNumberOfGamesInAISorting","seeAllConfig","seeAll","useAISortedList","isFilterOn","_getNumberOfGamesSkeletons","_reduceGameTypesForJackpotsItemTemplateInHomePage","isHomePage","forceListInLayout","redTigerWidget","forceRoundIcons","onClickHandler","_renderJackpotWidget","_renderRedTigerWidget","_renderHeaderIconAndText","_getTitleCssClasses","_renderSwiperButtons","_seeAllUrl","titleIconClassName","_isJackpotWidgetHost","_isRedTigerJackpotWidgetHost","_renderHeaderIcon","_renderHeaderText","ApiListBaseModel","RecentlyPlayedListModel","listKey","TopPicksComponent","TopPicksListModel","AiNewGamesListComponent","NewGamesListModel","aiNewEngine","aiNewRecommendedGames","PlayersLikeYouComponent","PlayersLikeYouListModel","_computeGameTypes","playersLikeYouGamesListTypeId","topCount","topNumber","countryName","StaticSwiperListModel","GamesGridBatchComponent","isResolved","_intersectionObserver","_intersectionObserverCallback","intersectionRatio","_destroyIntersectionObserver","_captureThresholdElement","_createIntersectionObserver","listTitleTranslationKey","nextBatchGameTypes","propsForNextBatch","batchIndex","batchIndexOffset","currentBatchGameTypes","_renderNextBatch","_renderCurrentBatch","GamesGridDefaultBox","GamesGridCasino777Box","GamesGridBox","NoGamesFoundMessageBox","p","GamesGridContainerBox","CGP_GAME_OPEN","GamesGridComponent","_renderNoGames","GamesGridListModel","gridConfig","_shouldSquareIconsBeUsed","LiveCasinoListModel","moveGamesThatOpenSoonToTheEnd","BecauseYouPlayedComponent","runningGame","BecauseYouPlayedPlayedListModel","listenForLastPlayedRealGame","becauseYouPlayed","lastPlayedGames","currentBecauseYouPlayedGames","gInfo","LiveStreamingListTitleBox","LiveStreamingTitleIconBox","LiveStreamSwipeLogicHandler","_services","_touchStartX","_swipeDirection","_touchDragThreshold","_swipeTransitionCss","_handleTouchStart","changedTouches","clientX","_handleTouchEnd","_handleTransitionEnd","firstElementChild","transition","_setIsNavigationAllowed","_currentGameIndex","allowed","overflow","moveOnVideoFinished","_reportSwipeToAnalytics","prepend","lastElementChild","requestAnimationFrame","swipeToLeft","isAutoSwipe","nextGame","swipeFromGameId","swipeFromGameIndex","swipeToGameId","LiveStreamingNavigationCommonBox","isActive","VideoListNavigationPrevButtonDefaultBox","VideoListNavigationNextButtonDefaultBox","VideoCutCommonBox","VideoListLeftCutDefaultBox","VideoListRightCutDefaultBox","VideoListNavigationPrevButtonBox","VideoListNavigationNextButtonBox","VideoListLeftCutBox","VideoListRightCutBox","VideoListComponent","_onGameBringInCentralView","setCurrentGameIndex","_getLastGameType","DefaultVideoListModel","_offsetStorageKey","storedValue","baseArray","_gameTypesOffsets","_getGameTypesOffsetFromLocalStorage","newOffset","gTypes","lastGame","unshift","PrevIcon","leftArrowIcon","NextIcon","viewBox","filterUnits","dx","dy","stdDeviation","in2","in","fill","LiveStreamingVideoListModel","_isLiveStreamDisabled","isVideoLiveStreamEnabled","isDisabledPrelogin","_cycleGamesAndIncrementOffset","hasVideoURL","tablesData","gType","openTablesIds","StaticVideoListModel","_isStaticVideoListDisabled","isStaticVideoListEnabled","setSwiperHandler","ListFactory","RECENTLY_PLAYED","TOP_PICKS","NEW_GAMES","PLAYERS_LIKE_YOU","LIVE_CASINO_VIDEO","STATIC_VIDEO","BECAUSE_YOU_PLAYED","ArenaBaseModel","_postLoginListsSortOrderStorage","_listFactory","_updateAIEngineSwipersSortOrder","Filters","useAdvancedFilters","_aiEngineListsSortOrder","_isUsingExternalAIForSwipersSorting","_getSwipersConfigurations","sw","_setAiEngineListsSortOrder","swipers","_getSwiperIdToPutOnTop","listIndex","originalSwipers","scores","notForcedInLayoutSortedSwipers","forceInLayout","s1","s2","sortedSwipersConfigs","gameList","mappedGameList","shift","_createAllLists","_sendGameListsAnalytics","_getGridsConfigurations","g","allLists","_appendGrids","_limitTheNumberOfSwipers","_saveSwipersPostLoginSortOrder","_sortSwipersByPostLoginOrder","_movePreferredSwiperOnTop","_sortSwipersByAI","_createSwipers","maxSwipersToShow","maxNumberOfSwipers","_renderListAndBanner","_renderPromotionalBanner","currentListPosition","saveSortOrder","sortLists","_createSwiper","_createGrid","createGrid","createSwiper","_getPromotionalBannerConfig","bannerMinHeight","_getBannerMinHeightInPixels","HomepageHeaderArenaIconDefaultBox","useSmallHeaderArenas","headerArenaIconDropShadow","HomepageHeaderArenaIconSIBox","HomepageHeaderArenaIconBox","HomepageHeaderArenaTitleDefaultBox","HomepageHeaderArenaTitleSIBox","brandSecondaryContrast","brandSecondaryLight","HomepageHeaderArenaTitleBox","HomepageHeaderArenaBadgeDefaultBox","indicatorBadge","backgroundInGridLayout","HomepageHeaderArenaBadgeSIBox","HomepageHeaderArenaBadgeBox","HomePageHeaderArenasContainerBox","HomepageHeaderArenaLinkBox","HomepageHeaderArenaSkeletonDefaultBox","HomepageHeaderArenaSkeletonSIBox","HomepageHeaderArenaSkeletonBox","HomePageHeaderArenaIconComponent","aspectRatioSizes","_handleDoneLoading","HomePageHeaderArenasComponent","_handleArenaAction","jsonAction","_handleArenaRedirect","prop","placeholder","dynamic","seoConfig","categories","preventDefault","newGamesIndication","homepage","newAddedGames","_handleArenaClick","enableTap","homePageArenaDefaultPlaceHolder","_getSeo","headerArenas","_renderOneHeaderArena","HomepageTopBannerBackgroundBox","homepageTopBannerPlaceholder","HomepageTopBannerDividerBox","FreeToPlayAnimatedIconDefaultBox","FreeToPlayAnimatedIconBox","GAME_ORIENTATION_IDS","AnimatedIconBaseService","observedTarget","reason","animationDisposer","loadingInProgress","abortLoading","resourceName","pixiApp","createPixiApp","onContextLost","attemptDisposeAnimation","CONTEXT_LOST","app","disposePixiApp","PixiSpine","canvas","loadResources","resources","spineAnimation","Spine","spineData","availableAnimations","animations","runAnimation","setAnimation","addListener","complete","animationSchedule","stage","addChild","appendChild","FreeToPlayAnimatedIconComponent","iconRequestOptions","freeToPlay","iconObservableTarget","_openBonusWheel","showPromotion","floatingIcon","REQUESTED","requestOptions","loadFreeToPlayAnimation","isPromotionEligible","isPromotionOpened","onPointerUp","_captureElementRefForIcon","playerRMSStatus","HomePageComponent","topBannerProps","getTopBannerProps","useAdminBanner","seoSection","linkToOffer","MOVE_TOP","_renderTopBanner","_renderHomePageArenaHeaders","_renderDailyDealBox","_renderSeoBanner","_renderLinkToOffer","HomePageArenaModel","postLoginListsSortOrderStorage","routeDefinition","resetNewAddedGames","gameGroupOrientation","userGameOrientation","groupId","listOnTop","promotionalBanner","displayPlace","gamesInfo","ArenaPictureBox","ArenaTitleBox","ArenaDescriptionTextBox","textMiddleDark","lobbyInfoKeyframes","LobbyGameInfoBox","STICKY","ArenaInfoPreviewComponent","arenaPictureLoading","arenaInfo","isSticky","previewImage","description","PcGamePreviewTitleComponent","gameTitle","GameInfoPreviewComponent","_onMouseEnter","pinCurrentGamePreview","_onMouseLeave","unPinCurrentGamePreview","PcGameInfoPreviewComponent","enableGamePreview","disableGamePreview","enabledOnPC","stickyHandler","ARENA_TYPES","CasinoArenaComponent","_stickyHandler","stickyHandlerFactory","createStickyHandler","classList","remove","getArenaConfig","sideBarInfo","infoSideBar","infoTitle","infoText","infoImage","topImage","showSearchIcon","arenaFiltersRenderingOptions","filtersConfigurationToMap","filtersConfiguration","toDictionary","ApplyGameFilterResult","GamesFilterStrategyBase","_filtersCategories","addReaction","_filterGames","_createFiltersCategories","filtersCategories","availableFilters","f","currentFilters","some","isApplied","_createEvaluator","game","filterResult","applyFilter","IncludeGame","FilterByBox","large","PreviewBox","OpenContainerBox","FilterItemTitleBox","TitleContainerBox","TitleBox","FilterItemBox","InputBox","input","FilterCategoryComponent","_onFilterToggle","toggleFilter","filters","visibleFilters","inputType","isMultiSelect","checked","readOnly","gamesCount","activeFiltersTexts","getAllAppliedFilters","hasSubCategories","subCategories","onCategoryToggled","_renderFilterList","subCat","FilterCategoriesListComponent","openFilterCategory","_onCategoryToggled","openFilterCategoryState","filtersEditor","visibleCategories","AdvancedGamesFilterComponent","_onApply","applyFilters","back","AdvancedGamesFilterDrawerRenderer","isMinimized","minOverlayZIndex","supportsCloseIntent","ArenaGameFiltersCategoryEditor","arenaGameFilterCategory","_filters","_subCategories","createEditor","shouldBeDisplayed","subCategoryFilterIds","selectMany","subcategory","filterEditor","enable","AdvancedStrategyFiltersEditor","_categories","getAppliedFiltersIds","_getAppliedFiltersIds","AndGameFiltersEvaluator","_evaluators","NotApplicable","ExcludeGame","AND","FiltersMobileButtonDefaultBox","FiltersMobileButtonCasino777Box","FiltersMobileButtonBox","FiltersMobileIconDefaultBox","FiltersMobileIconCasino777Box","FiltersMobileIconBox","FiltersMobileButtonComponent","shouldHideFiltersButtonMobile","IndicatorContainerBox","family","AdvancedGamesFilteringPcIndicatorComponent","_onRemoveFilter","cursor","_getAppliedFilters","_renderOneAppliedFilter","_renderAppliedFilters","ArenaGameFiltersCategoryBase","categoryDefinition","_createSubcategory","subC","appliedFilters","_appliedFilters","arenaFilter","filterDefinition","ArenaGameFilterEditor","arenaGameFilter","_on","_setOn","_disabled","isAdhocFilter","ArenaGameFilterBase","categoryEditor","isFilterApplied","DynamicArenaGameFilter","allArenaGamesForFiltering","DynamicArenaGameFiltersCategory","_availableFilterEvaluator","_getAvailableFilters","availableFilterEvaluator","_createArenaGameFilter","uniqueGameTypes","add","OrGameFiltersEvaluator","OR","FilterCategoryDefinitionBase","_loadAvailableFilters","subcategoriesFiltersEvaluators","appliedSubcategoryFilters","hasFilter","thisCategoryFilters","_getAppliedFiltersForThisCategory","_getSubcategoriesFiltersEvaluators","GameFilterDefinitionBase","HighVolatilityFilterDefinition","hasHighVolatility","LowVolatilityFilterDefinition","hasLowVolatility","MediumVolatilityFilterDefinition","hasMediumVolatility","VolatilityFiltersCategoryDefinition","GameFeatureFilterDefinitionBase","_shouldIncludeGame","OneToTwentyFiveFilterDefinition","TwentyFivePlusFilterDefinition","NewGameFilterDefinition","isNewGame","LowStakeFilterDefinition","hasLowStakes","BonusGameFilterDefinition","FreeSpinsFilterDefinition","GameFeaturesFiltersCategoryDefinition","HasJackpotFilterDefinition","HasNoJackpotFilterDefinition","HasDailyJackpotFilterDefinition","hasDailyJackpot","HasTwilightJackpotFilterDefinition","hasTwilightJackpot","HasCaptain8JackpotFilterDefinition","hasCaptain8tJackpot","JackpotTypesFiltersCategoryDefinition","HasJackpotFiltersCategoryDefinition","VendorFilterDefinition","_vendorName","_text","_vendorNameWithoutSpaces","removeSpaces","GameVendorFiltersCategoryDefinition","GameGroupFilterDefinitionBase","gameGroupsIdsToFilterFor","textToSearchInSubgroupName","subgroupName","BaccaratFilterDefinition","BlackjackFilterDefinition","CrapsFilterDefinition","KenoFilterDefinition","LiveEliteLungeFilterDefinition","LiveEliteLoungeOrExclusiveFilterDefinition","isExclusiveGame","LiveGameShowsFilterDefinition","PokerFilterDefinition","RouletteFilterDefinition","ScratchcardsFilterDefinition","SlotsFilterDefinition","GameGroupFiltersCategoryDefinition","GameThemeFilterDefinition","hasTheme","GameThemeFiltersCategoryDefinition","allThemes","Number","FilterCategoryDefinitionFactory","categoryDefinitionId","AdvancedGamesFilterStrategy","_factory","advancedFilters","filterCategoryDef","createCategoryDefinition","NextToArenaTitle","reactElement","_createFiltersEditor","FilterLinkIconDefaultPCBox","FilterLinkIconDefaultMobileBox","brandPrimaryDark","FilterLinkIconDefaultBox","FilterLinkIconCasino777Box","MobileSIBox","FilterLinkIconSIBox","FilterLinkIconBox","FilterLinkDefaultBox","lAndAbove","FilterLinkCasino777Box","backgroundActive","FilterLinkSIBox","FilterLinkBox","FilterLinkComponent","_onFilterClick","onChange","CommonStyles","FiltersGamesListBox","FilterLinkListComponent","_toggleHandler","onToggle","_renderOneFilter","FiltersGamesMobilePopupBox","FiltersMobileButtonsBox","FiltersGamesListMobileComponent","_closePopup","_applyFilters","checkedFiltersIds","_clearFilters","_onToggleFilter","_renderPopupButtons","SimpleStrategyFiltersEditor","_sortFilters","filtersConfigurations","filtersConfigurationMap","f1","f2","OtherFilterDefinition","allOthersCategories","categoriesInCurrentArena","currentArenaCategories","isGameIncludedInThisCategory","OtherFiltersCategoryDefinition","otherAvailableCategories","StaticArenaGameFilter","StaticArenaGameFiltersCategory","_createFiltersForCurrentArena","currentArenaFiltersConfigurations","FiltersGameListPcBox","FiltersGamesListPcComponent","_toggleFilter","AdhocArenaGameFilter","CompanyFilterDefinitions","_companyName","AdhocArenaGamesFiltersCategory","isApplicableForCurrentArena","_createDynamicFilters","appliedFilterId","dynamicFilterDefinition","_createDynamicFilterById","parts","SimpleGamesFilterStrategy","_vendorCategory","Lazy","_groupCategory","_featuresCategory","_othersCategory","_adhocCategory","mobileCenterHeader","applyMaxHeight","BelowArenaTitle","CasinoLobbyArenaModel","isCasinoGame","VoidArenaModel","POST_LOGIN_LISTS_ORDER_KEY","ListsSortOrderStorage","_listsSavedOrder","getJson","_createEmptyListsOrder","listsOrder","_getSavedListsOrder","setJson","arenaListsOrder","listsOrderMap","l1","l2","LiveCasinoFilterButtonIconDefaultBox","isActiveTab","LiveCasinoFilterIconSIBox","LiveCasinoFilterButtonIconBox","filterButtonLabel","LiveCasinoFilterButtonLabelDefaultBox","LiveCasinoFilterButtonLabelCasino777Box","LiveCasinoFilterButtonLabelSIBox","LiveCasinoFilterButtonLabelBox","LiveCasinoArenaNavbarButtonDefaultBox","Link","filterButtonBackground","ipad","LiveCasinoArenaNavbarButtonCasino777Box","LiveCasinoArenaNavbarButtonSIBox","iconBackgroundActive","LiveCasinoArenaNavbarButtonBox","LiveCasinoArenaNavbarButton","buttonIconMap","Map","rouletteIcon","pokerIcon","blackjackIcon","baccaratIcon","eliteLoungeIcon","gameShowsIcon","newGamesIcon","topGamesIcon","tripleEightExclusiveIcon","iconKey","trim","has","IconComponent","_getButtonIcon","seoPage","onFilterClicked","buttonLabelRef","NewLiveCasinoArenaComponent","_topImageRef","updateAiRecommendedLiveGames","FilterButtonComponent","LIVE_CASINO_PAGE_WRAPPER","_renderLiveCasinoArenaNavbar","tablesConfigs","promotionalBannerConfig","NewLiveCasinoArenaModel","LiveCasinoArenaComponent","default","LiveCasinoArenaModel","ArenasService","_arenas","_loadArenas","_createArena","arenasConfigs","arenasWithoutFilterButton","BreadcrumbsItemComponent","noLinkClass","itemProp","itemScope","itemType","NonNavigatableBreadcrumb","NavigatableBreadcrumb","_url","_navigate","SiteMapNode","_urlParts","_children","_loadChildren","UriPath","toArray","ch","requestedUrlParts","_createChildrenBreadcrumbs","childBreadcrumbs","createBreadcrumbs","child","toFlatSiteMap","SiteMapService","_root","_flatSiteMapByUrl","_initSiteMap","uri","_setBreadcrumbs","_createBreadCrumbs","sitemap","breadcrumbs","uriPath","uriParts","MarketingService","sCut","_sCut","_sCutQueryParams","urlParts","getUrlWithoutSearchAndHash","parameterName","parameterValue","dlAsNumber","sCutData","additionalParams","testData","_convertParameterToNumber","dlp","_getDlp","encodeUriRecursive","sr","TestData","AdditionalParams","LanguageSwitcherItem","_executeOnClickJs","openSelf","_createCookie","sendFunnelParameters","appendSCutToUrl","createDomainCookie","onClickJs","Function","func","LanguageSwitcherSection","_fallbackTitleKey","_items","SelectedLanguageSwitcherItem","LanguageService","_defaultLanguageData","_lastUrlWithoutTheFragmentQueriedForLanguageSwitcher","_loadLanguageData","_isLanguageSwitcherEnabled","_setLanguageSwitcher","languageSwitcher","_updateLanguageSwitcher","getElementsByTagName","contains","textOverrides","_getDefaultTexts","_setTranslatedTexts","langSwitcherConfig","languagesSection","_extractLangSwitcherSection","languages","languageSettings","countriesSection","countries","countrySettings","items","itemsConfig","sectionConfig","fallbackTitleKey","cfg","cmsApi","getLanguageSwitcherConfiguration","isCustomLink","isCustomElement","SideMenuService","_linkAction","_setIsMobileMenuOpen","gameSearch","closeSearchResult","closeMobileLanguageSwitcher","flowResult","closeOverlay","isExternalLink","isInternalLink","_internalLink","_externalLink","proceedLink","tabState","useDirectLink","noConcatScut","openExternalBrand","isMobileLanguageSwitcher","SUGGESTED_CATEGORIES","OpenMembershipResponse","GameSuggestion","_gameInfo","_analyticsLabel","_index","_aiSortingType","aiSortingType","SearchLinkSuggestion","_linkConfig","_analyticsAction","GameSearchResult","_games","_suggestedCategories","_suggestedGames","SearchTitleBox","SearchBoxTitleComponent","SearchGamesListBox","SearchLinkBox","SearchNoGamesFoundDefaultBox","SearchNoGamesFoundCasino777Box","SearchNoGamesFoundBox","SearchGameItemBox","SearchMatchBox","HighlightSearchListItemComponent","searchText","removeSpecialCharacters","currentSearchText","beforeHighlightText","highlightText","numberOfSpecialCharacters","afterHighlightText","SearchTextWrapperBox","SearchGameItemComponent","_onClickHandler","searchSuggestion","SuggestedGamesComponent","suggestedCategory","_renderGame","MoreGamesBox","shouldDisplay","FoundGamesComponent","_hasMoreItems","loadedGamesCount","searchResult","suggestedGame","isPC","active","onLoadMore","gamesToRender","_renderMoreGames","suggestedGames","_renderFoundGames","_renderNoSearchResultMessage","SearchResultItemBox","SlotsSearchLinkDefaultBox","SlotsSearchLinkCasino777Box","SlotsSearchLinkBox","LiveSearchLinkDefaultBox","LiveSearchLinkCasino777Box","LiveSearchLinkBox","CardAndTableSearchLinkDefaultBox","CardAndTableSearchLinkCasino777Box","CardAndTableSearchLinkBox","RegularSearchLinkDefaultBox","RegularSearchLinkCasino777Box","RegularSearchLinkBox","SearchResultItemComponent","iconStyle","_renderSearchLinkBox","linkIconClass","SearchLinksListBox","ul","SuggestedLinksComponent","_renderSuggestedCategory","_renderSuggestedCategories","isHybridAndroid","SearchFormResultsDefaultBox","SearchFormResultsCasino777Box","SearchFormResultsBox","SearchFormResultsWrapperDefaultBox","SearchFormResultsWrapperCasino777Box","SearchFormResultsWrapperBox","defaultState","loadedGames","SearchResultComponent","_onLoadMore","moreItems","_resetState","isSearchInProgress","suggestedCategories","isSearchBoxOpened","isIOS","searchResultComponentRef","_renderSearchResults","SearchClearIconDefaultBox","visible","SearchClearIconCasino777Box","SearchClearIconBox","SearchInputMobileDefaultBox","SearchInputMobileCasino777Box","SearchInputMobileBox","SearchBoxMobileIconDefaultBox","SearchBoxMobileIconCasino777Box","SearchBoxMobileIconBox","SearchInputArenaMutual","SearchInputArenaDefaultPCBox","SearchInputArenaDefaultMobileBox","SearchInputAreaDefaultBox","SearchInputAreaMutual","SearchInputAreaCasino777PCBox","SearchInputAreaCasino777MobileBox","SearchInputAreaCasino777Box","SearchInputArenaHarrahsPCBox","SearchInputArenaHarrahsBox","SearchInputMutual","SearchInputAreaPCBox","SearchInputAreaMobileBox","SearchInputAreaCasino888Box","SearchInputAreaBallysDoverPCBox","SearchInputAreaBallysDoverBox","SearchInputAreaDelawareParkPCBox","SearchInputAreaDelawareParkBox","SearchInputAreaHarringtonPCBox","SearchInputAreaHarringtonBox","SearchInputArenaSIPCBox","SearchInputArenaSIBox","SearchInputAreaBox","forCasino888","forHarrahs","forBallysDover","forDelawarePark","forHarrington","SearchInputArea","_onChangeHandlder","openSearchResult","searchInputRef","autoComplete","SearchInputMobileComponent","_onResetSearchTextHandler","focus","_showResetSearchIcon","SearchInputFormBox","SearchPCIconBoxDefault","SearchPCIconCasino777Box","SearchPCIconHarrahsBox","SearchPCIconWSOPBox","SearchPCIconBox","forWsop","SearchInputPCComponent","GameSearchMobileDefaultBox","GameSearchPCDefaultBox","GameSearchBox","GameSearchComponent","_onUpdate","searchComponentRef","_renderSearchInput","GameSearchService","_closeMobileSideMenuOnSearchClose","_miniOrbitSearchBoxDialogHandler","_searchInputRef","_searchComponentRef","_searchResultComponentRef","_gamesSearchListCache","_documentClickSubscription","_closeMiniOrbitSearchDialog","_closeFullOrbitSearchResult","_disposeDocumentClickSubscription","_handleClickOutsideSearchComponent","_setIsSearchBoxOpened","_setCurrentSearchText","_setDefaultSearchResult","_resetGamesSearchListCache","_buildGamesSearchList","onClosed","forceFullscreenTablet","click","_openMiniOrbitSearchDialog","_openFullOrbitSearchResult","openMobileMenu","gamesSuggestions","aiSortingTypeForAnalytics","aiGames","quickLinks","quickLinkConfig","_setSearchResult","_getGameSuggestion","regEx","RegExp","_getSearchResult","_searchForGames","_getDefaultSuggestedCategories","_searchForSuggestedCategories","gameTypeToGameInfoObj","gamesSearchList","sortGamesByAI","suggestedCategoriesOptions","option","categoryConfig","_createSuggestedCategory","categorySuggestion","defaultSuggestedCategories","suggestion","gameID","ExternalLinksLegacyStrategy","onPlayerAction","_onPlayerActionHandler","actionName","openCashier","registration","StraightToCashier","marketingData","sdkOpenParams","addCloseOption","priorityLevel","resolveByCallback","actionCallback","response","deposit","unknown","GNWP_SOURCES","PENDING_PLAY","rich","richPageUrl","PRIORITY_LEVEL","INTERNAL_OVER_EXTERNAL_LINK","externalBrandLink","stateOfResidenceIdentifier","prepareUrlForExternalBrand","UseModernStrategy","ExternalLinksModernStrategy","_handlers","myAccount","ExternalLinksService","_strategy","openResponsibleGamblingLink","openOldChat","openDownloadApp","openUploadDocument","openMembership","openPendingPlayApplication","openSafeToPlay","openRichPage","openSport","openInternalUrl","openExternalUrl","CmsApiService","_404PageContent","getCMSOrigin","cmsPublicationId","bannersIds","headers","_getBannersRequestOptions","isSiteInfraAWS","_getBannersRequestUrl","_getBannersRequestParamsGET","_getBannersRequestParamsPOST","post","bannersDescriptions","fileNames","_readFallbackBanners","files","configuredFallbackUrl","_getFallbackUrlFromConfig","promises","computedFallbackUrl","promise","customQueryParams","_getPagesRequestOptions","currentMiniOrbitConfig","uriParams","UriParams","addParam","_publicationID","_addSlashesInTheSides","getAllParams","hasParam","originalName","cmsPageContentApiUrl","_apiOrigin","fallbackCMSComponentsPath","createUrlSearchParams","bannerId","publicationid","PagePlaceHoldersXML","encodeURIComponent","componentsParams","createHeaders","addXXContext","userSignature","getCmsUserSignature","signature","_getSegmentesRequestOptions","_isRouteToHtmlFile","BannerContentComponent","_bannerContentDecorator","_bannerContentElementRef","_captureBannerContentElementRef","_redecorateBannerContent","_disposeBannerContentDecorator","innerHTML","html","CmsContentDecorator","BannerDefinition","_html","CmsBannersService","_currentUsedBannersIds","_reloadBannersContent","_readBanners","_setBanners","hasBannerContent","newBanner","bannersIdsCollection","BannersIdCollection","getBanners","cmsResponseData","bannersWithContent","_extractBannersWithContent","bannersIdsWithoutContent","exclude","bannerInfo","fallbackBanners","requestedBannersIdsCollection","bannerData","Content","getOriginalBannerId","ComponentId","TemplateId","bannersIdsWithFallbackFile","fallbackFileName","bannersIdsGroupedByFallbackFile","_groupBannersIdsByFallbackFile","getFallbackBanners","fallbackData","file","bannerContent","_createBannersDefinitionsWithContent","_originalBannersIds","_originalBannersMap","templateId","isMatch","bannersIdsToExclude","bannersIdsToExcludeMap","CmsPagesService","_currentUri","_isFirstLoad","injectedPageMetaTags","_loadCmsPage","_reloadCurrentPageContent","pageDefinition","currentPage","headerTags","prepareElementSelector","elementType","attributes","attributesQuery","query","attributeName","metaTags","tag","rest","previous","parentNode","replaceChild","headerTag","metaTag","querySelector","injectedPageMetaTagPreviousElement","createElement","head","cloneNode","setAttribute","setElementAttributes","addMetaTags","equals","pageElement","getElementById","isOrbitRoute","_loadPageContentWithSpinner","_loadPageContentFromDOM","isB2CRoute","spinner","startSpinner","_loadCmsPageFromApi","stopSpinner","newPage","_setCurrentPage","urlQueryParams","_getPageData","pageData","setDocumentTitle","setCurrentPageMetaTags","headTags","_updateLocation","elementIdToBeScrolledIntoView","getPageContent","get404PageContent","CmsSegmentationService","_loadDefaultSegments","_loadSegmentsFromCmsApi","_setSegments","newSegments","uniqueSegments","getSegments","getSegmentsOverride","isBoolean","_isCIS","isExternalBrand","_isCIP","DeepLinkActionBase","deepLinkBuilder","param","CashierDeepLinkAction","_executeCurrentAction","_executeNextAction","_buildCashierOptions","urlParams","externalClick","deepLink","buildDeepLinkUrl","cashierParams","PromCode","LoginDeepLinkAction","openLogin","PlayGameDeepLinkActionBase","_getGameType","_shouldOpenGameInWebApp","deepLinkToString","_suggestCorrelatedGame","getIsRealMode","gamesInfoArray","suggestedGameType","suggestedAIGameTypes","randomGameIndex","gamePopup","showSuggestedGame","PlayGameRealDeepLinkAction","PlayGameDemoDeepLinkAction","RegisterDeepLinkAction","closeAllDialogs","_openCashier","_playGame","cashierAction","_findNextActionOfType","actionType","next","isActionOfType","MyAccountDeepLinkAction","RedirectDeepLinkAction","TerminateDeepLinkAction","UploadDocumentDeepLinkAction","FreePlayDeepLinkAction","freePlayArriveSubscribe","onFreeplayVouchersUpdated","openRewards","OpenListDeeplinkAction","getListConfig","verticalGamesList","OpenListDeeplinkByTitleAction","getGamesListByTitle","OpenListDeeplinkByIdAction","getGamesListById","ControlCenterDeeplinkAction","safezone","LOBBY","FreeToPlayDeeplinkAction","waitForEligibility","gameStage","specificParams","DeepLinkActionsFactoryService","_actionsPrototypes","my_account","terminate","parser","deepLinkParser","getParserFromCurrentRoute","_createActionsFromParser","actionInstance","actionPrototype","getParserFromDeepLinkObject","actionsDescriptors","getActionsDescriptors","getDeepLinkBuilder","actionDescriptor","SdkComponentFactoryService","StickyHandler","_onScrollSubscription","_scrollTopMinValue","onWindowScroll","_setIsSticky","scrollY","_updateHeaderHeight","scroll","_isSticky","getHeaderElement","offsetHeight","StickyHandlerFactoryService","BooleanGamePreviewFeature","_name","MoneyGamePreviewFeature","_shouldRenderWhenEmpty","_extractValue","NumericGamePreviewFeature","GamePreviewFeaturesSelectorService","_gameGroupToFeatureMapping","PF","disabledFeatures","GameRouteHandlerService","_onGameOpenSubscription","_onGameCloseSubscription","_currentUriAndGamesMapReaction","_shouldSkipNextCloseGameRedirect","_previousUri","_isOpenGameFromUrlInProgress","_subscribeToGameEvents","_subscribeToUriAndGamesMapChanges","isFirstSubscription","_isOpenGameUri","_tryOpenGameFromUrl","_onGameOpen","_onGameClose","startsWith","eventParams","_unsubscribeFromUriAndGamesMapChanges","_getOpenGameFragment","finally","urlToGoBack","lastAttemptToOpenGameFromUrl","currentFragment","fragmentParts","_setLastAttemptToOpenGameFromUrl","_unsubscribeFromGameEvents","redirectToHistory","LauncherOverridesReader","_storage","cgp_client","LAUNCHER_DATA_STORAGE_KEY","clientData","orbitSpecificOverrides","_getLauncherOverrides","_getOrbitSpecificConfigOverrides","LauncherService","launcherOverridesReader","addedGameTypesFromSdm","SpinnerService","_startTime","_setSpinningStartTime","performanceNow","isSpinning","WebVitalsService","_siteNavCLSReported","_reportedCLSPages","_reportLCP","lastRoute","_logCustomObjectToElastic","_clsData","_cls","toFixed","_resetCLSData","_lcpData","loadTimeAsNumber","eventAction","eventLabel","orbitWebVitalsData","eventValue","_prepareCustomData","topShiftsCount","b","errDetails","STORAGE_NAME","lcp","cls","clsElements","bigestShift","bigShiftElements","shiftCounter","SESSION_STATUS","MenuFlowService","customFlows","_executeInstallPwa","_openProactiveChat","menuItem","CR_CHAT","textKey","openChat","openMode","ChatOpenMode","Chat","prompt","PokerIntegrationService","onTokenLifetimeExpired","_onTokenLifetimeExpired","externalBrandCallbackInfo","getExternalBrandCallbackInfo","MiniOrbitPageComponent","MiniOrbitHomePageComponent","MiniOrbitArenaHostComponent","GamingHistoryComponent","RichPageComponent","MINI_ORBIT_ROUTING_DEFINITION","exact","cssSelectors","SLOTS_PAGE","CASINO_GAMES_PAGE","JACKPOTS_PAGE","historyType","UserHistory","redirectHomeIfUnauthorized","showMoreDetails","SESSION_HISTORY_PAGE","SessionHistory","CHALLENGE_PAGE","ArenaHostComponent","CmsPageComponent","GamingHistoryPageComponent","TippingHistoryPageComponent","LaboratoryShowcase","RoutingConfigurationService","fallbackRoute","routes","NEW_GAMES_PAGE","PROGRESSIVE_VIDEO_SLOTS_PAGE","ROULETTE_PAGE","VIRTUAL_SPORTS_PAGE","BLACKJACK_PAGE","INSTANT_WIN_GAMES_PAGE","showMoreDetailsLink","preventNotifications","VIDEO_POKER_PAGE","SCRATCH_CARDS_PAGE","EXCLUSIVE_888_GAMES_PAGE","standalone","OrbitRoute","RouteBase","RoutingService","_currentPathName","_updateCurrentRoute","featureData","abChangeRoute","removeItem","routeChangeData","Properties","routeschange","_doRedirect","routingConfiguration","getRoutingConfiguration","tryMatchPath","_removeCurrentRouteCssSelectors","_overrideArenaType","routeParams","_addCurrentRouteCssSelectors","FallbackRoute","fallbackRouteRender","webVitals","leavingPage","toCssClassName","routesToArenaTypesMapping","arenasRoutingOverride","_getCurrentRouteCssSelectors","selector","_cleanUpOldAbTestData","currentPathName","OverlayService","disableScrolling","enableScrolling","consumer","_overlayConsumers","zIndexes","needsOverlay","getOverlayZIndex","predicate","count","onOverlayClicked","TimeService","performance","dateAndTimeFormat","dateTime","dateTimeHistory","isUtc","getDateTimeHistoryFormat","AiNewGamesEngineService","_isAINewRecommendedGamesUpdateInProgress","_aiNewRecommendedGamesData","_updateAiNewRecommendedGames","getAINewRecommendations","_setAiNewRecommendedGames","_sendAINewRecommendationAnalytics","ThemeService","_setCurrentTheme","SDK_CSS_OVERRIDE","_currentThemeDefinition","useSquareIconsForGames","themeDefinition","globalStyles","VoidCommunicationAdapter","openUrlInExternalBrowser","MiniOrbitService","_communicationAdapter","_onKickUserCount","_currentMiniOrbitConfig","_extractCurrentMiniOrbitConfig","splash","onSplashRemoved","onSiteLoaded","_reportAutologinResult","enableBasePathOverride","miniOrbitCommunicationAdapterFactory","createAdapter","onUserKicked","onAutologinSuccess","onAutologinFailed","currentLocationBasePath","miniOrbitConfigSection","basePaths","miniOrbitConfig","miniOrbitArenas","arenasHeaderButtons","openControlCenter","DialogConsumerContentDefaultBox","noPadding","disableFullscreenMobile","DialogConsumerContentCasino777Box","DialogConsumerContentBox","transparentBackgroundOpacity","iPhoneVer10","DialogOverlayBox","MODAL_DIALOG_ANIMATION_DURATION","showDialogKeyframes","closeDialogKeyFrames","showDialogAnimation","closeDialogAnimation","applyBorders","modalDialogBorder","DialogOverlayContentBox","DialogIconWrapperBox","ModalDialogComponent","_onCloseButtonClickHandler","overlayClasses","MODAL_DIALOG","dialogOptions","forceTransparentBackground","forceCentralization","showOpenAndCloseAnimation","additionalHeaderClass","headerClass","headerClasses","contentClasses","hideBorders","forceTransparentContentBackground","shouldApplyClosingAnimation","dialogHeaderComponent","hideDialogHeader","renderExtraHeaderButtons","DialogIcon","noDefaultContentPadding","renderContent","SimpleMessageDialogBox","SimpleMessageDialogContentBox","SimpleMessageDialogButtonsContainerBox","SimpleMessageDialogButtonBox","Button","buttonWidthProportionOnPC","SimpleMessageButtonComponent","buttonOptions","DialogButtonClickHandleResultEnum","CloseDialogAndContinue","buttonPreset","numberOfButtons","SimpleMessageDialogIconContainerBox","SimpleMessageDialogComponent","DialogService","_onDialogCloseHook","closedHandler","_setCurrentOpenModalDialogs","_currentOpenModalDialogs","hasOpenDialogs","_enableScroll","_setCloseAllDialogsHook","newDialogs","dialogComponent","CGP_OVERLAY_OPEN","forceZOrder","modalZIndex","_getNextZIndex","gameFrameZIndex","ModalDialogHandler","showPopupAboveSecondWebViewHybrid","_disableScroll","showEmptyTitle","iconSvg","onClosedByXButton","_onCloseHook","_options","_isClosed","_applyCallbackAndCloseDialog","isClosedWithXButton","debugInfo","HeaderService","_headerResizeObserver","_onHeaderResize","_headerElement","headerElement","_headerRegulationDataElement","stickToBottomTooltipModifier","phase","beforeWrite","fn","popperWidth","rects","popper","popperHeight","styles","elements","adaptive","strategy","clientWidth","arrow","offsetTooltipModifier","flipTooltipModifier","padding","preventOverflowTooltipModifier","IconTitleTextTooltipContainerBox","showCursor","IconTitleTextTooltipTextContainerBox","IconTitleTextTooltipTitleBox","IconTitleTextTooltipIconBox","SeparatorDefaultBox","Separator777Box","SeparatorBox","IconTitleTextTooltip","IconContainerBox","IOSAddToHomeShareIconBox","MessageBodyContainerBox","MessageBodyBoldContainerBox","IosAddToHomeScreenComponent","logoIcon","appIcon","iosShareIcon","iosShare","BRAND","onClicked","ProgressiveWebAppService","_clickSubscription","_isPwaOnIOSShownThisSession","_gameWasOpen","_toolTip","_onToolTipClick","closeTooltip","_tryToShowPwaInstall","_shouldAutoPrompt","pwaEvent","PWA_PROMPT_EVENT","setGlobalProperty","PWA_PROMPT_CALLBACK","PWA_INSTALLED_CALLBACK","_onAppInstalled","isUKOrIrl","shouldAutoPopup","PWA_SHOULD_AUTO_POPUP_LOCAL_STORAGE_KEY","_subscribeToMainScreenClick","_initIOSPwa","isSafari","_onBeforeInstallEvent","onBeforeInstallEvent","isIphone","pwaEnabled","_isIOSPwaEligible","_showIOSTooltip","currentDialogs","shownTimes","PWA_IOS_SHOWN_INSTALL_OFFER_COUNT","createOnBoardingTooltip","styling","textColor","borderColor","showCloseButton","invertCloseButtonColors","closeOnClickOutside","showOverlay","modifiers","onTooltipRendered","_onTooltipRendered","onTooltipClosed","hasGlow","shouldPrompt","isAppBannerUKorIRL","_unsubscribeToMainScreenClick","outcome","PWAManifestService","_orbitExtraProperties","pwaResources","_isPwaEnabled","_setManifestHrefInHead","_initIOS","manifestUrl","_addManifestIOSIconsInHead","_loadManifestJSON","manifestJson","iconInfo","_addLinkTagToHead","rel","linkDOM","sizes","linkTag","POKER_COMMUNCATION_OBJECT_NAME","PokerCommunicationAdapter","_pokerCommunicationObject","adapter","_pokerSupportsSoftLogin","kickUser","SPORT_COMMUNCATION_OBJECT_NAME","SportCommunicationAdapter","_showCasinoNavbar","status","_sportCommunicationObject","showCasinoNavbar","performUCAction","sendTechnicalEvent","cleanUp","onUserKickedSuccessCallback","onUserKickedErrorCallback","MiniOrbitCommunicationAdapterFactoryService","keyResolver","args","memoize","_memoize","LiveTableFeedsService","_liveTableUpdateSubscription","_getLiveCasinoGameRecommendationsForPlayer","getLiveCasinoGameRecommendationsForPlayer","engineType","_previousOpenTablesIds","_stop","_liveCasinoRecommendedGames","currentOpenTablesIds","_tablesData","tableData","IsOpen","arraysEqual","_setLiveCasinoRecommendedGames","GameTypes","Engine","currentFilter","_start","onLiveTableFeedsUpdate","_onLiveFeedsUpdate","OperationHoursStartTime","_convertTimeToLocalTimeZone","rouletteLastNumbers","RouletteLast5Numbers","rouletteLast5NumbersConverted","_manipulateFeedData","_sendEvent","_updateOpenTimeToLocal","_verifyRouletteLastNumbers","evoLiveFeedResponseTime","computeSplashTimeInSeconds","timeUTC","toLocalTime","toHoursAndMinutesString","filteredGameIds","_shouldSortGames","sortingOptions","numberOfSortingExemptGames","abTestingAiSortGamesLists","arenaHasAiSorting","startTime","currentDate","getCurrentDate","timeToOpen","gamesID","closeGamesArr","currentGame","_isGameOpenSoon","DrawerContentDecorator","_originalDrawerContent","_id","onClose","Drawer","itemIndex","getLastVisibleDrawerItemIndex","drawerItem","currentContent","currentDrawerContent","existingContentIndex","_drawerContentStack","contentIndexToRemove","_removeOneDrawerItems","clone","itemOnTheStackTop","_closeDrawerContentItem","_getNonMinimizedContents","nonClosableItems","drawerContent","DrawerService","_closeDrawers","DailyDealService","removeDailyDealIndicator","setDailyDealCampaignId","subscribe","_fetchDailyDealCampaign","onDailyDealRemoveIndication","dailyDeals","MarketingCampaignId","JackpotHandler","gradualIncreaseAmountHelper","onAuthChangeReaction","previousUpdateTime","gradualRealAmountInCents","isFastGradualIncreaseFinish","removeGradualIncreaseAmountHelper","jackpot","newState","createGradualIncreaseAmountHelper","updateAmount","amountInCents","useGradualAmountIncrease","setCurrentJackpotAmount","frequency","gradualIncreaseHelperFactory","create","updateAmountFunction","amount","restart","JackpotsWithStateService","updateCurrentJackpots","readJackpotsData","onJackpotsWithStateUpdate","jackpotsAddition","jpData","setJackpotData","rawJackpots","jpId","rawJackpot","Jackpot","readJackpotState","jpType","Casino777","Dark","JackpotsService","onJackpotsAmountsUpdate","jackpotsAmounts","amounts","currentJackpotAmounts","abTestingFeatureIsValid","featureObject","featureProperties","AbTestingFeatureDataProviderService","_playersLikeYouGamesListTypeId","_setIsVideoLiveStreamEnabled","_setIsStaticVideoListEnabled","_setIsBecauseYouPlayedEnabled","_getFeature","FeatureName","testGroup","GroupName","testId","TestId","isEligible","featuretoggle","_features","aiSortGamesListsFeatureData","_hasFeature","abTestingSearchGameSuggestionByAI","aitype","abTestingPlayersLikeYouGamesListTypeIdAIData","listid","abTestingListOnTopData","abTestingSafeZoneToggleData","enablesafezone","enabledForRegulation","SafezoneLoader","miniBannersFeature","componentid","isBecauseYouPlayedEnabled","abTestingAnimatedIcons","GradualIncreaseHelper","_params","realAmount","fakeAmount","stepAmount","amountIncreaseTimer","stopAmountIncreaseTimer","startAmount","steps","startAmountIncreaseTimer","updateFakeAmount","GradualIncreaseHelperFactoryService","SafezoneService","_safezoneObj","_fullSafezoneHandler","_miniSafezoneHandler","_onSafezoneReady","component","MINI","onReady","FULL","_onCallToActionFunc","actionId","openFullSafezone","correlationId","correlationID","closeMiniSafezone","closedFromSafezone","_kickUserAfterSelfExclude","enableSafeZone","safezoneObjectFactory","createFullSafezoneHandler","createMiniSafezoneHandler","_setHasError","createSafezoneObjectParams","onCallToActionCallback","onReadyCallback","createSafezoneObject","analyticsDataLayer","pushSafezoneInitParams","full","init","mini","_connectToSafezone","safeZoneDeeplink","resetOnLogout","FullSafezoneContentBox","OnErrorBox","OnErrorIconBox","OnErrorTitleBox","OnErrorMessageBox","OnErrorButtonsBox","OnErrorComponent","onRetryButtonClick","FullSafezoneComponent","onRender","_retryCreateSafeZone","reconnectToSafezone","_renderError","ARENA_IDS","SafezoneHandlerBase","_safezoneObject","_renderErrorInterval","_ready","_correlationId","_category","_openEventName","_readyEventName","_closeEventName","_containerId","_channel","safezoneObj","_clearRenderErrorInterval","_sendCloseEvent","safeZoneCloseSources","pushSafezoneEvent","_getEventParams","_sendRenderErrorEvent","session_status","Failure","Success","Partial","correlation_id","local_time","FullSafezoneHandler","FULL_SAFEZONE_CONTAINER_ID","_isOpen","_renderSafezone","_openFullSafezoneFromSource","_onFullSafezoneRender","_closeSafezone","CLIENT","MiniSafezoneHandler","MINI_SAFEZONE_CONTAINER_ID","_userMenuOpenReaction","_unsubscribeFromUserMenuOpenReaction","MINI_SZ","SafezoneObjectFactoryService","_safezoneFunc","_getSafezoneFunction","_getInitParams","initParams","safeZoneFunction","callToActionCallback","contextObj","userInfo","brandId","subBrandId","systemId","clientPlatform","clientVersion","locale","fontDomain","getFontsPath","onCallToAction","WalletProxyService","fetchAllData","plainNumberBankroll","CASH","BONUS","bType","onBalanceUpdated","bankrollType","_getData","setBankroll","NaN","GameViewBox","GameIconContainerBox","GameViewSectionCSS","MiddleSeparatorWrapperGameViewSectionPCBox","MiddleSeparatorWrapperGameViewSectionMobileBox","MiddleSeparatorWrapperGameViewSectionBox","GameWrapperGameViewSectionBox","ButtonWrapperGameViewSectionBox","SubTitleContainerBox","GameViewVerticalDividerBox","GameViewHorizontalDividerBox","MenuContainerBox","DescriptionContainerBox","SideMenuItemDefaultBox","hidden","SideMenuItemCasino777Box","SideMenuItemBox","SideMenuItem","getConfig","hideElement","itemId","GenericSideMenuLinkDefaultBox","textActive","GenericSideMenuLinkCasino777Box","GenericSideMenuLinkHarrahsWsopBox","GenericSideMenuLinkSIBox","GenericSideMenuLinkBox","GenericSideMenuLabelDefaultBox","GenericSideMenuLabelBox","GenericSideMenuIconCommonBox","GenericSideMenuIconDefaultBox","GenericSideMenuIconHarrahsBox","GenericSideMenuIconWsopBox","GenericSideMenuIconSIBox","GenericSideMenuIconBox","GenericSideMenuPreIconDefaultBox","GenericSideMenuPreIconSIBox","GenericSideMenuPreIconBox","GenericSideMenuImageDefaultBox","InternalNavSideMenuLink","getLinkAction","InternalNavIcon","Icon","buildFullUri","isLinkToCurrentPage","hasImage","decodeURI","encodeURI","withArrow","currentPath","candidate","LoyaltyBarWrapperComponent","loyaltyIndicator","LoyaltyBarSideMenuLink","DepositSideMenuLinkDefaultBox","DepositSideMenuLinkCasino777Box","DepositSideMenuLinkBox","SignupSideMenuLinkCasino888Box","SignupSideMenuLinkBox","ArrowSideMenuLinkDefaultIcon","ArrowSideMenuLinkCasino777Icon","ArrowSideMenuLinkIcon","SignupSideMenuLink","DepositSideMenuLink","SideMenuComponentDefaultBox","SideMenuComponentCasino777Box","SideMenuComponentBox","SideMenuListDefaultBox","SideMenuListCasino777Box","SideMenuListHarrahsWsopBox","SideMenuListBox","SideMenuLinksGroup","menuItems","pickSideMenuItems","menuItemIds","it","listStyleType","k","renderLink","sideMenuHome","sideMenuSlots","sideMenuNewGames","sideMenuJackpots","sideMenuCasinoGames","sideMenuExclusive888","sideMenuRoulette","sideMenuBlackjack","sideMenuLiveCasino","sideMenuVip","sideMenuGettingStarted","sideMenuBanking","sideMenuVideoPoker","sideMenuPromotions","sideMenuBlog","sideMenuLiveChat","sideMenuPokerCircle","sideMenuSportCircle","sideMenuClub888","sideMenuDownloadApp","chipIcon","arrowsUpDownIcon","GamePopupCheckboxContainerBox","GamePopupCheckbox","checkboxChecked","checkBoxChecked","checkBoxEmpty","GamePopupComponent","onClickNotNowButton","_getFallbackUrl","clickNotNowButton","checkboxData","subTitle","getSubTitle","getGameView","getGameSection","getDescription","getMenuBox","showCheckboxItem","GamePopupService","onShowGamePopup","openAfterLoginGamePopup","menuLinks","subTitleText","descriptionText","popupTitleText","onCloseHandler","gamePopupApprovedCallback","welcomeTitleText","suggestedGameText","yourActivityText","_gameMap","openPopup","getMenuItems","USER_GROUP_TO_HEADER_ARENAS_MAPPING","JACKPOTS","EXCLUSIVE888","GAME_SHOWS","CASINO_GAMES","LIVE_BLACKJACK","LIVE_ROULETTE","CASINO_SKILL","CASINO_SOFT","SCRATCH_CARDS","CASINO_MIXT","HomepageService","_setHeaderArenas","getHomePageHeaderArenas","group","_orderHeaderArenas","_updateNewAddedGames","_setNewAddedGames","_newAddedGames","newGamesCount","arenasNames","headerOrderedAreans","getHomePageHeaderArenasByUserOrientation","_sendUserOrientationArenasAnalytics","groupName","selfUpdatedByNewestGamesList","getSelfUpdatedByNewestGamesList","seenGames","_getNewAddedGamesFromLocalStorage","newGames","gi","_resetNewAddedGames","_setNewAddedGamesFromLocalStorage","_getNewAddedGamesLocalStorageKey","miniBannerComponentIdFromAB","miniTopBannerComponentID","miniBannerComponentIdFromConfig","topBanner","bannerAdminIDFromConfig","useMiniTopBanner","topBannerConfig","getHomePageTopBannerHeight","_getMiniBannerComponentID","AnalyticsDataLayerService","_push","intent","login_session_id","user_type","rm_status","rg_risk_level","sub_brand_name","sub_brand_id","registration_country","registration_date","product_package","SessionCooldownPopupBox","SessionCooldownPopupTextBox","DialogTextBox","SessionCooldownPopupTimerBox","DialogHighlightedTextBox","SessionCooldownPopupTimerRemainingBox","SessionCooldownPopupComponent","_prependZero","countdown","minutes","seconds","UK_TSR_OPTIONS","SESSION_COOLDOWN_STORAGE_KEY","SessionColldownService","_sessionCooldownConfig","getSessionCooldownConfig","_cooldownData","endDateMs","_dialogHandler","_timerUpdateEventHandler","_realityCheckOpenedEventHandler","_realityCheckClosedEventHandler","featureEnabled","_onUserLogin","_onUserLogout","_checkForValidStorageCooldownData","onSessionTimerUpdate","_handleTimerUpdate","onRealityCheckClosed","_showCooldownDialog","onRealityCheckOpened","_startSessionCooldown","_closeCooldownDialog","_disposeStorageCooldownData","_writeStorageCooldownData","_setCooldownCountdownValue","cooldownTime","_resetCooldownCountdown","_cooldownCountdown","_loadStorageCooldownData","currentTimeMs","cooldownData","timeMs","subtract","fromSeconds","_endSessionCooldown","_decreaseCooldownCountdown","MediaQueryListener","media","mediaQueryList","matchMedia","onChangeEventListener","onchange","removeListener","mQueryEventData","isMatched","matches","MediaQueryService","mediaQueryListeners","tempRecords","mediaQueries","mediaType","sExact","mExact","lExact","xxl","anyHover","anyHoverNone","pointer","pointerFine","pointerCoarse","pointerNone","anyPointer","anyPointerFine","anyPointerCoarse","anyPointerNone","OrbitApi","ORBIT_VERSION","fullVersion","gamesTypes","errorLogs","executeDeepLink","MAX_FIELD_SIZE","MAX_FIELDS_COUNT","fieldsCount","foundGames","missingGames","gameImage","gameImageAlt","ToolsService","uuidv4","VerticalGamesListBox","HeaderBox","GamesListBox","GameDetailsBox","GameDividerBox","ButtonWrapperBox","NO_JACKPOT","GameDetailsNameBox","GameDetailsJpBox","VerticalGamesListGameComponent","displayJackpotInfo","HeaderTitleBox","HeaderCloseButtonBox","DjWidgetBox","VerticalGamesListComponent","_onJackpotWidgetClicked","_closeDrawer","widgetConf","isMobileLandscape","_shouldMinimizeJackpotWidget","_shouldMinimizeWidget","scrollTop","onScroll","_onScroll","_renderHeader","_renderGamesList","SEO_CATEGORY","VerticalGamesListService","GAME_GROUP_COOKIE","UserGameOrientationService","_updateUserGameOrientation","orientation","userGameOrientationEnableConfig","User","enableUserGameOrientation","gameGroupCookie","_setUserOrientation","getUserGameOrientation","gameOrientation","_setGameOrientationCookie","setDate","getDate","ApiControllerBase","route","_getRoutePrefix","isUSRegulation","_buildApiRoute","BonusManagerController","_httpPost","ABTestingController","InsightController","req","NetPositionController","OpenSessionsController","RestrictionRulerController","clientRequest","ThirdPartyFreePlayController","UserEligibilityController","GameController","HistoryController","UserController","ApiService","bonusManagerController","aBTestingController","netPositionController","openSessionsController","restrictionRulerController","thirdPartyFreePlayController","userEligibilityController","historyController","TsrWithDropdownDefaultBox","TsrWithDropdownBox","TsrWithDropdownOptionSelectorBox","TsrWithDropdownMainTextDefaultBox","dialogHighlightedTextMixin","TsrWithDropdownMainTextCasino777Box","TsrWithDropdownMainTextBox","TsrWithDropdownSelectorContainerBox","TRACKING_UK_TSR_OPTION_NAMES","UK_TSR_RESUME_GAME_OPT","UK_TSR_CONTINUE_OPT","UK_TSR_STOP_REMINDERS_OPT","UK_TSR_REVIEW_REMINDERS_OPT","UK_TSR_HISTORY_OPT","UK_TSR_CLOSE_GAME_OPT","UK_TSR_LOGOUT_OPT","TSR_OPTIONS_BY_TYPE","SESSION_TIMER","GAME_TIMER","TimeSpentReminderWithDropdownComponent","_businessCorrelationId","_renderLoggedInText","playingTimeWithoutUnits","playingTime","_renderSelectorContainer","_renderSelect","selectedOption","_updateSelection","timerType","tsrOption","selection","_actionAlreadyTriggered","_sendActionDataTracking","_closeDialogBox","gameRouteHandler","_onReviewReminders","_onStopFurtherReminders","onStopReminders","_sendActionDataToElastic","messageActionTaken","CGPEventCategory","CGPEventAction","setTarget","messageDisplay","displayMessageID","DISPLAY_MESSAGE_IDS","timeSpentReminder","displayMessageName","GeoPermissionsPopupComponent","_onOkPressed","onOkPressed","headerText1","headerText2","TsrWithBalanceBox","TimeSpentReminderWithBalanceComponent","_executeContinueButtonAction","_executeCloseGameButtonAction","_getFormattedSessionBalance","balanceAbsoluteValue","totalNetLoss","_getFormattedPlayingTime","_getSessionBalanceText","isInGame","GameItemContainerBox","GameItemImgWrapperBox","iPhoneVer5","GameItemFpThumbBox","FreeSpin","freePlay","typeFS","FreePlay","typeFP","FreeJackpotSpin","typeJFS","FreeJackpotPlay","typeJFP","freePlayBgImage","GameItemDelimiterBox","GameItemDetailsWrapperBox","GameItemTitleDefaultBox","GameItemTitleCasino777Box","GameItemTitleBox","GameItemJackpotBox","GameItemButtonsAreaBox","GameItemComponent","playBtnText","IdleRecommendationToasterBox","IdleRecommendationHeaderBox","IdleRecommendationHeaderTitleWrapperBox","IdleRecommendationHeaderTitleBox","IdleRecommendationGameDetailsBox","IdleRecommendationToasterBackgroundBox","idleRecommendationToasterBg","IdleRecommendationComponent","onPlayRecommendedGameHandler","AboutBox","AboutInfoSectionBox","AboutFooterSectionBox","AboutComponent","_handleHelpTextClick","HELP","_renderHelpText","sectionTitleKey","valueClass","_renderAboutInfoSection","fiscalCode","openSessionsBalance","GeoDialogListBox","GeoDialogListItemBox","isLast","itemPrefix","GeoDialogColoredTextBox","GeoInstallPluginPopupComponent","downloadClicked","onDownloadPressed","_onFooterLinkPressed","onRestartDownloadPressed","SpacerBox","GeoFreezePopupComponent","OrbitComponentToSdkAdapterService","_renderComponent","displayStateSelectorPopup","locationIcon","PRIORITY_LEVEL_ZINDEX_MAPPER","TOUCH_ID","onMessageClosed","downloadPlugin","restartDownloadPlugin","installPopUpClosed","LocationIcon","GEO_FREEZE_WINDOW","timeSpentReminderClockIcon","_getTimeSpentReminderDialogOptions","isCip","businessCorrelationId","nightLimitWarning","DISPLAY_MESSAGE_NAMES","DISRUPTIVE_WARNING_MESSAGE_NAME","WarningIcon","warningSignIcon","showSimpleTextModal","buttonText","currentRenderedComponents","_setCurrentRenderedComponents","unmount","_unmountComponent","OmgProxyService","setNumberOfAwaitingMessages","onOmgAwaitingMessagesUpdated","updatedNumberOfMessages","numberOfAwaitingMessages","STANDARD_TOPIC_HEADER","publisher","MessageBrokerService","channels","MessageBroker","identity","topics","loginSuccess","publish","logoutSuccess","getCasinofiedDeviceInfo","getCasinofiedDeviceType","OS","isNative","browserType","getCasinofiedCommonUserInfo","userMode","regulationTypeID","isVip","isPromotionPermitted","RMS","userFirstName","userLastName","getCasinofiedGeoInfoParams","geoLocationInfo","timeZoneUTCOffset","loginIp","ISP","isp","proxyType","getCasinofiedCommonAppContextParams","productPackageFromID","languageCode","currencyCode","gaClientID","DeviceType","Tablet","SmartPhone","PC","CasinofiedZoidApplicationAdapter","applicationSdk","clonedInitParams","messageBrokerChannels","zoidInitParams","onInitSucceeded","payload","_onInitSucceeded","onInitFailed","_onInitFailed","openApp","_openApp","_onClose","performAction","_onPerformAction","closeIntentResult","_onCloseIntentResult","closeIntent","navigation","session","appInitSucceeded","appInitFailed","appClosed","CasinofiedRegularApplicationAdapter","applicationObject","messageBroker","launchInfo","applicationContext","CasinofiedApplicationBase","openAppData","_componentFactory","appSdkLoader","useZoidIntegration","appId","_openAppData","_sessionID","_topicsSubscriptions","_openPromise","_applicationAdapter","_isDisposed","_miniatureComponent","containerID","rootElement","firstChild","_appInitFailed","_isAnonymousModeAllowed","_setIsLoading","loadAppSdk","widgetUrl","appShowStartTime","isDisposed","timeoutValue","widgetLoadTimeoutMS","openTimeout","_setAppInitFailed","_unsubscribeFromTopics","onAppInitTimeout","appInitParams","errorDescription","_isCurrentApp","sessionID","onAppInitSuccess","loadingTime","onAppInitFailed","getAppInitParamsStartTime","_getAppInitCommonParams","commonParams","onGetAppInitParams","loadSubject","duration","_showApp","sdkObjectName","appObject","_getAppSdkObjectName","_createApplicationAdapter","onAppInitRequest","_getInitAppParams","_getUserInfo","geoInfo","productPackageToID","productPackageID","deviceInfo","_isMinimized","componentData","_getMiniatureComponentID","_setIsMinimized","waitForAppToOpen","createComponent","show","minimizeApp","appCloseParams","closeReason","appInitResultReportingDetails","appInitResult","reportData","reportDuration","appInitRequest","InsideDrawerApplication","_drawerContentHandler","_retryOpen","Message","retryButton","_shouldMinimizeOnDrawerClose","_publishMinimizeApp","Overlay","_getOnCloseReason","retryCloseDrawerMessage","ChatApplication","chatSpecificParams","SOF","OMG","CasinofiedAppSdkLoader","_loadedAppsSDKs","appLauncherConfigs","appConfigs","sdks","sdkloadStartTime","loadScripPromise","CasinofiedBubbleComponent","_floatingBubbleHandler","floatingBubbles","addBubble","_containerID","_componentID","_appSdkLoader","_displayComponent","componentController","_componentController","UnifiedCashierZoidAdapter","_onCloseAlreadyCalled","DepositWidgetApplication","componentFactory","PaymentRedirectFocusTitleBox","PaymentRedirectFocusDefaultBox","PaymentRedirectFocusBox","PaymentsRedirectFocusComponent","redirectApp","mftName","_renderButtonContainer","PaymentsRedirectApplication","_focusDialogHandler","_containerElement","psRedirectFocusDialog","paymentsRedirectIcon","sendLogLevelOnly","FullCashierApplication","_onExternalLinkClosedSubscription","_onExternalLinkClosed","linkSource","SessionType","onExternalLinkClosed","FullCashier","appData","CashoutWidgetApplication","TransactionHistoryApplication","CustomerRelationsApplication","featureType","sourceAppID","CustomerRelations","FreeToPlayBonusGamesApplication","_bonusWheelContainerElement","setIsPromotionOpened","HelpCentreApplication","getInitAppParamsForControlCenter","getAppSpecificParamsForControlCenter","initialSource","ExternalLinksZIndexes","ControlCenterFullApplication","analyticsHelper","setCorrelationID","setSource","trackAppOpen","trackCloseExternal","trackAppInitSuccess","trackAppInitFailed","ControlCenterMiniApplication","trackCloseInternal","ControlCenterAnalyticsHelper","eventNames","sessionStatus","_pushSafezoneEvent","ready","closeExternal","closeInternal","safezoneEvent","CasinofiedAppFactory","CrChat","OpenBanking","UnifiedCashier","Redirect","UnifiedCashout","TransactionHistory","CasinoBonusGameWidget","ControlCenterFull","ControlCenterMini","CasinofiedAppLauncherService","_appFactory","_onBeforeOAuthStateChangedHandler","_closeAllApps","_openAppHandler","_onBrowserUnload","_appClosedHandler","runningApp","_runningApps","_appMinimizedHandler","minimize","_appMaximizedHandler","maximize","_subscribeToTopics","_subscribeToReactions","_subscribeToSdkEvents","_subscribeToBrowserEvents","appMaximized","appMinimized","canClose","onBeforeOAuthStateChanged","unload","shouldReportOpenAppEvent","openAppRequest","createApplication","isOpeningInNewWindow","trigger","TriggerType","automaticFlow","sourceAppVersion","appIdentifier","userSelection","_launchApp","isCis","actionID","ActionID","ActionHandlerBase","OpenBankingActionHandler","openBakingSpecificParams","ProductPackageToID","PAYMENTS_DEPOSIT","UploadDocumentsActionHandler","UploadDocuments","openVerifyId","OpenDepositActionHandler","OpenWithdrawActionHandler","OpenLinkActionHandler","actionData","openExternally","OpenChatActionHandler","CRChat","OpenLinkWithFormPostActionHandler","_performFormPost","platformToken","formPostExtraParams","relatedAccountCid","registrationCategory","formPostParams","extraParams","_shouldOpenInSameWindow","performFormPost","isEmail","openEmail","OpenEmail","OpenOnlineHelp","OPEN_EMAIL","OPEN_ONLINE_HELP","OpenControlCenterFullActionHandler","OpenClientPageActionHandler","clientPageType","ClientPageType","rgPolicy","onlineHelp","LogoutActionHandler","CasinofiedActionHandlerService","_performActionHandler","actionHandler","_createActionHandler","handle","openBanking","uploadDocuments","withdraw","openOnlineHelp","openClientPage","FloatingBubblesService","BubbleContentDecorator","bubbles","bubbleToRemoveIndex","_originalBubble","SourceOfFundsBox","SourceOfFundsPopupComponent","messageRow1","messageRow2","openChatLabel","RestrictionRulerService","enableSOF","RestrictionRuler","_executeRestrictionRulerActions","getRestrictionActions","RequestedAction","restrictionRulerResponse","_showSourceOfFundsMessage","restrictionRuleActionType","notifyRestrictionActionPerformed","showMessageActions","actions","messageId","sofRequired","sourceOfFundsIcon","_notifyRestrictionActionPerformed","RedTigerService","RedTiger","jackPotUrl","jackPotFeedApiUrl","widgetParameters","iso2Lang","currentLanguageIso2","jackpotUrl","jackpotFeedApiUrl","CasinofiedAnalyticsService","_sessionClosed","_sequentialNumber","_authenticationResult","focusLost","_userMinimizedClient","focusGained","_userResumedClient","_userClosedClient","onLoginSessionResumed","_loginSessionResumed","setSequentialNumber","playerSessionId","_createLogger","messageID","_createMessageId","targetAppID","sequentialCorrelationID","setCorrelationId","setBusinessCorrelationID","openingMode","deviceTypeID","resolution","_getResolution","isOk","getLaunchInfo","appClosedParams","appCloseReason","screen","devicePixelRatio","closingReasonID","actionHandlerStep","actionResult","clientStateID","clientStateName","HttpWithRequestTimeMeasurement","_decoratedHttpService","fetchResponseWitLoadTimeReporting","fetchedResponse","parseResponseWitLoadTimeReporting","parsedResponse","_fetchResponse","_parseResponse","endTime","_reportDuration","finishTime","AbTestingAiSortGamesListsService","aiSortGamesLists","CashierService","_transactionWidgetEligibilityPromise","FULL_CASHIER_MOBILE","FULL_CASHIER_PC","eligibilityResult","abCheckActionHandlerEventData","eligibilityActionHandlerEventData","getEligibility","widgetConfigs","analyticsOptions","eligibility","force","testID","_getDepositWidgetEligibility","isEligibleForDepositWidget","_waitForUserToBeLoggedIn","_getCashierWidgetEligibility","PAYMENTS_CASHOUT","performEligibility","PAYMENTS_PLAYER_TRANSACTIONS_HISTORY","transactionHistoryWidgetEligibility","LoginCountry","ntsEligibility","errorID","hasErrors","abEligibility","transactionHistoryWidget","eligibilityData","depositEligibility","_reportEligibilityEvents","openDepositWidget","promoCode","_getCashOutWidgetEligibility","openCashoutWidget","_getTransactionHistoryWidgetEligibility","openTransactionHistoryWidget","cashOutEligibility","_openCashierExternalLink","CIPropRead","getProperty","ExternalLinkHandlerBase","getStringProperty","getNumericProperty","RegistrationExternalLinkHandler","ExternalLinkIframeBox","ExternalLinkIframeContainerBox","ExternalLinkCloseButtonBox","ExternalLinkCloseButtonWrapperBox","ExternalLinkIframeComponent","_captureIframeElementRef","onIframeCreated","_onCloseClick","allow","getIframeAllowAttributeValue","allowFullScreen","ExternalLinkIframeRenderer","iframeElementRef","LIMIT_NAMES","MyAccountExternalLinkHandler","_renderer","_onMyAccountClosed","_closeMyAccount","_postMessageHandler","contentWindow","_extractActionId","_openQuickDeposit","promCode","TabId","_extractGameId","originDeepLinkID","_openRichPage","campaignid","_openSport","_openInternalUrl","_extractUrl","_openExternalUrl","addSdkEventSubscription","onPostMessage","MyAccount","_createRenderer","_getGnwpUrl","_showMyAccount","getMyAccountUrl","Header","channelElement","internalUrl","externalUrl","ExternalLinksHandlersFactory","LegacyRegulationWrapper","legacyRegulation","regulationType","REGULATION_NAMES","getRealityCheckIntervalExpectedByTheGame","getAgeResponsibleGamingLabel","updateRealityCheckInterval","nightLimitExpirationDate","showNightLimitMessage","postLoginActionsArePassed","openSelfExclusion","NAVIGATION_VIEWS","WINDOW","openSelfTest","GermanyRegulation","dialogFactory","showConfirmLugasCoolingOffLogout","onAccept","onReject","RegulationService","_createRegulation","sessionCooldownConfig","shouldShowPlayerLimitsToaster","getErrorMessage","REGULATION_CODE_TYPES","GERMANY","LimitsToasterService","_limitsData","DepositLimit","PlayTimeLimit","BankrollLimit","_activeLimitToasters","_toasterDisplayDurationSec","_getPlayerLimits","getPlayerLimits","limitsDataRaw","depositLimitRaw","displayableLimits","limit","limitName","DEPOSIT_LIMIT","limitPeriods","playTimeLimitRaw","PLAYTIME_LIMIT","bankrollLimitRaw","BANKROLL_LIMIT","_handleUserLogout","_showLimitsToaster","hasData","Type","Title","SubTitle","_getFormatedLimitsText","DurationInSec","MobileImage","PCImage","onLiveGameSwitched","typeId","unit","formatedString","period","_getIntervalLabelFromType","_getFormatedTimeUnit","limits","_getFormatedWithSeparators","_getFormatedDepositLimitForType","_getFormatedPlayTimeLimitForType","_displayDepositLimits","_displayPlayTimeLimits","_displayBankrollLimits","PlayerBurnoutService","_isRealMoneyPrize","_burnoutMessageEventSubscription","_omgDisplayedEventSubscription","_gameShowEventSubscription","_gameCloseEventSubscription","_currentlyDisplayedOmgs","_onAuthStateChange","renderAnimation","_onOmgDisplayedEvent","omgData","showOmg","checkIfOmgDisplayed","PlayerBurnout","isRealMoneyPrize","onBurnoutMessageReceived","_onBurnoutMessageReceivedEvent","onOmgDisplayed","OfferBase","offerConfig","_offerShown","sessionStorage","_getSessionStageKey","offerShown","WelcomeOffer","linkToOfferIcon","WOFShellBox","wheelOfFortune","shell","rotateBackward","rotateStarting","rotateFullRotation","rotateFinish","WOFColorsBox","showSpin","WOFWrapperBox","WheelOfFortuneComponent","enableWheelOfFortuneAnimation","WheelOfFortuneOffer","hasWheelOfFortunePromotion","LinkToOfferBannerBox","RegistrationOffer","isRegistrationOfferEnabled","PlayerOfferingsService","_allOffers","_shownOffer","_registrationPopupTimerId","_preventShowingRegistrationPopupThisDemoSession","isEnabledFromConfig","PlayerOfferings","isWheelOfFortuneEnabled","hasWheelOfFortuneConfigSection","hasRegistrationOfferConfigSection","registrationOffer","enableAnimation","_hasWheelOfFortunePromotion","userBalance","_setWOFEnableAnimation","_updateWheelOfFortuneAvailability","_resetShownFlagForAllOffers","welcomeOfferConfig","_welcomeOfferConfig","currentPopup","_updateOfferToShow","onPromotionsChanged","Cid","IsPromotionDisplayedInClient","listenForLastOpenDemoGame","_showRegistrationPopup","_initPopupTimer","shouldBeVisible","welcomeOffer","updateConfig","offers","_getAllOffers","selectedOffer","_setCurrentLinkOffer","getEligiblePromotionCodes","promoCodes","_fetchUserHasWheelOfFortune","hasWheelOfFortune","_setHasWheelOfFortunePromotion","_renderBanner","_setCurrentPopup","loadPixi","PIXI","createPixiApplication","Application","backgroundAlpha","antialias","forceCanvas","force2DCanvasContext","contextLostHandler","stop","_e","selfDestroyOnContextLost","LocalStorageKeys","PixiAppService","_pixiAppCreatorWithWebGlManager","webGlContextManager","makeCreator","resourcesUrls","loader","load","GameAnimatedIconsManagerService","intersectionObserver","observedTargets","isGameOpened","intersectionCallback","VIEWPORT_EXIT","selectAndLoadAnimations","debounceTimeout","selectionRunning","selectionRunAgainNeeded","alreadyRunningAnimationCount","eligibleTargets","remainingSlots","shuffle","loadAnimatedIcon","set","delete","WebGLContextManagerService","_activeContexts","creatorFn","webGl2Context","getContext","webGl1Context","isContextLost","EXIT_POPUP_DEFAULT_CONFIG","EXIT_POPUP_LOCAL_STORAGE_KEY","ExitPopupService","_numberOfAppearancesInSession","_sessionChance","_initDataFromLocalStorage","_setExitPopupDataInLocalStorage","_showExitPopup","closedGameType","_updateMessageChance","recommendedGame","_dontShowAgainGAEvent","dontShowPopupAgain","analyticObject","_calcRandomChance","randomChance","ceil","_isMessageCanBeShown","_openExitPopupMessage","playedGameType","_getCorrelatedGame","correlatedGame","_onPopupClosed","_onCloseButtonClicked","_onCancel","_onOpenRealGame","_clickDontShowPopupAgain","exitPopUpData","_getExitPopupDataInLocalStorage","numberOfAppearancesInSession","chance","sessionChance","newChance","exitPopupData","TooltipModel","tooltipService","_onDocumentClickHandler","tooltipContainer","_domEventSubscription","_autoCloseTimeout","_popperInstance","attachTo","elementToAttach","_getElementToAttach","createPopper","_createTooltipPopper","ev","removeTooltip","OnBoardingTooltipModel","orbitOverlayConsumersCount","countCurrentConsumers","sdkHasOpenOverlays","areRunningApps","isThereRunningApps","areOpenDialogs","TooltipService","toolTips","toolTipModel","_setDefaultTooltipOptions","tooltipModel","HistoryPaginatorBaseModel","pageSize","_numberOfHistoryDays","_nextPageIndex","numberOfDays","_resetPaging","loadNextPage","records","_pages","fromLastDays","pageNumber","nextPage","requestKey","RequestKey","minDate","MinDate","maxDate","MaxDate","serverResponse","notInLayoutGames","GameHistoryData","record","_getGameTypeFromRecord","hasMoreRecords","_createNextPageRequest","_getNextPage","_getGamesInfo","newRecords","recordData","companies","getLegacyCompanyByName","company","_createRecordModel","_getRoundIdFromRecord","PagingData","HistoryRecordBaseModel","gameImageInHistoryPage","_isDetailHistorySupported","canPlayGame","UserGamingHistoryRecordModel","DateInTimeZone","formatHistoryRecordDateTime","_gameSessionID","_participationTicketID","participationID","GameId","IsSupportDetailedHistory","_isDetailHistoryAllowedOnCurrentPlatform","supportsHistoryMoreDetails","IsBigWin","FreePlayCurrentAmount","FreePlayWinningAmount","_formatValue","BetAmount","OriginalWinningsAmount","ProfitAmount","AvailableMoneyPerOffering","_isFreePlayRound","_getFreePlayAmounts","_getRealMoneyAmounts","AdditionalData","AAMSGameSessionID","AAMSParticipationTicketID","AllowedPlatformType","supportsDetailHistory","History","historyGameParams","gameRoundId","gameRoundDate","gameRoundDateInTimeZone","historyRecordData","UserGamingHistoryPaginatorModel","getHistory","GameTypeId","SessionGamingHistoryRecordModel","TotalBets","TotalWins","SessionBalance","SessionEndDateTime","GameSessionId","SessionGamingHistoryPaginatorModel","getGameSessionHistory","GamingHistoryService","maxPageSize","CompaniesService","companyIdentifier","_getCompanyConstructor","CompanyConstructor","getCompany","applyRegulation","BECAUSE_YOU_PLAYED_LAST_REAL_GAME_LOCAL_STORAGE_KEY","BecauseYouPlayedService","_lastPlayedGames","_getLastPlayedGamesFromLocalStorage","lastPlayedGameByArena","_createDefaultPlayedGameByArenaObject","_setLastPlayedGame","_resetLastPlayedGames","_updateCurrentBecauseYouPlayedGames","currentValue","lastPlayedGameType","lastPlayedGame","_createEmptyLastPlayedGamesList","filterGamesByArenaType","lastGamePlayedGameTypeForArena","lastGamePlayedForCurrentArena","_getLastPlayedGameTypeForArena","_setCurrentBecauseYouPlayedGames","ReasonIsNotEligible","RunningGameBrowserTabController","_activeGameInAnotherTabDetectionTimer","_detectActiveGameInAnotherTab","isGameRunningInAnotherTab","currentRunningGame","_setActiveGame","gameContext","_onGameClosed","activeGame","_currentBrowserTabId","_activeGameTabId","currentRunningGameTab","currentRunningGameType","GameLoadingIndicatorBaseModel","HybridEmbeddedGameLoadingIndicatorRootBox","HybridEmbeddedGameLoadingIndicatorHeaderBox","HybridEmbeddedGameLoadingIndicatorContentBox","HybridEmbeddedGameLoadingIndicatorSpinnerBox","HybridEmbeddedGameLoadingIndicatorProgressCircle1Box","HybridEmbeddedGameLoadingIndicatorProgressCircle2Box","angle","HybridEmbeddedGameLoadingIndicatorProgressCircle3Box","LoadingCircleLargeIcon","gradientUnits","x1","y1","x2","y2","gradientTransform","stopColor","stopOpacity","accumulate","additive","attributeType","calcMode","dur","repeatCount","to","HybridEmbeddedGameLoadingIndicatorComponent","_onCloseButtonClick","closeLoadingIndicator","totalPackages","packagesStatus","currentPackage","_renderPackageDownloadStatusLabel","downloadPercentage","_renderConnectingSpinner","_renderProgressIndicator","TOASTER_TIMEOUT","HybridEmbeddedGameLoadingIndicatorModel","_slowConnectionToasterTimer","_showToaster","MessageID","TIMED","ON_DEMAND","ON_DEMAND_CATEGORY","totalSeconds","_updateProgress","percentage","numberOfPackages","_clearToasterTimer","onHybridEmbeddedGameLoadingIndicatorUpdateV1","onHybridEmbeddedGameLoadingIndicatorUpdateV2","statusBar","closeGameLoadingIndicator","hybridGameLoadingIndicatorClosed","WebAppGameLoadingIndicatorComponent","WebAppGameLoadingIndicatorModel","GameRunnerService","gameTabController","_runGameStarted","_reOpenPendingGame","GAME_FRAME","persistedGameParams","SessionStorageKeys","currentGameParams","initialGameParams","onDepositWidgetClosed","_refreshCurrentGameBalance","gameCommunicationChannel","supportsBalanceRefresh","refreshBalance","initialRunGameParams","_openHistoryGame","_logOpenGameError","_showGameOpenError","messageText","error_code","getGeneralErrorMessage","errMsgToLog","logError","_runGame","openDemoGame","loadingIndicator","gameLoadingIndicator","Continue","_closeCurrentRunningGame","_setGameLoadingIndicator","_createGameLoadingIndicator","getRegulatedCompany","_setCurrentRunningGame","createWaitForClosePromise","triggerLegacyGameOpenEvent","waitForGameToClose","triggerLegacyGameCloseEvent","freePlayContext","isFreePlay","stopAutoplay","resumeGamePlay","gameInternalRealityCheckInterval","getRealityCheckExpectedByTheGame","expectedValueByTheGame","shouldShowRealityCheckMessageWhileGameIsOpen","shouldShowTimeLimitMessageWhileGameIsOpen","HybridService","gameUrl","prepareGameUrl","getCompiledGameVersion","executeWaitForHybridGameStep","navigateToOnDemandStandalone","isNativeSupportSecondWebView","isOnDemandHtmlGame","isOnDemandStandalone","getOnDemandOrigin","showHybridAlert","StaticVideoPlayingService","posterImage","StaticVideoPlayer","SessionStorageService","StorageServiceBase","CookiesService","expiration_date","toUTCString","setFullYear","getFullYear","cookie","FreePlayGameModel","voucher","VoucherBaseModel","voucherData","_voucherData","ID","FreePlayTypeId","CompanyID","gamesDictionary","GameTypeIDList","CurrentBalance","freePlayGames","ExpirationDate","isExpired","newVoucherData","OriginAmount","_formatVoucherAmount","timeToExpiration","timeToExpirationRoundedToSeconds","isCloseToExpiration","expiration","FreePlayVoucherModel","backgroundTypeFP","JackpotFreePlayVoucherModel","backgroundTypeJFP","FreeSpinsVoucherModel","SpinBetAmount","backgroundTypeFS","JackpotFreeSpinsVoucherModel","backgroundTypeJFS","VouchersProviderBase","Tripe8FreePlayVouchersProvider","_cgpEventsSubscriptions","_onFreePlayBatchAddedHandler","vouchers","existingVoucher","_findVoucher","updateVoucherData","voucherModel","_createVoucherModel","_onFreePlayBatchUpdatedHandler","_onFreePlayBatchRemovedHandler","voucherIds","v","onFreePlayBatchAdded","onFreePlayBatchUpdated","onFreePlayBatchRemoved","voucherId","FREE_PLAY_TOOLTIP_DISPLAYED_NUMBER","FREE_PLAY_TOOLTIP_IS_DISPLAYED_IN_SESSION","FreePlayTooltipNotificationHandler","freePlayService","_freePlayIndicatorElementRef","_alreadyNotifiedVouchers","userVouchers","hasNewVouchers","_showTooltipOnFreePlay","_closeTooltip","hasVouchers","_toolTipDisplayCount","_toolTipWasDisplayedOnCurrentSession","_shouldShowTooltip","translateService","FPGiftIcon","giftIcon","_onTooltipClicked","ThirdPartyVouchersProvider","onThirdPartyVouchersReceived","FreePlayService","_toolTipHandler","_setVoucherProviders","setFreePlayIndicatorDOMElementRef","newProviders","_vouchersProviders","vp","allVouchers","provider","isValid","v1","v2","hasGame","refreshVouchers","RestrictionsService","FreeToPlayService","_checkEligibilityPromise","_isEnabled","_checkEligibility","_setIsPromotionEligible","shouldShowPromotion","crm","isPromotionRestricted","_isPromotionEligible","_isPromotionOpened","isOpened","CASINO_BONUS_GAME_WIDGET","openFreeToPlayBonusGames","GnwpService","gnwpRequest","templateName","isHistory","historyGameRoundId","historyRoundStartDate","gameLimit","requestedGameLimit","requestedTimeLimit","restrictionPeriod","intervalReminder","isOSS","NyxLinkID","NetEntGameHistoryLinkID","hasInGameHistory","getGNWPResponse","gnwpResponse","getGNWPUrl","ScriptLoaderService","AdminBannerService","firstScript","adminBannerScript1","secondScript","adminBannerScript2","IsFTD","IsAuthenticated","serials","states","getUserSelectedState","placeholderId","deviceCode","SessionTimerService","_onSessionTimerUpdate","currentSessionTimer","sessionTime","GeoLocationService","DialogResult","CrmService","_sdkLib","_initCrmPromise","_initService","onFirebaseGotNewToken","_connect","isAuth","_initCrm","_disconnect","CrmSdk","libUrl","executeInitCrm","_loadLib","initCrm","userToken","fbToken","onConnectedToFirebase","onDisconnectedFromFirebase","checkEligibility","_getEligibility","doNotShowPromotionReasons","PromotionRestricted","reasonIsNotEligible","LugasActiveDialogBoxLine","LugasActivePopupComponent","SpecificDialogsService","analyticsOnClick","DownloadAppIcon","KeepDialogOpen","reportConfirmClicked","ACTION_TAKEN_NAMES","CONFIRM_ACTION","LUGAS_COOLDOWN_MESSAGE_NAME","ret","lugasCooldown","LUGAS_ACTIVE_MESSAGE_NAME","lugasActiveOnAnotherOperator","TippingHistoryBaseModel","_setRecords","reset","loadAllRecords","TipHistory","GameTypeID","TipAmount","AvailableBalanceAfterAction","getTippingHistory","tipId","TipID","gameTypeId","imagePlaceHolderUrl","tipDate","TipDateTime","_getAmounts","TippingHistoryService","LoyaltyIndicatorModel","_clickHandler","LCChallenges","_loyaltyRef","LoyaltyIndicatorConstructor","LoyaltyIndication","loyaltyInitInfo","_createLoyaltyInfo","firebaseToken","UserInfo","FirebaseToken","CID","LanguageCode","ClientContext","BrandId","ClientPlatform","ClientVersion","ProductPackage","SubBrandId","Style","_createLoyaltyStyle","loyaltyStyleParams","BackgroundColor","ShowBoxShadow","ShowUnderline","FontSize","ArrowSize","Font","ProgressBarHeight","ArrowColor","LOLArrowContainerRigh","LOLArrowContainerLeft","LOLContentPaddingLeft","TextColor","ProgressBarColor","ProgressBarBackgroundColor","ProgressBarBorderRadius","LOLArrowTop","Terminate","LoyaltyService","_loadLoyaltyPromise","_loadLoyaltyScriptPromise","_loadLoyalty","_loadLoyaltyScript","_getFirebaseToken","fireBaseToken","Loyalty","scriptLink","StatePopupWrapperBox","StatePopupComponent","_onStateConfirmation","onStateSelect","_onStateNotInListClick","onStateNotInListClick","_getStateName","statePopup","stateName","THE_STATE","StatePopupErrorMessageBox","StatePopupSelectWrapperBox","StatePopupWithDropdownComponent","_defaultOption","currentStateID","shouldShowError","_renderOptions","defaultOption","stateOptions","_renderErrorMessage","isOneSiteEnabled","_renderStateSelector","RegularStatePopupStrategy","_popupDisplayedLocalStorageKey","stateID","forceDisplay","OneSiteStatePopupStrategy","_shouldShowLoginFormSessionStorageKey","saveStateInCookie","reload","getStateFromCookie","StateOfResidenceIdentifierService","_statePopupStrategy","_onReceivedUserStateQueryParam","urlWithoutUserState","_cookieKey","_displayLoginForm","statePopupStrategy","shouldDisplayStatePopup","StatePopup","getComponent","onStateConfirmation","onOtherStateClick","getPopupTitle","locationPopupClosed","removeStateCookie","oneSite","searchParams","IndicatorLayout","DialogFactoryService","reportClick","LUGAS_LOGOUT_MESSAGE_NAME","CANCEL_ACTION","Rejected","Accepted","lugasLogout","ServiceFactory","sdkHooksProvider","windowService","domService","httpService","_appStartupConfigs","_languageData","_externalLinks","_userMenu","_pokerIntegration","_verticalGamesList","_lobbyGameInfoPreview","_aiEngine","_aiNewEngine","_deepLink","_gameRouteHandler","_gamesFilter","_runningGame","_becauseYouPlayed","_siteMap","_marketing","_cmsPages","_configuration","_spinner","_webVitals","_location","LocationService","_routing","_regulation","_segmentation","_liveTableFeeds","_translation","_currencyService","_analyticsService","_analyticsDataLayerService","_userService","_browserButtonsHandler","_homepageService","_userGameOrientationService","_cmsApi","_cmsBanners","_launcher","_clientDevice","_device","_deepLinkParser","_deepLinkActionsFactory","_sdk","_language","_sideMenu","_gameSearch","_gamePopup","_cmsSegmentation","_stickyHandlerFactory","_menuFlow","_exitPopup","_sdkComponentFactory","_gamePreviewFeaturesSelector","_routingConfiguration","_overlay","_time","_abTestingFeatureDataProvider","_abTestingAiSort","_themeDefinition","_miniOrbit","_dialog","_header","_pwaManifest","_progressiveWebApp","_miniOrbitCommunicationAdapterFactory","_drawerService","_dailyDeal","_omgProxy","_jackpotsWithState","_jackpots","_gradualIncreaseHelperFactory","_walletProxy","_safezone","_safezoneObjectFactory","_tools","_sessionCooldown","_mediaQuery","_api","_orbitComponentToSdkAdapter","_messageBroker","_appLauncher","_actionHandler","_floatingBubbles","_restrictionRuler","_redTiger","_casinofiedAnalytics","_liveStreamPlaying","_staticVideoPlaying","_httpWithRequestTimeMeasurement","_cashier","_playerOfferings","_qaEnvironmentPopUpBlockerService","_limitsToaster","_burnoutService","_pixiAppService","_gameAnimatedIconsManagerService","_webGlContextManagerService","_gamingHistory","_tippingHistory","_companies","_freeToPlayService","_gameRunner","_hybrid","_sessionStorage","_cookies","_freePlay","_restrictions","_gnwp","_scriptLoader","_adminBanner","_sessionTimer","_geoLocation","_crm","_specificDialogs","_stateOfResidenceIdentifier","_loyaltyIndicator","_dialogFactory","SplashService","forceInit","fireOrbitInitComplete","LogoContainerDefaultBox","LogoContainerCasino888Box","logoBackground","logoDecoration","LogoContainerCasino777Box","LogoContainerBox","LogoImageDefaultBoxCasino777","LogoImageDefaultBoxHarringtonDelaware","LogoImageDefaultBallysDover","LogoImageDefaultWSOP","LogoImageDefaultHarrash","LogoImageDefaultBox","LogoImageBox","LogoVipImageDefaultBox","LogoVipImageDefaultBoxCasino777","LogoVipImageDefaultBoxHarringtonDelawareBallysDover","LogoVipImageSIBox","LogoVipImageDefaultBoxHarrash","LogoVipImageDefaultBoxWSOP","LogoVipImageBox","LogoBox","withAnalytics","goHome","useDarkLogo","logoURL","TheLogoImageBox","_getLogoImageURL","shownData","selectedUserInfo","useSpanWrapper","ProfilePictureBox","ProfileUserNameDefaultBox","ProfileUserNameCasino777Box","ProfileUserNameBox","avatarState","ProfilePicture","imageSize","_openUserMenu","_getAvatarUrl","_updateAvatarState","onMouseDown","onMouseUp","_renderUserName","avatarUrl","marketingDl","IndicatorDefaultBox","displayLayout","List","IndicatorCasino777Box","IndicatorBox","IndicatorIconDefaultBox","IndicatorIconCasino777Box","IndicatorIconHarrahsWsopBox","IndicatorIconSIBox","IndicatorIconBox","pulseAnimation","IndicatorBadgeDefaultBox","backgroundInListLayout","IndicatorBadgeSIBox","IndicatorBadgeBox","IndicatorTextDefaultBox","IndicatorTextCasino777Box","IndicatorTextBox","IndicatorIconWrapperDefaultBox","IndicatorIconWrapper777Box","IndicatorIconWrapperBox","ProfileBoxMessagesIndicator","indicatorIsActive","indicatorActive","iconComponent","numberOfMessagesIsDefinedAndGreaterThanZero","hasAwaitingMessages","OmgIndicator","omgProxy","notificationIcon","FreePlayIndicatorComponent","freeplayIcon","ProfileMessagesDividerDefaultBox","ProfileMessagesDividerCasino777Box","ProfileMessagesDividerHarrahsWsopBox","ProfileMessagesDividerBox","ProfileButtonsDefaultBox","ProfileButtonsHarrahsWsopBox","ProfileButtonsBox","ProfileCashierButtonDefaultBox","ProfileCashierButtonCasino777Box","ProfileCashierButtonCasino888Box","ProfileCashierButtonBallysDoverBox","ProfileCashierButtonHarringtonBox","ProfileCashierButtonHarrahsWsopBox","ProfileCashierButtonBox","ProfileCashierAddButtonDefaultBox","ProfileCashierAddButtonHarrahsWsopBox","ProfileCashierAddButtonBox","ProfileWrapperBox","ProfileMessagesDefaultBox","ProfileMessagesCasino777Box","ProfileMessagesBox","MARKETING_DL","ProfileBox","_renderLogin","_renderCashier","_renderProfileBoxMessages","_openLogin","AddIcon","addIcon","plusButton","BrandSwitchListBox","BrandSwitchListItemBox","BrandSwitchListItemIconBox","BrandListComponent","_onBrandClick","brandConfig","class","_renderBrand","StoreButton","store_button","appLink","preventDefaultOnClick","imgSrc","imgSrcFallback","MenuLinksGroupsContainerBox","section","SideMenuContainerBox","MobileMenuItemContainerBox","MobileMenuItemLinkDefaultBox","MobileMenuItemLinkCasino777Box","MobileMenuItemLinkBox","MobileHelpCenterMenuItemComponent","_mobileHelpButtonHandler","openHelp","HamburgerMenu","HelpIcon","sideMenuHelp","_renderText","MobileLangSwitcherMenuItemSelectedLangBox","MobileLangSwitcherContainerBox","MobileLanguageMenuItemBox","MobileLangSwitcherMenuItemComponent","openMobileLanguageSwitcher","SideMenuHorizontalLineBox","horizontalLineBackgroundColor","horizontalLineBackgroundImage","MobileMenuItemsContainerBox","RelatedSitesWrapperBox","RelatedSiteLinkBox","RelatedSiteLink","StateSelectorButtonComponent","currentState","twoCharsIcon","usaMapIcon","color","handleClick","MobileStateSelectorMenuItemComponent","_openStateSelectorPopup","SideMenu","_renderMobileStateSelector","shouldDisplayStateSelectorButton","linkBlocks","menuLinksBlockOrder","_renderSideMenuSection","_renderMobileMenuElements","_renderBottomMenuSection","_renderBrandList","_renderRelatedSitesLinks","_renderInsideOrbitMenuContainerMobile","_renderStoreButton","shouldDisplayHelpLink","helpLinkMobile","shouldDisplayLanguageSwitcher","shouldDisplayStateSelector","_renderMobileHelp","_renderMobileLangSwitcher","brand_sites","sites","relatedSited","related_sites","LanguageSwitcherDropdownDefaultBox","LanguageSwitcherDropdownBox","LanguageSwitcherListDefaultBox","LanguageSwitcherListBox","h4","LanguageSwitcherTitleDefaultBox","LanguageSwitcherTitleBox","LanguageSwitcherListItemDefaultBox","LanguageSwitcherListItemBox","LanguageSwitcherItemLabelDefaultBox","isSelected","LanguageSwitcherItemLabelBox","isChecked","LanguageSwitcherItemCheckboxDefaultBox","LanguageSwitcherItemCheckboxBox","LanguageSwitcherSectionComponent","_selectItem","makeCurrent","htmlId","isCurrent","_renderOneItem","LanguageSwitcherSectionSeparatorDefaultBox","LanguageSwitcherSectionSeparatorBox","LanguageSwitcherDropdownComponent","_renderSection","MobileMenuHeaderDefaultBox","MobileMenuHeaderSiBox","MobileMenuHeaderBox","MobileBackDefaultBox","MobileBackSiBox","MobileBackBox","MobileBackLabelBox","MainNavCanvasDefaultBox","MainNavCanvasCasino777Box","MainNavCanvasSIBox","MainNavCanvasBox","MainNavBox","OPEN_MENU","DRAGGING","MainNavContentWrapperBox","MainNavMenuBox","MainNav","mainNavRef","_onLogoClick","dragProperties","isDragging","initialPointerX","initialNavMenuTransform","isNavigation","sideMenuDarkLogo","BackIcon","backButtonHandler","_hideMobileMenu","backButtonUseLabel","backButtonCyClass","isRTL","pointerX","touches","pointerXDelta","windowSize","innerWidth","minMainNavXToAutoClose","currentMainNavXPosition","removeProperty","onTouchMove","_onDrag","onTouchEnd","_onStopDragging","_renderMobileMenuHeader","_renderLogo","_renderProfileBox","UserMenuSectionDefaultBox","UserMenuSectionCasino777Box","UserMenuSectionCasino888Box","UserMenuSectionCasinoSIBox","UserMenuSectionBox","LoyaltyBarSectionBox","LoyaltyBar","showLoyaltyConfig","UserDetailsSectionDefaultBox","UserDetailsSectionCasino777Box","UserDetailsSectionHarrahsWsopBox","UserDetailsSectionBox","UserDetailsWrapperDefaultBox","UserDetailsWrapperCasino777Box","UserDetailsWrapperBox","UserMenuPictureDefaultBox","UserMenuPictureCasino777Box","UserMenuPictureBox","UserMenuTitleDefaultBox","UserMenuTitleCasino777Box","UserMenuTitleBox","UserMenuTitleAccountDefaultBox","UserMenuTitleAccountCasino777Box","UserMenuTitleAccountBox","UserMenuTitleMobileDefaultBox","UserMenuTitleMobileCasino777Box","UserMenuTitleMobileBox","UserInfoLabelBox","UserDetails","_setAvatarState","launchMyAccount","_renderAvatar","_renderUserData","translator","UsefulLinksSectionDefaultBox","UsefulLinksSectionCasino777Box","UsefulLinksSectionHarrahsWsopBox","UsefulLinksSectionBox","LogOutSectionDefaultBox","LogOutSectionCasino777Box","LogOutSectionBox","UserMenuSectionIconDefaultBox","UserMenuSectionIconCasino777Box","UserMenuSectionIconBox","UsefulLinksSectionIconDefaultBox","UsefulLinksSectionIconCasino777Box","UsefulLinksSectionIconBox","LogOutLinkDefaultBox","desktop","LogOutLinkCasino777Box","LogOutLinkBox","UsefulLinks","userMenuService","doLogout","BonusAndCashBalanceBox","BalanceInnerBox","BalanceTitleInnerDefaultBox","BalanceTitleInnerCasino777Box","BalanceTitleInnerHarrahsWsopBox","BalanceTitleInnerBox","BalanceValueBonusAndCashDefaultBox","BalanceValueBonusAndCashCasino777Box","BalanceValueBonusAndCashHarrahsWsopBox","BalanceValueBonusAndCashBox","BonusAndCashBalance","BalanceButtonsGroupDefaultBox","BalanceButtonsGroupCasino777Box","BalanceButtonsGroupHarrahsWsopBox","BalanceButtonsGroupBox","UserBalanceButtons","onDeposit","onWithdraw","UserMenuBalanceTitleCasino777Box","UserMenuBalanceTitleBox","UserBalanceSectionBox","UserBalanceSectionIconDefaultBox","UserBalanceSectionIconCasino777Box","UserBalanceSectionIconBox","BalanceValuePrimaryDefaultBox","BalanceValuePrimaryCasino777Box","BalanceValuePrimaryBox","UserBalance","launchDeposit","launchWithdraw","UserChallengesContainerBox","UserChallengesTitleBox","UserChallengeComponent","launchDrawerLink","UserChallengesComponent","drawerBoxesConfig","drawerBoxes","MiniSafezoneDefaultBox","MiniSafezoneBox","MiniSafezoneComponent","iApplication","appLoadingInProgress","cancelLoadingApp","closeSafezoneReason","safezoneBoxClickHandler","loadControlCenterMini","disposeApplication","openControlCenterMini","safezoneHeaderButton","UserMenuScrollWrapperBox","UserMenuFakeIOSPaddingBox","UserMenuMobile","WelcomeUserBox","WelcomeGreetingDefaultBox","WelcomeGreetingCasino777Box","WelcomeGreetingBox","WelcomeUserInfoDefaultBox","WelcomeUserInfoCasino777Box","WelcomeUserInfoBox","WelcomeUser","greeting","showUserTitle","showFirstName","showLastName","_renderUserTitle","_renderUserInfo","userGenderTitle","genderTitle","infoType","UserMenuClosePCButtonBox","UserMenuCloseIconDefaultBox","UserMenuCloseIconCasino777DefaultBox","UserMenuCloseIconBox","UserMenuHeaderBox","UserMenuPc","_renderUserMenuHeader","FreePlayContainerBox","VouchersSwiperBox","VoucherSwiperArrowContainerBox","isPrev","swiperArrowPrev","swiperArrowNext","VouchersSwiperComponent","prevElement","nextElement","dir","slidesPerView","centeredSlides","pagination","clickable","nextEl","prevEl","modules","Pagination","Navigation","onBeforeInit","onActiveIndexChange","onCurrentVoucherIndexChanged","activeIndex","_vouchers","VoucherGamesListBox","VouchersSwiperTitleBox","VouchersSwiperBackgroundBox","backgroundVouchersSlider","VouchersGamesListTitleDefaultBox","VouchersGamesListTitleCasino777Box","VouchersGamesListTitleBox","FreePlayContainerComponent","_renderVoucherGames","currentVoucher","currentVoucherIndex","voucherGame","marginBottom","_onCurrentVoucherChangedHandler","voucherIndex","UserMenuRootDefaultBox","USER_MENU_OPEN","UserMenuRootCasino777Box","UserMenuRootBox","UserMenuWrapperDefaultBox","UserMenuWrapperBox","UserMenuHolderDefaultBox","UserMenuHolderBox","UserMenu","holderRef","_closeMenu","_renderMobileBackButton","_renderMenuContents","HelpButtonComponent","PCHeader","topHeaderRightConfig","top_header_right","help","helpIcon","SpriteIconBox","sourceX","sourceY","Icons","Close","PokerBrandSmall","SportBrandSmall","CasinoBrandSmall","CrossBrandListDefaultBox","CrossBrandListBox","CrossBrandItemDefaultBox","customProps","poker","sport","casino","CrossBrandItemBox","CrossBrandItemIconDefaultBox","CrossBrandItemIconBox","CrossBrandsComponent","directLink","brandClass","formattedBrandClass","BrandIcon","_getBrandIcon","crossBrandsConfig","cross_brand","_renderCrossBrandLinks","BurgerIconDefaultBox","BurgerIconCasino777Box","BurgerIconSiBox","BurgerIconBox","BurgerMenuContainerBox","MobileBurgerMenuComponent","HeaderLanguageSwitcherBox","HeaderLanguageSwitcherComponent","_timer","_toggleDropdown","_clearCollapseTimeout","_colapseDropdown","_startCollapseTimeout","earthGlobeIcon","NavbarSeparatorDefaultBox","NavbarSeparatorSiBox","NavbarSeparatorBox","HeaderNavbarContainerDefaultBox","nav","HeaderNavbarContainerWsopBox","HeaderNavbarContainerHarrahsBox","HeaderNavbarContainerCasino777Box","HeaderNavbarContainerSIBox","HeaderNavbarContainerBox","HeaderNavbarMobileWrapperDefaultBox","HeaderNavbarMobileWrapperSiBox","HeaderNavbarMobileWrapperBox","HeaderNavbarLeftContainerBox","HeaderNavbarRightContainerBox","NAVBAR_RESPONSIBLE_ICONS_POSITION","HeaderComponent","_captureHeaderRef","setHeaderElement","safeZoneIcon","_headerConfig","secondaryLogoUrl","_renderSecondLogo","_renderDesktopSearchInput","responsibleIcons","_renderInsideOrbitMenuContainerPC","_renderDesktopSafezoneButton","_renderDesktopStateSelectorButton","_renderDesktopHelpButton","_renderDesktopLanguageSwitcher","_renderMobileNavbar","_renderDesktopLeftNavbar","_renderDesktopRightNavbar","DrawerBodyBox","DRAWER_WIDTH","DrawerContentBox","DrawerComponent","lastVisibleDrawerItemIndex","ReactDOM","createPortal","_renderDrawer","OverlayComponentBox","OverlayComponent","SpinnerBox","SpinnerBrandBox","spinnerAnimationKeyframes","SpinnerBackgroundDefaultBox","SpinnerBackgroundCasino777Box","SpinnerBackgroundCIPBox","SpinnerBackgroundCISBox","SpinnerBackgroundBox","SpinnerLogoDefaultBox","SpinnerLogoCasino777Box","SpinnerLogoCIPBox","SpinnerLogoWSOPBox","SpinnerLogoDelawareParkBox","SpinnerLogoBallysDoverBox","SpinnerLogoHarringtonBox","SpinnerLogoCISBox","SpinnerLogoBox","SpinnerComponent","BreadcrumbsComponent","showBreadcrumbs","cmsPages","bcrumb","AppFooterComponent","footerConfiguration","footer","RouterOutletDefaultBox","RouterOutletCasino777Box","RouterOutletCasino888Box","RouterOutletHarrahsBox","RouterOutletWsopBox","RouterOutletSIBox","RouterOutletBox","RouterOutletComponent","BottomStickyNavbarContainerBox","shouldElevate","StickyNavigationMenuListBox","StickyNavigationMenuItemBox","StickyNavigationMenuItemIconDefaultBox","StickyNavigationMenuItemIconSIBox","StickyNavigationMenuItemIconBox","StickyNavigationMenuActiveIndicatorDefaultBox","StickyNavigationMenuActiveIndicatorWsopBox","StickyNavigationMenuActiveIndicatorHarrahsBox","StickyNavigationMenuActiveIndicatorCasino777Box","StickyNavigationMenuActiveIndicatorBallysDoverBox","StickyNavigationMenuActiveIndicatorHarringtonBox","StickyNavigationMenuActiveIndicatorDelawareParkBox","StickyNavigationMenuActiveIndicatorSIBox","StickyNavigationMenuActiveIndicatorBox","StickyNavigationMenuActiveIndicatorRailBox","StickyNavigationMenuActiveIndicatorComponent","StickyNavigationMenuListComponent","allMenuLinks","validNavPaths","activeElement","stickyMenuBoundingBox","resizeEventHandler","iconsMap","home","slots","exclusive888games","promotions","activeLink","activePosition","_setActiveLink","onBeforeChangingLocation","_setActiveLinkPosition","elBoundingBox","stickyMenuLeftEdge","elBoundingBoxCenter","_isActiveLink","_setActiveLinkRef","_handleLinkClick","linksOrder","stickyMenuBlockOrder","linksConfig","_renderLink","el","_setStickyMenuContainerRef","_renderLinksList","StickyNavigationMenuComponent","FloatingBubblesContainerBox","FloatingBubbleBox","FloatingBubblesComponent","bubble","MainWrapperDefaultBox","MainWrapperCipBox","MainWrapperBox","QAEnvironmentPopUpBlocker","ContainerComponent","_showQAEnvironmentPopUpBlocker","qaEnvironmentPopUpBlockerCookie","URLSearchParams","_renderRightDrawer","_renderFullOrbitMobileLayout","_renderFullOrbitPcLayout","_renderMiniOrbit","_renderFullOrbit","ModalDialogsContainerComponent","OrbitComponentsRenderedInsideSdkContainer","componentsPortals","PlayerBurnoutLayerComponent","burnoutService","checkOmg","TooltipArrowDefaultBox","TooltipArrow777Box","TooltipArrowBox","TooltipCloseButtonBox","invertColors","TooltipContainerBox","isAnimated","TooltipGlowDefaultBox","TooltipGlow777Box","TooltipGlowBox","TooltipContentBox","ToolTipComponent","toolTip","onToolTipRendered","currentTooltip","shouldShowCloseButton","ToolTipContainerComponent","GameLoadingIndicatorRootBox","isHidden","GameLoadingIndicatorComponent","CurrentGameContainerComponent","renderGame","AppComponent","removeSplash","splashTime","siteFinishedLoading","disableCSSOMInjection","stylisPlugins","RtlPlugin","renderGlobalStyles","renderApp","orbitElement","InMemoryLocalStorageService","_localStorageData","B2CFrameworkLoader","b2cConfig","_languageIso2","_cmsSource","overrides","jsFiles","customJsFiles","customCssFiles","cssFiles","jsFile","_loadScriptTag","_createTagId","cssFile","_loadStyleTag","_buildFilePath","scriptTag","styleTag","DEFAULT_CONFIGS","excludedFilters","casinoGames","exclusive888Games","resolveAssets","assetsContainer","assetLocationInfo","resolveLocation","getThemeName","storageService","baseUri","isMiniOrbitBasePath","ORBIT_LOCATION_OVERRIDE_BASE","selectTheme","storage","themeDefinitionModule","configure","enforceActions","createStorage","lsData","LocalStorageService","getLanguageData","languageIso3","languageDataModule","engLang","startApplication","WindowService","DomService","HttpService","loggerService","ConsoleLoggerService","configurationsReader","readApplicationConfigurations","languageData","process","REACT_APP_THEME_NAME","loadB2CFramework","promo","LobbyHeaderDefaultBox","stickOffset","LobbyHeaderCasino777Box","LobbyHeaderSiBox","LobbyHeaderBox","LobbyHeaderTitleDefaultBox","LobbyHeaderTitleSIBox","LobbyHeaderTitleBox","LobbyHeaderLinePCBox","LobbyHeaderLineMobileBox","LobbyHeaderLineDefaultBox","LobbyHeaderLineCasino777Box","LobbyHeaderLineBox","LobbyHeaderButtonsContainerBox","LobbyHeaderDefaultButtonsBox","LobbyHeader777ButtonsBox","LobbyHeaderButtonsBox","LobbyHeaderTitleContainerBox","LobbyHeaderComponent","handleSearchClick","renderingOptions","lobbyHeaderClasses","SearchIcon","searchIcon","_renderFiltersIndicatorNextToTheTitle","_renderFiltersIndicatorUnderTheTitle","Svg","svg","flipOnRTL","SvgIcon","defaultSize","Px","Percent","ratio","version","xmlns","Load","LoadingDotBox","animationDelay","LoadingDotsBox","LoadingDotsComponent","SeoBreadcrumbsContainerBox","SeoBreadCrumbsComponent","_default","_registry","override","Casino888","Casino888Cip","WsopCip","Casino888Cis","Harrahs","Wsop","BallysDover","Delawarepark","Harrington","SI","MrGreen","VOLATILITY_LIMITS","PLATFORM_TYPES","ALL","MOBILE","NONE","TableSeatsComponent","Seats","SeatsTaken","Players","_isTableFull","_getTableIsFullTranslationKey","_getPlayersCountFormated","fullSeatIcon","seatIcon","_getTableIsFullText","_getSeatsIconSource","_templateID","_fallbackFileName","_areEqual","val1","val2","LayoutWrapperBox","LayoutWrapperDefaultBox","IntersectionSpyComponent","_captureIntersectionSpy","QA_ENV_URBAN_DEFAULT_SETTINGS","defaultIcon","defaultTitle","defaultActionURL","appKey","vapidPublicKey","GameHeaderBarCloseButtonBox","GAME_PC_BUTTON_WIDTH","GAME_PC_BUTTON_HEIGHT","GAME_MOBILE_BUTTON_WIDTH","GAME_MOBILE_BUTTON_HEIGHT","InfoIcon","VOUCHER_CARD_WIDTH","_relativePath","_brandsOverrides","_locationInfo","locationInfo","IFRAME","REDIRECT","SECOND_WEB_VIEW","CASHIER_ACTIONS","LINK_DEFAULT_CONGIF","allowedViews","dimensions","isAuthRequired","isCloseBtnAllowed","immediateShow","isMobileFullScreen","macos","browsers","safari","isNotAuthRequired","MEMBERSHIP","backToView","SECONDARY_MESSAGE","COMPONENT_TYPES","DIRECTIVE","CONTACT_US","FORGOT_PASSWORD","FORGOT_USERNAME","MY_ACCOUNT","PENDING_LOGIN","DOCUMENT_UPLOAD","KEY_NAME","FUNC","FUNC_CB","HYBRID_CB","HYBRID_CB_GLOBAL_NAME","HYBRID_CB_FEATURE_FUNC","SRV","MSG","ERROR","DATA","VAL","DISPLAY_ALSO_FACE_ID","LAZY_PUSH","ODR_DEL_GAMES","VERSION","LN_SERVER","LN_ORG_ID","LN_SESSION_ID","JS_LN_SERVER","TIME_OUT","TIME_OUT_BEFORE_DISPLAY","CLOSE_BY_TIME_OUT","CLOSE_BY_X","CLOSE_NO_CHILL","CLOSE_BY_LOW_DISK_SPACE","FOLDER_STRUCT","FOLDER_SHARED_NAME","CLOSE_X_POS_P","CLOSE_Y_POS_P","CLOSE_X_POS_L","CLOSE_Y_POS_L","MAIL_TO","PORT","KEYBORD","ROTATION","FORCE","WEB_ID","TYPE","PROGRESS_BAR_FAKE","PROGRESS_BAR_REAL","RESOURCE_NAME","X_OF_MENY","GAME_ID","SHARED_FOLDER","SERVICE","FEATURE_CB","ACTION","OPEN_LINK","DEBUG","RELOAD","AUTOLOGIN","SESSIONTIMER","HEADER_HEIGHT","BANK_ID","MIT_ID","PHONE","LEFT","RIGHT","TOP","BOTTOM","SHOW","DP_TO_PX","LOG_CATEGORY","LOG_ACTION","LOG_LABLE","LOG_VALUE","LOG_LEVEL","GAME_LOADING_START","GAME_LOADING_END","GAME_LOADING_CLOSE_BY_X","GAME_LOADING_CLOSE_BY_TIME_OUT","GAME_LOADING_CLOSE_BY_LOW_DISK_SPACE","GAME_LOADING_CLOSE_BY_NO_CHILL","GAME_LOADING_ERROR","CHILL_LOADING_ERROR","CHILL_LOADING","GAME_LOADING_REAL_ODR_STARTED","ON_DEMAND_DELETE_GAMES","LEXIS_NEXIS","SESSION_ID_LOAD_ERROR","SESSION_ID_LOAD_OK","SESSION_ID_REQUEST_SENT","SESSION_ID_CALL","SESSION_ID_LOAD_EMPTY","SESSION_ID_CLOSE_BY_TIME_OUT","LEXIS_NEXIS_CATEGORY","ODR_FOLDERS","SHARED_ONE_FOLDER","SHARED_MANY_FOLDER","SHARED_NONE","SHARED_GGP","ODR_SHARED_GAMES","EMPTY","RED_TIGER","PRAGMATIC_PLAY","PLAY_N_GO","PLAY_TECH","FEATURE_CB_FUNC","HYBRID_WEB_CALL","HYBRID_URL_SCHEME_CALL","HYBRID_PUSH_CALL","HYBRID_GEO_CALL","HYBRID_ON_DEMAND_CALL","HYBRID_ON_DEMAND_NYX_CALL","HYBRID_LOBBY_POP_UP_CALL","HYBRID_FIRE_BASE","HYBRID_NATIVE_LOGS","HYBRID_SERIAL_EXTENTIONS","SERIVCES_FUNC_LIST","WEB_VIEW_WEB_SHOW","WEB_VIEW_SAFARI","WEB_VIEW_SAFARI_PING","WEB_VIEW_ACCOMPLISHED","WEB_VIEW_IS_HTML_COMPILED_GAMES","WEB_VIEW_GET_DP_2_PX","GENERAL_INIT_HYBRID","GENERAL_ALERT","GENERAL_ALERT_D","GENERAL_SET_ROTATION","GENERAL_SET_CB","GENERAL_OPEN_MAIL","GENERAL_OPEN_EXTERNAL_LINK","SERIAL_GET_SERIAL","SERIAL_SET_CB","T3_D_TOUCH_INIT_SHORTCUTS","T3_D_TOUCH_UPDATE_SHORTCUT","T3_D_TOUCH_DELETE_SHORTCUT","T3_D_TOUCH_DEL_ALL_SHORTCUTS","T3_D_TOUCH_GET_LAUNCH_SHORTCUT","TOUCH_ID_SUPPORT_FACE_ID","TOUCH_ID_GET_TOKEN","TOUCH_ID_OPEN","TOUCH_ID_SET_TOKEN","TOUCH_ID_IS_SUPORTED","TOUCH_ID_CLEAR_ALL","TOUCH_ID_PARAMS_FOR_TOKEN","WEB_SECOND_SET_CB","WEB_SECOND_NAVIFATE","WEB_DEPOSIT_WIDGET_NAVIFATE","WEB_SECOND_SHOW","WEB_SECOND_HIDE","WEB_SECOND_CLOSE","WEB_SECOND_UPDATE_SIZE","WEB_DEPOSIT_WIDGET_SUPPORTED","INFO_GET_ALL_INFO","INFO_SET_URL","URL_SCHEME_SET_CB","URL_SCHEME_GET_URL_SCHEME","URL_SCHEME_CLEAR","PUSH_IS_DEVICE_ENABLE","PUSH_SET_CB","PUSH_GET_ACTION","PUSH_ADD_TAG","PUSH_REM_TAG","PUSH_SET_ALIAS","PUSH_PROMPT_PERMISSION","GEO_SET_CB","GEO_GET_LOCATION","GEO_IS_PERMISSION_SUPPORTED","GEO_SHOW_PERMISSION","LEXIS_NEXIS_GET_INFO","LEXIS_NEXIS_IS_SUPPORTED","RATE_APP","ON_DEMAND_IS_READY","ON_DEMAND_CLOSE_GAME","ON_DEMAND_SET_CB","ON_DEMAND_LOAD_CHILL","ON_DEMAND_CLOSE_BY_X","ON_DEMAND_CLOSE_BY_TIME_OUT","ON_DEMAND_CLOSE_BY_LOW_DISK_SPACE","ON_DEMAND_DELETE_GAME_FOLDER","ON_DEMAND_NYX_SET_CB","ON_DEMAND_NYX_NAVIGATE","ON_DEMAND_NYX_CLOSE","ON_DEMAND_NYX_CHANGE_HEADER_HEIGHT","ON_DEMAND_NYX_IS_IFRAME_SUPPORT","ON_DEMAND_NYX_GET_LOCAL_HOST_URL","LOBBY_POPUP_IS_SUPPORTED","LOBBY_POPUP_SHOW","LOBBY_POPUP_CLOSE","LOBBY_POPUP_SET_CB","FIRE_BASE_GET_DATA","NATIVE_LOGS_SET_CB","SERIVCES_PARAMS_LIST","WEB_VIEW_SPLASH","WEB_VIEW_SPLASH_SHOW","WEB_VIEW_SPLASH_FADE","LOCAL_HOST","HTTP","HTTPS","negateNextRule","formatRule","EMBEDDED_HYBRID","MINI_ORBIT","BlankHorizontalSeparatorBox","LiveCasinoGridItemInfobarDefaultBox","infobarBackground","LiveCasinoGridItemInfobarCasino777Box","LiveCasinoGridItemInfobarBox","LiveCasinoGridItemBetIntervalDefaultBox","LiveCasinoGridItemBetIntervalCasino777Box","LiveCasinoGridItemBetIntervalSIBox","LiveCasinoGridItemBetIntervalBox","LiveCasinoGridItemClosedMessageDefaultBox","closedMessageBackground","LiveCasinoGridItemClosedMessageCasino777Box","LiveCasinoGridItemClosedMessageBox","LiveCasinoGridItemThumbnailOverlayBox","LiveCasinoGridItemThumbnailBox","LiveCasinoGridItemWrapperDefaultBox","LiveCasinoGridItemWrapperCasino777Box","LiveCasinoGridItemWrapperBox","LiveCasinoGridItemTitleDefaultBox","LiveCasinoGridItemTitleSIBox","LiveCasinoGridItemTitleBox","LiveCasinoGridItemBetBehindButtonDefaultBox","LiveCasinoGridItemBetBehindButtonCasino777Box","LiveCasinoGridItemBetBehindBox","LiveCasinoGridItemJackpotDefaultBox","LiveCasinoGridItemJackpotCasino777Box","LiveCasinoGridItemJackpotBox","LiveCasinoGridItemOpenAtBox","LiveCasinoArenaGridItem","isMobilePhone","Dealer","dealerIcon","jpValue","tableIsFull","BetBehind","_renderDealerName","_renderSeatsCount","_renderRouletteDraws","_renderBetBehindButton","_renderGameThumbnailImage","_renderGameInfobar","_renderGameIsClosed","_renderGameThumbnail","_renderGameItem","VoucherCardBox","VoucherCardSideBox","backgroundImageUrl","VoucherCardFaceBox","backSideShown","VoucherCardFaceContentBox","VoucherCardSideFooterBox","VoucherCardFaceFooterBox","VoucherCardFaceIconContainerBox","VoucherCardFaceDetailsBox","VoucherCardFaceOriginalAmountBox","VoucherCardFaceVoucherNameBox","VoucherCardFaceCurrentAmountContainerBox","VoucherCardFaceIconBox","iconUrl","VoucherCardFaceCurrentAmountBox","VoucherCardSideToggleButtonBox","VoucherCardSideFooterContentBox","VoucherCardFaceHeaderBox","VoucherCardFaceHeaderComponent","_expirationTimer","expirationMessage","VoucherCardFaceComponent","formattedOriginalAmount","formattedCurrentBalance","_renderOriginalAmount","voucherName","_renderCurrentAmount","onToggleSide","VoucherCardBackBox","VoucherCardBackHeaderBox","VoucherCardBackContentBox","VoucherCardBackFooterBox","VoucherCardBackComponent","CloseIcon","closeIcon","voucherDescription","VoucherCardComponent","_onToggleSide","showBackSide","_onCardSideClickHandler","LiveCasinoFilterButtonsDefaultBox","LiveCasinoFilterButtonsCasino777Box","LiveCasinoFilterButtonsBox","LiveCasinoNavbarScrollBox","LiveCasinoNavbarOverflowBox","LiveCasinoNavbarDefaultBox","LiveCasinoNavbarCipBox","LiveCasinoNavbarCasino777Box","LiveCasinoNavbarCisBox","LiveCasinoNavbarBox","ButtonsActiveIndicatorDefaultBox","activeIndicatorBg","activeIndicatorWidth","activeIndicatorPosition","ButtonsActiveIndicatorSIBox","ButtonsActiveIndicatorBox","LiveCasinoArenaNavbar","navbarRef","buttonsRefs","scrollContainerRef","_scrollEventHandler","_buttonsRefsFilters","_updateActiveIndicatorPosition","activeButton","currentFilterIndex","scrollContainer","activeIndicator","offsetWidth","widthOffset","appliedFilterIds","activeFilterButtonIndex","filterButton","_onFilterClicked","_getFilterInFirstEnter","filterIndex","_updateStateForFilterChange","setCurrentFilter","clearFilters","nextProps","nextState","nextContext","newFilters","_renderActiveIndicator","HeaderWelcomeButtonsContainerDefaultBox","HeaderWelcomeButtonsContainerHarrahsBox","HeaderWelcomeButtonsContainerSiBox","HeaderWelcomeButtonsContainerBox","HeaderWelcomeButtonsButtonBox","GetTheAppButtonDefaultBox","GetTheAppButtonSiBox","GetTheAppButtonBox","RegisterButtonDefaultBox","RegisterButtonSiBox","RegisterButtonBox","HeaderWelcomeButtonsComponent","_register","_downloadApp","specificDialogs","enforceHybridAppModal","register_in_login","_renderSdkWelcomeComponent","_getMarketingDataObject","showUserBadge","postLoginLayoutPc","styleSelectors","_getWelcomeStyleObj","preLoginLayoutPc","preLoginLayoutMobile","externalBrand","_renderDownloadApp","_showRegistrationButton","_renderWithRegistrationButton","_renderWithoutRegistrationButton","RegulatoryDataBox","GamblingWarningBox","GamblingWarningComponent","gamblingMessageConfig","gambling_message","Mobilebox","ResponsibleGamingIconsBox","ResponsibleIconsComponent","ageButtonConfig","iconType","responsibleIconsConfig","_renderAgeButton","ageButton","RegulatoryDataComponent","_captureHeaderUpperRef","setHeaderRegulationDataElement","_renderMobileLastLogin","_getRegulatoryContent","ClockLastLoginDefaultBox","ClockLastLoginCasino777Box","ClockLastLoginSiBox","ClockLastLoginBox","LastLoginDefaultBox","LastLoginSiBox","LastLoginBox","ClockAndLastLoginBoxComponent","ClockAndLastLoginBox","getTimeFormat","_renderLastLoginComponent","lastLoginDisplay","getDateTimeFormat","AnimationDismissType","FLOATING_BUTTON_DURATION_IN_SECONDS","NATIVE_ANIMATION_FRAME_WIDTH","BurnoutAnimationContainer","viewportHeight","animationEnded","dismissType","FadeOut","BurnoutAnimationBox","burnoutAnimation","lastFrame","FloatingButton","CongratulationsTextBox","animationWidth","ExitAnimationDurationByDismissType","BurnoutAnimation","starting","lastFrameCache","_animationElement","_animationWidth","_viewportHeight","_onPauseHandler","captureAnimationDivElement","paused","startAnimation","pixiJson","burnoutAnimationResource","currentAnimationTrackEntry","timeScale","addAnimation","listener","stringValue","setShowCongratsText","start","setDismissType","getExitAnimation","markAnimationEnding","autoUpdate","onExitAnimationEnd","_dismissType","_hasAnimationEnded","_showCongratsText","BurnoutFab","onMount","removeButton","useEffect","BurnoutFabContainer","BurnoutFabInner","disappearAnimation","shadowAppear","BurnoutAnimationWrapper","_onMountFAB","_renderFAB","_showButton","onClickFAB","_removeButtonAnimation","_animationEnded","recheckOmg","retryOnFail","FAB_DISAPPEAR_DURATION_IN_SECONDS","LiveCasinoGridDefaultBox","LiveCasinoGridCasino777Box","LiveCasinoGridBox","LiveCasinoGridItemSkeletonBox","LiveCasinoGridItemSkeletonTitleBox","LiveCasinoGridItemSkeletonWrapperBox","LiveCasinoArenaGrid","_gameElementRef","_gridElementRef","_cmsBannerRendered","_captureGameElementRef","gameElement","_computeNumberOfGamesInARow","_captureGridElementRef","_cmsBannerPosition","_numberOfGamesPerRow","displayRowPlace","gameIds","getLiveGames","_getCurrentSubArenaConfig","maxGamesToShow","_setCMSBannerPosition","_getPromotionalBanner","shouldRenderPromoBanner","_prepareGames","_renderGridSkeleton","_renderGridItem","_renderArenaGrid","LiveCasinoGridItemDrawsBox","LiveCasinoGridItemDrawDefaultBox","drawColor","drawRedItemBackground","drawGreenItemFirstChildBackground","drawRedItemFirstChildBackground","LiveCasinoGridItemDrawCasino777Box","LiveCasinoGridItemDrawSIBox","LiveCasinoGridItemDrawBox","ROULETTE_NUMBERS_MAP","red","green","RouletteDrawsComponent","drawValue","_getDrawColor","LobbyWrapperDefaultBox","LobbyWrapperCasino777Box","LobbyWrapperSIBox","LobbyWrapperBox","UsefulLinksListDefaultBox","UsefulLinksListCipBox","UsefulLinksListBox","UsefulLinksListComponent","onItemClick","EmptyBannerContainerBox","EmptyBannerComponent","MediaType","MediaOrientation","MediaPointer","breakpoints","MediaQueryBuilder","_mediaType","w","precision","xsMax","sMax","mMax","lMax","xlMax","maxWidth","minWidth","Portrait","Landscape","maxHeight","Fine","Coarse","None","CmsLink","_anchorElement","_cmsContentRootElement","anchorUri","tryParseUrl","scrollIntoView","evaluateScriptsWithExternalFile","fakeDiv","scriptElements","elementsLength","script","consoleLogFunc","isOrbitInQAMode","tryEnd","removeChild","_cmsLinks","_evaluateScripts","_loadCmsLinks","scriptRegex","exec","evaluateScripts","linkTags","currentLink","childElementSelector","LiveCasinoGridItemInfoItemDefaultBox","LiveCasinoGridItemInfoItemSIBox","LiveCasinoGridItemInfoItemBox","LobbyGridDefaultBox","LobbyGridBox","LiveCasinoGridItemBox","ButtonBox","rounded","hasIcon","hasLabel","iconSize","strokeWidth","lateralPadding","colorSet","bg","elevated","shadow","rotated45","ButtonLabelBox","fontSize","allowLabelWrap","ButtonIconWrapperBox","$Button","stroke","otherProps","presetValues","baseUIComponents","themePresetDefaults","defaults","iconPlacement","strokeValues","sizeVariantValues","iconSizeValue","renderIcon","Em","withTheme","LiveCasinoGridItemInfobarIconBox","LiveCasinoGridItemThumbnailImageBox","BASE","POP_UP","OPEN_SESSION","FP","OMG_BEHIND","NEXT_GAME","GAME_LOADING_INDICATOR","GAME_FRAME_LOADER","GAME_FRAME_FP","MINI_CASHIER","LOGIN","EXTERNAL_LINK","TEMP_ACCOUNT","MESSAGE","TOUCH_ID_POPUP","LOCK","SPAIN_SUMMARY_MESSAGE","GAMES_QUESTIONNAIRE","WRAPPER_DEFAULT_INDEX","partyJackpotToaster","omg","urlParam","nightLimitKick","DISRUPTIVE_KICKOFF_MESSAGE_NAME","_onClick","anchorRef","_getAnchorProps","_renderAnchor","webpackAsyncContext","__webpack_require__","code","ids","exports","PipeHorizontalSeparatorBox","hex","opacity","COM","ITALY","SPAIN","NEVADA","GIB","DELAWARE","NJ","DK","ROMANIA","PORTUGAL","SWEDEN","MALTA","SH","MICHIGAN","CANADA_ONTARIO","NETHERLANDS","UK","REGULATION_SUFFIX","TEMP_ACCOUNT_STATUS","APPROVED","DOCUMENTS_NOT_RECEIVED","PENDING_VERIFICATION","BRANDS","NJ888","CANADA","dialogTextMixin","DialogDimmedTextBox"],"mappings":"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ACA,KAGF,SAASg4O,EAAoB/8F,GAC5B,IAAIg9F,EAAoB38P,EAAE0kB,EAAKi7I,GAC9B,OAAO5wJ,QAAQ2nB,UAAUjrB,MAAK,WAC7B,IAAIud,EAAI,IAAIxL,MAAM,uBAAyBmiJ,EAAM,KAEjD,MADA32I,EAAE4zO,KAAO,mBACH5zO,KAIR,IAAI6zO,EAAMn4O,EAAIi7I,GAAM/3I,EAAKi1O,EAAI,GAC7B,OAAO9tP,QAAQ+xD,IAAI+7L,EAAIt9P,MAAM,GAAGmlB,IAAIi4O,EAAoB3zO,IAAIvd,MAAK,WAChE,OAAOkxP,EAAoB/0O,MAG7B80O,EAAoBvtO,KAAO,WAC1B,OAAOrwB,OAAOqwB,KAAKzK,IAEpBg4O,EAAoB90O,GAAK,IACzBmP,EAAO+lO,QAAUJ,G,oBC5FjB,IAAIh4O,EAAM,CACT,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,KAED,WAAY,CACX,KAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,KAGF,SAASg4O,EAAoB/8F,GAC5B,IAAIg9F,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","file":"static/js/orbit-main.cb336cdb.chunk.js","sourcesContent":["export enum ThemeName {\r\n Casino888 = \"casino888\",\r\n Casino888Cip = \"casino888/cip\",\r\n Casino888Cis = \"casino888/cis\",\r\n Casino777 = \"casino777\",\r\n Harrahs = \"harrahs\",\r\n Wsop = \"wsop\",\r\n WsopCip = \"wsop/cip\",\r\n BallysDover = \"ballysdover\",\r\n Delawarepark = \"delawarepark\",\r\n Harrington = \"harrington\",\r\n SI = \"si\", //sports illustrator\r\n MrGreen = \"mrgreen\"\r\n}\r\n","import styled, { css } from \"styled-components\";\r\n\r\ntype FlexAlignItemsProp = \"flex-start\" | \"flex-end\" | \"stretch\" | \"center\" | \"baseline\";\r\ntype FlexJustifyContentProp = \"flex-start\" | \"flex-end\" | \"center\" | \"space-between\" | \"space-around\" | \"space-evenly\";\r\n\r\n/* styled components css interpolations */\r\n\r\nexport const flexRowContainerMixin = css`\r\n display: flex;\r\n flex-direction: row;\r\n`;\r\nexport const flexRowReverseContainerMixin = css`\r\n display: flex;\r\n flex-direction: row-reverse;\r\n`;\r\nexport const flexColumnContainerMixin = css`\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nexport const flexAlignItemsMixin = (props: {alignItems?: FlexAlignItemsProp;}) => css`\r\n align-items: ${props.alignItems || \"unset\"};\r\n`;\r\nexport const flexJustifyContentMixin = (props: {justifyContent?: FlexJustifyContentProp;}) => css`\r\n justify-content: ${props.justifyContent || \"unset\"};\r\n`;\r\nexport const flexCenterAlignItemsMixin = css`\r\n ${flexAlignItemsMixin({alignItems: \"center\"})}\r\n`;\r\n\r\nexport const flexGrowItem = (props: {flexBasis?: string;}) => css`\r\n flex: 1 0 ${props.flexBasis || \"auto\"};\r\n`;\r\nexport const flexFixedSizeItem = css`\r\n flex: 0 0 auto;\r\n`;\r\nexport const flexAdaptiveSizeItem = css`\r\n flex: 1 1 auto;\r\n`;\r\n\r\n/* styled based components, to be used as is or as Base to be extended */\r\n\r\nexport const FlexGrowItemBox = styled.div`\r\n ${flexGrowItem}\r\n`;\r\n\r\nexport const FlexContainerBox = styled.div<{\r\n alignItems?: FlexAlignItemsProp;\r\n justifyContent?: FlexJustifyContentProp;\r\n}>`\r\n ${flexRowContainerMixin}\r\n ${flexAlignItemsMixin}\r\n ${flexJustifyContentMixin}\r\n`;\r\n","export enum GAME_GROUP {\r\n ARCADE = 209,\r\n BACCARAT = 11,\r\n BACKGAMMONN = 40,\r\n BLACKJACK = 12,\r\n CARRIBEAN_POKER = 18,\r\n CRAPS = 10,\r\n CRAZY_BLACKJACK = 20,\r\n HEAD_TO_HEAD = 207,\r\n HI_LO = 202,\r\n KENO = 16,\r\n LIVE_CASINO = 201,\r\n PAI_GOW_POKER = 17,\r\n POKER = 100,\r\n POKER_TEMPLATE_GAMES = 206,\r\n POOLS = 212,\r\n POWER_VIDEO_POKER = 19,\r\n ROULETTE = 13,\r\n ROULETTE_LIKE = 203,\r\n SCRATCH_CARD = 204,\r\n SLOT = 14,\r\n VIDEO_SLOT = 30,\r\n VIDEO_POKER = 15,\r\n VIDEO_SLOT_BONUS_GAME = 31\r\n}\r\n","import {GameContextModel} from \"../../../companies/game-context/game-context.model\";\r\n\r\nexport enum GameStepsExecutionResultEnum {\r\n Continue,\r\n Cancel\r\n}\r\n\r\n\r\nexport interface IGameRunStep {\r\n readonly isEnabled: boolean;\r\n disableGameStep(): this;\r\n enableGameStep(): this;\r\n executeStep(gameContext: GameContextModel): Promise;\r\n dispose(): void;\r\n}","export const grayColors = {\r\n black: \"#000000\",\r\n gray013: \"#0d0d0d\",\r\n gray023: \"#171717\",\r\n gray033: \"#212121\",\r\n gray043: \"#2b2b2b\",\r\n gray053: \"#353535\",\r\n gray063: \"#3f3f3f\",\r\n gray073: \"#494949\",\r\n gray083: \"#535353\",\r\n gray093: \"#5d5d5d\",\r\n gray103: \"#676767\",\r\n gray113: \"#717171\",\r\n gray123: \"#7b7b7b\",\r\n gray133: \"#858585\",\r\n gray143: \"#8f8f8f\",\r\n gray153: \"#999999\",\r\n gray163: \"#a3a3a3\",\r\n gray173: \"#adadad\",\r\n gray183: \"#b7b7b7\",\r\n gray193: \"#c1c1c1\",\r\n gray203: \"#cbcbcb\",\r\n gray213: \"#d5d5d5\",\r\n gray223: \"#dfdfdf\",\r\n gray233: \"#e9e9e9\",\r\n gray243: \"#f3f3f3\",\r\n gray253: \"#fdfdfd\",\r\n white: \"#ffffff\",\r\n transparent: \"transparent\"\r\n}","export const LIVE_CASINO_ARENA_NAME = 'liveCasino';\r\nexport const NEW_LIVE_CASINO_ARENA_NAME = 'newLiveCasino';\r\nexport const CIP_ALL_GAMES_ARENA_NAME = 'cipAllGames';\r\nexport const SLOTS_ARENA_NAME = 'slots';\r\nexport const CASINO_GAMES_ARENA_NAME = 'casinoGames';\r\nexport const JACKPOTS_ARENA_NAME = 'jackpots';\r\nexport const EXCLUSIVE_ARENA_NAME = 'exclusive888Games';\r\nexport const SCRATCH_CARDS_ARENA_NAME = 'scratchCards';\r\nexport const VIDEO_POKER_ARENA_NAME = 'videoPoker';\r\nexport const INSTANT_WIN_GAMES_ARENA_NAME = 'instantWinGames';\r\nexport const BLACKJACK_ARENA_NAME = 'blackjack';\r\nexport const VIRTUAL_SPORT_ARENA_NAME = 'virtualSport';\r\nexport const ROULETTE_ARENA_NAME = 'roulette';\r\nexport const PROGRESSIVE_SLOTS_ARENA_NAME = 'progressiveSlots';\r\nexport const NEW_GAMES_ARENA_NAME = 'newGames';\r\nexport const HOME_PAGE_ARENA = 'homePage';\r\n\r\nexport const ALL_ARENAS = Array.of(\r\n LIVE_CASINO_ARENA_NAME,\r\n NEW_LIVE_CASINO_ARENA_NAME,\r\n CIP_ALL_GAMES_ARENA_NAME,\r\n SLOTS_ARENA_NAME,\r\n CASINO_GAMES_ARENA_NAME,\r\n JACKPOTS_ARENA_NAME,\r\n EXCLUSIVE_ARENA_NAME,\r\n SCRATCH_CARDS_ARENA_NAME,\r\n VIDEO_POKER_ARENA_NAME,\r\n INSTANT_WIN_GAMES_ARENA_NAME,\r\n BLACKJACK_ARENA_NAME,\r\n VIRTUAL_SPORT_ARENA_NAME,\r\n ROULETTE_ARENA_NAME,\r\n PROGRESSIVE_SLOTS_ARENA_NAME,\r\n NEW_GAMES_ARENA_NAME,\r\n HOME_PAGE_ARENA,\r\n);\r\n","import styled from 'styled-components';\r\nimport {flexColumnContainerMixin, flexRowReverseContainerMixin} from '../../../../themes/architecture/css-helpers/flex';\r\n\r\nexport const ButtonsWrapperDefaultBox = styled.div<{buttonsOnSeparateLines?: boolean;}>`\r\n max-width: 289px;\r\n width: 100%;\r\n margin: 5rem auto 0;\r\n ${({buttonsOnSeparateLines}) => buttonsOnSeparateLines ? flexColumnContainerMixin : flexRowReverseContainerMixin }\r\n`;\r\n","import styled from 'styled-components';\r\nimport {flexGrowItem, flexFixedSizeItem} from '../../../../themes/architecture/css-helpers/flex';\r\n\r\nexport const ButtonWrapperDefaultBox = styled.div<{buttonsOnSeparateLines?: boolean; flexBasis?: string;}>`\r\n ${flexGrowItem}\r\n width: ${({buttonsOnSeparateLines}) => buttonsOnSeparateLines ? \"100%\" : \"40%\" };\r\n`;\r\n\r\nexport const ButtonSpacerDefaultBox = styled.div`\r\n ${flexFixedSizeItem}\r\n width: 1rem;\r\n height: 1.5rem;\r\n`;\r\n","import styled from 'styled-components';\r\n\r\nexport const LinkActionBox = styled.button`\r\n margin: 0 auto;\r\n\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n background: transparent;\r\n padding: 5px 0px 0px;\r\n border: 0;\r\n border-radius: 0;\r\n line-height: 1;\r\n ${({theme}) => theme.font.presets.body};\r\n font-size: 1.6rem;\r\n font-weight: 700;\r\n color: ${({theme}) => theme.colors.brandPrimary};\r\n text-decoration: underline;\r\n cursor: pointer;\r\n`;\r\n","import styled from 'styled-components';\r\n\r\nexport const LinkWrapperDefaultBox = styled.div`\r\n width: 100%;\r\n margin-top: 3rem;\r\n text-align: center;\r\n`;\r\n","import React from 'react';\r\nimport { Button } from '../../basic-ui-components/button/base/button.component';\r\nimport {ButtonsWrapperDefaultBox} from './boxes/actions/buttons-wrapper.box';\r\nimport {ButtonWrapperDefaultBox, ButtonSpacerDefaultBox} from './boxes/actions/button-wrapper.box';\r\nimport {LinkActionBox} from './boxes/actions/link-action.box';\r\nimport {LinkWrapperDefaultBox} from './boxes/actions/link-wrapper.box';\r\nimport classNames from \"classnames\";\r\nimport {CyClass} from \"../../../common/cy-classes\";\r\n\r\n\r\nexport interface IModalDialogActionProps {\r\n text: string;\r\n onClick(): void;\r\n className?: string;\r\n disabled?:boolean;\r\n}\r\nexport interface IModalDialogButtonsComponentProps {\r\n buttonsOnSeparateLines?: boolean;\r\n primaryAction: IModalDialogActionProps;\r\n secondaryAction?: IModalDialogActionProps & {useWarningPreset?: boolean};\r\n linkAction?: IModalDialogActionProps;\r\n className?: string;\r\n}\r\n\r\nexport class ModalDialogActionsComponent extends React.Component {\r\n render() {\r\n return <>\r\n \r\n \r\n \r\n {this.props.primaryAction.text}\r\n \r\n \r\n {this.props.secondaryAction ? <>\r\n \r\n {this.props.secondaryAction.text}\r\n \r\n : null}\r\n \r\n {this.props.linkAction ? \r\n {this.props.linkAction.text}\r\n : null}\r\n ;\r\n }\r\n}\r\n","export function PC_HORIZONTAL_SPACE_BETWEEN_ITEMS(multiplier: number = 1) {\r\n return (15 * multiplier) + 'px';\r\n}\r\n\r\nexport function MOBILE_HORIZONTAL_SPACE_BETWEEN_ITEMS(multiplier: number = 1) {\r\n return (5 * multiplier) + 'px';\r\n}","export const CGP_ERROR_CODES = {\r\n GENERAL_ERROR_SUPPORT: 100000,\r\n RESTRICTED_COUNTRY: 100105,\r\n INVALID_CREDENTIALS: 110,\r\n LOGIN_RESTRICTION: 100115,\r\n INVALID_REFRESH_TOKEN: 100120,\r\n CAPTCHA_REQUIRED: 170,\r\n TOUCH_ID_CHANGE_PASS: 100300,\r\n TOUCH_ID_EXPIRE: 100305,\r\n GENERAL_ERROR: 900000,\r\n OPENING_GAME_ERROR: 100205,\r\n UNSUPPORTED_ANONYMOUS: 100210,\r\n TIME_LIMIT_REACHED_DAILY: 100155,\r\n TIME_LIMIT_REACHED_WEEKLY: 100180,\r\n TIME_LIMIT_REACHED_MONTHLY: 100181,\r\n\r\n TOKEN_NOT_VALID: 20,\r\n PENDING_ACTION_REQUIRED: 50,\r\n INVALID_GRANT: 'invalid_grant'\r\n};\r\n\r\n\r\nexport function isRefreshTokenError(errorCode: string): boolean {\r\n errorCode = errorCode?.toString();\r\n return errorCode === CGP_ERROR_CODES.INVALID_REFRESH_TOKEN.toString() || errorCode === CGP_ERROR_CODES.INVALID_GRANT;\r\n}\r\n","/** This is an automatically generated file.*/\nimport {Asset} from './architecture/asset';\nexport const Assets = {\n\tfonts: {\n\t\t_888_Black_eot: new Asset(\"fonts/888-Black.eot\", {}),\n\t\t_888_Black_otf: new Asset(\"fonts/888-Black.otf\", {}),\n\t\t_888_Black_svg: new Asset(\"fonts/888-Black.svg\", {}),\n\t\t_888_Black_ttf: new Asset(\"fonts/888-Black.ttf\", {}),\n\t\t_888_Black_woff: new Asset(\"fonts/888-Black.woff\", {}),\n\t\t_888_Black_woff2: new Asset(\"fonts/888-Black.woff2\", {}),\n\t\t_888_Bold_eot: new Asset(\"fonts/888-Bold.eot\", {'777_com': true}),\n\t\t_888_Bold_otf: new Asset(\"fonts/888-Bold.otf\", {'777_com': true}),\n\t\t_888_Bold_svg: new Asset(\"fonts/888-Bold.svg\", {'777_com': true}),\n\t\t_888_Bold_ttf: new Asset(\"fonts/888-Bold.ttf\", {'777_com': true}),\n\t\t_888_Bold_woff: new Asset(\"fonts/888-Bold.woff\", {'777_com': true}),\n\t\t_888_DemiBold_eot: new Asset(\"fonts/888-DemiBold.eot\", {}),\n\t\t_888_DemiBold_otf: new Asset(\"fonts/888-DemiBold.otf\", {}),\n\t\t_888_DemiBold_svg: new Asset(\"fonts/888-DemiBold.svg\", {}),\n\t\t_888_DemiBold_ttf: new Asset(\"fonts/888-DemiBold.ttf\", {}),\n\t\t_888_DemiBold_woff: new Asset(\"fonts/888-DemiBold.woff\", {}),\n\t\t_888_DemiBold_woff2: new Asset(\"fonts/888-DemiBold.woff2\", {}),\n\t\t_888_Light_eot: new Asset(\"fonts/888-Light.eot\", {}),\n\t\t_888_Light_otf: new Asset(\"fonts/888-Light.otf\", {}),\n\t\t_888_Light_svg: new Asset(\"fonts/888-Light.svg\", {}),\n\t\t_888_Light_ttf: new Asset(\"fonts/888-Light.ttf\", {}),\n\t\t_888_Light_woff: new Asset(\"fonts/888-Light.woff\", {}),\n\t\t_888_Light_woff2: new Asset(\"fonts/888-Light.woff2\", {}),\n\t\t_888_Medium_eot: new Asset(\"fonts/888-Medium.eot\", {}),\n\t\t_888_Medium_otf: new Asset(\"fonts/888-Medium.otf\", {}),\n\t\t_888_Medium_svg: new Asset(\"fonts/888-Medium.svg\", {}),\n\t\t_888_Medium_ttf: new Asset(\"fonts/888-Medium.ttf\", {}),\n\t\t_888_Medium_woff: new Asset(\"fonts/888-Medium.woff\", {}),\n\t\t_888_Medium_woff2: new Asset(\"fonts/888-Medium.woff2\", {}),\n\t\t_888_Regular_eot: new Asset(\"fonts/888-Regular.eot\", {}),\n\t\t_888_Regular_otf: new Asset(\"fonts/888-Regular.otf\", {}),\n\t\t_888_Regular_svg: new Asset(\"fonts/888-Regular.svg\", {}),\n\t\t_888_Regular_ttf: new Asset(\"fonts/888-Regular.ttf\", {}),\n\t\t_888_Regular_woff: new Asset(\"fonts/888-Regular.woff\", {}),\n\t\t_888_Regular_woff2: new Asset(\"fonts/888-Regular.woff2\", {}),\n\t\t_888_SemiCondensedBold_eot: new Asset(\"fonts/888-SemiCondensedBold.eot\", {}),\n\t\t_888_SemiCondensedBold_otf: new Asset(\"fonts/888-SemiCondensedBold.otf\", {}),\n\t\t_888_SemiCondensedBold_svg: new Asset(\"fonts/888-SemiCondensedBold.svg\", {}),\n\t\t_888_SemiCondensedBold_ttf: new Asset(\"fonts/888-SemiCondensedBold.ttf\", {}),\n\t\t_888_SemiCondensedBold_woff: new Asset(\"fonts/888-SemiCondensedBold.woff\", {}),\n\t\t_888_SemiCondensedBold_woff2: new Asset(\"fonts/888-SemiCondensedBold.woff2\", {}),\n\t\t_888_SemiCondensedDemiBold_eot: new Asset(\"fonts/888-SemiCondensedDemiBold.eot\", {}),\n\t\t_888_SemiCondensedDemiBold_otf: new Asset(\"fonts/888-SemiCondensedDemiBold.otf\", {}),\n\t\t_888_SemiCondensedDemiBold_svg: new Asset(\"fonts/888-SemiCondensedDemiBold.svg\", {}),\n\t\t_888_SemiCondensedDemiBold_ttf: new Asset(\"fonts/888-SemiCondensedDemiBold.ttf\", {}),\n\t\t_888_SemiCondensedDemiBold_woff: new Asset(\"fonts/888-SemiCondensedDemiBold.woff\", {}),\n\t\t_888_SemiCondensedDemiBold_woff2: new Asset(\"fonts/888-SemiCondensedDemiBold.woff2\", {}),\n\t\t_888_Thin_eot: new Asset(\"fonts/888-Thin.eot\", {}),\n\t\t_888_Thin_otf: new Asset(\"fonts/888-Thin.otf\", {}),\n\t\t_888_Thin_svg: new Asset(\"fonts/888-Thin.svg\", {}),\n\t\t_888_Thin_ttf: new Asset(\"fonts/888-Thin.ttf\", {}),\n\t\t_888_Thin_woff: new Asset(\"fonts/888-Thin.woff\", {}),\n\t\t_888_Thin_woff2: new Asset(\"fonts/888-Thin.woff2\", {}),\n\t\t_888_Ultra_eot: new Asset(\"fonts/888-Ultra.eot\", {}),\n\t\t_888_Ultra_otf: new Asset(\"fonts/888-Ultra.otf\", {}),\n\t\t_888_Ultra_svg: new Asset(\"fonts/888-Ultra.svg\", {}),\n\t\t_888_Ultra_ttf: new Asset(\"fonts/888-Ultra.ttf\", {}),\n\t\t_888_Ultra_woff: new Asset(\"fonts/888-Ultra.woff\", {}),\n\t\t_888_Ultra_woff2: new Asset(\"fonts/888-Ultra.woff2\", {}),\n\t\tdigital_7_mono_ttf: new Asset(\"fonts/digital_7_mono.ttf\", {}),\n\t\tLobster_Regular_eot: new Asset(\"fonts/Lobster_Regular.eot\", {'777_com': true}),\n\t\tLobster_Regular_otf: new Asset(\"fonts/Lobster_Regular.otf\", {'777_com': true}),\n\t\tLobster_Regular_svg: new Asset(\"fonts/Lobster_Regular.svg\", {'777_com': true}),\n\t\tLobster_Regular_ttf: new Asset(\"fonts/Lobster_Regular.ttf\", {'777_com': true}),\n\t\tLobster_Regular_woff: new Asset(\"fonts/Lobster_Regular.woff\", {'777_com': true}),\n\t\tLobster_Regular_woff2: new Asset(\"fonts/Lobster_Regular.woff2\", {'777_com': true}),\n\t\toleo_script_reg_eot: new Asset(\"fonts/oleo_script_reg.eot\", {}),\n\t\toleo_script_reg_svg: new Asset(\"fonts/oleo_script_reg.svg\", {}),\n\t\toleo_script_reg_ttf: new Asset(\"fonts/oleo_script_reg.ttf\", {}),\n\t\toleo_script_reg_woff: new Asset(\"fonts/oleo_script_reg.woff\", {}),\n\t\toleo_script_reg_woff2: new Asset(\"fonts/oleo_script_reg.woff2\", {}),\n\t\toleo_script_reg_ext_woff2: new Asset(\"fonts/oleo_script_reg_ext.woff2\", {}),\n\t\tRobotoCondensed_Bold_ttf: new Asset(\"fonts/RobotoCondensed-Bold.ttf\", {}),\n\t\tTradeGothicLTStd_Bd2_otf: new Asset(\"fonts/TradeGothicLTStd-Bd2.otf\", {}),\n\t\tBello_Script_eot: new Asset(\"fonts/Bello_Script.eot\", {'777_com': true}),\n\t\tBello_Script_svg: new Asset(\"fonts/Bello_Script.svg\", {'777_com': true}),\n\t\tBello_Script_ttf: new Asset(\"fonts/Bello_Script.ttf\", {'777_com': true}),\n\t\tBello_Script_woff: new Asset(\"fonts/Bello_Script.woff\", {'777_com': true}),\n\t\tBello_Script_woff2: new Asset(\"fonts/Bello_Script.woff2\", {'777_com': true}),\n\t\tFutura_PT_Bold_eot: new Asset(\"fonts/Futura_PT_Bold.eot\", {'777_com': true}),\n\t\tFutura_PT_Bold_otf: new Asset(\"fonts/Futura_PT_Bold.otf\", {'777_com': true}),\n\t\tFutura_PT_Bold_svg: new Asset(\"fonts/Futura_PT_Bold.svg\", {'777_com': true}),\n\t\tFutura_PT_Bold_ttf: new Asset(\"fonts/Futura_PT_Bold.ttf\", {'777_com': true}),\n\t\tFutura_PT_Bold_woff: new Asset(\"fonts/Futura_PT_Bold.woff\", {'777_com': true}),\n\t\tFutura_PT_Bold_woff2: new Asset(\"fonts/Futura_PT_Bold.woff2\", {'777_com': true}),\n\t\tFutura_PT_Book_eot: new Asset(\"fonts/Futura_PT_Book.eot\", {'777_com': true}),\n\t\tFutura_PT_Book_otf: new Asset(\"fonts/Futura_PT_Book.otf\", {'777_com': true}),\n\t\tFutura_PT_Book_svg: new Asset(\"fonts/Futura_PT_Book.svg\", {'777_com': true}),\n\t\tFutura_PT_Book_ttf: new Asset(\"fonts/Futura_PT_Book.ttf\", {'777_com': true}),\n\t\tFutura_PT_Book_woff: new Asset(\"fonts/Futura_PT_Book.woff\", {'777_com': true}),\n\t\tFutura_PT_Book_woff2: new Asset(\"fonts/Futura_PT_Book.woff2\", {'777_com': true}),\n\t\tFutura_PT_Demi_eot: new Asset(\"fonts/Futura_PT_Demi.eot\", {'777_com': true}),\n\t\tFutura_PT_Demi_otf: new Asset(\"fonts/Futura_PT_Demi.otf\", {'777_com': true}),\n\t\tFutura_PT_Demi_svg: new Asset(\"fonts/Futura_PT_Demi.svg\", {'777_com': true}),\n\t\tFutura_PT_Demi_ttf: new Asset(\"fonts/Futura_PT_Demi.ttf\", {'777_com': true}),\n\t\tFutura_PT_Demi_woff: new Asset(\"fonts/Futura_PT_Demi.woff\", {'777_com': true}),\n\t\tFutura_PT_Demi_woff2: new Asset(\"fonts/Futura_PT_Demi.woff2\", {'777_com': true}),\n\t\tFutura_PT_Heavy_eot: new Asset(\"fonts/Futura_PT_Heavy.eot\", {'777_com': true}),\n\t\tFutura_PT_Heavy_otf: new Asset(\"fonts/Futura_PT_Heavy.otf\", {'777_com': true}),\n\t\tFutura_PT_Heavy_svg: new Asset(\"fonts/Futura_PT_Heavy.svg\", {'777_com': true}),\n\t\tFutura_PT_Heavy_ttf: new Asset(\"fonts/Futura_PT_Heavy.ttf\", {'777_com': true}),\n\t\tFutura_PT_Heavy_woff: new Asset(\"fonts/Futura_PT_Heavy.woff\", {'777_com': true}),\n\t\tFutura_PT_Heavy_woff2: new Asset(\"fonts/Futura_PT_Heavy.woff2\", {'777_com': true}),\n\t\tFutura_PT_Medium_eot: new Asset(\"fonts/Futura_PT_Medium.eot\", {'777_com': true}),\n\t\tFutura_PT_Medium_otf: new Asset(\"fonts/Futura_PT_Medium.otf\", {'777_com': true}),\n\t\tFutura_PT_Medium_svg: new Asset(\"fonts/Futura_PT_Medium.svg\", {'777_com': true}),\n\t\tFutura_PT_Medium_ttf: new Asset(\"fonts/Futura_PT_Medium.ttf\", {'777_com': true}),\n\t\tFutura_PT_Medium_woff: new Asset(\"fonts/Futura_PT_Medium.woff\", {'777_com': true}),\n\t\tFutura_PT_Medium_woff2: new Asset(\"fonts/Futura_PT_Medium.woff2\", {'777_com': true}),\n\t\tFuturaPTBold_otf: new Asset(\"fonts/FuturaPTBold.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTBoldOblique_otf: new Asset(\"fonts/FuturaPTBoldOblique.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTBook_otf: new Asset(\"fonts/FuturaPTBook.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTBookOblique_otf: new Asset(\"fonts/FuturaPTBookOblique.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTCondBold_otf: new Asset(\"fonts/FuturaPTCondBold.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTCondBoldOblique_otf: new Asset(\"fonts/FuturaPTCondBoldOblique.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTCondBook_otf: new Asset(\"fonts/FuturaPTCondBook.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTCondBookOblique_otf: new Asset(\"fonts/FuturaPTCondBookOblique.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTCondExtraBold_otf: new Asset(\"fonts/FuturaPTCondExtraBold.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTCondExtraBoldOblique_otf: new Asset(\"fonts/FuturaPTCondExtraBoldOblique.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTCondMedium_otf: new Asset(\"fonts/FuturaPTCondMedium.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTCondMediumOblique_otf: new Asset(\"fonts/FuturaPTCondMediumOblique.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTDemi_otf: new Asset(\"fonts/FuturaPTDemi.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTDemiOblique_otf: new Asset(\"fonts/FuturaPTDemiOblique.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTExtraBold_otf: new Asset(\"fonts/FuturaPTExtraBold.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTExtraBoldOblique_otf: new Asset(\"fonts/FuturaPTExtraBoldOblique.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTHeavy_otf: new Asset(\"fonts/FuturaPTHeavy.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTHeavyOblique_otf: new Asset(\"fonts/FuturaPTHeavyOblique.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTLight_otf: new Asset(\"fonts/FuturaPTLight.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTLightOblique_otf: new Asset(\"fonts/FuturaPTLightOblique.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTMedium_otf: new Asset(\"fonts/FuturaPTMedium.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTMediumOblique_otf: new Asset(\"fonts/FuturaPTMediumOblique.otf\", {'ballysdover_de': true}),\n\t\ta_and_s_signwriter_ttf: new Asset(\"fonts/a_and_s_signwriter.ttf\", {'harrington_de': true}),\n\t\tGotham_Black_otf: new Asset(\"fonts/Gotham-Black.otf\", {'harrington_de': true}),\n\t\tGotham_BlackItalic_otf: new Asset(\"fonts/Gotham-BlackItalic.otf\", {'harrington_de': true}),\n\t\tGotham_Bold_otf: new Asset(\"fonts/Gotham-Bold.otf\", {'harrington_de': true}),\n\t\tGotham_BoldItalic_otf: new Asset(\"fonts/Gotham-BoldItalic.otf\", {'harrington_de': true}),\n\t\tGotham_Book_otf: new Asset(\"fonts/Gotham-Book.otf\", {'harrington_de': true}),\n\t\tGotham_BookItalic_otf: new Asset(\"fonts/Gotham-BookItalic.otf\", {'harrington_de': true}),\n\t\tGotham_Light_otf: new Asset(\"fonts/Gotham-Light.otf\", {'harrington_de': true}),\n\t\tGotham_LightItalic_otf: new Asset(\"fonts/Gotham-LightItalic.otf\", {'harrington_de': true}),\n\t\tGotham_Medium_otf: new Asset(\"fonts/Gotham-Medium.otf\", {'harrington_de': true}),\n\t\tGotham_MediumItalic_otf: new Asset(\"fonts/Gotham-MediumItalic.otf\", {'harrington_de': true}),\n\t\tGotham_Thin_otf: new Asset(\"fonts/Gotham-Thin.otf\", {'harrington_de': true}),\n\t\tGotham_ThinItalic_otf: new Asset(\"fonts/Gotham-ThinItalic.otf\", {'harrington_de': true}),\n\t\tGotham_Ultra_otf: new Asset(\"fonts/Gotham-Ultra.otf\", {'harrington_de': true}),\n\t\tGotham_UltraItalic_otf: new Asset(\"fonts/Gotham-UltraItalic.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_Black_otf: new Asset(\"fonts/GothamXNarrow-Black.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_BlackItalic_otf: new Asset(\"fonts/GothamXNarrow-BlackItalic.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_Bold_otf: new Asset(\"fonts/GothamXNarrow-Bold.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_BoldItalic_otf: new Asset(\"fonts/GothamXNarrow-BoldItalic.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_Book_otf: new Asset(\"fonts/GothamXNarrow-Book.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_BookItalic_otf: new Asset(\"fonts/GothamXNarrow-BookItalic.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_Light_otf: new Asset(\"fonts/GothamXNarrow-Light.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_LightItalic_otf: new Asset(\"fonts/GothamXNarrow-LightItalic.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_Medium_otf: new Asset(\"fonts/GothamXNarrow-Medium.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_MediumItalic_otf: new Asset(\"fonts/GothamXNarrow-MediumItalic.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_Thin_otf: new Asset(\"fonts/GothamXNarrow-Thin.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_ThinItalic_otf: new Asset(\"fonts/GothamXNarrow-ThinItalic.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_Ultra_otf: new Asset(\"fonts/GothamXNarrow-Ultra.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_UltraItalic_otf: new Asset(\"fonts/GothamXNarrow-UltraItalic.otf\", {'harrington_de': true}),\n\t\tIndustry_Black_eot: new Asset(\"fonts/Industry-Black.eot\", {'si_mi': true}),\n\t\tIndustry_Black_ttf: new Asset(\"fonts/Industry-Black.ttf\", {'si_mi': true}),\n\t\tIndustry_Black_woff: new Asset(\"fonts/Industry-Black.woff\", {'si_mi': true}),\n\t\tIndustry_BlackItalic_eot: new Asset(\"fonts/Industry-BlackItalic.eot\", {'si_mi': true}),\n\t\tIndustry_BlackItalic_ttf: new Asset(\"fonts/Industry-BlackItalic.ttf\", {'si_mi': true}),\n\t\tIndustry_BlackItalic_woff: new Asset(\"fonts/Industry-BlackItalic.woff\", {'si_mi': true}),\n\t\tIndustry_Bold_eot: new Asset(\"fonts/Industry-Bold.eot\", {'si_mi': true}),\n\t\tIndustry_Bold_ttf: new Asset(\"fonts/Industry-Bold.ttf\", {'si_mi': true}),\n\t\tIndustry_Bold_woff: new Asset(\"fonts/Industry-Bold.woff\", {'si_mi': true}),\n\t\tIndustry_BoldItalic_eot: new Asset(\"fonts/Industry-BoldItalic.eot\", {'si_mi': true}),\n\t\tIndustry_BoldItalic_ttf: new Asset(\"fonts/Industry-BoldItalic.ttf\", {'si_mi': true}),\n\t\tIndustry_BoldItalic_woff: new Asset(\"fonts/Industry-BoldItalic.woff\", {'si_mi': true}),\n\t\tIndustry_Book_eot: new Asset(\"fonts/Industry-Book.eot\", {'si_mi': true}),\n\t\tIndustry_Book_ttf: new Asset(\"fonts/Industry-Book.ttf\", {'si_mi': true}),\n\t\tIndustry_Book_woff: new Asset(\"fonts/Industry-Book.woff\", {'si_mi': true}),\n\t\tIndustry_BookItalic_eot: new Asset(\"fonts/Industry-BookItalic.eot\", {'si_mi': true}),\n\t\tIndustry_BookItalic_ttf: new Asset(\"fonts/Industry-BookItalic.ttf\", {'si_mi': true}),\n\t\tIndustry_BookItalic_woff: new Asset(\"fonts/Industry-BookItalic.woff\", {'si_mi': true}),\n\t\tIndustry_Demi_eot: new Asset(\"fonts/Industry-Demi.eot\", {'si_mi': true}),\n\t\tIndustry_Demi_ttf: new Asset(\"fonts/Industry-Demi.ttf\", {'si_mi': true}),\n\t\tIndustry_Demi_woff: new Asset(\"fonts/Industry-Demi.woff\", {'si_mi': true}),\n\t\tIndustry_DemiItalic_eot: new Asset(\"fonts/Industry-DemiItalic.eot\", {'si_mi': true}),\n\t\tIndustry_DemiItalic_ttf: new Asset(\"fonts/Industry-DemiItalic.ttf\", {'si_mi': true}),\n\t\tIndustry_DemiItalic_woff: new Asset(\"fonts/Industry-DemiItalic.woff\", {'si_mi': true}),\n\t\tIndustry_Light_eot: new Asset(\"fonts/Industry-Light.eot\", {'si_mi': true}),\n\t\tIndustry_Light_ttf: new Asset(\"fonts/Industry-Light.ttf\", {'si_mi': true}),\n\t\tIndustry_Light_woff: new Asset(\"fonts/Industry-Light.woff\", {'si_mi': true}),\n\t\tIndustry_LightItalic_eot: new Asset(\"fonts/Industry-LightItalic.eot\", {'si_mi': true}),\n\t\tIndustry_LightItalic_ttf: new Asset(\"fonts/Industry-LightItalic.ttf\", {'si_mi': true}),\n\t\tIndustry_LightItalic_woff: new Asset(\"fonts/Industry-LightItalic.woff\", {'si_mi': true}),\n\t\tIndustry_Medium_eot: new Asset(\"fonts/Industry-Medium.eot\", {'si_mi': true}),\n\t\tIndustry_Medium_ttf: new Asset(\"fonts/Industry-Medium.ttf\", {'si_mi': true}),\n\t\tIndustry_Medium_woff: new Asset(\"fonts/Industry-Medium.woff\", {'si_mi': true}),\n\t\tIndustry_MediumItalic_eot: new Asset(\"fonts/Industry-MediumItalic.eot\", {'si_mi': true}),\n\t\tIndustry_MediumItalic_ttf: new Asset(\"fonts/Industry-MediumItalic.ttf\", {'si_mi': true}),\n\t\tIndustry_MediumItalic_woff: new Asset(\"fonts/Industry-MediumItalic.woff\", {'si_mi': true}),\n\t\tPoppins_Regular_ttf: new Asset(\"fonts/Poppins-Regular.ttf\", {'si_mi': true}),\n\t\tPoppins_SemiBold_ttf: new Asset(\"fonts/Poppins-SemiBold.ttf\", {'si_mi': true}),\n\t\tSolanoGothicMVB_Bd_ttf: new Asset(\"fonts/SolanoGothicMVB-Bd.ttf\", {'si_mi': true})\n\t},\n\timages: {\n\t\tarena_shaddow_png: new Asset(\"images/arena-shaddow.png\", {'777_com': true}),\n\t\tbroken_link_icon_png: new Asset(\"images/broken_link_icon.png\", {}),\n\t\tcasino_live_logo_mobile_png: new Asset(\"images/casino-live-logo-mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\tcasino_live_logo_png: new Asset(\"images/casino-live-logo.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\tcheck_png: new Asset(\"images/check.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tcheckbox_checked_png: new Asset(\"images/checkbox_checked.png\", {}),\n\t\tcheckbox_empty_png: new Asset(\"images/checkbox_empty.png\", {}),\n\t\tclose_modal_dialog_png: new Asset(\"images/close_modal_dialog.png\", {'777_com': true}),\n\t\tempty_image_sq_gif: new Asset(\"images/empty-image-sq.gif\", {}),\n\t\tempty_image_gif: new Asset(\"images/empty-image.gif\", {}),\n\t\texclusives_list_icon_png: new Asset(\"images/exclusives_list_icon.png\", {'si_mi': true}),\n\t\tfull_screen_off_png: new Asset(\"images/full-screen-off.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\tfull_screen_on_png: new Asset(\"images/full-screen-on.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\tgame_default_background_png: new Asset(\"images/game_default_background.png\", {}),\n\t\thorizontal_line_glow_mobile_png: new Asset(\"images/horizontal-line-glow-mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\thorizontal_line_glow_png: new Asset(\"images/horizontal-line-glow.png\", {'777_com': true}),\n\t\tidle_recomm_toaster_bg_png: new Asset(\"images/idle-recomm-toaster-bg.png\", {}),\n\t\tinfoBTN_png: new Asset(\"images/infoBTN.png\", {}),\n\t\tios_share_svg: new Asset(\"images/ios-share.svg\", {}),\n\t\tjackpot_widget_title_crown_png: new Asset(\"images/jackpot_widget_title_crown.png\", {'777_com': true,'wsop_nj': true}),\n\t\tlamp_png: new Asset(\"images/lamp.png\", {}),\n\t\tlive_tables_top_border_png: new Asset(\"images/live-tables-top-border.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tparty_jackpot_logo_png: new Asset(\"images/party_jackpot_logo.png\", {}),\n\t\tplaceholder_game_icon_png: new Asset(\"images/placeholder_game_icon.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tplaceholder_game_icon_sq_png: new Asset(\"images/placeholder_game_icon_sq.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tright_arrow_png: new Asset(\"images/right-arrow.png\", {'777_com': true}),\n\t\tshaddow_bg_png: new Asset(\"images/shaddow-bg.png\", {'777_com': true}),\n\t\tside_menu_header_decoration_png: new Asset(\"images/side-menu-header-decoration.png\", {'777_com': true}),\n\t\tsplash_page_logo_0_0_png: new Asset(\"images/splash_page_logo-0-0.png\", {}),\n\t\tsplash_page_logo_0_111_png: new Asset(\"images/splash_page_logo-0-111.png\", {'777_com': true}),\n\t\tsplash_page_logo_1_53_png: new Asset(\"images/splash_page_logo-1-53.png\", {}),\n\t\tsplash_page_logo_31_46_png: new Asset(\"images/splash_page_logo-31-46.png\", {}),\n\t\tsplash_page_logo_58_82_png: new Asset(\"images/splash_page_logo-58-82.png\", {}),\n\t\tsplash_page_logo_68_98_png: new Asset(\"images/splash_page_logo-68-98.png\", {}),\n\t\tsplash_page_logo_69_100_png: new Asset(\"images/splash_page_logo-69-100.png\", {}),\n\t\tsplash_page_logo_70_102_png: new Asset(\"images/splash_page_logo-70-102.png\", {}),\n\t\tsplash_page_logo_71_104_png: new Asset(\"images/splash_page_logo-71-104.png\", {}),\n\t\tsplash_page_logo_72_105_png: new Asset(\"images/splash_page_logo-72-105.png\", {}),\n\t\tsplash_page_logo_73_107_png: new Asset(\"images/splash_page_logo-73-107.png\", {}),\n\t\tsplash_page_logo_75_113_png: new Asset(\"images/splash_page_logo-75-113.png\", {}),\n\t\tsplash_page_logo_76_119_png: new Asset(\"images/splash_page_logo-76-119.png\", {}),\n\t\tsplash_page_logo_79_125_png: new Asset(\"images/splash_page_logo-79-125.png\", {}),\n\t\tsplash_page_logo_8_78_png: new Asset(\"images/splash_page_logo-8-78.png\", {}),\n\t\tsplash_page_logo_81_129_png: new Asset(\"images/splash_page_logo-81-129.png\", {}),\n\t\tsplash_page_logo_84_137_png: new Asset(\"images/splash_page_logo-84-137.png\", {}),\n\t\tsplash_page_logo_87_141_png: new Asset(\"images/splash_page_logo-87-141.png\", {}),\n\t\tsplash_page_logo_88_144_png: new Asset(\"images/splash_page_logo-88-144.png\", {}),\n\t\tsplash_page_logo_91_151_png: new Asset(\"images/splash_page_logo-91-151.png\", {}),\n\t\tsplash_page_logo_cip8_0_0_png: new Asset(\"images/splash_page_logo-cip8-0-0.png\", {}),\n\t\tsplash_page_logo_cip8_1_53_png: new Asset(\"images/splash_page_logo-cip8-1-53.png\", {}),\n\t\tsplash_page_logo_cip8_31_46_png: new Asset(\"images/splash_page_logo-cip8-31-46.png\", {}),\n\t\tsplash_page_logo_cip8_58_82_png: new Asset(\"images/splash_page_logo-cip8-58-82.png\", {}),\n\t\tsplash_page_logo_cip8_71_104_png: new Asset(\"images/splash_page_logo-cip8-71-104.png\", {}),\n\t\tsplash_page_logo_cip8_73_107_png: new Asset(\"images/splash_page_logo-cip8-73-107.png\", {}),\n\t\tsplash_page_logo_cip8_75_113_png: new Asset(\"images/splash_page_logo-cip8-75-113.png\", {}),\n\t\tsplash_page_logo_cip8_76_119_png: new Asset(\"images/splash_page_logo-cip8-76-119.png\", {}),\n\t\tsplash_page_logo_cip8_79_125_png: new Asset(\"images/splash_page_logo-cip8-79-125.png\", {}),\n\t\tsplash_page_logo_cip8_8_78_png: new Asset(\"images/splash_page_logo-cip8-8-78.png\", {}),\n\t\tsplash_page_logo_cip8_81_129_png: new Asset(\"images/splash_page_logo-cip8-81-129.png\", {}),\n\t\tsplash_page_logo_cip8_84_137_png: new Asset(\"images/splash_page_logo-cip8-84-137.png\", {}),\n\t\tsplash_page_logo_cip8_87_142_png: new Asset(\"images/splash_page_logo-cip8-87-142.png\", {}),\n\t\tsplash_page_logo_cip8_88_145_png: new Asset(\"images/splash_page_logo-cip8-88-145.png\", {}),\n\t\tsplash_page_logo_cip8_png: new Asset(\"images/splash_page_logo-cip8.png\", {}),\n\t\tsplash_page_logo_cis_0_0_png: new Asset(\"images/splash_page_logo-cis-0-0.png\", {}),\n\t\tsplash_page_logo_cis_1_53_png: new Asset(\"images/splash_page_logo-cis-1-53.png\", {}),\n\t\tsplash_page_logo_cis_31_46_png: new Asset(\"images/splash_page_logo-cis-31-46.png\", {}),\n\t\tsplash_page_logo_cis_58_82_png: new Asset(\"images/splash_page_logo-cis-58-82.png\", {}),\n\t\tsplash_page_logo_cis_71_104_png: new Asset(\"images/splash_page_logo-cis-71-104.png\", {}),\n\t\tsplash_page_logo_cis_73_107_png: new Asset(\"images/splash_page_logo-cis-73-107.png\", {}),\n\t\tsplash_page_logo_cis_75_113_png: new Asset(\"images/splash_page_logo-cis-75-113.png\", {}),\n\t\tsplash_page_logo_cis_76_119_png: new Asset(\"images/splash_page_logo-cis-76-119.png\", {}),\n\t\tsplash_page_logo_cis_79_125_png: new Asset(\"images/splash_page_logo-cis-79-125.png\", {}),\n\t\tsplash_page_logo_cis_8_78_png: new Asset(\"images/splash_page_logo-cis-8-78.png\", {}),\n\t\tsplash_page_logo_cis_81_129_png: new Asset(\"images/splash_page_logo-cis-81-129.png\", {}),\n\t\tsplash_page_logo_cis_84_137_png: new Asset(\"images/splash_page_logo-cis-84-137.png\", {}),\n\t\tsplash_page_logo_cis_87_142_png: new Asset(\"images/splash_page_logo-cis-87-142.png\", {}),\n\t\tsplash_page_logo_cis_88_145_png: new Asset(\"images/splash_page_logo-cis-88-145.png\", {}),\n\t\tsplash_page_logo_cis_png: new Asset(\"images/splash_page_logo-cis.png\", {}),\n\t\tSpriteSheetPC1920_png: new Asset(\"images/SpriteSheetPC1920.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\ttexture_png: new Asset(\"images/texture.png\", {'777_com': true,'harrahs_nj': true,'si_mi': true,'wsop_nj': true}),\n\t\ttop_banner_placeholder_gif: new Asset(\"images/top_banner_placeholder.gif\", {}),\n\t\tvertical_line_glow_png: new Asset(\"images/vertical-line-glow.png\", {'777_com': true}),\n\t\twww_splash_page_logo_1_111_png: new Asset(\"images/www_splash_page_logo-1-111.png\", {}),\n\t\t_3px_tile_png: new Asset(\"images/3px-tile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t_888casinologo_png: new Asset(\"images/888casinologo.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\tbrilliant_png: new Asset(\"images/brilliant.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tclose_modal_dialog_hover_png: new Asset(\"images/close_modal_dialog_hover.png\", {'777_com': true}),\n\t\thistory_bg_title_png: new Asset(\"images/history_bg_title.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\thome_content_banner_png: new Asset(\"images/home-content-banner.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\thome_page_top_banner_png: new Asset(\"images/home-page-top-banner.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrington_de': true,'si_mi': true}),\n\t\tinfo_img_png: new Asset(\"images/info-img.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tjackpots_bg_png: new Asset(\"images/jackpots-bg.png\", {'777_com': true}),\n\t\tlang_reg_icon_png: new Asset(\"images/lang_reg_icon.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tlang_selected_icon_png: new Asset(\"images/lang_selected_icon.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tletter_info_png: new Asset(\"images/letter-info.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tletter_play_png: new Asset(\"images/letter-play.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tletter_design_png: new Asset(\"images/letter_design.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tlive_arena_banner_png: new Asset(\"images/live-arena-banner.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrington_de': true,'si_mi': true}),\n\t\tlive_chat_png: new Asset(\"images/live-chat.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tlive_content_banner_png: new Asset(\"images/live-content-banner.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tnotification_off_png: new Asset(\"images/notification off.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tonly_real_money_game_warning_png: new Asset(\"images/only-real-money-game-warning.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrington_de': true,'si_mi': true}),\n\t\tpay_icon_png: new Asset(\"images/pay-icon.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tswiper_layout_bottom_shaddow_png: new Asset(\"images/swiper-layout-bottom-shaddow.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tuser_menu_box_icon_png: new Asset(\"images/user-menu-box-icon.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'mrgreen_de': true,'mrgreen_se': true,'si_mi': true,'wsop_nj': true}),\n\t\tuser_png: new Asset(\"images/user.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t_888casinologo_dark_png: new Asset(\"images/888casinologo-dark.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\tblackSquare_png: new Asset(\"images/blackSquare.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\tdiv_lang_png: new Asset(\"images/div-lang.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrington_de': true,'si_mi': true}),\n\t\tgermany_panic_icon_png: new Asset(\"images/germany_panic_icon.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\tballysdover_logo_png: new Asset(\"images/ballysdover_logo.png\", {'ballysdover_de': true}),\n\t\tdelaware_park_logo_png: new Asset(\"images/delaware-park-logo.png\", {'delawarepark_de': true}),\n\t\thccasinologo_png: new Asset(\"images/hccasinologo.png\", {'harrahs_nj': true,'wsop_nj': true}),\n\t\tharrington_logo_png: new Asset(\"images/harrington-logo.png\", {'harrington_de': true}),\n\t\tsi_island_resort_png: new Asset(\"images/si-island-resort.png\", {'si_mi': true}),\n\t\tsi_sports_book_png: new Asset(\"images/si-sports-book.png\", {'si_mi': true}),\n\t\tsi_logo_mobile_png: new Asset(\"images/si_logo_mobile.png\", {'si_mi': true}),\n\t\tsi_logo_pc_png: new Asset(\"images/si_logo_pc.png\", {'si_mi': true}),\n\t\tanimated_icons_poc: {\n\t\t\tmillionaire_genie_megaways: {\n\t\t\t\tgenie_megaways_v1_atlas: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v1.atlas\", {}),\n\t\t\t\tgenie_megaways_v1_json: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v1.json\", {}),\n\t\t\t\tgenie_megaways_v1_png: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v1.png\", {}),\n\t\t\t\tgenie_megaways_v2_atlas: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v2.atlas\", {}),\n\t\t\t\tgenie_megaways_v2_json: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v2.json\", {}),\n\t\t\t\tgenie_megaways_v2_png: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v2.png\", {}),\n\t\t\t\tgenie_megaways_v3_atlas: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v3.atlas\", {}),\n\t\t\t\tgenie_megaways_v3_json: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v3.json\", {}),\n\t\t\t\tgenie_megaways_v3_png: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v3.png\", {}),\n\t\t\t\tgenie_megaways_v4_atlas: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v4.atlas\", {}),\n\t\t\t\tgenie_megaways_v4_json: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v4.json\", {}),\n\t\t\t\tgenie_megaways_v4_png: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v4.png\", {})\n\t\t\t}\n\t\t},\n\t\tarena_link_to_offer: {\n\t\t\tClose_BTN_green_svg: new Asset(\"images/arena-link-to-offer/Close_BTN_green.svg\", {}),\n\t\t\tGift_BTN_green_svg: new Asset(\"images/arena-link-to-offer/Gift_BTN_green.svg\", {})\n\t\t},\n\t\tbrowser_icons: {\n\t\t\tchrome_icon_PNG: new Asset(\"images/browser-icons/chrome-icon.PNG\", {}),\n\t\t\tmicrosoft_edge_png: new Asset(\"images/browser-icons/microsoft-edge.png\", {}),\n\t\t\tmozilla_firefox_png: new Asset(\"images/browser-icons/mozilla-firefox.png\", {})\n\t\t},\n\t\tburnout: {\n\t\t\tburnout_animation_atlas: new Asset(\"images/burnout/burnout_animation.atlas\", {}),\n\t\t\tburnout_animation_json: new Asset(\"images/burnout/burnout_animation.json\", {}),\n\t\t\tburnout_animation_png: new Asset(\"images/burnout/burnout_animation.png\", {}),\n\t\t\tburnout_animation_last_frame_png: new Asset(\"images/burnout/burnout_animation_last_frame.png\", {})\n\t\t},\n\t\tdaily_deal: {\n\t\t\tdaily_deal_chest_glow_png: new Asset(\"images/daily-deal/daily-deal-chest-glow.png\", {}),\n\t\t\tdaily_deal_chest_halo_png: new Asset(\"images/daily-deal/daily-deal-chest-halo.png\", {}),\n\t\t\tdaily_deal_chest_text_strip_svg: new Asset(\"images/daily-deal/daily-deal-chest-text-strip.svg\", {}),\n\t\t\tdaily_deal_chest_png: new Asset(\"images/daily-deal/daily-deal-chest.png\", {})\n\t\t},\n\t\tf2p: {\n\t\t\tfreeToPlay_atlas: new Asset(\"images/f2p/freeToPlay.atlas\", {}),\n\t\t\tfreeToPlay_json: new Asset(\"images/f2p/freeToPlay.json\", {}),\n\t\t\tfreeToPlay_png: new Asset(\"images/f2p/freeToPlay.png\", {})\n\t\t},\n\t\tfree_play: {\n\t\t\tfp_left_arrow_png: new Asset(\"images/free-play/fp-left-arrow.png\", {}),\n\t\t\tfp_right_arrow_png: new Asset(\"images/free-play/fp-right-arrow.png\", {}),\n\t\t\tfp_step_msg_bg_png: new Asset(\"images/free-play/fp-step-msg-bg.png\", {}),\n\t\t\tfp_vouchers_bg_png: new Asset(\"images/free-play/fp-vouchers-bg.png\", {}),\n\t\t\tfreeplay_bg_type_fp_png: new Asset(\"images/free-play/freeplay-bg-type-fp.png\", {'777_com': true}),\n\t\t\tfreeplay_bg_type_fs_png: new Asset(\"images/free-play/freeplay-bg-type-fs.png\", {'777_com': true}),\n\t\t\tfreeplay_bg_type_jfp_png: new Asset(\"images/free-play/freeplay-bg-type-jfp.png\", {'777_com': true}),\n\t\t\tfreeplay_bg_type_jfs_png: new Asset(\"images/free-play/freeplay-bg-type-jfs.png\", {'777_com': true}),\n\t\t\tfreeplay_type_fp_png: new Asset(\"images/free-play/freeplay-type-fp.png\", {'777_com': true}),\n\t\t\tfreeplay_type_fs_png: new Asset(\"images/free-play/freeplay-type-fs.png\", {'777_com': true}),\n\t\t\tfreeplay_type_jfp_png: new Asset(\"images/free-play/freeplay-type-jfp.png\", {'777_com': true}),\n\t\t\tfreeplay_type_jfs_png: new Asset(\"images/free-play/freeplay-type-jfs.png\", {'777_com': true})\n\t\t},\n\t\tgames_icons_background: {\n\t\t\tBGcardandtable_png: new Asset(\"images/games-icons-background/BGcardandtable.png\", {'777_com': true,'harrahs_nj': true}),\n\t\t\tBGGameBlack_png: new Asset(\"images/games-icons-background/BGGameBlack.png\", {'777_com': true,'harrahs_nj': true}),\n\t\t\tBGGameBlackSquare_png: new Asset(\"images/games-icons-background/BGGameBlackSquare.png\", {'777_com': true}),\n\t\t\tBGicon_png: new Asset(\"images/games-icons-background/BGicon.png\", {'777_com': true,'harrahs_nj': true}),\n\t\t\tBGredTiger_png: new Asset(\"images/games-icons-background/BGredTiger.png\", {'777_com': true})\n\t\t},\n\t\tgame_frame: {\n\t\t\tdemo_left_corner_png: new Asset(\"images/game_frame/demo_left_corner.png\", {'777_com': true}),\n\t\t\tdemo_right_corner_png: new Asset(\"images/game_frame/demo_right_corner.png\", {'777_com': true}),\n\t\t\tfreeplay_indicator_png: new Asset(\"images/game_frame/freeplay_indicator.png\", {'777_com': true,'si_mi': true}),\n\t\t\tfreeplay_indicator_selected_png: new Asset(\"images/game_frame/freeplay_indicator_selected.png\", {'777_com': true,'si_mi': true}),\n\t\t\tfreeplay_left_corner_png: new Asset(\"images/game_frame/freeplay_left_corner.png\", {'777_com': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true}),\n\t\t\tfreeplay_right_corner_png: new Asset(\"images/game_frame/freeplay_right_corner.png\", {'777_com': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true}),\n\t\t\treal_left_corner_png: new Asset(\"images/game_frame/real_left_corner.png\", {'777_com': true,'si_mi': true}),\n\t\t\treal_right_corner_png: new Asset(\"images/game_frame/real_right_corner.png\", {'777_com': true,'si_mi': true}),\n\t\t\tregulation_strip_clock_png: new Asset(\"images/game_frame/regulation_strip_clock.png\", {})\n\t\t},\n\t\thistory: {\n\t\t\thistory_details_left_corner_png: new Asset(\"images/history/history-details-left-corner.png\", {'777_com': true,'harrahs_nj': true,'si_mi': true}),\n\t\t\thistory_calendar_png: new Asset(\"images/history/history_calendar.png\", {'777_com': true,'si_mi': true})\n\t\t},\n\t\tjackpot_widget: {\n\t\t\tcrown_png: new Asset(\"images/jackpot_widget/crown.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tdaily: {\n\t\t\t\tbackground_png: new Asset(\"images/jackpot_widget/daily/background.png\", {'777_com': true,'si_mi': true}),\n\t\t\t\tlogo_png: new Asset(\"images/jackpot_widget/daily/logo.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'si_mi': true})\n\t\t\t},\n\t\t\thigh_noon: {\n\t\t\t\tbackground_png: new Asset(\"images/jackpot_widget/high_noon/background.png\", {'777_com': true}),\n\t\t\t\tlogo_png: new Asset(\"images/jackpot_widget/high_noon/logo.png\", {})\n\t\t\t},\n\t\t\thourly_captain8: {\n\t\t\t\tbackground_png: new Asset(\"images/jackpot_widget/hourly_captain8/background.png\", {}),\n\t\t\t\tbackground_landscape_png: new Asset(\"images/jackpot_widget/hourly_captain8/background_landscape.png\", {}),\n\t\t\t\tlogo_png: new Asset(\"images/jackpot_widget/hourly_captain8/logo.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true})\n\t\t\t},\n\t\t\tinfo_dialog: {\n\t\t\t\tmobile_png: new Asset(\"images/jackpot_widget/info_dialog/mobile.png\", {'777_com': true}),\n\t\t\t\tmobile_landscape_png: new Asset(\"images/jackpot_widget/info_dialog/mobile_landscape.png\", {'777_com': true}),\n\t\t\t\tpc_png: new Asset(\"images/jackpot_widget/info_dialog/pc.png\", {'777_com': true})\n\t\t\t},\n\t\t\tlive_party: {\n\t\t\t\tbackground_png: new Asset(\"images/jackpot_widget/live_party/background.png\", {'777_com': true}),\n\t\t\t\tin_game_widget_background_png: new Asset(\"images/jackpot_widget/live_party/in_game_widget_background.png\", {}),\n\t\t\t\tlogo_png: new Asset(\"images/jackpot_widget/live_party/logo.png\", {})\n\t\t\t},\n\t\t\tparty: {\n\t\t\t\tbackground_png: new Asset(\"images/jackpot_widget/party/background.png\", {'777_com': true}),\n\t\t\t\tin_game_widget_background_png: new Asset(\"images/jackpot_widget/party/in_game_widget_background.png\", {}),\n\t\t\t\tlogo_png: new Asset(\"images/jackpot_widget/party/logo.png\", {}),\n\t\t\t\ttoaster_icon_png: new Asset(\"images/jackpot_widget/party/toaster_icon.png\", {'777_com': true}),\n\t\t\t\twinning_png: new Asset(\"images/jackpot_widget/party/winning.png\", {})\n\t\t\t},\n\t\t\ttwilight: {\n\t\t\t\tbackground_png: new Asset(\"images/jackpot_widget/twilight/background.png\", {'777_com': true}),\n\t\t\t\tlogo_png: new Asset(\"images/jackpot_widget/twilight/logo.png\", {})\n\t\t\t}\n\t\t},\n\t\tlive_arena: {\n\t\t\tactive_indicator_bg_png: new Asset(\"images/live_arena/active_indicator_bg.png\", {}),\n\t\t\tdealer_icon_png: new Asset(\"images/live_arena/dealer_icon.png\", {'777_com': true}),\n\t\t\tseat_icon_png: new Asset(\"images/live_arena/seat_icon.png\", {'777_com': true}),\n\t\t\tseat_icon_dark_png: new Asset(\"images/live_arena/seat_icon_dark.png\", {'777_com': true}),\n\t\t\tlive_arena_widget: {\n\t\t\t\tbackground_png: new Asset(\"images/live_arena/live_arena_widget/background.png\", {}),\n\t\t\t\tcapsule_end_png: new Asset(\"images/live_arena/live_arena_widget/capsule_end.png\", {'777_com': true}),\n\t\t\t\tcapsule_mid_png: new Asset(\"images/live_arena/live_arena_widget/capsule_mid.png\", {'777_com': true}),\n\t\t\t\tcapsule_start_png: new Asset(\"images/live_arena/live_arena_widget/capsule_start.png\", {'777_com': true}),\n\t\t\t\tcrown_png: new Asset(\"images/live_arena/live_arena_widget/crown.png\", {}),\n\t\t\t\tlogo_png: new Asset(\"images/live_arena/live_arena_widget/logo.png\", {}),\n\t\t\t\tseparator_png: new Asset(\"images/live_arena/live_arena_widget/separator.png\", {'777_com': true})\n\t\t\t}\n\t\t},\n\t\tregulation_specific: {\n\t\t\tdenmark: {\n\t\t\t\tsafe_to_play_png: new Asset(\"images/regulation_specific/denmark/safe-to-play.png\", {}),\n\t\t\t\tself_exclusion_png: new Asset(\"images/regulation_specific/denmark/self-exclusion.png\", {}),\n\t\t\t\tself_test_png: new Asset(\"images/regulation_specific/denmark/self-test.png\", {})\n\t\t\t},\n\t\t\tontario: {\n\t\t\t\tsafe_to_play_icon_png: new Asset(\"images/regulation_specific/ontario/safe-to-play-icon.png\", {})\n\t\t\t},\n\t\t\tsweeden: {\n\t\t\t\tsw_resp_game_limit_symbol_png: new Asset(\"images/regulation_specific/sweeden/sw-resp-game-limit-symbol.png\", {}),\n\t\t\t\tsw_resp_game_limit_png: new Asset(\"images/regulation_specific/sweeden/sw-resp-game-limit.png\", {}),\n\t\t\t\tsw_resp_game_panic_symbol_png: new Asset(\"images/regulation_specific/sweeden/sw-resp-game-panic-symbol.png\", {}),\n\t\t\t\tsw_resp_game_panic_png: new Asset(\"images/regulation_specific/sweeden/sw-resp-game-panic.png\", {}),\n\t\t\t\tsw_resp_game_self_test_symbol_png: new Asset(\"images/regulation_specific/sweeden/sw-resp-game-self-test-symbol.png\", {}),\n\t\t\t\tsw_resp_game_self_test_png: new Asset(\"images/regulation_specific/sweeden/sw-resp-game-self-test.png\", {})\n\t\t\t}\n\t\t},\n\t\tresponsible_gambling: {\n\t\t\tage_18plus_capsule_png: new Asset(\"images/responsible-gambling/age-18plus-capsule.png\", {'777_com': true}),\n\t\t\tage_18plus_flat_png: new Asset(\"images/responsible-gambling/age-18plus-flat.png\", {'777_com': true}),\n\t\t\tage_18plus_round_png: new Asset(\"images/responsible-gambling/age-18plus-round.png\", {'777_com': true}),\n\t\t\tage_21plus_flat_png: new Asset(\"images/responsible-gambling/age-21plus-flat.png\", {'777_com': true}),\n\t\t\tage_21plus_round_png: new Asset(\"images/responsible-gambling/age-21plus-round.png\", {'777_com': true,'si_mi': true}),\n\t\t\tbegambleaeare_logo_png: new Asset(\"images/responsible-gambling/begambleaeare-logo.png\", {'777_com': true}),\n\t\t\tgamecare_logo_png: new Asset(\"images/responsible-gambling/gamecare-logo.png\", {'777_com': true}),\n\t\t\tsafeZoneIcon_svg: new Asset(\"images/responsible-gambling/safeZoneIcon.svg\", {'777_com': true})\n\t\t},\n\t\twheel_of_fortune: {\n\t\t\tcolors_svg: new Asset(\"images/wheel-of-fortune/colors.svg\", {}),\n\t\t\tshell_svg: new Asset(\"images/wheel-of-fortune/shell.svg\", {'777_com': true})\n\t\t},\n\t\tarenas: {\n\t\t\tCasinoGames: {\n\t\t\t\tonline_blackjack_png: new Asset(\"images/arenas/CasinoGames/online_blackjack.png\", {'777_com': true}),\n\t\t\t\tonline_casino_games_png: new Asset(\"images/arenas/CasinoGames/online_casino_games.png\", {'777_com': true}),\n\t\t\t\tonline_jackpot_png: new Asset(\"images/arenas/CasinoGames/online_jackpot.png\", {'777_com': true}),\n\t\t\t\tonline_roulette_png: new Asset(\"images/arenas/CasinoGames/online_roulette.png\", {'777_com': true}),\n\t\t\t\tonline_slots_png: new Asset(\"images/arenas/CasinoGames/online_slots.png\", {'777_com': true})\n\t\t\t},\n\t\t\tHomePage: {\n\t\t\t\tblackjack_arena_info_png: new Asset(\"images/arenas/HomePage/blackjack_arena_info.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tcards_arena_info_png: new Asset(\"images/arenas/HomePage/cards_arena_info.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tcasino_games_arena_png: new Asset(\"images/arenas/HomePage/casino_games_arena.png\", {'777_com': true}),\n\t\t\t\tdaily_jackpots_arena_icon_png: new Asset(\"images/arenas/HomePage/daily_jackpots_arena_icon.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tdefault_arena_png: new Asset(\"images/arenas/HomePage/default_arena.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tlive_arena_png: new Asset(\"images/arenas/HomePage/live_arena.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'harrahs_nj': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tnew_games_arena_png: new Asset(\"images/arenas/HomePage/new_games_arena.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'si_mi': true}),\n\t\t\t\tnew_games_arena_info_png: new Asset(\"images/arenas/HomePage/new_games_arena_info.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\t\t\troulette_arena_info_png: new Asset(\"images/arenas/HomePage/roulette_arena_info.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'harrahs_nj': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tscratch_cards_arena_png: new Asset(\"images/arenas/HomePage/scratch_cards_arena.png\", {'777_com': true}),\n\t\t\t\tscratch_cards_arena_info_png: new Asset(\"images/arenas/HomePage/scratch_cards_arena_info.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'harrahs_nj': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tslots_arena_info_png: new Asset(\"images/arenas/HomePage/slots_arena_info.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tslots_jackpots_arena_png: new Asset(\"images/arenas/HomePage/slots_jackpots_arena.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tvideo_poker_arena_info_png: new Asset(\"images/arenas/HomePage/video_poker_arena_info.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\t_888exclusive_arena_png: new Asset(\"images/arenas/HomePage/888exclusive_arena.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\t\t\t_888exclusive_arena_info_png: new Asset(\"images/arenas/HomePage/888exclusive_arena_info.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\t\tblackjack_arena_png: new Asset(\"images/arenas/HomePage/blackjack_arena.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\t\t\tcards_arena_png: new Asset(\"images/arenas/HomePage/cards_arena.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tInstantWin_game_info_png: new Asset(\"images/arenas/HomePage/InstantWin_game_info.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\t\tlive_arena_elite_lounge_png: new Asset(\"images/arenas/HomePage/live_arena_elite_lounge.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\t\tlive_game_shows_arena_png: new Asset(\"images/arenas/HomePage/live_game_shows_arena.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\t\t\troulette_arena_png: new Asset(\"images/arenas/HomePage/roulette_arena.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\t\t\tscratch_cards_arena_icon_png: new Asset(\"images/arenas/HomePage/scratch_cards_arena_icon.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\t\t\tvideo_poker_arena_png: new Asset(\"images/arenas/HomePage/video_poker_arena.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tvisual_sport_arena_info_png: new Asset(\"images/arenas/HomePage/visual_sport_arena_info.png\", {'ballysdover_de': true,'si_mi': true}),\n\t\t\t\tprogressive_slots_arena_icon_png: new Asset(\"images/arenas/HomePage/progressive_slots_arena_icon.png\", {'harrahs_nj': true,'wsop_nj': true}),\n\t\t\t\tprogressive_slots_arena_info_png: new Asset(\"images/arenas/HomePage/progressive_slots_arena_info.png\", {'harrahs_nj': true,'wsop_nj': true}),\n\t\t\t\tsi_exclusive_arena_png: new Asset(\"images/arenas/HomePage/si_exclusive_arena.png\", {'si_mi': true})\n\t\t\t},\n\t\t\tLiveArenas: {\n\t\t\t\tdefault_live_arena_png: new Asset(\"images/arenas/LiveArenas/default_live_arena.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tlive_arena_baccarat_png: new Asset(\"images/arenas/LiveArenas/live_arena_baccarat.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tlive_arena_bj_png: new Asset(\"images/arenas/LiveArenas/live_arena_bj.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tlive_arena_dream_catcher_png: new Asset(\"images/arenas/LiveArenas/live_arena_dream_catcher.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tlive_arena_elite_lounge_png: new Asset(\"images/arenas/LiveArenas/live_arena_elite_lounge.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tlive_arena_poker_png: new Asset(\"images/arenas/LiveArenas/live_arena_poker.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tlive_arena_roulette_png: new Asset(\"images/arenas/LiveArenas/live_arena_roulette.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'si_mi': true,'wsop_nj': true})\n\t\t\t}\n\t\t},\n\t\tavatars: {\n\t\t\tdiamond_vip: {\n\t\t\t\tmy_account_diamond_vip_png: new Asset(\"images/avatars/diamond-vip/my-account-diamond-vip.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpost_login_diamond_vip_avatar_hover_png: new Asset(\"images/avatars/diamond-vip/post-login-diamond-vip-avatar-hover.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpost_login_diamond_vip_avatar_regular_png: new Asset(\"images/avatars/diamond-vip/post-login-diamond-vip-avatar-regular.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpost_login_diamond_vip_avatar_selected_pressed_png: new Asset(\"images/avatars/diamond-vip/post-login-diamond-vip-avatar-selected-pressed.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_diamond_vip_avatar_hover_png: new Asset(\"images/avatars/diamond-vip/pre-login-diamond-vip-avatar-hover.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_diamond_vip_avatar_pressed_png: new Asset(\"images/avatars/diamond-vip/pre-login-diamond-vip-avatar-pressed.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_diamond_vip_avatar_regular_png: new Asset(\"images/avatars/diamond-vip/pre-login-diamond-vip-avatar-regular.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true})\n\t\t\t},\n\t\t\tgold_vip: {\n\t\t\t\tmy_account_gold_vip_png: new Asset(\"images/avatars/gold-vip/my-account-gold-vip.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpost_login_gold_vip_avatar_hover_png: new Asset(\"images/avatars/gold-vip/post-login-gold-vip-avatar-hover.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpost_login_gold_vip_avatar_regular_png: new Asset(\"images/avatars/gold-vip/post-login-gold-vip-avatar-regular.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpost_login_gold_vip_avatar_selected_pressed_png: new Asset(\"images/avatars/gold-vip/post-login-gold-vip-avatar-selected-pressed.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_gold_vip_avatar_hover_png: new Asset(\"images/avatars/gold-vip/pre-login-gold-vip-avatar-hover.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_gold_vip_avatar_pressed_png: new Asset(\"images/avatars/gold-vip/pre-login-gold-vip-avatar-pressed.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_gold_vip_avatar_regular_png: new Asset(\"images/avatars/gold-vip/pre-login-gold-vip-avatar-regular.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tPREV_post_login_gold_vip_avatar_regular_png: new Asset(\"images/avatars/gold-vip/PREV_post-login-gold-vip-avatar-regular.png\", {'777_com': true}),\n\t\t\t\tWpost_login_gold_vip_avatar_regular_png: new Asset(\"images/avatars/gold-vip/Wpost-login-gold-vip-avatar-regular.png\", {'777_com': true})\n\t\t\t},\n\t\t\tplatinum_vip: {\n\t\t\t\tmy_account_vip_platinum_png: new Asset(\"images/avatars/platinum-vip/my-account-vip-platinum.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpost_login_vip_platinum_avatar_hover_png: new Asset(\"images/avatars/platinum-vip/post-login-vip-platinum-avatar-hover.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpost_login_vip_platinum_avatar_regular_png: new Asset(\"images/avatars/platinum-vip/post-login-vip-platinum-avatar-regular.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpost_login_vip_platinum_avatar_selected_pressed_png: new Asset(\"images/avatars/platinum-vip/post-login-vip-platinum-avatar-selected-pressed.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_vip_platinum_avatar_hover_png: new Asset(\"images/avatars/platinum-vip/pre-login-vip-platinum-avatar-hover.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_vip_platinum_avatar_pressed_png: new Asset(\"images/avatars/platinum-vip/pre-login-vip-platinum-avatar-pressed.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_vip_platinum_avatar_regular_png: new Asset(\"images/avatars/platinum-vip/pre-login-vip-platinum-avatar-regular.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true})\n\t\t\t},\n\t\t\treg: {\n\t\t\t\tpost_login_hover_png: new Asset(\"images/avatars/reg/post-login-hover.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpost_login_pressed_png: new Asset(\"images/avatars/reg/post-login-pressed.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpost_login_reg_png: new Asset(\"images/avatars/reg/post-login-reg.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_hover_png: new Asset(\"images/avatars/reg/pre-login-hover.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_pressed_png: new Asset(\"images/avatars/reg/pre-login-pressed.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_reg_png: new Asset(\"images/avatars/reg/pre-login-reg.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true})\n\t\t\t},\n\t\t\treg_vip: {\n\t\t\t\tmy_account_vip_reg_png: new Asset(\"images/avatars/reg-vip/my-account-vip-reg.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpost_login_reg_vip_avatar_hover_png: new Asset(\"images/avatars/reg-vip/post-login-reg-vip-avatar-hover.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpost_login_reg_vip_avatar_icon_selected_pressed_png: new Asset(\"images/avatars/reg-vip/post-login-reg-vip-avatar-icon-selected-pressed.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpost_login_reg_vip_avatar_regular_png: new Asset(\"images/avatars/reg-vip/post-login-reg-vip-avatar-regular.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_reg_vip_avatar_icon_hover_png: new Asset(\"images/avatars/reg-vip/pre-login-reg-vip-avatar-icon-hover.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_reg_vip_avatar_icon_pressed_png: new Asset(\"images/avatars/reg-vip/pre-login-reg-vip-avatar-icon-pressed.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_reg_vip_avatar_icon_regular_png: new Asset(\"images/avatars/reg-vip/pre-login-reg-vip-avatar-icon-regular.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tMy_account_VIP_REG_icon_png: new Asset(\"images/avatars/reg-vip/My-account-VIP-REG-icon.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpost_login_reg_vip_avatar_selected_pressed_png: new Asset(\"images/avatars/reg-vip/post-login-reg-vip-avatar-selected-pressed.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true})\n\t\t\t}\n\t\t},\n\t\tbadges: {\n\t\t\texclusive_png: new Asset(\"images/badges/exclusive.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\thot_png: new Asset(\"images/badges/hot.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tnew_badge_png: new Asset(\"images/badges/new-badge.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tvip_badge_png: new Asset(\"images/badges/vip-badge.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true})\n\t\t},\n\t\tbanners: {\n\t\t\t_777InstantWin_arena_banner_mobile_png: new Asset(\"images/banners/777InstantWin_arena_banner_mobile.png\", {'777_com': true}),\n\t\t\t_777InstantWin_arena_banner_pc_png: new Asset(\"images/banners/777InstantWin_arena_banner_pc.png\", {'777_com': true}),\n\t\t\t_777InstantWin_arena_banner_tablet_png: new Asset(\"images/banners/777InstantWin_arena_banner_tablet.png\", {'777_com': true}),\n\t\t\tall_casino_games_arena_banner_mobile_png: new Asset(\"images/banners/all_casino_games_arena_banner_mobile.png\", {'777_com': true}),\n\t\t\tall_casino_games_arena_banner_pc_png: new Asset(\"images/banners/all_casino_games_arena_banner_pc.png\", {'777_com': true}),\n\t\t\tall_casino_games_arena_banner_tablet_png: new Asset(\"images/banners/all_casino_games_arena_banner_tablet.png\", {'777_com': true}),\n\t\t\tblackjack_arena_banner_mobile_png: new Asset(\"images/banners/blackjack_arena_banner_mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tblackjack_arena_banner_pc_png: new Asset(\"images/banners/blackjack_arena_banner_pc.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tblackjack_arena_banner_tablet_png: new Asset(\"images/banners/blackjack_arena_banner_tablet.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tcasino_games_arena_banner_mobile_png: new Asset(\"images/banners/casino_games_arena_banner_mobile.png\", {'777_com': true}),\n\t\t\tcasino_games_arena_banner_pc_png: new Asset(\"images/banners/casino_games_arena_banner_pc.png\", {'777_com': true}),\n\t\t\tcasino_games_arena_banner_tablet_png: new Asset(\"images/banners/casino_games_arena_banner_tablet.png\", {'777_com': true}),\n\t\t\tevo_lobby_banner_mobile_png: new Asset(\"images/banners/evo_lobby_banner_mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true}),\n\t\t\tevo_lobby_banner_pc_png: new Asset(\"images/banners/evo_lobby_banner_pc.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true}),\n\t\t\tevo_lobby_banner_tablet_png: new Asset(\"images/banners/evo_lobby_banner_tablet.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true}),\n\t\t\tjackpot_arena_banner_mobile_png: new Asset(\"images/banners/jackpot_arena_banner_mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tjackpot_arena_banner_pc_png: new Asset(\"images/banners/jackpot_arena_banner_pc.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tjackpot_arena_banner_tablet_png: new Asset(\"images/banners/jackpot_arena_banner_tablet.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tlive_arena_banner_mobile_png: new Asset(\"images/banners/live_arena_banner_mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\tlive_arena_banner_pc_png: new Asset(\"images/banners/live_arena_banner_pc.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\tlive_arena_banner_tablet_png: new Asset(\"images/banners/live_arena_banner_tablet.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\tnew_games_arena_banner_mobile_png: new Asset(\"images/banners/new_games_arena_banner_mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'si_mi': true}),\n\t\t\tnew_games_arena_banner_pc_png: new Asset(\"images/banners/new_games_arena_banner_pc.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'si_mi': true}),\n\t\t\tnew_games_arena_banner_tablet_png: new Asset(\"images/banners/new_games_arena_banner_tablet.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'si_mi': true}),\n\t\t\troulette_arena_banner_mobile_png: new Asset(\"images/banners/roulette_arena_banner_mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\troulette_arena_banner_pc_png: new Asset(\"images/banners/roulette_arena_banner_pc.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\troulette_arena_banner_tablet_png: new Asset(\"images/banners/roulette_arena_banner_tablet.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tscrach_card_arena_banner_mobile_png: new Asset(\"images/banners/scrach_card_arena_banner_mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\tscrach_card_arena_banner_pc_png: new Asset(\"images/banners/scrach_card_arena_banner_pc.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\tscrach_card_arena_banner_tablet_png: new Asset(\"images/banners/scrach_card_arena_banner_tablet.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\tslots_arena_banner_mobile_png: new Asset(\"images/banners/slots_arena_banner_mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tslots_arena_banner_pc_png: new Asset(\"images/banners/slots_arena_banner_pc.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tslots_arena_banner_tablet_png: new Asset(\"images/banners/slots_arena_banner_tablet.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tvideo_poker_arena_banner_mobile_png: new Asset(\"images/banners/video_poker_arena_banner_mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'harrahs_nj': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tvideo_poker_arena_banner_pc_png: new Asset(\"images/banners/video_poker_arena_banner_pc.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'harrahs_nj': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tvideo_poker_arena_banner_tablet_png: new Asset(\"images/banners/video_poker_arena_banner_tablet.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'harrahs_nj': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t_888exclusive_arena_banner_mobile_png: new Asset(\"images/banners/888exclusive_arena_banner_mobile.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true}),\n\t\t\t_888exclusive_arena_banner_pc_png: new Asset(\"images/banners/888exclusive_arena_banner_pc.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true}),\n\t\t\t_888exclusive_arena_banner_tablet_png: new Asset(\"images/banners/888exclusive_arena_banner_tablet.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true}),\n\t\t\t_888exclusive_arena_preview_image_png: new Asset(\"images/banners/888exclusive_arena_preview_image.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\tcards_arena_banner_mobile_png: new Asset(\"images/banners/cards_arena_banner_mobile.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tcards_arena_banner_pc_png: new Asset(\"images/banners/cards_arena_banner_pc.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tcards_arena_banner_tablet_png: new Asset(\"images/banners/cards_arena_banner_tablet.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tInstantWin_arena_banner_mobile_png: new Asset(\"images/banners/InstantWin_arena_banner_mobile.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\tInstantWin_arena_banner_pc_png: new Asset(\"images/banners/InstantWin_arena_banner_pc.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\tInstantWin_arena_banner_tablet_png: new Asset(\"images/banners/InstantWin_arena_banner_tablet.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\tvirtual_sports_arena_banner_mobile_png: new Asset(\"images/banners/virtual_sports_arena_banner_mobile.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\tvirtual_sports_arena_banner_pc_png: new Asset(\"images/banners/virtual_sports_arena_banner_pc.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\tvirtual_sports_arena_banner_tablet_png: new Asset(\"images/banners/virtual_sports_arena_banner_tablet.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\tprogressive_slots_arena_banner_mobile_png: new Asset(\"images/banners/progressive_slots_arena_banner_mobile.png\", {'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tprogressive_slots_arena_banner_pc_png: new Asset(\"images/banners/progressive_slots_arena_banner_pc.png\", {'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tprogressive_slots_arena_banner_tablet_png: new Asset(\"images/banners/progressive_slots_arena_banner_tablet.png\", {'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tsi_exclusive_arena_banner_mobile_png: new Asset(\"images/banners/si_exclusive_arena_banner_mobile.png\", {'si_mi': true}),\n\t\t\tsi_exclusive_arena_banner_pc_png: new Asset(\"images/banners/si_exclusive_arena_banner_pc.png\", {'si_mi': true}),\n\t\t\tsi_exclusive_arena_banner_tablet_png: new Asset(\"images/banners/si_exclusive_arena_banner_tablet.png\", {'si_mi': true}),\n\t\t\tblackjack_arena_banner_mobile_rtl_png: new Asset(\"images/banners/blackjack_arena_banner_mobile_rtl.png\", {'wsop_nj': true}),\n\t\t\tblackjack_arena_banner_pc_rtl_png: new Asset(\"images/banners/blackjack_arena_banner_pc_rtl.png\", {'wsop_nj': true}),\n\t\t\tblackjack_arena_banner_tablet_rtl_png: new Asset(\"images/banners/blackjack_arena_banner_tablet_rtl.png\", {'wsop_nj': true}),\n\t\t\troulette_arena_banner_mobile_rtl_png: new Asset(\"images/banners/roulette_arena_banner_mobile_rtl.png\", {'wsop_nj': true}),\n\t\t\troulette_arena_banner_pc_rtl_png: new Asset(\"images/banners/roulette_arena_banner_pc_rtl.png\", {'wsop_nj': true}),\n\t\t\troulette_arena_banner_tablet_rtl_png: new Asset(\"images/banners/roulette_arena_banner_tablet_rtl.png\", {'wsop_nj': true})\n\t\t},\n\t\tlogos: {\n\t\t\tdiamond_vip: {\n\t\t\t\tvip_diamond_logo_mobile_png: new Asset(\"images/logos/diamond-vip/vip-diamond-logo-mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tvip_diamond_logo_pc_png: new Asset(\"images/logos/diamond-vip/vip-diamond-logo-pc.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tvip_diamond_logo_pc_dark_png: new Asset(\"images/logos/diamond-vip/vip-diamond-logo-pc-dark.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true})\n\t\t\t},\n\t\t\tgold_vip: {\n\t\t\t\tvip_gold_logo_mobile_png: new Asset(\"images/logos/gold-vip/vip-gold-logo-mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tvip_gold_logo_pc_png: new Asset(\"images/logos/gold-vip/vip-gold-logo-pc.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tvip_gold_logo_pc_dark_png: new Asset(\"images/logos/gold-vip/vip-gold-logo-pc-dark.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true})\n\t\t\t},\n\t\t\tplatinum_vip: {\n\t\t\t\tvip_platinum_logo_mobile_png: new Asset(\"images/logos/platinum-vip/vip-platinum-logo-mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tvip_platinum_logo_pc_png: new Asset(\"images/logos/platinum-vip/vip-platinum-logo-pc.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tvip_platinum_logo_pc_dark_png: new Asset(\"images/logos/platinum-vip/vip-platinum-logo-pc-dark.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true})\n\t\t\t},\n\t\t\treg_vip: {\n\t\t\t\tvip_regular_logo_mobile_png: new Asset(\"images/logos/reg-vip/vip-regular-logo-mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tvip_regular_logo_pc_png: new Asset(\"images/logos/reg-vip/vip-regular-logo-pc.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tvip_regular_logo_pc_dark_png: new Asset(\"images/logos/reg-vip/vip-regular-logo-pc-dark.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true})\n\t\t\t}\n\t\t},\n\t\tsdk_icons: {\n\t\t\t_18_plus_png: new Asset(\"images/sdk_icons/18_plus.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\t_21_plus_png: new Asset(\"images/sdk_icons/21_plus.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tClose_png: new Asset(\"images/sdk_icons/Close.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tClose_hover_png: new Asset(\"images/sdk_icons/Close_hover.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tfprightarrow_png: new Asset(\"images/sdk_icons/fprightarrow.png\", {'777_com': true}),\n\t\t\tfpvoucherback_png: new Asset(\"images/sdk_icons/fpvoucherback.png\", {'777_com': true}),\n\t\t\tfpVoucherBG_png: new Asset(\"images/sdk_icons/fpVoucherBG.png\", {'777_com': true}),\n\t\t\tfpvoucherfreeplay_png: new Asset(\"images/sdk_icons/fpvoucherfreeplay.png\", {'777_com': true}),\n\t\t\tfpvoucherfreespin_png: new Asset(\"images/sdk_icons/fpvoucherfreespin.png\", {'777_com': true}),\n\t\t\tfpvoucherinfoclose_png: new Asset(\"images/sdk_icons/fpvoucherinfoclose.png\", {'777_com': true}),\n\t\t\tfpvoucherinfoopen_png: new Asset(\"images/sdk_icons/fpvoucherinfoopen.png\", {'777_com': true}),\n\t\t\tfpvoucherjackpotfreeplay_png: new Asset(\"images/sdk_icons/fpvoucherjackpotfreeplay.png\", {'777_com': true}),\n\t\t\tfpvoucherjackpotfreespin_png: new Asset(\"images/sdk_icons/fpvoucherjackpotfreespin.png\", {'777_com': true}),\n\t\t\tfp_vouchers_bg_png: new Asset(\"images/sdk_icons/fp_vouchers_bg.png\", {'777_com': true}),\n\t\t\tfreeplayVoucherBG_png: new Asset(\"images/sdk_icons/freeplayVoucherBG.png\", {'777_com': true}),\n\t\t\tfreeSpinsVoucherBG_png: new Asset(\"images/sdk_icons/freeSpinsVoucherBG.png\", {'777_com': true}),\n\t\t\tfull_screen_png: new Asset(\"images/sdk_icons/full_screen.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tfull_screen_off_png: new Asset(\"images/sdk_icons/full_screen_off.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tgame_frame_fp_indicator_png: new Asset(\"images/sdk_icons/game-frame-fp-indicator.png\", {'777_com': true}),\n\t\t\tgame_frame_freeplay_mode_left_png: new Asset(\"images/sdk_icons/game_frame_freeplay_mode_left.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tgame_frame_freeplay_mode_right_png: new Asset(\"images/sdk_icons/game_frame_freeplay_mode_right.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tgame_frame_practicel_mode_left_png: new Asset(\"images/sdk_icons/game_frame_practicel_mode_left.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tgame_frame_practicel_mode_right_png: new Asset(\"images/sdk_icons/game_frame_practicel_mode_right.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tgame_frame_real_mode_left_png: new Asset(\"images/sdk_icons/game_frame_real_mode_left.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tgame_frame_real_mode_right_png: new Asset(\"images/sdk_icons/game_frame_real_mode_right.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tgeneral_notification_png: new Asset(\"images/sdk_icons/general_notification.png\", {'777_com': true}),\n\t\t\that_png: new Asset(\"images/sdk_icons/hat.png\", {'777_com': true}),\n\t\t\thot_png: new Asset(\"images/sdk_icons/hot.png\", {'777_com': true}),\n\t\t\ticons_down_arrow_png: new Asset(\"images/sdk_icons/icons_down_arrow.png\", {'777_com': true}),\n\t\t\tjackpotplayFreePlayVoucherBG_png: new Asset(\"images/sdk_icons/jackpotplayFreePlayVoucherBG.png\", {'777_com': true}),\n\t\t\tjackpotplayFreeSpinVoucherBG_png: new Asset(\"images/sdk_icons/jackpotplayFreeSpinVoucherBG.png\", {'777_com': true}),\n\t\t\tjackpotplayVoucherBG_png: new Asset(\"images/sdk_icons/jackpotplayVoucherBG.png\", {'777_com': true}),\n\t\t\tleftarrow_png: new Asset(\"images/sdk_icons/leftarrow.png\", {'777_com': true}),\n\t\t\tnew_badge_png: new Asset(\"images/sdk_icons/new-badge.png\", {'777_com': true}),\n\t\t\tpassword_png: new Asset(\"images/sdk_icons/password.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\trightarrow_png: new Asset(\"images/sdk_icons/rightarrow.png\", {'777_com': true}),\n\t\t\ttoaster_information_message_png: new Asset(\"images/sdk_icons/toaster-information-message.png\", {'777_com': true}),\n\t\t\ttouchFinger_png: new Asset(\"images/sdk_icons/touchFinger.png\", {'777_com': true}),\n\t\t\tuser_png: new Asset(\"images/sdk_icons/user.png\", {'777_com': true}),\n\t\t\tusername_png: new Asset(\"images/sdk_icons/username.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tvip_badge_png: new Asset(\"images/sdk_icons/vip-badge.png\", {'777_com': true}),\n\t\t\tgame_frame_bg_fp_left_png: new Asset(\"images/sdk_icons/game-frame-bg-fp-left.png\", {'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true}),\n\t\t\tgame_frame_bg_fp_right_png: new Asset(\"images/sdk_icons/game-frame-bg-fp-right.png\", {'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true}),\n\t\t\tpost_login_mobile_png: new Asset(\"images/sdk_icons/post-login-mobile.png\", {'ballysdover_de': true,'harrahs_nj': true,'si_mi': true,'wsop_nj': true}),\n\t\t\thistory_details_left_corner_png: new Asset(\"images/sdk_icons/history-details-left-corner.png\", {'si_mi': true})\n\t\t},\n\t\tstore: {\n\t\t\tstore_button_android_eng_png: new Asset(\"images/store/store-button-android-eng.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tstore_button_android_fin_png: new Asset(\"images/store/store-button-android-fin.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tstore_button_android_fre_png: new Asset(\"images/store/store-button-android-fre.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tstore_button_android_ger_png: new Asset(\"images/store/store-button-android-ger.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tstore_button_android_nor_png: new Asset(\"images/store/store-button-android-nor.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tstore_button_android_por_png: new Asset(\"images/store/store-button-android-por.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tstore_button_android_rus_png: new Asset(\"images/store/store-button-android-rus.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tstore_button_android_spa_png: new Asset(\"images/store/store-button-android-spa.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tstore_button_android_swe_png: new Asset(\"images/store/store-button-android-swe.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tstore_button_ios_eng_svg: new Asset(\"images/store/store-button-ios-eng.svg\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tstore_button_ios_fin_svg: new Asset(\"images/store/store-button-ios-fin.svg\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tstore_button_ios_fre_svg: new Asset(\"images/store/store-button-ios-fre.svg\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tstore_button_ios_ger_svg: new Asset(\"images/store/store-button-ios-ger.svg\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tstore_button_ios_nor_svg: new Asset(\"images/store/store-button-ios-nor.svg\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tstore_button_ios_por_svg: new Asset(\"images/store/store-button-ios-por.svg\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tstore_button_ios_rus_svg: new Asset(\"images/store/store-button-ios-rus.svg\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tstore_button_ios_spa_svg: new Asset(\"images/store/store-button-ios-spa.svg\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tstore_button_ios_swe_svg: new Asset(\"images/store/store-button-ios-swe.svg\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true})\n\t\t},\n\t\ttooltip: {\n\t\t\tgift_svg: new Asset(\"images/tooltip/gift.svg\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true})\n\t\t},\n\t\tmini_orbit: {\n\t\t\tcip: {\n\t\t\t\texclusives_list_icon_cip_png: new Asset(\"images/mini_orbit/cip/exclusives_list_icon_cip.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'wsop_nj': true}),\n\t\t\t\ttexture_png: new Asset(\"images/mini_orbit/cip/texture.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'wsop_nj': true}),\n\t\t\t\tx_close_png: new Asset(\"images/mini_orbit/cip/x_close.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'wsop_nj': true}),\n\t\t\t\tjackpot_widget_title_crown_png: new Asset(\"images/mini_orbit/cip/jackpot_widget_title_crown.png\", {'wsop_nj': true}),\n\t\t\t\tarenas_header_buttons: {\n\t\t\t\t\tcasino_games_icon_png: new Asset(\"images/mini_orbit/cip/arenas_header_buttons/casino_games_icon.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'wsop_nj': true}),\n\t\t\t\t\tjackpots_icon_png: new Asset(\"images/mini_orbit/cip/arenas_header_buttons/jackpots_icon.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'wsop_nj': true}),\n\t\t\t\t\tlive_icon_png: new Asset(\"images/mini_orbit/cip/arenas_header_buttons/live_icon.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'wsop_nj': true}),\n\t\t\t\t\tmy_casino_icon_png: new Asset(\"images/mini_orbit/cip/arenas_header_buttons/my_casino_icon.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'wsop_nj': true}),\n\t\t\t\t\tselected_png: new Asset(\"images/mini_orbit/cip/arenas_header_buttons/selected.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'wsop_nj': true}),\n\t\t\t\t\tslots_icon_png: new Asset(\"images/mini_orbit/cip/arenas_header_buttons/slots_icon.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'wsop_nj': true}),\n\t\t\t\t\tunselected_png: new Asset(\"images/mini_orbit/cip/arenas_header_buttons/unselected.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'wsop_nj': true})\n\t\t\t\t},\n\t\t\t\theader_icons: {\n\t\t\t\t\tgift_png: new Asset(\"images/mini_orbit/cip/header_icons/gift.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'wsop_nj': true}),\n\t\t\t\t\tmoreMenu_png: new Asset(\"images/mini_orbit/cip/header_icons/moreMenu.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'wsop_nj': true}),\n\t\t\t\t\tsearch_png: new Asset(\"images/mini_orbit/cip/header_icons/search.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'wsop_nj': true})\n\t\t\t\t}\n\t\t\t},\n\t\t\tcis: {\n\t\t\t\tx_close_png: new Asset(\"images/mini_orbit/cis/x_close.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\t\t\tarenas_header_buttons: {\n\t\t\t\t\tcasino_games_icon_png: new Asset(\"images/mini_orbit/cis/arenas_header_buttons/casino_games_icon.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\t\t\t\tjackpots_icon_png: new Asset(\"images/mini_orbit/cis/arenas_header_buttons/jackpots_icon.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\t\t\t\tlive_icon_png: new Asset(\"images/mini_orbit/cis/arenas_header_buttons/live_icon.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\t\t\t\tmy_casino_icon_png: new Asset(\"images/mini_orbit/cis/arenas_header_buttons/my_casino_icon.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\t\t\t\tselected_png: new Asset(\"images/mini_orbit/cis/arenas_header_buttons/selected.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\t\t\t\tslots_icon_png: new Asset(\"images/mini_orbit/cis/arenas_header_buttons/slots_icon.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\t\t\t\tunselected_png: new Asset(\"images/mini_orbit/cis/arenas_header_buttons/unselected.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true})\n\t\t\t\t},\n\t\t\t\theader_icons: {\n\t\t\t\t\tgift_png: new Asset(\"images/mini_orbit/cis/header_icons/gift.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\t\t\t\tmoreMenu_png: new Asset(\"images/mini_orbit/cis/header_icons/moreMenu.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\t\t\t\tsearch_png: new Asset(\"images/mini_orbit/cis/header_icons/search.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tvideos: {\n\t\tharmonium_mp4: new Asset(\"videos/harmonium.mp4\", {})\n\t},\n\tgames: {\n\t\tgame_icon_placeholder_png: new Asset(\"games/game_icon_placeholder.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'mrgreen_de': true,'mrgreen_se': true,'si_mi': true,'wsop_nj': true}),\n\t\tabout: {\n\t\t\teng_about_json: new Asset(\"games/about/eng_about.json\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'mrgreen_de': true,'mrgreen_se': true,'si_mi': true,'wsop_nj': true})\n\t\t},\n\t\tpreview_default_images: {\n\t\t\tdefault_game_strip_card_and_table_png: new Asset(\"games/preview_default_images/default_game_strip_card_and_table.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tdefault_game_strip_card_and_table_mobile_png: new Asset(\"games/preview_default_images/default_game_strip_card_and_table_mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tdefault_game_strip_live_png: new Asset(\"games/preview_default_images/default_game_strip_live.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tdefault_game_strip_live_mobile_png: new Asset(\"games/preview_default_images/default_game_strip_live_mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tdefault_game_strip_slots_png: new Asset(\"games/preview_default_images/default_game_strip_slots.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tdefault_game_strip_slots_mobile_png: new Asset(\"games/preview_default_images/default_game_strip_slots_mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true})\n\t\t}\n\t},\n\tfallbackCMSComponent: {\n\t\tdefault_cgp_shell_css: new Asset(\"fallbackCMSComponent/default-cgp-shell.css\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrington_de': true,'si_mi': true}),\n\t\tdefaultFooter_html: new Asset(\"fallbackCMSComponent/defaultFooter.html\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrington_de': true,'si_mi': true}),\n\t\tharrahsFooter_html: new Asset(\"fallbackCMSComponent/harrahsFooter.html\", {'harrahs_nj': true}),\n\t\twsopFooter_html: new Asset(\"fallbackCMSComponent/wsopFooter.html\", {'wsop_nj': true})\n\t}\n};","import {IReactionDisposer, IReactionOptions, IReactionPublic, reaction as mobxReaction} from \"mobx\";\r\nimport {\r\n IGameEventSubscription\r\n} from \"../app-react/services/game-runner/interfaces/game-communication/game-communication-channel.interface\";\r\nimport {CGPEventSubscription} from \"../app-react/services/sdk/cgp-sdk.interface\";\r\nimport {TimeIntervalName} from \"../common/utils/time-interval-names\";\r\nimport {TimeSpan} from \"@sparkware/app-utils\";\r\nimport {namedSetInterval, namedSetTimeout} from \"../common/utils/time-functions\";\r\nimport {\r\n TimerSubscriptionRef\r\n} from \"../app-react/services/companies/game-session-behaviors/common/game-session-behavior-base\";\r\nimport {DomEventSubscription} from \"./event-listener-registration\";\r\n\r\nexport class DisposableObject {\r\n private _reactions: IReactionDisposer[] = [];\r\n protected addReaction(expression: (r: IReactionPublic) => T, effect: (arg: T, r: IReactionPublic) => void, opts?: IReactionOptions): void {\r\n this._reactions.push(mobxReaction(expression, effect, opts));\r\n }\r\n\r\n private _gameEventsSubscription: IGameEventSubscription[] = [];\r\n protected addGameEventSubscription(subscription: IGameEventSubscription): IGameEventSubscription {\r\n this._gameEventsSubscription.push(subscription);\r\n\r\n return {\r\n unsubscribe: () => {\r\n const index = this._gameEventsSubscription.findIndex(s => s === subscription);\r\n if(index >= 0) {\r\n this._gameEventsSubscription[index].unsubscribe();\r\n this._gameEventsSubscription.splice(index, 1);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _sdkEventsSubscriptions: CGPEventSubscription[] = [];\r\n protected addSdkEventSubscription(subscription: CGPEventSubscription): void {\r\n this._sdkEventsSubscriptions.push(subscription);\r\n }\r\n\r\n private _namedIntervals: number[] = [];\r\n protected addNamedInterval(name: TimeIntervalName, handler: () => void, interval: TimeSpan | number): TimerSubscriptionRef {\r\n const ref = namedSetInterval(name, handler, interval);\r\n this._namedIntervals.push(ref);\r\n return {\r\n clear: () => {\r\n clearInterval(ref);\r\n const index = this._namedIntervals.findIndex(i => i === ref);\r\n if(index >= 0) {\r\n this._namedIntervals.splice(index, 1);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _namedTimeouts: number[] = [];\r\n protected addNamedTimeout(name: TimeIntervalName, handler: () => void, interval: TimeSpan | number): TimerSubscriptionRef {\r\n const ref = namedSetTimeout(name, handler, interval);\r\n this._namedTimeouts.push(ref);\r\n return {\r\n clear: () => {\r\n clearTimeout(ref);\r\n const index = this._namedTimeouts.findIndex(t => t === ref);\r\n if(index >= 0) {\r\n this._namedTimeouts.splice(index, 1);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _domEventsSubscriptions: DomEventSubscription[] = [];\r\n protected addDomEventSubscription(subscription: DomEventSubscription): DomEventSubscription {\r\n this._domEventsSubscriptions.push(subscription);\r\n return subscription;\r\n }\r\n\r\n dispose(): void {\r\n this._reactions.forEach(r => r());\r\n this._reactions = [];\r\n this._gameEventsSubscription.forEach(s => s.unsubscribe());\r\n this._gameEventsSubscription = [];\r\n this._namedIntervals.forEach(i => clearInterval(i));\r\n this._namedIntervals = [];\r\n this._namedTimeouts.forEach(t => clearTimeout(t));\r\n this._namedTimeouts = [];\r\n this._sdkEventsSubscriptions.forEach(s => s.off());\r\n this._sdkEventsSubscriptions = [];\r\n this._domEventsSubscriptions.forEach(s => s.dispose());\r\n this._domEventsSubscriptions = [];\r\n\r\n }\r\n}","export enum FP_VOUCHER_TYPES {\r\n FreeSpin = '1',\r\n FreePlay = '2',\r\n FreeJackpotSpin = '3',\r\n FreeJackpotPlay = '4'\r\n}\r\n\r\nexport const FP_MESSAGE_MODE = {\r\n POPUP: 'popup',\r\n EMBEDDED_INTERNAL: 'embedded-internal'\r\n};\r\n","export enum JackpotInternalId {\r\n Daily = 8000,\r\n Twilight = 8001,\r\n HourlyCaptain8 = 8002\r\n}\r\n\r\nexport enum JackpotType {\r\n Daily = \"Daily\",\r\n HighNoon = \"HighNoon\",\r\n Twilight = \"Twilight\",\r\n Party = \"Party\",\r\n HourlyCaptain8 = \"HourlyCaptain8\"\r\n}\r\n\r\nexport enum JACKPOT_STATE {\r\n Cold = 1,\r\n Regular = 2,\r\n Hot = 3,\r\n OffHours = 4 // used only for Hourly Party Jackpots for now\r\n}\r\n","import React, { Suspense } from \"react\";\r\n\r\nexport class OrbitSuspense extends React.PureComponent {\r\n render() {\r\n return }>\r\n {this.props.children}\r\n \r\n }\r\n}\r\n","/**\r\n * Created by fabianbr on 6/20/2017.\r\n */\r\n\r\nimport {IziToastSettings} from \"izitoast\";\r\n\r\nexport const PENDING_TOASTERS_KEY = 'pending_toasters';\r\n\r\nexport const DISPLAYED_TOASTERS_KEY = 'displayed_toasters';\r\n\r\nexport enum TOASTER_NOTIFICATION_TYPES {\r\n\tSHOW = 1,\r\n\tOK_PRESSED = 3,\r\n\tGAME_OPEN = 3\r\n};\r\n\r\nexport const TOASTER_UI_CONFIG = {\r\n\tglobalClass: 'CGPToasterLayout cy-toaster-layout',\r\n\ttitleFont: 'Main',\r\n\ttitleSize: 'mediumSecondary',\r\n\ttitleColor: 'main',\r\n\tmessageFont: 'Main',\r\n\tmessageSize: 'mediumSecondary',\r\n\tmessageColor: 'base01',\r\n\tbackgroundColor: 'darkMain',\r\n\tprogressColor: 'main',\r\n\tprogressBackgroundColor: 'base02',\r\n\tbuttonColor: 'main',\r\n\tbuttonFont: 'Type04',\r\n\tbuttonTextColor: 'darkMain',\r\n\tbuttonCornerRadius: 'ctacornerradius'\r\n};\r\n\r\nexport const LIB_CSS_IDS = {\r\n\tcloseBtn: 'iziToast-close',\r\n\tcontainer: 'iziToast-wrapper',\r\n\tcover: '.iziToast-cover',\r\n toastBody: '.iziToast-body',\r\n toastTexts: '.iziToast-texts'\r\n};\r\n\r\nexport enum TOAST_TYPES {\r\n\tTIMED = 'timed_toaster',\r\n\tACKNOWLEDGE = 'acknowledge_toaster',\r\n\tACTION = 'action_toaster'\r\n};\r\n\r\nexport enum TRANSITIONS {\r\n\tBOUNCE_IN_LEFT = 'bounceInLeft',\r\n\tBOUNCE_IN_RIGHT = 'bounceInRight',\r\n\tBOUNCE_IN_UP = 'bounceInUp',\r\n\tBOUNCE_IN_DOWN = 'bounceInDown',\r\n\tFADE_IN = 'fadeIn',\r\n\tFADE_IN_DOWN = 'fadeInDown',\r\n\tFADE_IN_UP = 'fadeInUp',\r\n\tFADE_IN_LEFT = 'fadeInLeft',\r\n\tFADE_IN_RIGHT = 'fadeInRight',\r\n\tFLIP_IN_X = 'flipInX',\r\n\tFADE_OUT = 'fadeOut',\r\n\tFADE_OUT_UP = 'fadeOutUp',\r\n\tFADE_OUT_DOWN = 'fadeOutDown',\r\n\tFADE_OUT_LEFT = 'fadeOutLeft',\r\n\tFADE_OUT_RIGHT = 'fadeOutRight',\r\n\tFLIP_OUT_X = 'flipOutX'\r\n};\r\n\r\nexport enum POSITION {\r\n\tBOTTOM_RIGHT = 'bottomRight',\r\n\tBOTTOM_LEFT = 'bottomLeft',\r\n\tTOP_RIGHT = 'topRight',\r\n\tTOP_LEFT = 'topLeft',\r\n\tTOP_CENTER = 'topCenter',\r\n\tBOTTOM_CENTER = 'bottomCenter',\r\n\tCENTER = 'center'\r\n};\r\n\r\nexport let DEFAULT_CONFIG: Partial = {\r\n\t// class: '',\r\n\t// title: '',\r\n\t// titleSize: 14,\r\n\t// titleColor: 'black',\r\n\t// message: '',\r\n\t// messageSize: 13,\r\n\t// messageColor: 'black',\r\n\t// backgroundColor: '#E8E8E8',\r\n\t// color: '', // blue, red, green, yellow\r\n\t// icon: '',\r\n\t// iconText: '',\r\n\t// iconColor: '',\r\n\t// image: '',\r\n\timageWidth: 45,\r\n\t// zindex: 99999,\r\n\tlayout: 2, //layout 2 means 3 separate lines, one for title one for message text and one for buttons\r\n\t// balloon: false,\r\n\tclose: true,\r\n\trtl: false,\r\n\tposition: POSITION.TOP_RIGHT,\r\n\t// target: '',\r\n\ttargetFirst: false,\r\n\ttimeout: 5000,\r\n\t// maxWidth: '412px',\r\n\tdrag: false,\r\n\tpauseOnHover: true,\r\n\tresetOnHover: false,\r\n\tprogressBar: true,\r\n\t// progressBarColor: '#CCCCCC',\r\n\tanimateInside: false,\r\n\t// buttons: {},\r\n\ttransitionIn: TRANSITIONS.FADE_IN_LEFT,\r\n\ttransitionOut: TRANSITIONS.FADE_OUT_RIGHT,\r\n\ttransitionInMobile: TRANSITIONS.FADE_IN_LEFT,\r\n\ttransitionOutMobile: TRANSITIONS.FADE_OUT_RIGHT\r\n\t// onOpened: function () {},\r\n\t// onClosed: function () {}\r\n};\r\n","/**\r\n * Created by andreyna on 7/25/2016.\r\n */\r\n\r\n/*\r\n * DateFormatter based on DateFormat of Steven Levithan \r\n * Date Format 1.2.3\r\n * (c) 2007-2009 Steven Levithan \r\n * MIT license\r\n *\r\n * Accepts a date, a mask, or a date and a mask.\r\n * Returns a formatted version of the given date.\r\n * The date defaults to the current date/time.\r\n * The mask defaults to dateFormat.masks.default.\r\n *\r\n * Url: http://blog.stevenlevithan.com/archives/date-time-format\r\n */\r\n\r\nclass DateFormatter {\r\n\r\n private _token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\\1?|[LloSZ]|\"[^\"]*\"|'[^']*'/g;\r\n\r\n private _timezone = /\\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\\d{4})?)\\b/g;\r\n\r\n private _timezoneClip = /[^-+\\dA-Z]/g;\r\n\r\n // Some common format strings\r\n private _masks = {\r\n \"default\": \"ddd mmm dd yyyy HH:MM:ss\",\r\n shortDate: \"m/d/yy\",\r\n mediumDate: \"mmm d, yyyy\",\r\n longDate: \"mmmm d, yyyy\",\r\n fullDate: \"dddd, mmmm d, yyyy\",\r\n shortTime: \"h:MM TT\",\r\n mediumTime: \"h:MM:ss TT\",\r\n longTime: \"h:MM:ss TT Z\",\r\n isoDate: \"yyyy-mm-dd\",\r\n isoTime: \"HH:MM:ss\",\r\n isoDateTime: \"yyyy-mm-dd'T'HH:MM:ss\",\r\n isoUtcDateTime: \"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'\",\r\n shortTime12: \"h:MM TT\",\r\n shortTime24: \"HH:MM\"\r\n }\r\n\r\n // Internationalization strings\r\n private _i18n = {\r\n dayNames: [\r\n \"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\",\r\n \"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"\r\n ],\r\n monthNames: [\r\n \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\",\r\n \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"\r\n ]\r\n }\r\n\r\n\r\n /*\r\n * Samples:\r\n * format(\"longTime\");\r\n * format(\"UTC:h:MM:ss TT Z\");\r\n * format(now, \"dddd, mmmm dS, yyyy, h:MM:ss TT\")\r\n * format(\"Jun 9 2007\", \"fullDate\");\r\n *\r\n * Default formats:\r\n * -------------------------------------------------------------------------\r\n * Name\tMask Example\r\n * -------------------------------------------------------------------------\r\n * default \tddd mmm dd yyyy HH:MM:ss\tSat Jun 09 2007 17:46:21\r\n * shortDate \tm/d/yy\t6/9/07\r\n * mediumDate \tmmm d, yyyy\tJun 9, 2007\r\n * longDate \tmmmm d, yyyy\tJune 9, 2007\r\n * fullDate \tdddd, mmmm d, yyyy\tSaturday, June 9, 2007\r\n * shortTime\t h:MM TT\t5:46 PM\r\n * mediumTime\t h:MM:ss TT\t5:46:21 PM\r\n * longTime\t h:MM:ss TT Z\t5:46:21 PM EST\r\n * isoDate\t yyyy-mm-dd\t2007-06-09\r\n * isoTime\t HH:MM:ss\t17:46:21\r\n * isoDateTime\t yyyy-mm-dd'T'HH:MM:ss\t2007-06-09T17:46:21\r\n * isoUtcDateTime\tUTC:yyyy-mm-dd'T'HH:MM:ss'Z'\t2007-06-09T22:46:21Z\r\n * -------------------------------------------------------------------------\r\n *\r\n * -------------------------------------------------------------------------\r\n * Masks:\r\n * -------------------------------------------------------------------------\r\n * Mask\t Description\r\n * -------------------------------------------------------------------------\r\n * d\t\t\tDay of the month as digits; no leading zero for single-digit days.\r\n * dd\t\t\tDay of the month as digits; leading zero for single-digit days.\r\n * ddd\t\t\tDay of the week as a three-letter abbreviation.\r\n * dddd\t\t\tDay of the week as its full name.\r\n * m\t\t\tMonth as digits; no leading zero for single-digit months.\r\n * mm\t\t\tMonth as digits; leading zero for single-digit months.\r\n * mmm\t\t\tMonth as a three-letter abbreviation.\r\n * mmmm\t\t\tMonth as its full name.\r\n * yy\t\t\tYear as last two digits; leading zero for years less than 10.\r\n * yyyy\t\t\tYear represented by four digits.\r\n * h\t\t\tHours; no leading zero for single-digit hours (12-hour clock).\r\n * hh\t\t\tHours; leading zero for single-digit hours (12-hour clock).\r\n * H\t\t\tHours; no leading zero for single-digit hours (24-hour clock).\r\n * HH\t\t\tHours; leading zero for single-digit hours (24-hour clock).\r\n * M\t\t\tMinutes; no leading zero for single-digit minutes. Uppercase M unlike CF timeFormat's m to avoid conflict with months.\r\n * MM\t\t\tMinutes; leading zero for single-digit minutes. Uppercase MM unlike CF timeFormat's mm to avoid conflict with months.\r\n * s\t\t\tSeconds; no leading zero for single-digit seconds.\r\n * ss\t\t\tSeconds; leading zero for single-digit seconds.\r\n * l or L\t\tMilliseconds. l gives 3 digits. L gives 2 digits.\r\n * t\t\t\tLowercase, single-character time marker string: a or p.\r\n * tt\t\t\tLowercase, two-character time marker string: am or pm.\r\n * T\t\t\tUppercase, single-character time marker string: A or P. Uppercase T unlike CF's t to allow for user-specified casing.\r\n * TT\t\t\tUppercase, two-character time marker string: AM or PM. Uppercase TT unlike CF's tt to allow for user-specified casing.\r\n * Z\t\t\tUS timezone abbreviation, e.g. EST or MDT. With non-US timezones or in the Opera browser, the GMT/UTC offset is returned, e.g. GMT-0500.\r\n * o\t\t\tGMT/UTC timezone offset, e.g. -0500 or +0230.\r\n * S\t\t\tThe date's ordinal suffix (st, nd, rd, or th). Works well with d.\r\n * '…' or \"…\"\tLiteral character sequence. Surrounding quotes are removed.\r\n * UTC\t\t\tMust be the first four characters of the mask. Converts the date from local time to UTC/GMT/Zulu time before applying the mask. The \"UTC:\" prefix is removed.\r\n */\r\n format(date: any, mask?: string, utc?: boolean): string {\r\n // You can't provide utc if you skip other args (use the \"UTC:\" mask prefix)\r\n if (arguments.length === 1 && Object.prototype.toString.call(date) === \"[object String]\" && !/\\d/.test(date)) {\r\n mask = date;\r\n date = undefined;\r\n }\r\n\r\n // Passing date through Date applies Date.parse, if necessary\r\n date = date ? new Date(date) : new Date();\r\n if (isNaN(date)) {\r\n throw SyntaxError(\"invalid date\");\r\n }\r\n\r\n mask = String(this._masks[mask] || mask || this._masks[\"default\"]);\r\n\r\n // Allow setting the utc argument via the mask\r\n if (mask.slice(0, 4) === \"UTC:\") {\r\n mask = mask.slice(4);\r\n utc = true;\r\n }\r\n\r\n let _ = utc ? \"getUTC\" : \"get\",\r\n d = date[_ + \"Date\"](),\r\n D = date[_ + \"Day\"](),\r\n m = date[_ + \"Month\"](),\r\n y = date[_ + \"FullYear\"](),\r\n H = date[_ + \"Hours\"](),\r\n M = date[_ + \"Minutes\"](),\r\n s = date[_ + \"Seconds\"](),\r\n L = date[_ + \"Milliseconds\"](),\r\n o = utc ? 0 : date.getTimezoneOffset(),\r\n flags = {\r\n d: d,\r\n dd: this._pad(d),\r\n ddd: this._i18n.dayNames[D],\r\n dddd: this._i18n.dayNames[D + 7],\r\n m: m + 1,\r\n mm: this._pad(m + 1),\r\n mmm: this._i18n.monthNames[m],\r\n mmmm: this._i18n.monthNames[m + 12],\r\n yy: String(y).slice(2),\r\n yyyy: y,\r\n h: H % 12 || 12,\r\n hh: this._pad(H % 12 || 12),\r\n H: H,\r\n HH: this._pad(H),\r\n M: M,\r\n MM: this._pad(M),\r\n s: s,\r\n ss: this._pad(s),\r\n l: this._pad(L, 3),\r\n L: this._pad(L > 99 ? Math.round(L / 10) : L),\r\n t: H < 12 ? \"a\" : \"p\",\r\n tt: H < 12 ? \"am\" : \"pm\",\r\n T: H < 12 ? \"A\" : \"P\",\r\n TT: H < 12 ? \"AM\" : \"PM\",\r\n Z: utc ? \"UTC\" : (String(date).match(this._timezone) || [\"\"]).pop().replace(this._timezoneClip, \"\"),\r\n o: (o > 0 ? \"-\" : \"+\") + this._pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),\r\n S: [\"th\", \"st\", \"nd\", \"rd\"][d % 10 > 3 ? 0 : ((d % 100 - d % 10) !== 10 ? 1 : 0) * d % 10]\r\n };\r\n\r\n return mask.replace(this._token, ($0) => {\r\n return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);\r\n });\r\n }\r\n\r\n private _pad(val: number, len: number = 2): string {\r\n let valAsString = String(val);\r\n while (valAsString.length < len) {\r\n valAsString = \"0\" + valAsString;\r\n }\r\n return valAsString;\r\n }\r\n\r\n formatCurrentDateToUtc(): string {\r\n return this.format(new Date(), 'UTC:yyyy-mm-dd\\'T\\'HH:MM:ss\\'Z\\'');\r\n }\r\n\r\n formatUtc(date: Date): string {\r\n return this.format(date, 'UTC:yyyy-mm-dd\\'T\\'HH:MM:ss\\'Z\\'');\r\n }\r\n}\r\n\r\nexport default new DateFormatter();","\r\nexport enum GermanyResponsibleGamingButtonPlacement {\r\n inGame = 0,\r\n inDetailedHistory = 1\r\n}","import {OrbitComponent} from '../orbit-component/orbit-component';\r\n\r\nexport class RoutedComponent extends OrbitComponent {\r\n}\r\n","import {grayColors} from \"../../architecture/gray-colors\";\r\n\r\nexport const baseColors = {\r\n base01: \"#ee3831\", //red\r\n base01Contrast: \"#ffffff\",\r\n base01Dark: \"#ca2e1e\",\r\n base01Light: \"#e94838\",\r\n\r\n base02: \"#7ff800\", //brandGreen\r\n base02Contrast: \"#000000\",\r\n base02Dark: \"#7aec37\", //inchWorm\r\n base02Light: \"#d2f800\", //limeGreen\r\n\r\n base03: \"#fce403\", //turbo\r\n base03Contrast: \"#000000\",\r\n base03Dark: \"#ffff00\", //yellow\r\n base03Light: \"#d5ec37\", //pear\r\n\r\n base04: \"#c81503\",\r\n\r\n ...grayColors\r\n}\r\n","import {BannerContainerDefaultBox} from \"./banner-container.default.box\";\r\n\r\nexport const BannerContainerBox = BannerContainerDefaultBox;","import styled, {css} from \"styled-components\";\r\nimport {LOBBY_PAGE} from \"../../../themes/css-global-classes\";\r\n\r\nexport interface IBannerContainerBoxProps {\r\n minHeight?: string;\r\n}\r\n\r\nexport const BannerContainerDefaultBox = styled.div`\r\n position: relative;\r\n width: 100%;\r\n overflow-x: hidden;\r\n\r\n .${LOBBY_PAGE} & {\r\n z-index: 2;\r\n background-color: ${props => props.theme.colors.background}\r\n }\r\n\r\n ${props => props.minHeight && css`\r\n min-height: ${props.minHeight};\r\n`};\r\n`;\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {CmsBannerId} from '../../services/cms/cms-banners/cm-banner-id/cms-banner-id';\r\nimport {observer} from 'mobx-react';\r\nimport {EmptyBannerDefinition} from '../../services/cms/cms-banners/banner-definition/empty-banner-definition';\r\nimport {IBannerDefinition} from '../../services/cms/cms-banners/banner-definition/banner-definition.interface';\r\nimport {BannerContainerBox} from \"./banner-container/banner-container.box\";\r\n\r\nexport interface CmsBannerComponentProps {\r\n componentID: string;\r\n templateID: string;\r\n fallbackComponent: string;\r\n showPlaceholder: boolean;\r\n className?: string;\r\n minHeight?: string;\r\n}\r\n\r\n@observer\r\nexport class CmsBannerComponent extends OrbitComponent {\r\n componentDidMount() {\r\n super.componentDidMount();\r\n this.services.cmsBanners.loadBanner(this._bannerId);\r\n }\r\n\r\n componentDidUpdate() {\r\n this.services.cmsBanners.loadBanner(this._bannerId);\r\n }\r\n\r\n private get _bannerId(): CmsBannerId {\r\n return new CmsBannerId(this.props.componentID, this.props.templateID, this.props.fallbackComponent);\r\n }\r\n\r\n private get _bannerDefinition(): IBannerDefinition {\r\n let contentDefinition = this.services.cmsBanners.bannersMap[this._bannerId.key];\r\n if (contentDefinition) {\r\n return contentDefinition;\r\n }\r\n\r\n return new EmptyBannerDefinition();\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n \r\n {\r\n this._bannerDefinition.render({\r\n showPlaceholder: this.props.showPlaceholder,\r\n minHeight: this.props.minHeight\r\n })\r\n }\r\n \r\n );\r\n }\r\n}","export const ITEM_WRAPPER_BOX = 'item-wrapper-box';\r\nexport const RED = 'red';\r\nexport const GREEN = 'green';","export enum BalanceType {\r\n CASH = \"cash\",\r\n BONUS = \"bonus\",\r\n BOTH = \"both\"\r\n}\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport {OrbitComponent} from \"../../components/base-components/orbit-component/orbit-component\";\r\n\r\nconst SelectWrapperBox = styled.div<{width?: string;}>`\r\n display: inline-block;\r\n position: relative;\r\n width: ${({width}) => width};\r\n color: ${({theme}) => theme.colors.textLight};\r\n`;\r\n\r\nconst SelectBox = styled.select<{width?: string; hasError?: boolean;}>`\r\n height: 4.5rem;\r\n width: ${({width}) => width};\r\n ${({theme}) => theme.font.presets.regular};\r\n font-size: 1.4rem;\r\n transition: border-radius 0.2s linear, border-color 0.2s linear;\r\n background-color: ${props => props.theme.colors.backgroundMiddleDark};\r\n color: inherit;\r\n border-radius: ${({theme}) => theme.layout.border.radius};\r\n border-color: ${props => props.hasError ? props.theme.colors.danger : props.theme.colors.boxBorderLighter};\r\n &:hover {\r\n border-color: ${props => props.hasError ? props.theme.colors.danger : props.theme.colors.boxBorderContrast};;\r\n }\r\n border-width: 1px;\r\n border-style: solid;\r\n padding: 0 4rem 0 1.6rem;\r\n\r\n /* REMOVE THE DEFAULT ARROW */\r\n /* for Firefox */\r\n -moz-appearance: none;\r\n /* for Safari, Chrome, Opera */\r\n -webkit-appearance: none;\r\n /* for IE10 */\r\n &::-ms-expand {\r\n display: none;\r\n }\r\n`;\r\n\r\nconst SelectBoxArrow = styled.div`\r\n position: absolute;\r\n right: 0.6rem;\r\n top: 0;\r\n width: 3rem;\r\n padding: 0.7rem;\r\n margin-top: 0.72rem;\r\n pointer-events: none;\r\n border-radius: 50%;\r\n\r\n transition: transform 0.2s linear;\r\n transform: rotate(90deg);\r\n`;\r\n\r\ninterface ISelectProps {\r\n // standard props from native html select element that will be passed directly\r\n id?: string;\r\n name?: string;\r\n value?: string | number;\r\n onChange?(event: React.ChangeEvent): void;\r\n className?: string;\r\n\r\n // custom props, not native html select element\r\n hasError?: boolean;\r\n width?: string;\r\n}\r\n\r\nexport class Select extends OrbitComponent { // React.SelectHTMLAttributes\r\n render() {\r\n let {width, ...passThroughProps} = this.props;\r\n width = width || \"auto\";\r\n const selectWidth = width !== \"auto\" ? \"100%\" : \"auto\";\r\n\r\n const ArrowIcon = this.services.theme.currentTheme.icons.rightArrowIcon;\r\n return \r\n \r\n {this.props.children}\r\n \r\n \r\n \r\n \r\n ;\r\n }\r\n}","import styled from \"styled-components\";\r\nimport {GAMING_HISTORY_PAGE, NEW_LIVE_CASINO_PAGE, TIPPING_HISTORY_PAGE} from \"../../../../themes/css-global-classes\";\r\n\r\nexport const TopBannerDefaultBox = styled.div`\r\n position: relative;\r\n width: 100%;\r\n transition: all 0.03s ease-in-out;\r\n padding-bottom: calc(200 / 1750 * 100%);\r\n\r\n .${NEW_LIVE_CASINO_PAGE} & {\r\n padding-bottom: calc(204 / 1712 * 100%);\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n padding-bottom: calc(165 / 1024 * 100%);\r\n .${NEW_LIVE_CASINO_PAGE} &, .${GAMING_HISTORY_PAGE} &, .${TIPPING_HISTORY_PAGE} &{\r\n padding-bottom: calc(122 / 1024 * 100%);\r\n }\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n padding-bottom: calc(105 / 414 * 100%);\r\n .${GAMING_HISTORY_PAGE} &, .${TIPPING_HISTORY_PAGE} &{\r\n padding-bottom: calc(77 / 600 * 100%);\r\n }\r\n .${NEW_LIVE_CASINO_PAGE} & {\r\n padding-bottom: calc(77 / 414 * 100%);\r\n }\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {NEW_LIVE_CASINO_PAGE} from \"../../../../themes/css-global-classes\";\r\n\r\nexport const TopBanner777Box = styled.div`\r\n position: relative;\r\n width: 100%;\r\n padding-bottom: calc(250 / 1750 * 100%);\r\n \r\n .${NEW_LIVE_CASINO_PAGE} & {\r\n padding-bottom: calc(200 / 1690 * 100%);\r\n }\r\n \r\n \r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n padding-bottom: calc(215 / 1024 * 100%);\r\n \r\n }\r\n \r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n padding-bottom: calc(155 / 414 * 100%);\r\n \r\n .${NEW_LIVE_CASINO_PAGE} & {\r\n padding-bottom: calc(77 / 375 * 100%);\r\n }\r\n }\r\n \r\n`;","import styled from \"styled-components\";\r\nimport { TopBannerDefaultBox } from './top-banner.default.box'\r\nimport {NEW_LIVE_CASINO_PAGE} from \"../../../../themes/css-global-classes\";\r\n\r\nexport const TopBannerSIBox = styled(TopBannerDefaultBox)`\r\n @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n padding-bottom: calc(165 / 1024 * 100%);\r\n .${NEW_LIVE_CASINO_PAGE} & {\r\n padding-bottom: calc(165 / 1024 * 100%);\r\n }\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n padding-bottom: calc(100 / 414 * 100%);\r\n .${NEW_LIVE_CASINO_PAGE} & {\r\n padding-bottom: calc(100 / 414 * 100%);\r\n }\r\n }\r\n\r\n background-color: ${({theme}) => theme.colors.backgroundDark};\r\n`;","import {TopBannerDefaultBox} from \"./top-banner.default.box\";\r\nimport {styledByTheme} from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {TopBanner777Box} from \"./top-banner.777.box\";\r\nimport {TopBannerSIBox} from \"./top-banner.si.box\";\r\n\r\nexport const TopBannerBox = styledByTheme(TopBannerDefaultBox)\r\n .forCasino777(TopBanner777Box)\r\n .forSI(TopBannerSIBox)\r\n .apply();","import {TopBannerImageDefaultBox} from \"./top-banner-image.default.box\";\r\n\r\nexport const TopBannerImageBox = TopBannerImageDefaultBox;","import styled from \"styled-components\";\r\nimport { Image } from \"../../../raw-components/image/image\";\r\n\r\nexport const TopBannerImageDefaultBox = styled(Image)`\r\n position: absolute;\r\n width: 100%;\r\n height: auto;\r\n bottom: 0;\r\n`;","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../themes/architecture/styled-by-device\";\r\nimport {NEW_LIVE_CASINO_PAGE} from \"../../../../themes/css-global-classes\";\r\nimport { Image } from \"../../../raw-components/image/image\";\r\n\r\nconst PCBox = styled(Image)``;\r\n\r\nconst MobileBox = styled(Image)`\r\n .${NEW_LIVE_CASINO_PAGE} & {\r\n max-height: 40px;\r\n }\r\n`;\r\n\r\nexport const TopBannerLogoImageDefaultBox = styledByDevice(PCBox, MobileBox);","import styled from \"styled-components\";\r\nimport {LIVE_CASINO_PAGE} from \"../../../../themes/css-global-classes\";\r\nimport {TopBannerLogoImageDefaultBox} from \"./top-banner-logo-image.default.box\";\r\n\r\nexport const TopBannerLogoImageCasino777Box = styled(TopBannerLogoImageDefaultBox)`\r\n .${LIVE_CASINO_PAGE} &{\r\n display:none;\r\n }\r\n`;","import {TopBannerLogoImageDefaultBox} from \"./top-banner-logo-image.default.box\";\r\nimport {styledByTheme} from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {TopBannerLogoImageCasino777Box} from \"./top-banner-logo-image.casino777.box\";\r\n\r\nexport const TopBannerLogoImageBox = styledByTheme(TopBannerLogoImageDefaultBox).forCasino777(TopBannerLogoImageCasino777Box).apply() ;\r\n","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../themes/architecture/styled-by-device\";\r\n\r\nconst DefaultBox = styled.h1`\r\n font-weight: 300;\r\n ${({theme}) => theme.font.presets.medium};\r\n color: ${props => props.theme.colors.textLight};\r\n`;\r\n\r\nconst PCBox = styled(DefaultBox)`\r\n font-size: 2rem;\r\n text-transform: capitalize;\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n font-size: 1.8rem;\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n font-size: 1.2rem;\r\n }\r\n`;\r\n\r\nexport const TopBannerTitleDefaultBox = styledByDevice(PCBox, MobileBox);","import styled from \"styled-components\";\r\nimport {LIVE_CASINO_PAGE} from \"../../../../themes/css-global-classes\";\r\nimport {TopBannerTitleDefaultBox} from \"./top-banner-title.default.box\";\r\n\r\nexport const TopBannerTitleCasino777Box = styled(TopBannerTitleDefaultBox)`\r\n ${({theme}) => theme.font.presets.bold};\r\n .${LIVE_CASINO_PAGE} &{\r\n display:none;\r\n }\r\n`;\r\n","import {TopBannerTitleDefaultBox} from \"./top-banner-title.default.box\";\r\nimport {styledByTheme} from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {TopBannerTitleCasino777Box} from \"./top-banner-title.casino777.box\";\r\n\r\nexport const TopBannerTitleBox = styledByTheme(TopBannerTitleDefaultBox).forCasino777(TopBannerTitleCasino777Box).apply();","import styled from \"styled-components\";\r\n\r\nexport const TopBannerLiveLogoDefaultBox = styled.div`\r\n position: absolute;\r\n width: 100%;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n display: flex;\r\n align-items: center;\r\n flex-direction: column;\r\n justify-content: center;\r\n`;\r\n","import styled from \"styled-components\";\r\nimport {TopBannerLiveLogoDefaultBox} from \"./top-banner-live-logo.default.box\";\r\n\r\nexport const TopBannerLiveLogoCasino777Box = styled(TopBannerLiveLogoDefaultBox)`\r\n`;","import {TopBannerLiveLogoDefaultBox} from \"./top-banner-live-logo.default.box\";\r\nimport {styledByTheme} from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {TopBannerLiveLogoCasino777Box} from \"./top-banner-live-logo.casino777.box\";\r\n\r\nexport const TopBannerLiveLogoBox = styledByTheme(TopBannerLiveLogoDefaultBox).forCasino777(TopBannerLiveLogoCasino777Box).apply();","import React, {RefObject} from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\nimport {TopBannerBox} from \"./boxes/top-banner/top-banner.box\";\r\nimport {TopBannerImageBox} from \"./boxes/top-banner-image/top-banner-image.box\";\r\nimport {TopBannerLogoImageBox} from \"./boxes/top-banner-logo-image/top-banner-logo-image.box\";\r\nimport {TopBannerTitleBox} from \"./boxes/top-banner-title/top-banner-title.box\";\r\nimport {TopBannerLiveLogoBox} from \"./boxes/top-banner-live-logo/top-banner-live-logo.box\";\r\nimport {ThemeProvider} from \"styled-components\";\r\n\r\nexport interface TopImageComponentProps {\r\n image: string;\r\n title?: string;\r\n altText?: string;\r\n className?: string;\r\n topImageRef?: RefObject;\r\n}\r\n\r\n@observer\r\nexport class TopImageComponent extends OrbitComponent {\r\n\r\n private _renderLogoAndTitle() {\r\n if(this.props.title) {\r\n const srcLogo = this.services.device.isMobile\r\n ? this.services.theme.currentTheme.images.liveArena.casinoLiveLogoMobile.toString()\r\n : this.services.theme.currentTheme.images.liveArena.casinoLiveLogoPC.toString();\r\n return (\r\n \r\n \r\n {this.services.translation.translate(this.props.title)}\r\n \r\n )\r\n }\r\n return null;\r\n }\r\n\r\n render() {\r\n\r\n if(!this.props.image) {\r\n return null;\r\n }\r\n\r\n // TODO: maybe get also an image placeholder to enable lazy loading\r\n return (\r\n \r\n \r\n \r\n {this._renderLogoAndTitle()}\r\n \r\n \r\n )\r\n\r\n }\r\n}\r\n","import styled from \"styled-components\";\r\nimport {ACTIVE} from \"../../../../../../themes/css-global-classes\";\r\n\r\nexport const PanicButtonBox = styled.div`\r\n width: 15.7rem;\r\n height: 2.7rem;\r\n background: url(\"${props => props.theme.images.germanyPanicButton.toString()}\") center center / 100% 100% no-repeat;\r\n\r\n &.${ACTIVE} {\r\n &::after{\r\n display: block;\r\n }\r\n }\r\n\r\n &::before {\r\n content: '';\r\n display: inline-block;\r\n position: relative;\r\n top: 2.1rem;\r\n width: 15rem;\r\n height: 0.6rem;\r\n background: transparent;\r\n }\r\n\r\n &::after{\r\n display: none;\r\n content: \" \";\r\n position: relative;\r\n left: 3rem;\r\n top: 0.7rem;\r\n width: 1px;\r\n border-width: 5px;\r\n border-style: solid;\r\n border-color: transparent transparent ${({theme}) => theme.colors.backgroundContrast} transparent;\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow}{\r\n @media ${({theme}) => theme.mediaQuery.portrait}{\r\n left: 7.5rem;\r\n }\r\n }\r\n }\r\n`;\r\n","export const IN_DETAILED_HISTORY= 'in-detailed-history';\r\nexport const IN_GAME = \"in-game\";","import styled from \"styled-components\";\r\nimport {ACTIVE} from \"../../../../../../themes/css-global-classes\";\r\nimport {IN_DETAILED_HISTORY} from \"../css-classes\";\r\n\r\nexport const PanicButtonTooltipBox = styled.div`\r\n display: none;\r\n background-color: white;\r\n text-align: center;\r\n border-radius: 0.3rem;\r\n padding: 0.5rem;\r\n margin-top: 1.7rem;\r\n cursor: default;\r\n\r\n position: absolute !important;\r\n z-index: 107;\r\n ${({theme}) => theme.font.presets.body};\r\n font-size: 1.2rem;\r\n color: ${({theme}) => theme.colors.textDark};\r\n\r\n &.${ACTIVE} {\r\n display: block;\r\n }\r\n\r\n &.${IN_DETAILED_HISTORY} {\r\n @media ${({theme}) => theme.mediaQuery.sAndAbove}{\r\n @media ${({theme}) => theme.mediaQuery.landscape}{\r\n left: initial;\r\n transform: translateX(-58%);\r\n }\r\n }\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow}{\r\n @media ${({theme}) => theme.mediaQuery.portrait}{\r\n left: 1rem;\r\n width: calc(100% - 2rem);\r\n box-sizing: border-box;\r\n }\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.hoverNone}{\r\n padding: 0.5rem 1rem 0.5rem 1rem;\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\n\r\nexport const PanicButtonPopupBox = styled.div`\r\n display:flex;\r\n flex-direction: column;\r\n align-items: center;\r\n padding: 5rem 5rem 0;\r\n ${({theme}) => theme.font.presets.body};\r\n font-size: 1.5rem;\r\n color: ${({theme}) => theme.colors.textLight};\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow } {\r\n padding: 5rem 0 0;\r\n }\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const PanicButtonPopupTimeBox = styled.span`\r\n color: ${({theme}) => theme.colors.brandPrimary}; \r\n padding-left: 0.5rem;\r\n padding-right: 0.5rem;\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const PanicButtonPopupOkBox = styled.div`\r\n width: 100%;\r\n margin-top: 5rem;\r\n`;","import {OrbitComponent} from \"../../../../base-components/orbit-component/orbit-component\";\r\nimport {PanicButtonPopupBox} from \"./boxes/panic-button-popup.box\";\r\nimport React from 'react';\r\nimport {TimeSpan} from \"@sparkware/app-utils\";\r\nimport {IModalDialogHandler} from \"../../../../../services/dialog/dialog.service.interface\";\r\nimport {PanicButtonPopupTimeBox} from \"./boxes/panic-button-popup-time.box\";\r\nimport {PanicButtonPopupOkBox} from \"./boxes/panic-button-popup-ok.box\";\r\nimport { DialogTextBox } from \"../../../../modal-dialog/boxes/text/dialog-text.box\";\r\nimport { ModalDialogActionsComponent } from \"../../../../modal-dialog/modal-dialog-actions.component\";\r\n\r\ninterface PanicButtonPopupComponentProps{\r\n textMessage1:string,\r\n textMessage2:string,\r\n textMessage3:string,\r\n dialogHandler: IModalDialogHandler;\r\n}\r\n\r\nexport class PanicButtonPopupComponent extends OrbitComponent{\r\n\r\n private _getTime():string{\r\n const now = new Date();\r\n return new TimeSpan(0,now.getHours(),now.getMinutes()).toString();\r\n }\r\n\r\n private _closeDialog = () => {\r\n this.props.dialogHandler.close();\r\n }\r\n\r\n render(){\r\n return (\r\n \r\n {this.props.textMessage1}\r\n \r\n {this.props.textMessage2}\r\n {this._getTime()}\r\n {this.props.textMessage3}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}","import styled from \"styled-components\";\r\n\r\nexport const TooltipClickHereBox = styled.span`\r\n text-decoration: underline;\r\n font-weight: bold;\r\n padding-left: 0.5rem;\r\n padding-right: 0.5rem;\r\n cursor: pointer;\r\n margin-bottom: 0;\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const PanicButtonTooltipCloseBox = styled.div`\r\n position: absolute;\r\n right: 0.2rem;\r\n top: 0.1rem;\r\n width: 1rem;\r\n height: 1rem;\r\n cursor: pointer;\r\n \r\n &::before, &::after {\r\n position: absolute;\r\n content: ' ';\r\n height: 1rem;\r\n width: 0.1rem;\r\n background-color: black;\r\n }\r\n &::before {\r\n transform: rotate(45deg);\r\n }\r\n &::after {\r\n transform: rotate(-45deg);\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {ACTIVE} from \"../../../../../../themes/css-global-classes\";\r\n\r\nexport const PanicButtonMobileOverlayBox = styled.div`\r\n display: none;\r\n position:absolute;\r\n width: 100vw;\r\n height: 100vh;\r\n background-color:rgba(0, 0, 0, 0);\r\n top:0;\r\n left:0;\r\n z-index: 106;\r\n \r\n &.${ACTIVE}{\r\n display: block;\r\n }\r\n`;","import React from 'react';\r\nimport {CyClass} from \"../../../../../../common/cy-classes\";\r\nimport {PanicButtonBox} from \"./boxes/panic-button.box\";\r\nimport {PanicButtonTooltipBox} from \"./boxes/panic-button-tooltip.box\";\r\nimport classNames from 'classnames';\r\nimport {observer} from \"mobx-react\";\r\nimport {PanicButtonPopupComponent} from \"./panic-button-popup.component\";\r\nimport {TooltipClickHereBox} from \"./boxes/panic-button-tooltip-click-here\";\r\nimport {OrbitComponentWithState} from \"../../../../base-components/orbit-component-with-state/orbit-component-with-state\";\r\nimport {ACTIVE} from \"../../../../../themes/css-global-classes\";\r\nimport {IN_DETAILED_HISTORY} from \"./css-classes\";\r\nimport {GermanyResponsibleGamingButtonPlacement} from \"../../../../../../common/const/responsible-gaming\";\r\nimport {PanicButtonTooltipCloseBox} from \"./boxes/panic-button-tooltip-close.box\";\r\nimport {PanicButtonMobileOverlayBox} from \"./boxes/panic-button-mobile-overlay.box\";\r\n\r\ninterface TooltipState{\r\n isTooltipVisible:boolean\r\n}\r\n\r\nexport interface ResponsibleGamingButtonsGermanyComponentProps{\r\n placement:GermanyResponsibleGamingButtonPlacement\r\n}\r\n\r\n@observer\r\nexport class ResponsibleGamingButtonsGermanyComponent extends OrbitComponentWithState {\r\n state: TooltipState = {\r\n isTooltipVisible: false\r\n };\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n this.setState({\r\n isTooltipVisible: false\r\n })\r\n }\r\n\r\n private _restrictUser(): void {\r\n this.setState({isTooltipVisible: false});\r\n this.services.user.panicRestrictUser().then((data) => {\r\n console.log(data);\r\n this._openPopup();\r\n }).catch((err) => {\r\n console.log(err);\r\n });\r\n this._sendAnalytics(\"activate\");\r\n }\r\n\r\n private _openPopup() {\r\n this.services.dialog.showModal((dialogHandler) =>\r\n ,\r\n {\r\n title: this.services.translation.translate(\"panic_restriction_popup_title\"),\r\n shouldBeClosedOnlyByUser: true,\r\n hideCloseButton: true,\r\n isHighPriority: true\r\n })\r\n }\r\n\r\n private _onMouseEnterPanicBtn() {\r\n if (this.services.mediaQuery.hover) {\r\n this.setState({isTooltipVisible: true});\r\n this._sendAnalytics(\"click\");\r\n }\r\n }\r\n\r\n private _onMouseLeavePanicBtn() {\r\n if (this.services.mediaQuery.hover) {\r\n this.setState({isTooltipVisible: false});\r\n }\r\n }\r\n\r\n private _closeToolTip(event) {\r\n event.stopPropagation();\r\n this.setState({isTooltipVisible: false});\r\n }\r\n\r\n private onClickPanicBtn() {\r\n if (!this.services.mediaQuery.hover) {\r\n this.setState({isTooltipVisible: true});\r\n this._sendAnalytics(\"click\");\r\n }\r\n }\r\n\r\n private _sendAnalytics(label: string) {\r\n this.services.analytics.sendAnalytics(\"Navigation\", \"Header\", \"Icon_panic_\" + label);\r\n }\r\n\r\n private _renderCloseBtn() {\r\n if (!this.services.mediaQuery.hover) {\r\n return this._closeToolTip(event)}/>\r\n }\r\n return null;\r\n }\r\n\r\n private _renderTooltipClickHere() {\r\n if (this.services.mediaQuery.sAndBelow && this.services.mediaQuery.portrait) {\r\n return (
{this._getTooltipBox()}
);\r\n } else {\r\n return this._getTooltipBox();\r\n }\r\n }\r\n\r\n private _getTooltipBox() {\r\n return this._restrictUser()}>klicken Sie hier.\r\n }\r\n\r\n private _renderMobileOverlay(){\r\n if (!this.services.mediaQuery.hover) {\r\n return this._closeToolTip(event)}/>\r\n }\r\n return null;\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n this._onMouseEnterPanicBtn()}\r\n onMouseLeave={() => this._onMouseLeavePanicBtn()}\r\n onClick={() => this.onClickPanicBtn()}>\r\n \r\n
\r\n Um eine 24-stündige Spielpause einzulegen,\r\n {this._renderTooltipClickHere()}\r\n {this._renderCloseBtn()}\r\n
\r\n \r\n
\r\n {this._renderMobileOverlay()}\r\n
\r\n )\r\n }\r\n}","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../themes/architecture/styled-by-device\";\r\n\r\nconst AdminBannerBoxPC = styled.div`\r\n height: 267px;\r\n margin-bottom: 3rem;\r\n`;\r\n\r\nconst AdminBannerBoxMobile = styled.div`\r\n height: 125px;\r\n margin-bottom: 3rem;\r\n`;\r\n\r\nexport const AdminBannerBox = styledByDevice(AdminBannerBoxPC, AdminBannerBoxMobile);","import {OrbitComponent} from \"../base-components/orbit-component/orbit-component\";\r\nimport * as React from \"react\";\r\nimport {AdminBannerBox} from \"./boxes/admin-banner-wrapper.box\";\r\n\r\n\r\ndeclare global {\r\n namespace JSX {\r\n interface IntrinsicElements {\r\n \"banner-888\": any;\r\n }\r\n }\r\n}\r\n\r\nexport interface AdminBannerComponentProps {\r\n bannerAdminPlaceholderId: string;\r\n}\r\n\r\n\r\nexport class AdminBannerComponent extends OrbitComponent {\r\n render() {\r\n const bannerSegmentation = JSON.stringify(this.services.adminBanner.getSegmentationsForAdminBanner());\r\n const bannerConfig = JSON.stringify(this.services.adminBanner.getConfigForAdminBanner(this.props.bannerAdminPlaceholderId));\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}","import {OrbitComponent} from \"../base-components/orbit-component/orbit-component\";\r\nimport {CmsBannerComponent, CmsBannerComponentProps} from \"../cms-banner/cms-banner.component\";\r\nimport {AdminBannerComponent, AdminBannerComponentProps} from \"../admin-banner/admin-banner.component\";\r\nimport * as React from \"react\";\r\n\r\nexport interface BannerComponentProps extends CmsBannerComponentProps, AdminBannerComponentProps {\r\n}\r\n\r\nexport class BannerComponent extends OrbitComponent {\r\n\r\n _shouldUseAdminBanner(): boolean {\r\n return this.services.adminBanner.adminBannerEnabled;\r\n }\r\n\r\n render() {\r\n return this._shouldUseAdminBanner() ? : ;\r\n }\r\n}","export enum MyAccountTab {\r\n ResponsibleGaming = 1,\r\n ChangePassword = 2,\r\n Bonuses = 3,\r\n PersonalDetails = 4,\r\n InviteAFriend = 5,\r\n Reports = 6,\r\n LCChallenges = 7, //LC I think it comes from something with Loyalty\r\n LCRedemption = 8,\r\n Tournament = 10,\r\n FreePlay = 11,\r\n FreeBets = 12,\r\n ComPoints = 13,\r\n MyChallenges = 16\r\n}\r\n\r\nexport interface IOpenMyAccountOptions {\r\n tabId?: MyAccountTab;\r\n}\r\nexport interface IMyAccountExternalLinkHandler {\r\n openMyAccount(options?: IOpenMyAccountOptions): Promise;\r\n}","import { TimeSpan } from \"@sparkware/app-utils\";\r\n\r\nexport interface ImagePreloadPromiseResponse {\r\n error: string | null;\r\n backgroundUrl: string;\r\n imageObj: HTMLImageElement;\r\n}\r\n\r\nexport function imagePreload(src: string, timeout?: TimeSpan) {\r\n timeout = timeout || TimeSpan.fromMinutes(2);\r\n return new Promise((res, rej) => {\r\n let image = new Image();\r\n image.onload = () => {\r\n clearTimeout(timeoutRejection);\r\n res({error: null, backgroundUrl: src, imageObj: image});\r\n };\r\n image.onerror = ()=> {\r\n rej({\r\n error: 'Could not load image on path => ' + src,\r\n backgroundUrl: src\r\n });\r\n };\r\n const timeoutRejection = setTimeout(() => {\r\n rej({\r\n error: 'Timeout. Could not load image on path => ' + src,\r\n backgroundUrl: src\r\n });\r\n }, timeout.totalMilliseconds);\r\n image.src = src;\r\n });\r\n}\r\n\r\nexport function imagePreloadWithDefault(src: string | null | undefined, defaultPath: string) {\r\n if (src) {\r\n return imagePreload(src).catch(() => {\r\n return imagePreload(defaultPath);\r\n });\r\n } else {\r\n return imagePreload(defaultPath);\r\n }\r\n}\r\n","export const CASHIER_SESSION_TYPES = {\r\n DEPOSIT: 1,\r\n TRANSACTIONS_HISTORY: 2,\r\n WITHDRAWAL: 4,\r\n FULL_CASHIER_CDH: 9,\r\n FULL_CASHIER: 8,\r\n QUICK_DEPOSIT: 16,\r\n COOLING_OFF: 18,\r\n VERIFY_ID: 20,\r\n MOBILE_VERIFY_ID: 21\r\n};\r\n","export enum GamingHistoryType {\r\n UserHistory = 1,\r\n SessionHistory = 2\r\n}\r\n","import {TimeSpan} from \"@sparkware/app-utils\";\r\n\r\nexport enum TSR_TYPE {\r\n SESSION_TIMER,\r\n GAME_TIMER\r\n}\r\n\r\nexport type ITimeSpentReminderOptions = ISessionTimeSpentReminderComponentProps | IGameTimeSpentReminderComponentProps;\r\n\r\nexport interface ITimeSpentReminderComponentBaseProps {\r\n playingTime: TimeSpan;\r\n}\r\n\r\ninterface ISessionTimeSpentReminderComponentProps extends ITimeSpentReminderComponentBaseProps {\r\n timerType: TSR_TYPE.SESSION_TIMER;\r\n}\r\n\r\ninterface IGameTimeSpentReminderComponentProps extends ITimeSpentReminderComponentBaseProps {\r\n timerType: TSR_TYPE.GAME_TIMER;\r\n onStopReminders: () => void;\r\n}\r\n\r\nexport interface ITimeSpentReminderWithBalanceComponentProps extends ITimeSpentReminderComponentBaseProps {\r\n totalNetLoss: number;\r\n isInGame: boolean;\r\n}","/**\r\n * System event symbols, used internally for identifying events uniquely.\r\n */\r\nconst SYSTEM_EVENTS = {\r\n ON_INIT_COMPLETE : 'ON_INIT_COMPLETE',\r\n ON_ORBIT_INIT_COMPLETE : 'ON_ORBIT_INIT_COMPLETE',\r\n RUN_AUTOLOGIN : 'RUN_AUTOLOGIN',\r\n RUN_AUTOLOGIN_TOUCH_ID : 'RUN_AUTOLOGIN_TOUCH_ID',\r\n MESSAGE_OPEN : 'MESSAGE_OPEN',\r\n MESSAGE_CLOSE : 'MESSAGE_CLOSE',\r\n ON_BEFORE_OAUTH_STATE_CHANGE : 'ON_BEFORE_OAUTH_STATE_CHANGE',\r\n OAUTH_STATE_CHANGE : 'OAUTH_STATE_CHANGE',\r\n AUTOLOGIN_SUCCESS : 'AUTOLOGIN_SUCCESS',\r\n AUTOLOGIN_FAILED : 'AUTOLOGIN_FAILED',\r\n SUCCESSFULLY_LOGIN_RESPONSE : 'SUCCESSFULLY_LOGIN_RESPONSE',\r\n ON_RUN_AUTOLOGIN : 'ON_RUN_AUTOLOGIN',\r\n FAIL_LOGIN_RESPONSE : 'FAIL_LOGIN_RESPONSE',\r\n CLOSE_GAME : 'CLOSE_GAME',\r\n LOGIN_FORM_OPEN : 'LOGIN_FORM_OPEN',\r\n LOGIN_FORM_CLOSE : 'LOGIN_FORM_CLOSE',\r\n GET_NEW_TOUCH_TOKEN : 'GET_NEW_TOUCH_TOKEN',\r\n SCREEN_CHANGE_STATE : 'SCREEN_CHANGE_STATE',\r\n POST_MESSAGE_ARRIVE : 'POST_MESSAGE_ARRIVE',\r\n HYBRID_POST_MESSAGE_ARRIVE : 'HYBRID_POST_MESSAGE_ARRIVE',\r\n EXTEND_USER_TIME_TO_LIVE : 'EXTEND_USER_TIME_TO_LIVE',\r\n SCREEN_RESIZE_CHANGED : 'SCREEN_RESIZE_CHANGED',\r\n GAME_OPEN : 'GAME_OPEN',\r\n OPEN_GAME_ERROR : 'OPEN_GAME_ERROR',\r\n FULL_SCREEN_CHANGE : 'FULL_SCREEN_CHANGE',\r\n OPEN_OVERLAY : 'OPEN_OVERLAY',\r\n CLOSE_OVERLAY : 'CLOSE_OVERLAY',\r\n CLOSE_ALL_OVERLAY : 'CLOSE_ALL_OVERLAY',\r\n EXTERNAL_LINK_OPEN : 'EXTERNAL_LINK_OPEN',\r\n EXTERNAL_LINK_CLOSED : 'EXTERNAL_LINK_CLOSED',\r\n EXTERNAL_LINK_OPENED : 'EXTERNAL_LINK_OPENED',\r\n APP_RESUMED : 'APP_RESUMED',\r\n APP_PAUSED : 'APP_PAUSED',\r\n LOGIN_SESSION_RESUMED : \"LOGIN_SESSION_RESUMED\",//triggered on page refresh, autologin (continue other's client session), open app or resume app with successful refresh token\r\n ANALYTIC_TRIGGER_ACTIVATED : 'ANALYTIC_TRIGGER_ACTIVATED',\r\n ANALYTIC_DATA_LAYER_UPDATE : 'ANALYTIC_DATA_LAYER_UPDATE',\r\n ANALYTICS_EXPERIMENT_ACTIVATED: 'ANALYTICS_EXPERIMENT_ACTIVATED',\r\n ANALYTICS_OPTIMIZE_TRIGGER : 'ANALYTICS_OPTIMIZE_TRIGGER',\r\n INCOMING_MARKETING_DATA : 'INCOMING_MARKETING_DATA',\r\n INCOMING_MARKETING_FLOW : 'INCOMING_MARKETING_FLOW',\r\n PLAYER_ACTION: 'PLAYER_ACTION',\r\n\r\n BALANCE_UPDATED: 'BALANCE_UPDATED',\r\n CURRENCY_UPDATED: 'CURRENCY_UPDATED',\r\n RECENTLY_PLAYED_GAMES_UPDATED: 'RECENTLY_PLAYED_GAMES_UPDATED',\r\n LIVE_FEEDS_LATEST_WINNERS_UPDATED: 'LIVE_FEEDS_LATEST_WINNERS_UPDATED',\r\n LIVE_FEEDS_WINNINGS_UPDATED: 'LIVE_FEEDS_WINNINGS_UPDATED',\r\n LIVE_FEEDS_TOTAL_JACKPOTS_UPDATED: 'LIVE_FEEDS_TOTAL_JACKPOTS_UPDATED',\r\n LIVE_FEEDS_JACKPOT_AMOUNTS_UPDATED: 'LIVE_FEEDS_JACKPOT_AMOUNTS_UPDATED',\r\n LIVE_FEEDS_STATE_JACKPOTS_UPDATED: 'LIVE_FEEDS_STATE_JACKPOTS_UPDATED',\r\n OMG_AWAITING_MESSAGES_UPDATED: 'OMG_AWAITING_MESSAGES_UPDATED',\r\n OMG_OPEN_AWAITING_MESSAGES: 'OMG_OPEN_AWAITING_MESSAGES',\r\n OAUTH_REMOVE_FROM_LOCAL_STORAGE: 'SYSTEM_EVENTS.OAUTH_REMOVE_FROM_LOCAL_STORAGE',\r\n LOCAL_STORAGE_CHANGED: 'LOCAL_STORAGE_CHANGED',\r\n ELEMENT_CREATED: 'ELEMENT_CREATED',\r\n FREE_PLAY_UPDATED: 'FREE_PLAY_UPDATED',\r\n FREE_PLAY_VOUCHER_REMOVED: 'FREE_PLAY_VOUCHER_REMOVED',\r\n FREE_PLAY_OPEN_VOUCHERS_MSG: 'FREE_PLAY_OPEN_VOUCHERS_MSG',\r\n RESIZE_FORM: 'RESIZE_FORM',\r\n BEGIN_LOGIN_AFTER_REGISTRATION: 'BEGIN_LOGIN_AFTER_REGISTRATION',\r\n LOGIN_COMPLETED_AFTER_REGISTERATION: 'LOGIN_COMPLETED_AFTER_REGISTERATION',\r\n LOGIN_FAILED_AFTER_REGISTRATION: 'LOGIN_FAILED_AFTER_REGISTRATION',\r\n REGISTRATION_COMPLETED: 'REGISTRATION_COMPLETED',\r\n DETACH_REGISTER_EVENT: 'DETACH_REGISTER_EVENT',\r\n FREE_PLAY_VOUCHER_MSG_OPENED: 'FREE_PLAY_VOUCHER_MSG_OPENED',\r\n FREE_PLAY_OPEN_INTERNAL_VOUCHERS_MESSAGE: 'FREE_PLAY_OPEN_INTERNAL_VOUCHERS_MESSAGE',\r\n TOAST_CREATED: 'TOAST_CREATED',\r\n TOAST_SHOW: 'TOAST_SHOW',\r\n TOAST_HIDE: 'TOAST_HIDE',\r\n TOAST_CLOSE_BUTTON: 'TOAST_CLOSE_BUTTON',\r\n TOAST_USER_DISMISS: 'USER_DISMISSED_TOAST',\r\n HYBRID_ALERT: 'HYBRID_ALERT',\r\n HYBRID_OPEN_MAIL: 'HYBRID_OPEN_MAIL',\r\n HYBRID_UPDATE_INFO_KEY : 'HYBRID_UPDATE_INFO_KEY',\r\n FIREBASE_GOT_NEW_TOKEN: 'FIREBASE_GOT_NEW_TOKEN',\r\n TOUCH_ID_GET_TOKEN_FROM_SRV: 'TOUCH_ID_GET_TOKEN_FROM_SRV',\r\n TOUCH_ID_INIT_SCREEN_SHOW: 'TOUCH_ID_INIT_SCREEN_SHOW',\r\n TOUCH_ID_TRY_AGAIN_SKIP: 'TOUCH_ID_TRY_AGAIN_SKIP',\r\n TOUCH_ID_CHECK_TOKEN_ENABLE: 'TOUCH_ID_CHECK_TOKEN_ENABLE',\r\n TOUCH_ID_TOKEN_ENABLE_RES: 'TOUCH_ID_TOKEN_ENABLE_RES',\r\n TOUCH_ID_CLEAR_TOKEN: 'TOUCH_ID_CLEAR_TOKEN',\r\n TOUCH_ID_NATIVE_CANCEL: 'TOUCH_ID_NATIVE_CANCEL',\r\n TOUCH_ID_LOGIN_ERROR: 'TOUCH_ID_LOGIN_ERROR',\r\n TOUCH_ID_AUTO_LOGIN: 'TOUCH_ID_AUTO_LOGIN',\r\n TOUCH_ID_STATE_CHANGED: 'TOUCH_ID_STATE_CHANGED',\r\n WEB_VIEW_NAVIGATE_GAME: 'WEB_VIEW_NAVIGATE_GAME',\r\n WEB_VIEW_NAVIGATE_DEPOSIT_WIDGET: 'WEB_VIEW_NAVIGATE_DEPOSIT_WIDGET',\r\n WEB_VIEW_NAVIGATE_MIT_ID: 'WEB_VIEW_NAVIGATE_MIT_ID',\r\n WEB_VIEW_NAVIGATE_CASHIER: 'WEB_VIEW_NAVIGATE_CASHIER',\r\n SECOND_WEB_VIEW_OLD_CALL: 'SECOND_WEB_VIEW_OLD_CALL',\r\n SECOND_WEB_VIEW_CLOSE: 'SECOND_WEB_VIEW_CLOSE',\r\n SECOND_WEB_VIEW_OPEN: 'SECOND_WEB_VIEW_OPEN',\r\n SECOND_WEB_VIEW_CLOSE_ALL: 'SECOND_WEB_VIEW_CLOSE_ALL',\r\n MINI_CASHIER_HEIGHT_CHANGED: 'MINI_CASHIER_HEIGHT_CHANGED',\r\n CONTENT_LOADED: 'CONTENT_LOADED',\r\n OVERLAY_OPEN_AWAIT: 'OVERLAY_OPEN_AWAIT',\r\n OVERLAY_CLOSE_EXPIRED: 'OVERLAY_CLOSE_EXPIRED',\r\n FABRIC_ADD_EVENT : 'FABRIC_ADD_EVENT',\r\n ADD_TAG_OPEN_APP_VER : 'ADD_TAG_OPEN_APP_VER',\r\n ADD_TAG : 'ADD_TAG',\r\n REM_TAG : 'REM_TAG',\r\n DEEPLINK_RECEIVED: 'DEEPLINK_RECEIVED',\r\n WEB_LOGIN_OPEN_REGISTER: 'WEB_LOGIN_OPEN_REGISTER',\r\n ROUTE_CHANGED: 'ROUTE_CHANGED',\r\n RESTRICTIONS_CHANGED: 'RESTRICTIONS_CHANGED',\r\n SESSION_TIMER_UPDATE: 'SESSION_TIMER_UPDATE',\r\n WINDOW_FOCUS_GAIN: 'WINDOW_FOCUS_GAINED',\r\n WINDOW_FOCUS_LOSS: 'WINDOW_FOCUS_LOST',\r\n GEO_HYBRID_UPDATE_ENABLE : 'GEO_HYBRID_UPDATE_ENABLE',\r\n GEO_HYBRID_GT_CB : 'GEO_HYBRID_GT_CB',\r\n GEO_HYBRID_GET_LOCATION : 'GEO_HYBRID_GET_LOCATION',\r\n GEO_HYBRID_GET_LOCATION_RES : 'GEO_HYBRID_GET_LOCATION_RES',\r\n GEO_LOCATION_FAILED : 'GEO_LOCATION_FAILED',\r\n GEO_LOCATION_SUCCEED: 'GEO_LOCATION_SUCCEED',\r\n GEO_KICK_EVENT: 'GEO_KICK_EVENT',\r\n SESSION_EVENT_KICK: 'SESSION_EVENT_KICK',\r\n SESSION_EVENT_WALLET: 'SESSION_EVENT_WALLET',\r\n SESSION_EVENT_OMG_RECEIVED: 'SESSION_EVENT_OMG_RECEIVED',\r\n\tSESSION_EVENT_FREE_PLAY_RECEIVED: 'SESSION_EVENT_FREE_PLAY_RECEIVED', //TODO - obsolete. This should be removed once free play from SDK will be removed\r\n SESSION_EVENT_FREE_PLAY_REMOVED: 'SESSION_EVENT_FREE_PLAY_REMOVED',\r\n SESSION_EVENT_FREE_PLAY_BATCH_ADDED: 'SESSION_EVENT_FREE_PLAY_BATCH_ADDED',\r\n SESSION_EVENT_FREE_PLAY_BATCH_UPDATED: 'SESSION_EVENT_FREE_PLAY_BATCH_UPDATED',\r\n SESSION_EVENT_FREE_PLAY_BATCH_REMOVED: 'SESSION_EVENT_FREE_PLAY_BATCH_REMOVED',\r\n\tSESSION_EVENT_THIRD_PARTY_FREE_PLAY_UPDATED: 'SESSION_EVENT_THIRD_PARTY_FREE_PLAY_UPDATED',\r\n\tSESSION_EVENT_NET_POSITION_UPDATE: 'SESSION_EVENT_NET_POSITION_UPDATE',\r\n SESSION_EVENT_RECEIVED_TOASTER: 'SESSION_EVENT_RECEIVED_TOASTER',\r\n SESSION_EVENT_UPDATERESTRICTION_RECEIVED: 'SESSION_EVENT_UPDATERESTRICTION_RECEIVED',\r\n SESSION_EVENT_PLAYER_BURNOUT_MESSAGE_RECEIVED: 'SESSION_EVENT_PLAYER_BURNOUT_MESSAGE_RECEIVED',\r\n NET_POSITION_VALUE_UPDATE: 'NET_POSITION_VALUE_UPDATE',\r\n SECOND_WEB_VIEW_NAVIGATE_SPORT: 'SECOND_WEB_VIEW_NAVIGATE_SPORT',\r\n TIME_UPDATED_FROM_SERVER: 'TIME_UPDATED_FROM_SERVER',\r\n ON_BROWSER_PAGE_HIDE: 'ON_BROWSER_PAGE_HIDE',\r\n\tTOKEN_LIFETIME_EXPIRED: 'TOKEN_LIFETIME_EXPIRED',\r\n\tLIVE_TABLES_UPDATE: 'LIVE_TABLES_UPDATE',\r\n LOADING_INDICATOR_EMBEDDED_UPDATE: 'LOADING_INDICATOR_EMBEDDED_UPDATE',\r\n LOADING_INDICATOR_EMBEDDED_UPDATE_V2: 'LOADING_INDICATOR_EMBEDDED_UPDATE_V2',\r\n LOADING_INDICATOR_EMBEDDED_CLOSED_BY_X: 'LOADING_INDICATOR_EMBEDDED_CLOSED_BY_X',\r\n GAMES_QUESTIONNAIRE_COMPLETED: 'GAMES_QUESTIONNAIRE_COMPLETED',\r\n GAME_SEQUENCE_FINISH: 'GAME_SEQUENCE_FINISH',\r\n GAME_POPUP_SHOW: 'GAME_POPUP_SHOW',\r\n USER_APPROVE_GAME_POPUP: 'USER_APPROVE_GAME_POPUP',\r\n BONUS_ABUSE_PARKING_MONEY : 'BONUS_ABUSE_PARKING_MONEY',\r\n SHOW_POPUP_ABOVE_HYBRID_SECOND_WEB_VIEW : 'SHOW_POPUP_ABOVE_HYBRID_SECOND_WEB_VIEW',\r\n CLOSE_POPUP_ABOVE_HYBRID_SECOND_WEB_VIEW : 'CLOSE_POPUP_ABOVE_HYBRID_SECOND_WEB_VIEW',\r\n DEPOSIT_WIDGET_CLOSED : 'DEPOSIT_WIDGET_CLOSED',\r\n DAILY_DEAL_REMOVE_INDICATION: 'DAILY_DEAL_REMOVE_INDICATION',\r\n LOCATION_POPUP_OPEN : 'LOCATION_POPUP_OPEN',\r\n LOCATION_POPUP_CLOSED : 'LOCATION_POPUP_CLOSED',\r\n PLAYER_MESSAGES_STRATEGY_READY: 'PLAYER_MESSAGES_STRATEGY_READY',\r\n CHANGE_OVERLAY_PRIORITY: 'CHANGE_OVERLAY_PRIORITY',\r\n OMG_DISPLAYED: 'OMG_DISPLAYED',\r\n LIVE_GAME_SWITCHED: 'LIVE_GAME_SWITCHED',\r\n PROMOTIONS_CHANGED: 'PROMOTIONS_CHANGED',\r\n ODR_CLEAR_ALL_GAMES: 'ODR_CLEAR_ALL_GAMES',\r\n SERIAL_UPDATE: 'SERIAL_UPDATE'\r\n};\r\n\r\n/**\r\n * Client event symbols, used internally for identifying events uniquely.\r\n */\r\nconst CLIENT_EVENTS = {\r\n MENU_CLICKED: 'MENU_CLICKED',\r\n LOGIN_BUTTON_CLICKED: 'LOGIN_BUTTON_CLICKED',\r\n REALITY_CHECK_OPENED: 'REALITY_CHECK_OPENED',\r\n REALITY_CHECK_CLOSED: 'REALITY_CHECK_CLOSED'\r\n};\r\n\r\nconst USER_EVENTS = {\r\n ON_CLICK: 'click',\r\n ON_DOUBLE_CLICK: 'dblclick',\r\n ON_SUBMIT: 'submit',\r\n ON_MOUSE_MOVE: 'mousemove',\r\n ON_MOUSE_DOWN: 'mousedown',\r\n ON_KEY_PRESS: 'keypress',\r\n ON_DOM_MOUSE_SCROLL: 'DOMMouseScroll',\r\n ON_MOUSE_WHEEL: 'mousewheel',\r\n ON_TOUCH_START: 'touchstart',\r\n ON_TOUCH_MOVE: 'touchmove',\r\n ON_TOUCH_END: 'touchend',\r\n ON_MSPOINTER_MOVE: 'MSPointerMove',\r\n ON_RESIZE: 'resize',\r\n ON_FOCUS: 'focus',\r\n ON_CHANGE: 'change',\r\n ON_BLUR: 'blur'\r\n};\r\n\r\nconst USER_ACTIVITY_EVENTS_ALL = [\r\n SYSTEM_EVENTS.MESSAGE_CLOSE,\r\n SYSTEM_EVENTS.FULL_SCREEN_CHANGE,\r\n SYSTEM_EVENTS.CLOSE_OVERLAY,\r\n SYSTEM_EVENTS.CLOSE_ALL_OVERLAY,\r\n SYSTEM_EVENTS.APP_RESUMED,\r\n SYSTEM_EVENTS.PLAYER_ACTION,\r\n SYSTEM_EVENTS.TOAST_USER_DISMISS,\r\n SYSTEM_EVENTS.OMG_OPEN_AWAITING_MESSAGES,\r\n SYSTEM_EVENTS.FREE_PLAY_VOUCHER_MSG_OPENED,\r\n SYSTEM_EVENTS.BALANCE_UPDATED,\r\n\tSYSTEM_EVENTS.EXTEND_USER_TIME_TO_LIVE,\r\n SYSTEM_EVENTS.GAME_OPEN,\r\n SYSTEM_EVENTS.CLOSE_GAME\r\n];\r\n\r\n/**\r\n * we need this because app resume in hybrid poker nj happen every few minutes because they save the screen open.\r\n * so the user will ever have inactivity kick.\r\n * @type {[string,string,string,string,string,string,string,string,string,string]}\r\n */\r\nconst USER_ACTIVITY_EVENTS_FOR_HYBRID = [\r\n SYSTEM_EVENTS.MESSAGE_CLOSE,\r\n SYSTEM_EVENTS.FULL_SCREEN_CHANGE,\r\n SYSTEM_EVENTS.CLOSE_OVERLAY,\r\n SYSTEM_EVENTS.CLOSE_ALL_OVERLAY,\r\n SYSTEM_EVENTS.PLAYER_ACTION,\r\n SYSTEM_EVENTS.TOAST_USER_DISMISS,\r\n SYSTEM_EVENTS.OMG_OPEN_AWAITING_MESSAGES,\r\n SYSTEM_EVENTS.FREE_PLAY_VOUCHER_MSG_OPENED,\r\n SYSTEM_EVENTS.BALANCE_UPDATED,\r\n SYSTEM_EVENTS.EXTEND_USER_TIME_TO_LIVE,\r\n SYSTEM_EVENTS.GAME_OPEN,\r\n SYSTEM_EVENTS.CLOSE_GAME,\r\n SYSTEM_EVENTS.POST_MESSAGE_ARRIVE\r\n];\r\n\r\nexport {SYSTEM_EVENTS, CLIENT_EVENTS, USER_EVENTS, USER_ACTIVITY_EVENTS_ALL, USER_ACTIVITY_EVENTS_FOR_HYBRID};","import styled from \"styled-components\";\r\n\r\nexport const GeoModalWrapperBox = styled.div`\r\n max-width: 560px;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-content: center;\r\n align-items: center;\r\n\r\n width: 25vw;\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n width: 82vw;\r\n }\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow + \" and \" + theme.mediaQuery.landscape} {\r\n width: 56vw;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { observer } from \"mobx-react\";\r\nimport styled, { AnyStyledComponent } from 'styled-components';\r\nimport { BalanceType } from '../../../common/const/wallet_balance_type';\r\nimport { OrbitComponent } from \"../base-components/orbit-component/orbit-component\";\r\n\r\ninterface IBalanceValueProps {\r\n balanceType?: BalanceType;\r\n className?: string;\r\n WrapperComponent?: AnyStyledComponent;\r\n}\r\n\r\n@observer\r\nexport class BalanceValue extends OrbitComponent {\r\n static defaultProps: Partial = {\r\n balanceType: BalanceType.BOTH,\r\n WrapperComponent: styled.span`\r\n color: ${props => props.theme.colors.moneyColor};\r\n `\r\n };\r\n render() {\r\n let bankroll = this.services.walletProxy.bankroll[this.props.balanceType!];\r\n const balanceMaxChars = 15;\r\n // Bankroll length limited by 15 chars\r\n const numberIndex = bankroll.search(/[0-9]/g);\r\n const symbolIndex = bankroll.search(/[^0-9.,]/g);\r\n let balance: string;\r\n\r\n if (numberIndex > symbolIndex) {\r\n balance = bankroll.slice(numberIndex, numberIndex + balanceMaxChars);\r\n bankroll = bankroll.slice(symbolIndex, numberIndex) + balance;\r\n } else {\r\n balance = bankroll.slice(numberIndex, Math.min(balanceMaxChars, symbolIndex - numberIndex));\r\n bankroll = balance + bankroll.slice(symbolIndex);\r\n }\r\n\r\n let WrapperComponent = this.props.WrapperComponent!;\r\n return \r\n { bankroll }\r\n ;\r\n }\r\n}\r\n","import React from 'react';\r\nimport { StyledComponent } from 'styled-components';\r\nimport { OrbitTheme } from './orbit-theme.interface';\r\nimport { OrbitComponent } from '../../components/base-components/orbit-component/orbit-component';\r\nimport { ByThemeRegistry } from './by-theme-registry';\r\n\r\nclass StyledByTheme, O extends object = {}>\r\n extends ByThemeRegistry> {\r\n\r\n apply(): StyledComponent {\r\n const getRegistryItem = this.getRegistryItem;\r\n let ComponentDefinition = class extends OrbitComponent{\r\n render() {\r\n let Component: any = getRegistryItem(this.services.theme.currentTheme.themeName);\r\n\r\n return (\r\n \r\n {this.props.children}\r\n \r\n );\r\n }\r\n };\r\n\r\n let finalComponent = React.forwardRef((props, ref) => );\r\n\r\n return (finalComponent as any) as StyledComponent;\r\n }\r\n}\r\n\r\n\r\nexport function styledByTheme<\r\n C extends keyof JSX.IntrinsicElements | React.ComponentType,\r\n O extends object = {}\r\n>(defaultComponent: StyledComponent): StyledByTheme {\r\n return new StyledByTheme(defaultComponent);\r\n}\r\n","export interface SystemEventSubscription {\r\n off(): void;\r\n}\r\n\r\n/**\r\n * Event based module, publish / subscribe with hierarchical events and notifications.\r\n *\r\n * Usage:\r\n * Event.on('test_one_event', function() {\r\n * console.log('test 1 event fired');\r\n * console.log(arguments);\r\n * });\r\n *\r\n * Event.once('test_two_event', function() {\r\n * console.log('test 2 event fired, once.');\r\n * console.log(arguments);\r\n * });\r\n *\r\n * var three = Event.on('test_three_event', function() {\r\n * console.log('test 3 event fired');\r\n * });\r\n *\r\n * Event.fire('test_one_event', {eventID: 1}); // fires ok\r\n * Event.fire('test_two_event', {eventID: 2}); // fires ok\r\n * Event.fire('test_two_event', {eventID: 3}); // didnt trigger the event since it was unsubscribed (subscribed once only)\r\n * three.off(); // will remove the test_three_event\r\n * Event.fire('test_three_event', {eventID: 4}); // didnt trigger, was remove line above.\r\n *\r\n *\r\n */\r\nclass Event {\r\n /**\r\n * @constructor\r\n */\r\n constructor() {\r\n this._subscriptions = {};\r\n }\r\n\r\n private _subscriptions: any;\r\n\r\n /**\r\n * Attach a callback to an EventName\r\n */\r\n on(name: string | string[], callback: Function, context?: any): SystemEventSubscription {\r\n\r\n if(!(name)) {\r\n throw new Error('The name argument for Event.on is required');\r\n }\r\n\r\n if(!callback) {\r\n throw new Error('The callback argument name for Event.on is required');\r\n }\r\n\r\n context = context || this;\r\n\r\n // allows to subscribe multiple events for the same callback as single events. Clears the syntax on the other end.\r\n if (Array.isArray(name)) {\r\n let cleanFunctions: SystemEventSubscription[] = [];\r\n for (let eventIdx = 0, len = name.length, eventName; eventIdx < len; eventIdx++) {\r\n eventName = name[eventIdx];\r\n cleanFunctions.push(this.on(eventName, callback, context));\r\n }\r\n\r\n // Quit after done.\r\n return {\r\n off: () => cleanFunctions.forEach(subscription => subscription.off())\r\n };\r\n }\r\n\r\n if ('undefined' === typeof this._subscriptions[name]) {\r\n this._subscriptions[name] = [];\r\n }\r\n\r\n this._subscriptions[name].push({\r\n callback: callback,\r\n context: context\r\n });\r\n\r\n // return back a clean remove function with the params encapsulated\r\n return ((eName, eCallback, eContext): SystemEventSubscription => {\r\n return {\r\n off: () => {\r\n this.off(eName, eCallback, eContext);\r\n }\r\n };\r\n })(name, callback, context);\r\n }\r\n\r\n\r\n /**\r\n * Attach a callback to an name, but once only. Will disapear after first execution.\r\n *\r\n */\r\n once(name: string | string[], callback: Function, context?: any): SystemEventSubscription {\r\n context = context || this;\r\n var self = this,\r\n onceCallback: any = function() {\r\n self.off(name, onceCallback, context);\r\n callback.apply(this, arguments);\r\n };\r\n\r\n // preserve the original callback to allow subscribe once method to be removed later if needed.\r\n onceCallback._originalCallback = callback;\r\n\r\n return this.on(name, onceCallback, context);\r\n }\r\n\r\n\r\n /**\r\n * Notify subscriptions by calling their name\r\n */\r\n fire(name: string, params: any = {}) {\r\n let subscriptions = this.getAllSubscriptions();\r\n //clone the subscriptions array\r\n let events = [].concat(subscriptions[name] || []);\r\n\r\n events.forEach(event => {\r\n try {\r\n event.callback.call(event.context, params);\r\n } catch (ex) {\r\n console.error(ex);\r\n }\r\n });\r\n }\r\n\r\n\r\n /**\r\n * Remove a specific name callback from the stack.\r\n *\r\n * Used mostly internally.. but not only. A diffrent \".off\" is binded when you \".on\" and a referance to this \".off\"\r\n * is set.\r\n */\r\n off(name: string | string[], callback: Function, context: any): void {\r\n if (Array.isArray(name)) {\r\n name.forEach(eventName => this.off(eventName, callback, context));\r\n return;\r\n }\r\n context = context || this;\r\n\r\n let events = this._subscriptions[name],\r\n matchCallback = cb => {\r\n return cb === callback || cb._originalCallback === callback;\r\n };\r\n if (events === undefined) {\r\n return;\r\n }\r\n\r\n for (let eventIdx = events.length - 1; 0 <= eventIdx; eventIdx--) {\r\n let event = events[eventIdx];\r\n\r\n // TODO: make this code typesafe so that we can use '==='\r\n // eslint-disable-next-line\r\n if (matchCallback(event.callback) && event.context == context) {\r\n events.splice(eventIdx, 1);\r\n }\r\n }\r\n\r\n // if no callbacks left remove the event name from the tree completly.\r\n if (0 === events.length) {\r\n delete this._subscriptions[name];\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Removes all the subscriptions by reseting the queue.\r\n *\r\n *\r\n * @returns {Object} this - an instance of the current running Event object.\r\n * @public\r\n */\r\n removeAllSubscriptions(): void {\r\n this._subscriptions = [];\r\n }\r\n\r\n\r\n /**\r\n * Get all the active subscriptions tree\r\n */\r\n getAllSubscriptions(): any {\r\n return this._subscriptions;\r\n }\r\n\r\n\r\n /**\r\n * Detach events that the object subscribe to.\r\n */\r\n detachEvents(events: any[]): void {\r\n // Remove reference events.\r\n if (!events) {\r\n return;\r\n }\r\n\r\n events.forEach((event) => {\r\n if (Array.isArray(event)) {\r\n event.forEach((cleanFn) => {\r\n cleanFn.off();\r\n });\r\n } else {\r\n event.off();\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default new Event();","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../themes/architecture/styled-by-device\";\r\n\r\nconst MobileBox = styled.div<{isHybridEmbedded: boolean}>`\r\n position: fixed;\r\n z-index:15;\r\n bottom: ${props => props.isHybridEmbedded? 'calc(env(safe-area-inset-bottom) + 84px)' : '34px'};\r\n\r\n right: 3px;\r\n \r\n cursor: pointer;\r\n \r\n display: grid;\r\n grid-template-rows: 45px 30px;\r\n justify-items: center; \r\n`;\r\n\r\nconst PcBox = styled(MobileBox)`\r\n transform: scale(1.2);\r\n right: 20px;\r\n`;\r\n\r\nexport const DailyDealContainerBox = styledByDevice(PcBox, MobileBox);\r\n","import styled, {keyframes} from \"styled-components\";\r\n\r\n\r\nconst glowRotateAnimation = keyframes`\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n 20%, 25% {\r\n transform: rotate(90deg);\r\n } \r\n 45%, 50% {\r\n transform: rotate(180deg);\r\n } \r\n 70%, 75% {\r\n transform: rotate(270deg);\r\n }\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n `;\r\n\r\nexport const DailyDealChestGlowBox = styled.div`\r\n\r\n background: url(${({theme}) => theme.images.dailyDeal.glow.toString()}) center no-repeat;\r\n position: relative;\r\n bottom: 25px;\r\n \r\n grid-column: 1;\r\n grid-row: 1;\r\n \r\n height: 106px;\r\n width: 106px; \r\n z-index: -1;\r\n \r\n transform: rotate(30deg);\r\n animation: ${glowRotateAnimation} 4s infinite;\r\n`;\r\n","import styled, {keyframes} from \"styled-components\";\r\n\r\nconst chestScaleAnimation = keyframes`\r\n 0% { \r\n transform: scale(1);\r\n }\r\n 40%, 50% { \r\n transform: scale(1.2);\r\n }\r\n 100% { \r\n transform: scale(1);\r\n }\r\n `;\r\n\r\n\r\nexport const DailyDealChestBox = styled.img` \r\n \r\n grid-column: 1;\r\n grid-row: 1;\r\n \r\n position: relative;\r\n height: 50px;\r\n \r\n animation: ${chestScaleAnimation} 2s infinite;\r\n`;\r\n","import styled from \"styled-components\";\r\n\r\nexport const DailyDealTextStripBox = styled.span`\r\n background: url(${({theme}) => theme.images.dailyDeal.textStrip.toString()}) center no-repeat;\r\n background-size: cover;\r\n \r\n display: block;\r\n \r\n width: 120px;\r\n height: 30px;\r\n \r\n color: ${({theme}) => theme.colors.textLight};\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n \r\n padding: 2.5px 10px 0;\r\n text-align: center;\r\n font-size: 13px;\r\n line-height: 19px; \r\n}\r\n`;\r\n","import styled from \"styled-components\";\r\n\r\nexport const DailyDealChestHaloBox = styled.div`\r\n\r\n background: url(${({theme}) => theme.images.dailyDeal.halo.toString()}) center no-repeat;\r\n position: relative;\r\n bottom: 15px;\r\n \r\n grid-column: 1;\r\n grid-row: 1;\r\n \r\n height: 90px;\r\n width: 83px; \r\n z-index: -1;\r\n`;\r\n","import React from 'react';\r\nimport { observer } from 'mobx-react';\r\nimport {OrbitComponent} from \"../base-components/orbit-component/orbit-component\";\r\nimport {DailyDealContainerBox} from \"./boxes/daily-deal-container.box\";\r\nimport {DailyDealChestGlowBox} from \"./boxes/daily-deal-chest-glow.box\";\r\nimport {DailyDealChestBox} from \"./boxes/daily-deal-chest.box\";\r\nimport {DailyDealTextStripBox} from \"./boxes/daily-deal-text-strip.box\";\r\nimport {DailyDealChestHaloBox} from \"./boxes/daily-deal-chest-halo.box\";\r\n\r\n@observer\r\nexport class DailyDealComponent extends OrbitComponent {\r\n\r\n render() {\r\n if (!this.services.dailyDeal.dailyDealCampaignId) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {this.services.translation.translate(\"DAILY_DEAL_WIDGET_STRIP\") } \r\n \r\n \r\n );\r\n }\r\n\r\n private _onDailyDealClick = () => {\r\n this.services.analytics.sendAnalytics('Daily_Deal', 'Click', this.services.arenas.getCurrentArena().arenaName);\r\n this.services.dailyDeal.visitDailyDeal();\r\n }\r\n}\r\n","import styled, { css } from \"styled-components\";\r\nimport { CssRule } from \"../../../../themes/architecture/css-helpers/css-rule\";\r\n\r\nexport const LinkToOfferBoxBase = styled.div<{shouldAnimate: boolean, hasCircle: boolean, isHybridEmbedded: boolean}>`\r\n background-size: contain;\r\n height: 50px;\r\n width: 50px;\r\n position: fixed;\r\n bottom: ${props => props.isHybridEmbedded? 'calc(env(safe-area-inset-bottom) + 100px)' : '50px'};\r\n right: 55px;\r\n cursor: pointer;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 3;\r\n ${CssRule.For.mobile.build()} & {\r\n right: 40px;\r\n }\r\n ${props => props.hasCircle? css`\r\n background-repeat: no-repeat;\r\n background-color: ${props => props.theme.colors.brandPrimary};\r\n border-radius: 50%;\r\n ` : '' }\r\n`;","import styled, {css, keyframes, DefaultTheme} from \"styled-components\";\r\nimport {hexToRgba} from \"../../../../themes/hex-to-rgba\";\r\nimport {LinkToOfferBoxBase} from \"../link-to-offer-base/link-to-offer-box-base\";\r\nimport { CssRule } from \"../../../../themes/architecture/css-helpers/css-rule\";\r\n\r\n\r\nconst linkToOfferIconKeyframes = (props: {theme: DefaultTheme}) => keyframes`\r\n 0% {\r\n transform: scale(0.9);\r\n box-shadow: 0 0 0 0 ${hexToRgba(props.theme.colors.brandPrimary, 0.5)};\r\n }\r\n 60% {\r\n transform: scale(1);\r\n }\r\n 80% {\r\n transform: scale(1);\r\n box-shadow: 0 0 0 35px ${hexToRgba(props.theme.colors.brandPrimary, 0)};\r\n }\r\n 100% {\r\n transform: scale(0.9);\r\n box-shadow: 0 0 0 0 ${hexToRgba(props.theme.colors.brandPrimary, 0)};\r\n }\r\n`;\r\n\r\nexport const LinkToOfferIconDefaultBox = styled(LinkToOfferBoxBase)`\r\n ${props => props.shouldAnimate ? css`animation: ${linkToOfferIconKeyframes} 1.2s infinite` : ''};\r\n /* temporary solution for disabling button on mobile landscape - remove once banners will support landscape mode for phones */\r\n ${CssRule.For.mobile.landscape.not.tablet.build()} & {\r\n visibility: hidden;\r\n }\r\n`;\r\n","import {LinkToOfferIconDefaultBox} from \"./link-to-offer-icon.default.box\";\r\n\r\nexport const LinkToOfferIconBox = LinkToOfferIconDefaultBox;\r\n","import {LinkToOfferDialogCloseDefaultBox} from \"./link-to-offer-dialog-close.default.box\";\r\n\r\nexport const LinkToOfferDialogCloseBox = LinkToOfferDialogCloseDefaultBox;\r\n","import styled from \"styled-components\";\r\nimport {LinkToOfferBoxBase} from \"../link-to-offer-base/link-to-offer-box-base\";\r\n\r\nexport const LinkToOfferDialogCloseDefaultBox = styled(LinkToOfferBoxBase)<{zIndex?: number}>`\r\n z-index: ${props => props.zIndex ?? 201};\r\n`;\r\n","import React from 'react';\r\nimport { OrbitComponent } from '../base-components/orbit-component/orbit-component';\r\nimport {observer} from \"mobx-react\";\r\nimport {LinkToOfferIconBox} from \"./boxes/link-to-offer-icon/link-to-offer-icon.box\";\r\nimport {LinkToOfferDialogCloseBox} from \"./boxes/link-to-offer-dialog-close/link-to-offer-dialog-close.box\";\r\nimport {LinkToOfferConfiguration} from \"../../services/configurations/config-data-sections/link-to-offer.configuration\";\r\nimport { IOffer } from '../../services/player-offerings/player-offerings.service';\r\nimport { IShowOfferOptions } from '../../services/player-offerings/player-offerings.service.interface';\r\n\r\nexport interface LinkToOfferComponentProps {\r\n linkToOfferConfig: LinkToOfferConfiguration;\r\n}\r\n\r\n\r\n@observer\r\nexport class LinkToOfferComponent extends OrbitComponent {\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n this.services.playerOfferings.setWelcomeOfferConfig(this.props.linkToOfferConfig?.welcomeBonus ?? null);\r\n }\r\n\r\n render() {\r\n if (this.services.playerOfferings.hasOpenedPopup) {\r\n let CloseIconComponent = this.services.theme.currentTheme.icons.linkToOfferCloseIcon;\r\n\r\n return (\r\n {this._onCloseDialog()}}\r\n shouldAnimate={false}\r\n hasCircle={true}\r\n zIndex={this.services.playerOfferings.isHighPriorityOffer ? this.services.dialog.getMaxCGPOverlayZIndex() + 2: null}\r\n isHybridEmbedded={this.services.device.hybrid.isEmbedded}\r\n >\r\n \r\n \r\n );\r\n }\r\n\r\n const currentOffer = this.services.playerOfferings.currentLinkToOffer;\r\n if(!currentOffer) {\r\n return null;\r\n }\r\n\r\n return (\r\n {this._onLinkToOfferClicked(currentOffer)}}\r\n shouldAnimate={currentOffer.shouldUseLinkToOfferAnimation()}\r\n hasCircle={currentOffer.shouldUseLinkToOfferAnimation()}\r\n isHybridEmbedded={this.services.device.hybrid.isEmbedded}\r\n >\r\n { currentOffer.render() }\r\n \r\n );\r\n }\r\n\r\n\r\n private _onLinkToOfferClicked(offer: IOffer): void {\r\n\r\n this.services.analytics.sendAnalytics(offer.analyticsCategory, 'Open_Floating_Button', this.services.routing.currentRoute.data.arenaType);\r\n\r\n const options: IShowOfferOptions = {\r\n onPopupClosed: () => {\r\n this.services.analytics.sendAnalytics(offer.analyticsCategory, 'Close_Floating_Button', this.services.routing.currentRoute.data.arenaType);\r\n }\r\n };\r\n this.services.playerOfferings.showOfferPopup(offer, options);\r\n }\r\n\r\n private _onCloseDialog = () => {\r\n if (this.services.playerOfferings.hasOpenedPopup) {\r\n this.services.playerOfferings.closeCurrentPopup();\r\n }\r\n };\r\n}\r\n","import {OrbitComponent} from \"../base-components/orbit-component/orbit-component\";\r\nimport {IArenaViewModel} from \"../../services/arenas/models/arenas/arena-view-model.interface\";\r\nimport {observer} from \"mobx-react\";\r\n\r\ninterface SwiperWindowComponentProps {\r\n windowPosition: number;\r\n arena: IArenaViewModel;\r\n}\r\n\r\n@observer\r\nexport class SwiperWindowComponent extends OrbitComponent {\r\n\r\n render() {\r\n return this.props.arena.renderList(this.props.windowPosition);\r\n }\r\n \r\n}","import React from \"react\";\r\nimport {observer} from \"mobx-react\";\r\nimport {OrbitComponentWithState} from \"../base-components/orbit-component-with-state/orbit-component-with-state\";\r\nimport {IArenaViewModel} from \"../../services/arenas/models/arenas/arena-view-model.interface\";\r\nimport {SwiperWindowComponent} from \"../orbit-swiper/swiper-window.component\";\r\nimport {IntersectionSpyComponent} from \"../../basic-components/intersection-spy/intersection-spy.component\";\r\n\r\nconst INITIAL_BATCH_SIZE = 0;\r\ninterface ArenaGamesListsComponentProps {\r\n arenaName: string;\r\n}\r\n\r\ninterface ArenaGamesListsComponentState {\r\n swiperWindowsCount: number;\r\n}\r\n\r\n@observer\r\nexport class ArenaGamesListsComponent extends OrbitComponentWithState {\r\n\r\n constructor(props: ArenaGamesListsComponentProps) {\r\n super(props);\r\n\r\n this.state = {\r\n swiperWindowsCount: INITIAL_BATCH_SIZE\r\n };\r\n }\r\n\r\n private _intersectionSpy: HTMLElement = null;\r\n\r\n private get _arena(): IArenaViewModel {\r\n return this.services.arenas.getArena(this.props.arenaName);\r\n }\r\n\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n //we need this reaction in order for the list to rerender upon login/logout\r\n this.reaction(() => this.services.user.isAuthorized,\r\n () => {\r\n this.setState({\r\n swiperWindowsCount: INITIAL_BATCH_SIZE\r\n });\r\n });\r\n }\r\n\r\n private _loadNextBatch(): void {\r\n const nextBatch = this._arena.getNextBatchSize(this.state.swiperWindowsCount);\r\n if(nextBatch === 0) {\r\n return;\r\n }\r\n\r\n this.setState({\r\n swiperWindowsCount: this.state.swiperWindowsCount + nextBatch\r\n }, () => {\r\n this._ensureIntersectionSpyIsOutsideOfViewPort();\r\n });\r\n }\r\n\r\n private _timeoutRef: any = null;\r\n private _ensureIntersectionSpyIsOutsideOfViewPort() {\r\n if(this._timeoutRef) {\r\n clearInterval(this._timeoutRef);\r\n }\r\n\r\n this._timeoutRef = setTimeout(() => {\r\n if(this._intersectionSpy) {\r\n const spyBoxRectangle = this._intersectionSpy.getBoundingClientRect();\r\n if (spyBoxRectangle.top >= 0 && spyBoxRectangle.bottom <= (this.services.window.innerHeight || document.documentElement.clientHeight)) {\r\n this._loadNextBatch();\r\n }\r\n }\r\n }, 250);\r\n }\r\n\r\n private _onIntersect = () => {\r\n this._loadNextBatch();\r\n }\r\n\r\n private _onCaptureIntersectionSpyRef = (element: HTMLElement) => {\r\n this._intersectionSpy = element;\r\n }\r\n\r\n private _onFailedToCreateIntersectionSpy = () => {\r\n // if it fails to create the IntersectionObserver we give up on lazy loading and render all lists\r\n this.setState({\r\n swiperWindowsCount: this._arena.listsCount\r\n });\r\n }\r\n\r\n get _windowsRange(): number[] {\r\n return Array.from({length: this.state.swiperWindowsCount}, (x, i) => i + 1);\r\n }\r\n\r\n render() {\r\n const range = this._windowsRange;\r\n this._ensureIntersectionSpyIsOutsideOfViewPort();\r\n return (\r\n \r\n {range.map(listWindowPosition => ())}\r\n\r\n \r\n \r\n );\r\n }\r\n}","export type CyCssClass =\r\n 'cy-main-screen' |\r\n 'cy-brand-switch-list' |\r\n 'cy-brand-switch-list-item' |\r\n 'cy-menu-link' |\r\n 'cy-spinner' |\r\n 'cy-game-iframe' |\r\n 'cy-single-game-regular-template' |\r\n 'cy-game-image-container' |\r\n 'cy-play-real-game-button' |\r\n 'cy-play-demo-game-button' |\r\n 'cy-modal' |\r\n 'cy-modal-content' |\r\n 'cy-reality-check-options' |\r\n 'cy-modal-dialog-buttons-area' |\r\n 'cy-welcome-component' |\r\n 'cy-balance-box' |\r\n 'cy-balance-box-amount' |\r\n 'cy-profile-box' |\r\n 'cy-cashier-button' |\r\n 'cy-clock' |\r\n 'cy-game-window' |\r\n 'cy-logout-link' |\r\n 'cy-burger-button' |\r\n 'cy-profile-box-login-button' |\r\n 'cy-menu-links-group' |\r\n 'cy-profile-picture' |\r\n 'cy-menu-item' |\r\n 'cy-game-navbar-close-button' |\r\n 'cy-game-navbar-clock' |\r\n 'cy-game-stripe-clock' |\r\n 'cy-game-navbar' |\r\n 'cy-open-responsible-gaming-button' |\r\n 'cy-game-navbar-game-name' |\r\n 'cy-game-navbar-session-id' |\r\n 'cy-game-navbar-switch-to-real-label' |\r\n 'cy-game-navbar-switch-to-demo-label' |\r\n 'cy-game-navbar-game-mode-toggle' |\r\n \"cy-game-info-page-button\" |\r\n 'cy-welcome-cashier-button' |\r\n 'cy-game-navbar-fullscreen-button' |\r\n 'cy-game-regulation-stripe' |\r\n 'cy-spain-game-limit-duration-select' |\r\n 'cy-spain-game-limit-confirmation-dialog-title' |\r\n 'cy-spain-game-limit-loss-limit-select' |\r\n 'cy-spain-game-limit-interval-reminder-select' |\r\n 'cy-spain-game-limit-restriction-period-select' |\r\n 'cy-header-regulation-data'|\r\n 'cy-self-exclusion-link' |\r\n 'cy-safe-to-play' |\r\n 'cy-responsible-gaming-button' |\r\n 'cy-balance-amount-mobile' |\r\n 'cy-balance-amount-pc' |\r\n 'cy-balance-container-mobile' |\r\n 'cy-bonus-and-cash-balance' |\r\n 'cy-cache-balance' |\r\n 'cy-bonus-balance' |\r\n 'cy-login-button-text' |\r\n 'cy-register-button' |\r\n 'cy-get-app-button' |\r\n 'cy-last-login-label' |\r\n 'cy-main-nav' |\r\n 'cy-navbar-mobile-wrapper' |\r\n 'cy-session-timer' |\r\n 'cy-last-login-value' |\r\n 'cy-open-game-intermediate-page' |\r\n 'cy-regulation-game-session-id' |\r\n 'cy-regulation-participation-ticket-id' |\r\n 'cy-italy-game-limit-default-amount-option' |\r\n 'cy-italy-game-limit-other-amount-option' |\r\n 'cy-italy-game-limit-other-amount-input' |\r\n 'cy-italy-game-limit-regulatory-value' |\r\n 'cy-sweden-panic-button' |\r\n 'cy-sweden-game-limit-button' |\r\n 'cy-sweden-self-test-button' |\r\n 'cy-modal-dialog-x-close-button' |\r\n 'cy-external-link-container' |\r\n 'cy-new-live-casino' |\r\n 'cy-live-casino' |\r\n 'cy-live-casino-widget-container' |\r\n 'cy-modal-main-title' |\r\n 'cy-italy-game-limit-message' |\r\n 'cy-italy-game-limit-message-section' |\r\n 'cy-italy-game-limit-error-section' |\r\n 'cy-dk-doga-icon' |\r\n 'cy-dk-stop-spillen-icon' |\r\n 'cy-dk-rofus-icon' |\r\n 'cy-clear-search-box-icon' |\r\n 'cy-found-games-list-box' |\r\n 'cy-no-found-games-box' |\r\n 'cy-found-games-more-box' |\r\n 'cy-found-games-more' |\r\n 'cy-search-game-item' |\r\n 'cy-user-cid' |\r\n 'cy-close-mobile-menu-icon' |\r\n 'cy-close-mobile-search-icon' |\r\n 'cy-game-search-input' |\r\n 'cy-search-title-box' |\r\n 'cy-game-search-box' |\r\n 'cy-suggested-links-suggested-games' |\r\n 'cy-lobby-header' |\r\n 'cy-lobby-header-title'|\r\n 'cy-navbar-right-container' |\r\n 'cy-homepage-header-arenas-container' |\r\n 'cy-homepage-top-banner-background' |\r\n 'cy-homepage-top-banner-divider' |\r\n 'cy-arena-box' |\r\n 'cy-header-arena-title' |\r\n 'cy-new-games-arena-badge' |\r\n 'cy-party-jackpot-in-game-container' |\r\n 'cy-party-jackpot-in-game-widget-amount' |\r\n 'cy-party-jackpot-welcome-popup' |\r\n 'cy-party-jackpot-welcome-popup-accept-button' |\r\n 'cy-party-jackpot-welcome-popup-decline-button' |\r\n 'cy-party-jackpot-welcome-popup-terms-and-conditions' |\r\n 'cy-reality-check-close-button' |\r\n 'cy-session-cooldown-popup' |\r\n 'cy-game-popup' |\r\n 'cy-game-popup-not-now-button' |\r\n 'cy-game-popup-open-real-button' |\r\n 'cy-game-popup-game-title' |\r\n 'cy-homepage-arenas-header' |\r\n 'cy-layout-wrapper-homepage'|\r\n 'cy-layout-wrapper-miniorbit-homepage' |\r\n 'cy-lobby-wrapper-miniorbit-arena' |\r\n 'cy-panic-button-germany' |\r\n 'cy-tooltip-click-here' |\r\n 'cy-modal-dialog-content' |\r\n 'cy-tooltip-box' |\r\n 'cy-history-more-details' |\r\n 'cy-details-history-header' |\r\n 'cy-useful-links-list' |\r\n 'cy-mini-orbit-useful-links-list' |\r\n 'cy-tooltip-close' |\r\n 'cy-remainder-select' |\r\n 'cy-more-info' |\r\n 'cy-free-play-indicator-button' |\r\n 'cy-deposit-button' |\r\n 'cy-user-menu-close-btn' |\r\n 'cy-free-play-voucher-container' |\r\n 'cy-free-play-games-container' |\r\n 'cy-free-play-game-item' |\r\n 'cy-drop-down-box' |\r\n 'cy-gaming-history-record' |\r\n 'cy-gaming-history-game-name' |\r\n 'cy-gaming-history-game-image' |\r\n 'cy-gaming-history-play-date' |\r\n 'cy-gaming-history-bet-value' |\r\n 'cy-gaming-history-winning-value' |\r\n 'cy-gaming-history-bankroll-value' |\r\n 'cy-gaming-history-free-play-winning' |\r\n 'cy-gaming-history-free-play-current-amount' |\r\n 'cy-gaming-history-amount-description' |\r\n 'cy-gaming-history-amount-value' |\r\n 'cy-gaming-history-round-id' |\r\n 'cy-gaming-history-session-id' |\r\n 'cy-gaming-history-participation-id' |\r\n 'cy-gaming-history-days-selector' |\r\n 'cy-gaming-history-big-win-message' |\r\n 'cy-gaming-history-loading-trigger' |\r\n 'cy-gaming-history-record' |\r\n 'cy-tipping-history-record' |\r\n 'cy-tipping-history-game-name' |\r\n 'cy-tipping-history-game-image' |\r\n 'cy-tipping-history-tip-id' |\r\n 'cy-tipping-history-play-date' |\r\n 'cy-tipping-history-tip-value' |\r\n 'cy-tipping-history-bankroll-value' |\r\n 'cy-tipping-history-days-selector' |\r\n 'cy-tipping-history-loading-trigger' |\r\n 'cy-tipping-history-amount-description' |\r\n 'cy-tipping-history-amount-value' |\r\n 'cy-skip-intermediate-page' |\r\n 'cy-orbit-swiper' |\r\n 'cy-swiper-button-prev' |\r\n 'cy-swiper-button-next' |\r\n 'cy-uk-malta-reality-check-title' |\r\n 'cy-live-casino-grid' |\r\n 'cy-live-casino-grid-item' |\r\n 'cy-live-casino-grid-item-infobar-game-seats-count-text' |\r\n 'cy-live-casino-grid-item-title' |\r\n 'cy-live-casino-grid-item-bet-interval' |\r\n 'cy-live-casino-grid-item-infobar-draws' |\r\n 'cy-live-casino-grid-item-infobar-dealer-name' |\r\n 'cy-live-casino-grid-item-infobar-bet-behind' |\r\n 'cy-live-casino-widget-amount' |\r\n 'cy-live-casino-widget-description' |\r\n 'cy-history-free-play-message' |\r\n 'cy-user-menu' |\r\n 'cy-games-list-title' |\r\n 'cy-games-title-text' |\r\n 'cy-orbit-swiper-wrapper' |\r\n 'cy-orbit-swiper-games-list' |\r\n 'cy-see-all-link' |\r\n 'cy-recently-played' |\r\n 'cy-help-mobile-link' |\r\n 'cy-filter-link' |\r\n 'cy-filters-mobile-button' |\r\n 'cy-apply-filters-button' |\r\n 'cy-clear-filters-button' |\r\n 'cy-side-menu' |\r\n 'cy-mini-orbit-side-menu-open-button' |\r\n 'cy-right-drawer' |\r\n 'cy-overlay' |\r\n 'cy-registration-popup-content' |\r\n 'cy-vertical-games-list' |\r\n 'cy-vertical-games-list-close-btn' |\r\n 'cy-lang-switcher-back' |\r\n 'cy-language-switcher-dropdown' |\r\n 'cy-lang-switch-label' |\r\n 'cy-lang-switch-current-lang' |\r\n 'cy-toaster-layout'|\r\n 'cy-modal-dialog' |\r\n 'cy-modal-dialog-header' |\r\n 'cy-modal-dialog-consumer-content' |\r\n 'cy-source-of-funds-open-chat-btn' |\r\n 'cy-language-switcher-button' |\r\n 'cy-cms-banner-container' |\r\n 'cy-temp-account-days-number' |\r\n 'cy-temp-account-message-body' |\r\n 'cy-omg-indicator' |\r\n 'cy-jackpot-widget' |\r\n 'cy-cgp-red-tiger-widget-click-detector' |\r\n 'cy-game-jackpot-amount' |\r\n 'cy-useful-links-section' |\r\n 'cy-useful-links-item' |\r\n 'cy-cgp-about-area' |\r\n 'cy-lobby-grid-arena' |\r\n 'cy-link-to-offer-banner-box' |\r\n 'cy-link-to-offer-wheel-of-fortune' |\r\n 'cy-link-to-offer-dialog-close-box' |\r\n 'cy-open-membership-deeplink' |\r\n 'cy-open-cashier-deeplink' |\r\n 'cy-link-to-offer-icon-box'|\r\n 'cy-games-grid-container' |\r\n 'cy-orbit-swiper-streaming-tile' |\r\n 'cy-orbit-swiper-streaming-tile-footer' |\r\n 'cy-cross-brand-link' |\r\n 'cy-arenas-header-button' |\r\n 'cy-live-video-item' |\r\n 'cy-players-like-you' |\r\n 'cy-because-you-played' |\r\n 'cy-game-title' |\r\n 'cy-lists-intersection-observer-target' |\r\n 'cy-inactivity-timeout-select' |\r\n 'cy-about-session-balance-amount' |\r\n 'cy-filters-games-list' |\r\n 'cy-full-safe-zone-root' |\r\n 'cy-game-net-position-value' |\r\n 'cy-game-duration-value' |\r\n 'cy-deposit-widget' |\r\n 'cy-deposit-widget-init-params' |\r\n 'cy-payments-redirect-focus' |\r\n 'cy-uk-tsr-main-text-box' |\r\n 'cy-withdraw-button' |\r\n 'cy-cashout-widget' |\r\n 'cy-cashout-widget-init-params' |\r\n 'cy-top-picks-list' |\r\n 'cy-arenas-header' |\r\n 'cy-logo' |\r\n 'cy-main-wrapper' |\r\n 'cy-clock-component' |\r\n 'cy-game-navbar-free-play-indicator' |\r\n 'cy-free-play-vouchers-container' |\r\n 'cy-header-menu-gift-button' |\r\n 'cy-overlay-content' |\r\n 'cy-user-menu-user-details' |\r\n 'cy-user-menu-my-account-button' |\r\n 'cy-state-select-approve-button' |\r\n 'cy-wrong-app-message' |\r\n 'cy-swiper-buttons' |\r\n 'cy-burnout-animation-container' |\r\n 'cy-tooltip-container' |\r\n 'cy-logo-container' |\r\n 'cy-navbar-container' |\r\n 'cy-user-profile-fp-indicator' |\r\n 'cy-free-play-indicator-dot' |\r\n 'cy-help-widget-app' |\r\n 'cy-header-help-button' |\r\n 'cy-form-post-form' |\r\n 'cy-michigan-responsible-gaming-button' |\r\n 'cy-free-to-play-icon' |\r\n 'cy-modal-dialog-link' |\r\n 'cy-italy-other-limit-radio' |\r\n 'cy-standard-limit-radio' |\r\n 'cy-jackpot-widget-collecting-amount' |\r\n 'cy-jackpot-widget-amount'|\r\n 'cy-transaction-history-init-params' |\r\n 'cy-transaction-history-widget' |\r\n 'cy-netherlands-ksa-button' |\r\n 'cy-vouchers-previous-button' |\r\n 'cy-vouchers-next-button' |\r\n 'cy-voucher-card-face' |\r\n 'cy-voucher-card-back' |\r\n 'cy-game-restriction-geo-location-primary-button' |\r\n 'cy-game-restriction-geo-location-secondary-button' |\r\n 'cy-header-control-center-button' |\r\n 'cy-control-center-mini-app' |\r\n 'cy-control-center-mini-widget-init-params' |\r\n 'cy-control-center-full-app' |\r\n 'cy-control-center-full-widget-init-params' |\r\n 'cy-header-state-selector-button' |\r\n 'cy-state-select-dropdown' |\r\n 'cy-state-select-other-button';\r\n\r\n\r\n\r\nexport function CyClass(className: CyCssClass): string {\r\n return className.toString();\r\n}\r\n\r\nexport function CySelector(className: CyCssClass): string {\r\n return '.' + className.toString();\r\n}\r\n\r\nexport function CySelectors(...classNames: CyCssClass[]): string {\r\n return classNames.map(clsName => '.' + clsName).join(' ');\r\n}\r\n","export const INSIDE_ORBIT_MENU_CONTAINER = 'inside-orbit-menu-container';","import styled from \"styled-components\";\r\n\r\nexport const XCloseButtonBox = styled.button`\r\n cursor: pointer;\r\n background-image: url(\"${props => props.theme.images.closeModalDialog.toString()}\");\r\n background-size: contain;\r\n background-repeat: no-repeat;\r\n background-position: center center;\r\n &:hover {\r\n opacity: 0.5;\r\n }\r\n`;","import {grayColors} from \"../../architecture/gray-colors\";\r\n\r\nexport const baseColors = {\r\n base01: \"#0ea79b\", //brandTeal\r\n base01Contrast: \"#19322f\", //blackTeal\r\n base01Dark: \"#8cd1ba\", //softTeal\r\n base01Light: \"#c3e3c7\", //lightGreen\r\n\r\n base02: \"#fcf6d5\", //brandYellow\r\n base02Contrast: \"#4c1723\", //blackRed\r\n base02Dark: \"#a4867c\", //tan\r\n base02Light: \"#eadfc3\", //sepia\r\n\r\n base03: \"#bc3554\", //pink\r\n base03Contrast: \"#fcf6d5\", //brandYellow,\r\n base03Dark: \"#b01619\", //brick\r\n base03Light: \"#ff014f\", //red\r\n\r\n base04: \"#ffd683\", //peach\r\n base04Contrast: \"#4c1723\", //blackRed\r\n base04Dark: \"#ffbe0b\", //papaya\r\n base04Light: \"#ffff00\", //yellow\r\n\r\n\r\n base05: \"#7aec37\", //inchWorm\r\n base05Contrast: \"#000000\",\r\n base05Dark: \"#135823\",\r\n base05Light: \"#d5ec37\", //pear //#87ee4b\r\n\r\n ...grayColors\r\n}","import {GameInfo} from '../games/game-info';\r\nimport React from \"react\";\r\nimport {Nullable} from \"../../../common/types/nullable-types\";\r\n\r\nexport interface IFiltersGroup {\r\n text: string;\r\n filters: ActiveFilter[];\r\n isMultiSelect: boolean;\r\n}\r\n\r\nexport interface ActiveFilter {\r\n readonly id: string;\r\n readonly text: string;\r\n readonly on: boolean;\r\n readonly isDynamic: boolean;\r\n}\r\n\r\n\r\n\r\nexport enum PcFilterIndicatorRenderingLocation {\r\n BelowArenaTitle,\r\n NextToArenaTitle\r\n}\r\nexport interface IPcFilterIndicatorRenderingOptions {\r\n reactElement: React.ReactElement;\r\n location: PcFilterIndicatorRenderingLocation;\r\n}\r\n\r\nexport interface IGamesFilterService {\r\n\r\n readonly filteredGamesMap: Record;\r\n readonly isFilterOn: boolean;\r\n readonly currentAppliedFiltersIds: string[];\r\n readonly isFilteringAvailable: boolean;\r\n isFilterApplied(filterId: string): boolean;\r\n applyFilters(filterIds: string[]): Promise;\r\n clearFilters(): Promise;\r\n renderMobileFiltersIndicator(): React.ReactElement;\r\n renderPCFiltersIndicator(): Nullable;\r\n showFiltersEditor(): void;\r\n}\r\n","export const FEATURE_GAME_RECOMMENDATIONS = 'GameRecommendations';\r\nexport const FEATURE_ROUTE_OVERWRITE = \"AbRouteOverwrite\";\r\nexport const FEATURE_DEPOSIT_WIDGET = \"DepositWidget\"; //used only on backend side\r\nexport const FEATURE_CASHOUT_WIDGET = \"CashoutWidget\"; //used only on backend side\r\nexport const FEATURE_TRANSACTION_HISTORY_WIDGET = \"TransactionHistoryWidget\";\r\nexport const FEATURE_NAME_SAFE_ZONE_TOGGLE = \"AbTestingSafeZoneToggle\";\r\nexport const FEATURE_NAME_LIST_ON_TOP = \"ListOnTop\";\r\nexport const FEATURE_NAME_PARTY_JACKPOTS = \"PartyJackpots\";\r\nexport const FEATURE_NAME_TOP_BANNER_REDESIGN = \"AbTopBannerRedesign\";\r\nexport const FEATURE_NAME_SEARCH_GAME_SUGGESTED_BY_AI = \"SearchGameSuggestionByAI\";\r\nexport const FEATURE_NAME_PLAYERS_LIKE_YOU_GAMES_LIST_TYPE_ID = \"PlayersLikeYouGamesListTypeId\";\r\nexport const FEATURE_NAME_VIDEO_LIVE_STREAM = \"LiveStreamEnabled\";\r\nexport const FEATURE_NAME_STATIC_VIDEO_LIST = \"StaticVideoListEnabled\";\r\nexport const FEATURE_NAME_AI_SORT_GAME_LIST = \"AbTestingAiSortGamesLists\";\r\nexport const FEATURE_NAME_BECAUSE_YOU_PLAYED_LIST = \"BecauseYouPlayedListEnabled\";\r\nexport const FEATURE_NAME_DISABLE_ANIMATED_GAME_ICONS = \"DisableAnimatedIcons\";\r\n","import { CASHIER_SESSION_TYPES } from './../const/cashier-session-types';\r\nimport { Check } from '@sparkware/app-utils';\r\n\r\nexport function isDepositSessionType(sessionType: number | string | null | undefined): boolean {\r\n if(Check.isNullOrUndefined(sessionType)) {\r\n return true;\r\n }\r\n\r\n sessionType = sessionType.toString();\r\n return sessionType === CASHIER_SESSION_TYPES.QUICK_DEPOSIT.toString()\r\n || sessionType === CASHIER_SESSION_TYPES.FULL_CASHIER.toString()\r\n || sessionType === CASHIER_SESSION_TYPES.DEPOSIT.toString();\r\n}\r\n\r\nexport function isCashoutSessionType(sessionType: number | string | null | undefined): boolean {\r\n // cashout should be open only when session type is defined and only if is withdrawal\r\n if(Check.isNullOrUndefined(sessionType)) {\r\n return false;\r\n }\r\n\r\n sessionType = sessionType.toString();\r\n return sessionType === CASHIER_SESSION_TYPES.WITHDRAWAL.toString();\r\n}","/**\r\n * Created by andreyna on 1/26/2017.\r\n */\r\nconst MY_ACCOUNT_POST_ACTIONS = {\r\n GAME: '1',\r\n CASHIER: '6',\r\n QUICK_DEPOSIT: '7',\r\n CASINO: '22',\r\n SPORT: '24',\r\n EXTERNAL_URL: '27',\r\n CLOSE: 'CloseMe',\r\n RICH: '56',\r\n\tINTERNAL_URL: '32'\r\n}\r\n\r\nexport {MY_ACCOUNT_POST_ACTIONS};","//This is the cookie name used in unified.\r\nexport const STATE_OF_RESIDENCE_COOKIE_KEY: string = 'userSelectedState';\r\n","import {OrbitComponent} from \"../base-components/orbit-component/orbit-component\";\r\nimport React from \"react\";\r\nimport {INSIDE_ORBIT_MENU_CONTAINER} from \"./inside-orbit-menu-container.consts\";\r\nimport {isInsideAutomation} from '../../../utils/automation-helpers';\r\n\r\n\r\nexport class InsideOrbitMenuContainerComponent extends OrbitComponent<{}> {\r\n render() {\r\n if(isInsideAutomation()) {\r\n return null;\r\n }\r\n return
\r\n }\r\n}","import React from 'react';\r\nimport {SdkComponent} from \"../sdk/sdk.component\";\r\nimport {ClockComponentBox} from \"./boxes/clock.component.box\";\r\nimport {OrbitComponent} from \"../base-components/orbit-component/orbit-component\";\r\nimport {AnyStyledComponent} from \"styled-components\";\r\nimport classNames from \"classnames\";\r\n\r\ninterface ClockComponentProps {\r\n format?: string\r\n box?: AnyStyledComponent | React.ComponentType;\r\n className?: string;\r\n}\r\n\r\nexport class ClockComponent extends OrbitComponent{\r\n render() {\r\n const sdkProps = {\r\n datetime: this.props.format\r\n };\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {ISdkComponentRenderer} from '../../services/sdk-component-factory/sdk-component-factory.service.interface';\r\nimport {observer} from 'mobx-react';\r\nimport styled, {AnyStyledComponent} from 'styled-components';\r\nimport classNames from 'classnames';\r\n\r\n\r\nexport interface SdkComponentProps {\r\n componentId: string;\r\n className?: string;\r\n sdkProps?: any;\r\n box?: AnyStyledComponent | React.ComponentType;\r\n onClick?: React.MouseEventHandler;\r\n}\r\n\r\n\r\nconst DefaultBox = styled.div``;\r\n\r\n@observer\r\nexport class SdkComponent extends OrbitComponent {\r\n\r\n private _elementRef: HTMLElement | null = null;\r\n private _captureElementRef = (element: HTMLElement | null) => {\r\n this._elementRef = element;\r\n this._renderSdkComponent();\r\n };\r\n\r\n\r\n private _sdkComponentRenderer: ISdkComponentRenderer | null = null;\r\n private get sdkComponentRenderer(): ISdkComponentRenderer {\r\n if(!this._sdkComponentRenderer) {\r\n this._sdkComponentRenderer = this.services.sdkComponentFactory.createComponentRenderer(this.props.componentId);\r\n }\r\n return this._sdkComponentRenderer;\r\n }\r\n\r\n private _disposeSdkComponent() {\r\n this.sdkComponentRenderer.dispose();\r\n }\r\n\r\n private _renderSdkComponent() {\r\n\r\n //first we destroy the old component if there is one.\r\n this._disposeSdkComponent();\r\n\r\n if(!this._elementRef) {\r\n return;\r\n }\r\n\r\n this.sdkComponentRenderer.render(this._elementRef, this.props.sdkProps);\r\n }\r\n\r\n componentDidUpdate(prevProps: SdkComponentProps, prevState: any, snapshot: any) {\r\n if(JSON.stringify(prevProps?.sdkProps) !== JSON.stringify(this.props.sdkProps)) {\r\n this._renderSdkComponent();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n super.componentWillUnmount();\r\n this._disposeSdkComponent();\r\n }\r\n\r\n render() {\r\n let Box: AnyStyledComponent | React.ComponentType = DefaultBox;\r\n if(this.props.box) {\r\n Box = this.props.box;\r\n }\r\n return (\r\n this._passOnClick(e)}>\r\n \r\n );\r\n }\r\n\r\n private _passOnClick(e: React.MouseEvent) {\r\n if(this.props.onClick)\r\n this.props.onClick(e);\r\n }\r\n}\r\n\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../../components/base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\nimport {MAIN_SCREEN} from '../../themes/css-global-classes';\r\nimport {CyClass} from \"../../../common/cy-classes\";\r\n\r\n@observer\r\nexport class MainScreenComponent extends OrbitComponent<{}> {\r\n\r\n render() {\r\n //TODO - main-screen class should be removed once we convert all the components to styled-components\r\n\r\n return (\r\n
\r\n {this.props.children}\r\n
\r\n );\r\n }\r\n}\r\n\r\n","import {grayColors} from \"../../architecture/gray-colors\";\r\n\r\nexport const baseColors = {\r\n base01: \"#d62a8c\",\r\n base01Contrast: \"#ffffff\",\r\n base01Dark: \"#bc257b\",\r\n base01Light: \"#da3f98\",\r\n\r\n base02: \"#310a53\",\r\n base02Contrast: \"#ffffff\",\r\n base02Dark: \"#462365\",\r\n base02Light: \"#6d5c80\",\r\n\r\n base03: \"#ff014f\",\r\n base03Contrast: \"#ffffff\",\r\n base03Dark: \"#e00146\",\r\n base03Light: \"#ff1a61\",\r\n\r\n\r\n base04: \"#d5ec37\",\r\n base04Contrast: \"#180529\",\r\n base04Dark: \"#7aec37\",\r\n base04Light: \"#ffff00\",\r\n\r\n ...grayColors\r\n}","export default {\r\n \"iso3\": \"eng\",\r\n \"iso2\": \"en\",\r\n \"text\": {\r\n \"100200\": \"We're sorry, this game seems to be restricted in your area.\",\r\n \"CURRENT_LANGUAGE\": \"English\",\r\n \"CIP8_TITLE\": \"888CASINO GAMES\",\r\n \"Login\": \"LOG IN\",\r\n \"WITHDRAW\": \"WITHDRAW\",\r\n \"CASHIER\": \"CASHIER\",\r\n \"Search\": \"Search your game...\",\r\n \"REWARDS\": \"Rewards\",\r\n \"HOME\": \"Home\",\r\n \"888_COM\": \"888.com\",\r\n \"888_POKER\": \"poker\",\r\n \"888_CASINO\": \"casino\",\r\n \"888_BINGO\": \"bingo\",\r\n \"888_SPORT\": \"sport\",\r\n \"SIGN_UP\": \"SIGN UP\",\r\n \"DEPOSIT_SIDE_MENU\": \"Deposit\",\r\n \"MY_ACCOUNT\": \"MY ACCOUNT\",\r\n \"BALANCE\": \"Your Balance\",\r\n \"MINI_ORBIT_BALANCE\": \"Balance:\",\r\n \"LOGOUT\": \"Log out\",\r\n \"GREETING_MORNING\": \"Good Morning\",\r\n \"GREETING_AFTERNOON\": \"Good Afternoon\",\r\n \"GREETING_EVENING\": \"Good Evening\",\r\n \"GREETING_NIGHT\": \"Good Night\",\r\n \"GREETING_DEFAULT\": \"Hello\",\r\n \"MRS_TITLE\": \"Mrs.\",\r\n \"MR_TITLE\": \"Mr.\",\r\n \"SLOTS\": \"Slots\",\r\n \"LOBBY\": \"Lobby\",\r\n \"SLOTS_JACKPOTS\": \"Slots & Jackpots\",\r\n \"CARD_TABLE_GAMES\": \"Card & Table Games\",\r\n \"ALL_SDM_GAMES\": \"All SDM Games\",\r\n \"CASINO_GAMES\": \"Casino Games\",\r\n \"LIVE_CASINO\": \"Live Casino\",\r\n \"888_EXCLUSIVE_GAMES\": \"888 Exclusive Games\",\r\n \"PROMOTIONS\": \"Promotions\",\r\n \"888SPORT\": \"888sport\",\r\n \"VIP_CLUB\": \"VIP Club\",\r\n \"PWA_INSTALL\": \"Install App\",\r\n \"PWA_ADD_TO_HOME_SCREEN\": \"Add to Home Screen\",\r\n \"PWA_TAP\": \"Tap\",\r\n \"PWA_QUICK_LAUNCH\": \"Quick launch {BRAND}\",\r\n \"GETTING_STARTED\": \"Getting Started\",\r\n \"BANKING\": \"Banking\",\r\n \"VIP\": \"VIP\",\r\n \"BLOG\": \"Blog\",\r\n \"TODAY_WINNERS\": \"Today’s Winners\",\r\n \"SUPPORT_ID_MESSAGE\": \"Support ID\",\r\n \"DEPOSIT\": \"DEPOSIT\",\r\n \"CHOOSE_LANG\": \"Choose your language:\",\r\n \"CHOOSE_COUNTRY\": \"Choose your country:\",\r\n \"SIGN_IN_PLAY\": \"SIGN IN & PLAY\",\r\n \"NEW\": \"New\",\r\n \"JACKPOT\": \"Jackpot\",\r\n \"EXCLUSIVE\": \"888 Exclusive\",\r\n \"SI_EXCLUSIVE\": \"SI Exclusive\",\r\n \"1-25_LINES\": \"1-25 Lines\",\r\n \"25+_LINES\": \"25+ Lines\",\r\n \"INFO_TITLE_ARENA_888_EXCLUSIVE_GAMES\": \"Exclusive Games\",\r\n \"INFO_TEXT_ARENA_888_EXCLUSIVE_GAMES\": \"888casino is home to an exclusive selection of online casino games. Play the hottest online slots from Section8, and enjoy fantastic casino games like online Roulette, online Blackjack and Video Poker. Our exclusive casino games also include Baccarat, Keno, and instant win games. Let’s get ready for some casino fun!\",\r\n \"INFO_TITLE_ARENA_SLOTS\": \"Online Slots\",\r\n \"INFO_TITLE_ARENA_VIDEO_SLOTS\": \"Video Slots\",\r\n \"INFO_TEXT_ARENA_SLOTS\": \"Choose from over 1000 of the best quality slot games, anywhere online. Enjoy a wide variety of features such as Bonus Games, Expanding Wilds, Free Spins and Huge Jackpots. Hunt for treasure in ancient Egypt, uncover the Leprechaun’s coveted pot o’ gold or spin for big wins on classic fruit machines. Whatever tickles your fancy, we’ve got it!\",\r\n \"INFO_TITLE_ARENA_CASINO\": \"Casino Games\",\r\n \"INFO_TEXT_ARENA_CASINO\": \"The cards are shuffled, the wheel is spinning and your seat is waiting. Play only the very best card and table games online. Choose from a variety of Roulette games including European, American, Low, High and Super Stakes. Prefer Blackjack? Play multiple hands at the same time. From Texas Hold’em to Caribbean, be sure to find your poker preference!\",\r\n \"INFO_TITLE_ARENA_ROULETTE\": \"Roulette Online\",\r\n \"INFO_TEXT_ARENA_ROULETTE\": \"Try to hit your lucky numbers at one of 888casino’s premier online roulette tables. Choose from our wide variety of top roulette game styles including European, American and French. Whether you’re a High Roller or prefer low stakes, there’s a roulette game for you. There’s nothing like the thrill of waiting for that ball to land when you play roulette!\",\r\n \"INFO_TITLE_ARENA_NEW_GAMES\": \"New Games\",\r\n \"INFO_TEXT_ARENA_NEW_GAMES\": \" \",\r\n \"INFO_TITLE_ARENA_BLACKJACK\": \"Online Blackjack\",\r\n \"INFO_TEXT_ARENA_BLACKJACK\": \"The cards are shuffled and your seat is waiting for some of the best online blackjack games you’ll find! Play blackjack at 888casino on your own terms with Super Stakes, Side Bets and more. One hand of blackjack not enough for you? Play our Multihand Blackjack game for three chances to hit 21, at the same time!\",\r\n \"INFO_TITLE_ARENA_VIDEO_POKER\": \"Video Poker Online\",\r\n \"INFO_TEXT_ARENA_VIDEO_POKER\": \"If you think you’re a real poker pro then you’ve come to the right casino! Go for that elusive Royal Flush in our various types of video poker games. If you’re into 5-card draw or prefer the ever-popular Texas Hold’em then you’re sure to find your new favourite online video poker game at 888casino.\",\r\n \"INFO_TITLE_ARENA_SCRATCH_CARDS\": \"Scratch Cards Online\",\r\n \"INFO_TEXT_ARENA_SCRATCH_CARDS\": \"There’s nothing like a quick win on one of 888casino’s exciting scratch card games. Ideal for some strategy-free fun, pick an online scratch card in the theme of your choice. Reveal your Irish riches or discover pharaoh’s fortune, it’s up to you. Simply choose the amount you want to bet and see if you’re a scratch card winner!\",\r\n \"INFO_TITLE_ARENA_JACKPOTS\": \"Jackpots\",\r\n \"INFO_TEXT_ARENA_JACKPOTS\": \"Jackpot games are bubbling over with unbelievably huge cash prizes. Play with our slots games and you’re in lots of joy and fun. These include daily jackpots, progressive jackpots, and pooled jackpots, you are one click away from the absolute perfect play; enjoy jackpot slots games like Millionaire Genie, Mermaid’s Millions, or Noche De Los Muertos. Click it to pick it. Spin it to try your luck to win it. The fun starts NOW!\",\r\n \"INFO_TITLE_ARENA_ALL_GAMES\": \"All Games\",\r\n \"VIRTUAL_SPORTS\": \"Virtual Sports\",\r\n \"INFO_TITLE_ARENA_VIRTUAL_SPORTS\": \"Virtual Sports\",\r\n \"INFO_TEXT_ARENA_VIRTUAL_SPORTS\": \"Virtual Sports brings you a wide variety of computer-generated sports games that you’ll be able to bet on. So, whether football's your thing, or darts, or anything else, you can be sure to find what you're looking for. Enter the world of virtual betting today.\",\r\n \"PROMO_ELIGIBLE_GAMES\": \"Promo Eligible Games\",\r\n \"NETENT_SLOTS\": \"NETENT SLOTS\",\r\n \"BONUS\": \"Bonus\",\r\n \"FREE_SPINS\": \"Free Spins\",\r\n \"CLEAR_ALL\": \"Clear All\",\r\n \"FILTER\": \"Filter\",\r\n \"APPLY\": \"Apply\",\r\n \"ROULETTE\": \"Roulette\",\r\n \"ELITE_LOUNGE\": \"Elite Lounge\",\r\n \"BLACKJACK\": \"Blackjack\",\r\n \"PROGRESSIVE_SLOTS\": \"Progressive Slots\",\r\n \"BACCARAT\": \"Baccarat\",\r\n \"POKER\": \"Poker\",\r\n \"KENO\": \"Keno\",\r\n \"HIGH_LIMIT\": \"High Limit\",\r\n \"LANGUAGES\": \"Languages\",\r\n \"HELP\": \"Help\",\r\n \"LIVE_CHAT\": \"Live Chat\",\r\n \"DEMO\": \"Demo\",\r\n \"PLAY\": \"Play\",\r\n \"NOT_NOW\": \"Not now\",\r\n \"MAYBE_LATER\": \"Maybe later\",\r\n \"NO_THANKS\": \"No, thanks\",\r\n \"LETS_PLAY\": \"Let's Play!\",\r\n \"GOT_IT\": \"GOT IT!\",\r\n \"LIMITS\": \"Limits\",\r\n \"LIVE\": \"Live\",\r\n \"SEE_ALL\": \"See All\",\r\n \"WINNING_IN_THE_LAST_30_DAYS\": \"Winning in the last 30 days\",\r\n \"TOTAL_JACKPOTS\": \"Total Jackpots\",\r\n \"TOP_GAMES\": \"TOP SLOT GAMES\",\r\n \"TOP_PROGRESSIVES\": \"TOP PROGRESSIVES\",\r\n \"LIVE_CASINO_TABLES\": \"SELECTED LIVE TABLES\",\r\n \"TOP_CASINO_GAMES\": \"TOP CASINO GAMES\",\r\n \"JACKPOTS\": \"JACKPOTS\",\r\n \"RECENTLY_PLAYED\": \"Recently Played\",\r\n \"BECAUSE_YOU_PLAYED\": \"Because You Played {gameName}\",\r\n \"MINIMUM_BET\": \"Min Bet\",\r\n \"MAXIMUM_BET\": \"Max Bet\",\r\n \"PAYLINES\": \"Paylines\",\r\n \"BONUS_GAME\": \"Bonus game\",\r\n \"MAX_PER_SPOT\": \"Max Per Spot\",\r\n \"MULTIPLAYER\": \"Multiplayer\",\r\n \"MULTIHAND\": \"Multihand\",\r\n \"DECKS\": \"Decks\",\r\n \"SIDE_BETS\": \"Side Bets\",\r\n \"ABOUT\": \"About\",\r\n \"GAME_JACKPOT\": \"Game Jackpot\",\r\n \"SLOT_GAMES\": \"Slot Games\",\r\n \"CARD_AND_TABLE_GAMES\": \"Card & Table Games\",\r\n \"JACKPOT_GAMES\": \"Jackpot Games\",\r\n \"JACKPOT_CENTRAL\": \"Jackpot Central\",\r\n \"OTHER\": \"Other\",\r\n \"POKER_GAMES\": \"POKER GAMES\",\r\n \"YOUR_SEARCH_DID_NOT_MATCH_ANY_GAMES\": \"Your search did not match any games\",\r\n \"PREMIER_ONLINE_LIVE_CASINO\": \"Premier live casino\",\r\n \"All_SLOTS\": \"All Slots\",\r\n \"All_CARD_AND_TABLE_GAMES\": \"All Card & Table Games\",\r\n \"USEFUL_LINKS\": \"Useful links\",\r\n \"PRIVACY_POLICY\": \"Privacy Policy\",\r\n \"USER_AGREEMENT\": \"User Agreement\",\r\n \"RESPONSIBLE_GAMBLING\": \"Responsible Gambling\",\r\n \"SAFE_ZONE\": \"Control Center\",\r\n \"CONTACT\": \"Contact Us\",\r\n \"COMP_POINTS\": \"Comp Points\",\r\n \"GAMING_HISTORY\": \"Gaming History\",\r\n \"TIPPING_HISTORY\": \"Tipping History\",\r\n \"TIPPING_HISTORY_AMOUNT\": \"Tip Amount\",\r\n \"CASHIER_HISTORY\": \"Cashier History\",\r\n \"GAMING_SESSION_HISTORY\": \"Session History\",\r\n \"MY_CHALLENGES\": \"My Challenges\",\r\n \"SCRATCHCARDS\": \"SCRATCH CARDS\",\r\n \"QUICK_LINKS_TITLE\": \"QUICK LINKS\",\r\n \"NO_SEARCH_RESULTS\": \"No Search Results Found...\",\r\n \"SEARCH_YOUR_GAME\": \"Search for games...\",\r\n \"SEARCH_RESULTS_TITLE\": \"TOP SEARCH RESULTS\",\r\n \"SUGGESTED_GAMES\": \"SUGGESTED GAMES\",\r\n \"SUGGESTED_CATEGORIES\": \"SUGGESTED CATEGORIES\",\r\n \"BACK\": \"Back\",\r\n \"HIT_THE_JACKPOT\": \"Hit The Jackpot\",\r\n \"OUR_JACKPOTS\": \"OUR JACKPOTS\",\r\n \"MY_CLUB\": \"My Club\",\r\n \"LOW_ROLLERS\": \"Low Rollers\",\r\n \"CASH_BALANCE\": \"Cash Balance\",\r\n \"BONUS_BALANCE\": \"Bonus Balance\",\r\n \"YOU_MAY_LIKE\": \"YOU MAY LIKE\",\r\n \"TOP_PICKS_FOR\": \"TOP PICKS FOR {USERNAME}\",\r\n \"888CLUB\": \"888club\",\r\n \"888POKER\": \"888poker\",\r\n \"BACK_TO_888POKER\": \"Back to 888poker\",\r\n \"BACK_TO_888SPORT\": \"Back to 888sport\",\r\n \"VIDEO_POKER_GAMES\": \"Video Poker Games\",\r\n \"VIDEO_POKER\": \"Video Poker\",\r\n \"SEO_IMAGE_CATEGORIES_TITLE\": \"Best {categoryName} experience at 888casino\",\r\n \"SEO_IMAGE_CATEGORIES_ALT\": \"online casino - {categoryName}\",\r\n \"SEO_IMAGE_GAME_TITLE\": \"{gameName} {categoryName}\",\r\n \"TOP_NETENT_SLOTS\": \"TOP NETENT SLOTS\",\r\n \"PLAY_50_FREESPINS\": \"PLAY 50 FREESPINS\",\r\n \"HOLIDAY_GAMES\": \"HOLIDAY GAMES\",\r\n \"ORIGINALS\": \"888 Originals\",\r\n \"RELATED_GAMES\": \"BECAUSE YOU PICKED: {gameName}\",\r\n \"DAILY_JACKPOT_GAMES\": \"Daily Jackpot Games\",\r\n \"LOW_STAKES\": \"Low Stakes\",\r\n \"TOP_EXCLUSIVE_SLOTS\": \"Top Exclusive Slots\",\r\n \"TOP_10_IN_YOUR_COUNTRY\": \"Top 10 in your country\",\r\n \"NEW_GAMES_LIST_TITLE\": \"New Online Casino Games\",\r\n \"NEW_GAMES\": \"New Games\",\r\n \"DAILY_JACKPOT\": \"Daily Jackpot\",\r\n \"PROGRESSIVE_JACKPOT\": \"Progressive Jackpot\",\r\n \"777_JUKEBOX\": \"777 Jukebox\",\r\n \"RETRO_SLOTS\": \"Retro Slots\",\r\n \"SELECTED_LIVE_CASINO_TABLES\": \"Selected Live Casino Tables\",\r\n \"BLACKJACK_GAMES\": \"Blackjack Games\",\r\n \"ROULETTE_GAMES\": \"Roulette Games\",\r\n \"DROP_THE_JACKPOT\": \"Drop The Jackpot\",\r\n \"777_LIVE\": \"777 Live\",\r\n \"ROULETTE_&_BLACKJACK\": \"Roulette & Blackjack\",\r\n \"SCRATCH_CARDS\": \"Scratch Cards\",\r\n \"CLASSIC_SLOTS\": \"Classic Slots\",\r\n \"777_FAVORITES\": \"777 Favorites\",\r\n \"FEATURED\": \"Featured\",\r\n \"LOW_VOLATILITY\": \"Low Volatility\",\r\n \"HIGH_VOLATILITY\": \"High Volatility\",\r\n \"IN_HOUSE_SLOTS\": \"In House Slots\",\r\n \"MORE_GAMES\": \"More Games\",\r\n \"ALL_JACKPOTS\": \"All Jackpots\",\r\n \"ONLINE_JACKPOTS\": \"Online Jackpots\",\r\n \"All_GAMES\": \"All Games\",\r\n \"POPULAR_GAMES_TITLE\": \"Popular Games\",\r\n \"MORE\": \"More\",\r\n \"HOMEPAGE-SPOOKY_SPINS\": \"Spooky Spins\",\r\n \"THE_DAILY_JACKPOT\": \"888 Daily Jackpot\",\r\n \"HIGH_NOON_JACKPOT\": \"High Noon Jackpot\",\r\n \"TWILIGHT_JACKPOT\": \"Twilight Jackpot\",\r\n \"POWER8_JACKPOT\": \"POWER 8 JACKPOT\",\r\n \"RED_TIGER_DAILY_JACKPOT\": \"Red Tiger's Daily Jackpot\",\r\n \"RED_TIGER_HOURLY_JACKPOT\": \"Red Tiger Hourly Jackpot\",\r\n \"PROGRESSIVE_JACKPOTS\": \"Progressive Jackpots\",\r\n \"INSTANT_GAMES\": \"Instant Win Games\",\r\n \"INSTANT_WIN_GAMES_ARENA\": \"Instant Win Games\",\r\n \"ALL_INSTANT_WIN_GAMES\": \"All Instant Win Games\",\r\n \"INFO_TITLE_ARENA_INSTANT_WIN_GAMES\": \"Instant Win Games\",\r\n \"INFO_TEXT_ARENA_INSTANT_WIN_GAMES\": \"Instant Win Games are so much FUN! Get ready to scratch & match with the best scratch cards under the sun. We’ve got many games for you to enjoy like Volcano Eruption, Panda Mania, and Merlin’s Millions. Short on time? No worries, try our Keno and Bingo games, or sizzling-hot new games like Chicken Extreme, 7-UP, and Epic Gems. It’s a party and you’re invited. Instant Win Games are really easy to play. No skills needed – just play & win!\",\r\n \"MEGAWAYS_TITLE\": \"Megaways™\",\r\n \"TRENDING_SLOTS\": \"TRENDING SLOTS\",\r\n \"EXCLUSIVE_LIVE_TABLES\": \"EXCLUSIVE LIVE TABLES\",\r\n \"BLACKJACK_AND_ROULETTE_GAMES\": \"BLACKJACK & ROULETTE GAMES\",\r\n \"ALL_888_EXCLUSIVE_GAMES\": \"ALL 888 EXCLUSIVE GAMES\",\r\n \"LIVE_ARENA_TABLE_IS_CLOSED_MESSAGE\": \"Table Opens at\",\r\n \"LIVE_CASINO_TABLE_FULL_PC\": \"Table Full\",\r\n \"LIVE_CASINO_TABLE_FULL_MOBILE\": \"Full\",\r\n \"GAME_SHOWS\": \"Game Shows\",\r\n \"TOP_EVO_GAMES\": \"Top Games\",\r\n \"FOR_YOU_GAMES\": \"For You\",\r\n \"AB_TEST_AI_LIST_TITLE_D1_V1\": \"Top Rated Games for {USERNAME}\",\r\n \"AB_TEST_AI_LIST_TITLE_D1_V2\": \"Recommended games for {USERNAME}\",\r\n \"AB_TEST_AI_LIST_TITLE_D3_V1\": \"Selected Games for {USERNAME}\",\r\n \"AB_TEST_AI_LIST_TITLE_D3_V2\": \"Chosen Games for {USERNAME}\",\r\n \"AB_TEST_AI_LIST_TITLE_D3_V3\": \"Exclusive games for {USERNAME}\",\r\n \"AB_TEST_AI_LIST_TITLE_D3_V4\": \"Recommended games for you\",\r\n \"LETS_PLAY_MONOPOLY\": \"Let's play Monopoly\",\r\n \"TOP_TRENDING_SLOTS\": \"Top Trending Slots\",\r\n \"TOP_PAYING_SLOTS\": \"Top Paying Slots\",\r\n \"RECENTLY_ADDED\": \"Recently Added\",\r\n \"TOP_SLOTS\": \"Top Slots\",\r\n \"REAL_MONEY_GAME\": \"This game can be played with cash balance only.\",\r\n \"CANT_CONNECT_ERROR_TITLE\": \"Can't connect\",\r\n \"CANT_CONNECT_ERROR_MESSAGE\": \"Sorry, something went wrong on our end.\",\r\n \"RETRY\": \"Retry\",\r\n \"TRANSACTION_HISTORY\": \"Transaction History\",\r\n \"BRAND_NEW\": \"Brand New\",\r\n \"HOTTEST_NEW_GAMES\": \"Hottest new games\",\r\n \"SINCE_LAST_MONTH\": \"Since Last Month\",\r\n \"SAFE_GAMBLING_TOOLTIP\": \"Safer Gambling Tools & Information\",\r\n \"PLAYER_LIMITS_TOASTER_TITLE\": \"Your Limits\",\r\n \"PLAYER_LIMITS_TOASTER_DAILY_LABEL\": \"Daily\",\r\n \"PLAYER_LIMITS_TOASTER_WEEKLY_LABEL\": \"Weekly\",\r\n \"PLAYER_LIMITS_TOASTER_MONTHLY_LABEL\": \"Monthly\",\r\n \"PLAYER_LIMITS_TOASTER_DEPOSIT_LABEL\": \"Deposit\",\r\n \"PLAYER_LIMITS_TOASTER_PLAY_TIME_LABEL\": \"Play Time\",\r\n \"PLAYER_LIMITS_TOASTER_BANKROLL_LABEL\": \"Bankroll\",\r\n \"PLAYER_LIMITS_TOASTER_HOUR_LABEL\": \"hour\",\r\n \"GAME_POPUP_TITLE\": \"Welcome back\",\r\n \"GAME_POPUP_SUB_TITLE\": \"Suggested game\",\r\n \"GAME_POPUP_DESCRIPTION\": \"Your 888slots activity:\",\r\n \"GAME_POPUP_GAME_UNAVAILABLE\": \"Sorry, this game is unavailable\",\r\n \"GAME_POPUP_MAY_LIKE\": \"You may also like\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_TITLE\": \"HOORAY! You’re about to play a {partyJackpotName} game!\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_TITLE_ALL_LIVE_CASINO\": \"LUCKY YOU!\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_SUB_TITLE_ALL_LIVE_CASINO\": \"All Live Casino games are part of our HOT NEW jackpot!\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_DESCRIPTION\": \"The Jackpot can be won on any cash balance bet.\\nAll Party Jackpot prizes are bonuses, which are instantly credited to your account.\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_DESCRIPTION_REAL\": \"Any real money bet on a Party Jackpot game could win a cash prize!\\nThe Party Jackpot will pay daily!\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_DESCRIPTION_REAL_HOURLY\": \"Any real money bet on a Party Jackpot game could win a cash prize!\\nThe Party Jackpot will pay hourly between {startHour} to {endHour}\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_DESCRIPTION_REAL_HOURLY_ALL_LIVE_CASINO\": \"Real money bets on any Live Casino game could win the jackpot!\\nThe Live Casino Jackpot must pay every hour, {startHour} - {endHour}, and is fully funded by us.\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_BOTTOM_NOTE\": \"Bonus: wager 30x (varies by game type), 90 day expiry, wins capped at $500, valid for selected games\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_BOTTOM_NOTE_REAL\": \"Funded players only\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_TERMS_AND_CONDITIONS_APPLY\": \"T&C Apply.\",\r\n \"PARTY_JACKPOT_WIN_TOASTER_TITLE\": \"The {jackpotName} just dropped at {winAmount}!\",\r\n \"PARTY_JACKPOT_WIN_TOASTER_SUBTITLE\": \"Didn’t win? No worries!\\n This jackpot drops every hour, {startHour}-{endHour}.\",\r\n \"PARTY_JACKPOT_WIN_POPUP_YOU_WON\": \"YOU WON THE {jackpotName}\",\r\n \"PARTY_JACKPOT_WIN_POPUP_AWESOME\": \"AWESOME!\",\r\n \"PARTY_JACKPOT_OUT_OF_CASH_TOASTER_TITLE\": \"Top up to play the Live Casino Jackpot\",\r\n \"PARTY_JACKPOT_OUT_OF_CASH_TOASTER_SUBTITLE\": \"The Live Casino Jackpot can only be won with real money\",\r\n \"JACKPOT-WIDGET-MUST-PAY\": \"Must Pay within:\",\r\n \"JACKPOT-WIDGET-DROPS-SOON\": \"DROPS SOON!\",\r\n \"JACKPOT-WIDGET-STARTS-SOON\": \"STARTS SOON\",\r\n \"JACKPOT-WIDGET-NEXT-JACKPOT\": \"Launching Next Jackpot\",\r\n \"JACKPOT-WIDGET-LAST-WIN\": \"Last win\",\r\n \"IN-GAME-WIDGET-STARTS-SOON\": \"Starts Soon\",\r\n \"FREEPLAY_INDICATOR\": \"FreePlay\",\r\n \"OMG_INDICATOR\": \"Notifications\",\r\n \"USER_LIKE_YOU\": \"TOP {topNumber} IN {countryName}\",\r\n \"YOUR_COUNTRY\": \"Your country\",\r\n \"SOURCE_OF_FUNDS_TITLE\": \"Important Info Needed\",\r\n \"SOURCE_OF_FUNDS_MESSAGE1\": \"Hi, welcome back!\",\r\n \"SOURCE_OF_FUNDS_MESSAGE2\": \"We just need some info from you. It won't take long at all!\",\r\n \"SOURCE_OF_FUNDS_OPEN_CHAT_BTN\": \"LET'S CHAT\",\r\n \"CLOSE\": \"Close\",\r\n \"LIVE_STREAM_WATCH_TIME_REACHED\": \"Ready to dive in and play?\",\r\n \"LIVE_STREAM_VIDEO_LOADING\": \"Loading…\",\r\n \"PLAY_NOW\": \"PLAY NOW\",\r\n \"CASINO\": \"CASINO\",\r\n \"UK_TSR_CONTINUE_OPT\": \"Continue\",\r\n \"UK_TSR_REVIEW_REMINDERS_OPT\": \"Review reminders\",\r\n \"UK_TSR_LOGOUT_OPT\": \"Logout\",\r\n \"UK_TSR_RESUME_GAME_OPT\": \"Resume Game\",\r\n \"UK_TSR_STOP_REMINDERS_OPT\": \"Stop all game time reminders\",\r\n \"UK_TSR_HISTORY_OPT\": \"View History\",\r\n \"UK_TSR_CLOSE_GAME_OPT\": \"Close Game\",\r\n \"TSR_CONFIRM\": \"OK\",\r\n \"TSR_SESSION_TIME_TEXT\": \"You have been logged in for:\",\r\n \"TSR_SUBTEXT\": \"What would you like to do?\",\r\n \"TSR_TITLE\": \"Time Spent Reminder\",\r\n \"TSR_MENU_LINK_LABEL\": \"Time Spent Reminder\",\r\n \"PAYMENTS_REDIRECT_FOCUS_TITLE\": \"Deposit in process\",\r\n \"PAYMENTS_REDIRECT_FOCUS_TEXT\": \"Your {mftName} screen is still open\",\r\n \"PAYMENTS_REDIRECT_FOCUS_CTA\": \"Continue\",\r\n \"VOLATILE_SLOTS\": \"Volatile Slots\",\r\n \"VOLATILE_GAMES\": \"Volatile Games\",\r\n \"HIGH_VOLATILITY_SLOTS\": \"High Volatility Slots\",\r\n \"LOW_VOLATILITY_SLOTS\": \"Low Volatility Slots\",\r\n \"STATE_POPUP_TITLE\": \"Verify Your Location\",\r\n \"STATE_POPUP_HEADER\": \"Please confirm that you're located in {THE_STATE}\",\r\n \"STATE_POPUP_OUTSIDE_TEXT\": \"I'm located outside of {THE_STATE}\",\r\n \"STATE_POPUP_CONFIRM\": \"Confirm\",\r\n \"BURNOUT_MESSAGE_LINE_1\": \"SURPRISE!\",\r\n \"BURNOUT_MESSAGE_LINE_2\": \"YOU GOT A BONUS!\",\r\n \"CONGRATS\": \"Congrats!\",\r\n \"YOUR_FP_ARE_WAITING\": \"Your FreePlay are waiting for you here\",\r\n \"EXIT_POPUP_TITLE\": \"We thought you’d like\",\r\n \"DONT_SHOW_AGAIN_TEXT\": \"Don't show again\",\r\n \"DAILY_DEAL_WIDGET_STRIP\": \"I GIORNALIERI\",\r\n \"GAMING_HISTORY_NO_RECORDS\": \"We were unable to locate any history records of your games\",\r\n \"GAMING_HISTORY_LAST_PAGE\": \"No more history records found.\",\r\n \"GAMING_HISTORY_BET\": \"Bet\",\r\n \"GAMING_HISTORY_WINNINGS\": \"Winnings\",\r\n \"GAMING_HISTORY_WINNINGS_BONUS_CAP\": \"Winnings*\",\r\n \"GAMING_HISTORY_BANKROLL\": \"Bankroll\",\r\n \"GAMING_HISTORY_MORE_DETAILS\": \"More Details\",\r\n \"GAMING_HISTORY_MORE_DETAILS_NOT_AVAILABLE_PC\": \"Available only on Mobile devices\",\r\n \"GAMING_HISTORY_MORE_DETAILS_NOT_AVAILABLE_MOBILE\": \"Available only on PC\",\r\n \"GAMING_HISTORY_FREE_PLAY_BET\": \"Bet*\",\r\n \"GAMING_HISTORY_FREE_PLAY_WINNINGS\": \"Winnings*\",\r\n \"GAMING_HISTORY_FREE_PLAY_REWARD_WINNINGS\": \"Reward winnings\",\r\n \"GAMING_HISTORY_FREE_PLAY_REWARD_BANKROLL\": \"Reward bankroll\",\r\n \"GAMING_HISTORY_FREE_PLAY_INDICATION\": \"*Played with rewards\",\r\n \"GAMING_HISTORY_FREE_PLAY_MAX_CUP_INDICATION\": \"*Maximum win\",\r\n \"GAMING_HISTORY_BIG_WIN_TAX_INDICATION\": \"Pending IRS form W-2G completion\",\r\n \"GAMING_HISTORY_DAYS_INTERVAL\": \"Last {numberOfDays} Days\",\r\n \"GAME_PARTICIPATION_ID\": \"Participation ID: {participationID}\",\r\n \"GAME_SESSION_ID\": \"Session ID: {sessionID}\",\r\n \"HISTORY_GAME_SESSION_TOTAL_BETS\": \"Total bets\",\r\n \"HISTORY_GAME_SESSION_TOTAL_WINNINGS\": \"Total wins\",\r\n \"HISTORY_GAME_SESSION_BALANCE\": \"Session Balance\",\r\n \"FILTER_GROUP_VENDOR_TYPE\": \"Vendor Name\",\r\n \"GAME_WINDOW_VENDOR_SESSION_ID\": \"Session ID: {sessionID}\",\r\n \"GAME_WINDOW_MODE_REAL_LABEL\": \"Real Money\",\r\n \"GAME_WINDOW_MODE_DEMO_LABEL\": \"Demo\",\r\n \"FREE_PLAY_VOUCHER_NAME_FPV\": \"FreePlay\",\r\n \"FREE_PLAY_VOUCHER_NAME_FSV\": \"Free Spins\",\r\n \"FREE_PLAY_VOUCHER_NAME_JPFPV\": \"Jackpot FreePlay\",\r\n \"FREE_PLAY_VOUCHER_NAME_JPFSV\": \"Jackpot Spins\",\r\n \"FREE_PLAY_VOUCHER_BALANCE_PREFIX\": \"Remaining:\",\r\n \"FREE_PLAY_VOUCHER_TITLE_FPV\": \"FreePlay Reward\",\r\n \"FREE_PLAY_VOUCHER_TITLE_FSV\": \"Free Spins Reward\",\r\n \"FREE_PLAY_VOUCHER_TITLE_JPFPV\": \"Jackpot FreePlay Reward\",\r\n \"FREE_PLAY_VOUCHER_TITLE_JPFSV\": \"Jackpot Spins Reward\",\r\n \"FREE_PLAY_VOUCHER_DESC_FPV\": \"Free play money to use on selected games in whichever way you wish!\",\r\n \"FREE_PLAY_VOUCHER_DESC_FSV\": \"Free Spins with pre-defined values to use on selected games!\",\r\n \"FREE_PLAY_VOUCHER_DESC_JPFPV\": \"Jackpot-only FreePlay money to use on selected games in whichever way you wish!\",\r\n \"FREE_PLAY_VOUCHER_DESC_JPFSV\": \"Jackpot-only Free Spins with pre-defined values to use on selected games!\",\r\n \"FREE_PLAY_VOUCHER_REWARD_AMOUNT\": \"{amount} {fp_voucher_name}\",\r\n \"FREE_PLAY_VOUCHER_REWARD_BALANCE\": \"{fp_voucher_remaining_prefix} {balance}\",\r\n \"FREE_PLAY_EXPIRES_IN_TIME\": \"Expires in {expiration}\",\r\n \"FREE_PLAY_EXPIRES_IN_EXPIRED\": \"Expired\",\r\n \"FREE_PLAY_EXPIRES_IN_DAY\": \"Expires in {expiration} days\",\r\n \"FREE_PLAY_MESSAGE_VOUCHER_TITLE_GOOD_LUCK\": \"Good Luck!\",\r\n \"FREE_PLAY_MESSAGE_LIST_TITLE\": \"You have rewards waiting for you. Good Luck!\",\r\n \"FREE_PLAY_MESSAGE_SELECTED_GAME_TITLE\": \"This game can also be played with the following rewards:\",\r\n \"FREE_PLAY_MESSAGE_GAMES_LIST_TITLE\": \"You can use this reward in the game(s) below.\",\r\n \"FREE_PLAY_MESSAGE_NO_VOUCHERS\": \"You have no rewards available\",\r\n \"FREE_PLAY_MESSAGE_BACK_TO_VOUCHERS\": \"Back\",\r\n \"FREE_PLAY_SHOW_MORE\": \"Show More\",\r\n \"FREE_PLAY_SHOW_LESS\": \"Show Less\",\r\n \"FREE_PLAY_USE_NOW_BUTTON\": \"Use Now\",\r\n \"FREE_PLAY_USE_LATER_BUTTON\": \"Use Later\",\r\n \"FREE_PLAY_SUGGESTION_DIALOG_TITLE\": \"You have rewards in this game!\",\r\n \"IDLE_RECOMMENDATIONS_TITLE\": \"Looking for your next game?\",\r\n \"IDLE_RECOMMENDATIONS_SECOND_TITLE\": \"What about\",\r\n \"BONUS_ABUSE_PREVENTION_TITLE\": \"Disconnected Game\",\r\n \"BONUS_ABUSE_PREVENTION_MESSAGE\": \"It looks like there's a game that was disconnected... Please complete {gameName} before you can start playing {newGameName}.\",\r\n \"BONUS_ABUSE_PREVENTION_NOT_NOW_BTN\": \"Not Now\",\r\n \"BONUS_ABUSE_PREVENTION_COMPLETE_BTN\": \"Complete Game\",\r\n \"OPEN_GAME_FROM_CHALLENGES\": \"Challenges can’t be completed using rewards.\",\r\n \"CANCEL\": \"Cancel\",\r\n \"YES\": \"Yes\",\r\n \"NO\": \"No\",\r\n \"ONE_GAME_PER_SESSION_DIALOG_TITLE\": \"Open Game\",\r\n \"ONE_GAME_PER_SESSION_DIALOG_MESSAGE\": \"It looks like there's a game that's still open....\\nWould you like to close {oldGameName} and start playing {newGameName}?\",\r\n \"GAMES_OF_THE_WEEK\": \"Games Of The Week\",\r\n \"THE_FISH_MARKET\": \"The Fish Market\",\r\n \"LETS_PLAY_POKER\": \"Lets Play Poker!\",\r\n \"HYBRID_EMBEDDED_GAME_LOADING_SLOW_CONNECTION_TOASTER_TITLE\": \"Slow connection\",\r\n \"HYBRID_EMBEDDED_GAME_LOADING_SLOW_CONNECTION_TOASTER_SUBTITLE\": \"We've detected a slow network connection. Opening the game may take a little longer than expected.\",\r\n \"HYBRID_EMBEDDED_GAME_LOADING_SPINNER_LABEL\": \"Connecting...\",\r\n \"HYBRID_EMBEDDED_GAME_LOADING_PACKAGES_PROGRESS\": \"Preparing game {packagesStatus}\",\r\n \"HELP_CENTER\": \"Help Centre\",\r\n \"GEO_PERMISSIONS_POPUP_TITLE\": \"Location Check\",\r\n \"GEO_PERMISSIONS_POPUP_TOP_TEXT\": \"Allow location verification\",\r\n \"GEO_PERMISSIONS_POPUP_MIDDLE_TEXT\": \"We need your location to verify that playing is allowed in your province\",\r\n \"GEO_PERMISSIONS_BUTTON\": \"OK\",\r\n \"ABOUT_HELP_SUPPORT\": \"For any support queries, please visit our online help\",\r\n \"ABOUT_TITLE\": \"Your Account Details\",\r\n \"ABOUT_FISCAL_CODE_TITLE\": \"Fiscal Code\",\r\n \"ABOUT_SUPPORT_ID_TITLE\": \"ID for support\",\r\n \"ABOUT_CLIENT_VERSION_TITLE\": \"Client Version\",\r\n \"ABOUT_OPEN_SESSION_TITLE\": \"Open session balance\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_TITLE\": \"Location check\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_HEADER_1\": \"Verify Your Location.\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_HEADER_2\": \"This site is dedicated for players in USA permitted states.\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_HEADER_3\": \"To verify your location and start playing, please install the\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_HEADER_4\": \"GeoComply plugin:\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_BODY_1\": \"Click the Download Plugin button below\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_BODY_2\": \"Open the file from the download bar\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_BODY_3\": \"Click Run to install the file\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_FOOTER\": \"Need to redownload the plugin?\",\r\n \"GEO_PLUGIN_DOWNLOAD_BUTTON\": \"DOWNLOAD\",\r\n \"GEO_FREEZE_POPUP_TOP_TEXT\": \"We're confirming your location.\",\r\n \"GEO_FREEZE_POPUP_MIDDLE_TEXT\": \"It should only take a few seconds. This window will close automatically after confirmation.\",\r\n \"GEO_FREEZE_POPUP_TITLE\": \"Location Verification\",\r\n \"GEO_GAME_RESTRICTION_TOP_TEXT\": \"Verify your location\",\r\n \"GEO_GAME_RESTRICTION_MIDDLE_TEXT\": \"That action requires location verification. To verify your location, please log out and retry. If the problem persists, please contact us.\",\r\n \"GEO_RETRY_GAME_RESTRICTION_MIDDLE_TEXT\": \"That action requires location verification. To verify your location please retry. If the problem persists, please contact us.\",\r\n \"ENFORCE_HYBRID_APP_TITLE\": \"Download the app\",\r\n \"ENFORCE_HYBRID_APP_TEXT\": \"To log in from your mobile device please download the app.\",\r\n \"ENFORCE_HYBRID_APP_CONTINUE_BUTTON\": \"GET THE APP\",\r\n \"ONE_HOUR\": \"1 hour\",\r\n \"X_HOURS\": \"{x} hours\",\r\n \"ONE_MINUTE\": \"1 minute\",\r\n \"X_MINUTES\": \"{x} minutes\",\r\n \"ONE_DAY\": \"1 day\",\r\n \"X_DAYS\": \"{x} days\",\r\n \"ONE_WEEK\": \"1 week\",\r\n \"ONE_MONTH\": \"1 month\",\r\n \"ADVANCED_MODE\": \"Advanced Mode\",\r\n \"SELECT\": \"Please select\",\r\n \"DONT_WANT_TO_BE_BLOCKED\": \"I don't want to be blocked\",\r\n \"START_PLAYING\": \"Start Playing\",\r\n \"ES_GAME_LIMIT_RESTRICTION_PERIOD_VALUE\": \"Be blocked for {time}\",\r\n \"ES_GAME_LOSS_LIMIT_VALUE\": \"{percent}% of bankroll ({loss})\",\r\n \"ES_TIME_LIMIT_DROP_DOWN_LABEL\": \"Maximum duration\",\r\n \"ES_LOSS_LIMIT_DROP_DOWN_LABEL\": \"Maximum loss\",\r\n \"ES_REMINDER_INTERVAL_DROP_DOWN_LABEL\": \"Reminder interval\",\r\n \"ES_RESTRICTION_PERIOD_DROP_DOWN_LABEL\": \"When my session ends, I’d like to:\",\r\n \"ES_GAME_TIME_LIMIT_REQUIRED_ERROR\": \"Please select a time limit\",\r\n \"ES_GAME_LOSS_LIMIT_REQUIRED_ERROR\": \"Please select a loss limit\",\r\n \"ES_GAME_LIMIT_REGULATORY_TEXT\": \"In 888casino.es we support and promote {responsibleGamblingLink} offering you the tools to control both the time you play and the money you bet. Before you start playing, configure your session according to your preferences\",\r\n \"ES_GAME_LIMIT_RESPONSIBLE_GAMING_LINK\": \"the responsible gaming\",\r\n \"ES_GAME_LIMIT_TIME_LOSS_CONFIRMATION_TEXT\": \"Note that you have set your maximum playing time at {time}.\",\r\n \"ES_GAME_LIMIT_TIME_LOSS_CONFIRMATION_QUESTION\": \"Do you want to continue?\",\r\n \"ES_GAME_LIMIT_RESTRICTION_BLOCK_CONFIRMATION_TEXT\": \"You have chosen to be blocked for {time}. This means that once your game session ends, you will not be able to play again for the time period you have selected.\",\r\n \"ES_GAME_LIMIT_RESTRICTION_BLOCK_CONFIRMATION_QUESTION\": \"Are you sure?\",\r\n \"ES_GAME_LIMIT_TITLE\": \"Set up your Game Session\",\r\n \"ATTENTION\": \"Attention!\",\r\n \"TOTAL_BANKROLL\": \"Full Bankroll:\",\r\n \"GAME_SESSION_BALANCE\": \"Session balance:\",\r\n \"TOTAL_WINS\": \"Total win amounts:\",\r\n \"TOTAL_BETS\": \"Total bet amounts:\",\r\n \"ES_SESSION_TIME_LIMIT_MESSAGE\": \"You are about to reach your maximum time. You can finish the session.\",\r\n \"ES_INTERVAL_REMINDER_MESSAGE\": \"You are playing for {timePassed}, your Total Bets are {totalBets} and Total Wins are {totalWins}\",\r\n \"ES_SESSION_LOSS_LIMIT_MESSAGE\": \"You are about to reach your maximum budget. You can finish the session.\",\r\n \"GAME_SESSION_SUMMARY_DIALOG_TITLE\": \"Session has ended\",\r\n \"GAME_SESSION_SUMMARY_DIALOG_MESSAGE\": \"Your session for {game_name} has ended\\n\\nTotal bets {total_bets_amount}\\n\\nTotal wins {total_wins_amount}\",\r\n \"OK\": \"OK\",\r\n \"INSUFFICIENT_FUNDS_TITLE\": \"Insufficient balance\",\r\n \"INSUFFICIENT_FUNDS_MESSAGE\": \"Your current balance is not sufficient for this game. To continue playing, you must first make a deposit to the cashier.\",\r\n \"OPEN_CASHIER\": \"Open Cashier\",\r\n \"GAME_LIMIT_REAL_MONEY_WARNING_MESSAGE\": \"This game can be played with cash balance only.\",\r\n \"SUGGEST_REAL_MODE_DIALOG_TITLE\": \"Demo Game\",\r\n \"SUGGEST_REAL_MODE_DIALOG_TEXT\": \"Please note that {game_name} will be opened in demo mode.

To play in real money mode, please register or log in.\",\r\n \"PLAY_DEMO\": \"Play Demo\",\r\n \"GAME_NET_POSITION_LABEL\": \"Game Balance\",\r\n \"GAME_DURATION_LABEL\": \"Game Duration\",\r\n \"GAME_LIMIT_TITLE\": \"Choose the money in the game\",\r\n \"REGULATORY_LIMIT_LABEL\": \"Regulatory limit\",\r\n \"OTHER_LIMIT_LABEL\": \"Other\",\r\n \"GAME_LIMIT_VALUE_ERROR\": \"Invalid amount. Please try again\",\r\n \"GAME_LIMIT_REGULATION_ERROR\": \"The maximum amount is {regulationLimit}. Please try again.\",\r\n \"GAME_LIMIT_MIN_BET_ERROR\": \"Amount below table minimum. Please try again\",\r\n \"AGE_ACKNOWLEDGE_POPUP_TITLE\": \"Acknowledgement\",\r\n \"AGE_ACKNOWLEDGE_POPUP_MESSAGE\": \"Persons under the age of 21 are not permitted to engage in interactive gaming.\\nPlease confirm that you are over 21 years old\",\r\n \"AGE_ACKNOWLEDGE_POPUP_CONFIRM_BUTTON\": \"Confirm\",\r\n \"AGE_ACKNOWLEDGE_POPUP_DECLINE_BUTTON\": \"Decline\",\r\n \"STATE_POPUP_DEFAULT_OPTION\": \"Select...\",\r\n \"STATE_POPUP_NO_STATE_SELECTED\": \"You must choose a state!\",\r\n \"CHOOSE_CONFIRM_STATE\": \"Please confirm that you're located in\",\r\n \"STATE_POPUP_OTHER_STATE\": \"I don't see my state\",\r\n \"STATE_SELECTOR_MENU_ITEM\": \"State Selector\",\r\n \"LUGAS_COOLING_OFF_LOGOUT_MESSAGE\": \"By logging out you will not be able to play any game for 5:00 mins.\",\r\n \"LUGAS_ACTIVE_TITLE\": \"Notification\",\r\n \"LUGAS_ACTIVE_TEXT_1\": \"It looks like you're currently playing on a different site. Per local regulations, please log out to continue here.\",\r\n \"LUGAS_ACTIVE_TEXT_2\": \"888 receives this information from the German system used to enforce regulations.\",\r\n \"LUGAS_COOLDOWN_TITLE\": \"Please wait\",\r\n \"LUGAS_COOLDOWN_TEXT\": \"According to Germany regulation there’s a five minute cool down period after logging out from another operator.\",\r\n \"LUGAS_OK_BTN\": \"OK\"\r\n }\r\n}","import {CasinoStartupConfigurations} from '../config-interfaces/casino-startup.configurations';\r\nimport {ApplicationStartupConfigurations} from '../config-interfaces/application-startup.configurations';\r\nimport {B2CStartupConfigurations} from '../config-interfaces/b2c-startup.configurations';\r\nimport {LauncherOverridesReader} from '../launcher-overrides-reader/launcher-overrides-reader';\r\nimport {LauncherOverrides} from '../config-interfaces/launcher-overrides';\r\nimport {IWindowService} from '../../services/window/window.service.interface';\r\nimport {IHttpService} from '../../services/http/http.service.interface';\r\nimport {ILoggerService} from '../../services/logger/logger.service.interface';\r\nimport {mockApplicationStartupConfigs} from '../../../utils/automation-helpers';\r\nimport {ALL_CONFIGS_KEY} from \"../../../app-consts\";\r\n\r\nconst overrideJson = require('json-override');\r\n\r\nexport class ApplicationStartupConfigurationsReader {\r\n constructor(private _defaultOrbitConfigurations: any,\r\n private _window: IWindowService,\r\n private _launcherOverridesReader: LauncherOverridesReader,\r\n private _http: IHttpService,\r\n private _logger: ILoggerService) {\r\n\r\n\r\n }\r\n\r\n private _launcherOverrides: LauncherOverrides | null;\r\n private _b2cConfigurations: B2CStartupConfigurations;\r\n\r\n async readApplicationConfigurations(): Promise {\r\n this._launcherOverrides = this._launcherOverridesReader.getOverrides();\r\n this._b2cConfigurations = this._getB2CConfigurations();\r\n let casinoConfigurations = await this._getCasinoConfigurations();\r\n\r\n const configs = {\r\n configurationPath: this._getConfigPath(casinoConfigurations),\r\n orbitServer: casinoConfigurations.sdk.config.ExtraProperties.paths.server,\r\n brandName: casinoConfigurations.sdk.config.ExtraProperties.brand,\r\n country: casinoConfigurations.country,\r\n orbit: casinoConfigurations.orbit,\r\n sdk: casinoConfigurations.sdk,\r\n admin: casinoConfigurations.adminConfig,\r\n b2c: this._b2cConfigurations,\r\n userSelectedState: casinoConfigurations.userSelectedState\r\n };\r\n\r\n return mockApplicationStartupConfigs(configs);\r\n }\r\n\r\n private _getConfigPath(casinoConfigurations: CasinoStartupConfigurations): string {\r\n\r\n let server = casinoConfigurations.sdk.config.ExtraProperties.paths.server;\r\n if(!server.endsWith('/')) {\r\n server += '/';\r\n }\r\n\r\n return server + 'configurations/' + casinoConfigurations.sdk.config.ExtraProperties.brand;\r\n }\r\n\r\n\r\n private async _getCasinoConfigurations(): Promise {\r\n\r\n let casinoConfigurations: CasinoStartupConfigurations = this._window.getGlobalProperty(ALL_CONFIGS_KEY);\r\n casinoConfigurations = await this._applyOrbitConfigsOverrides(casinoConfigurations);\r\n casinoConfigurations = this._applySdkConfigOverrides(casinoConfigurations);\r\n return casinoConfigurations;\r\n\r\n }\r\n\r\n\r\n async _applyOrbitConfigsOverrides(casinoConfigurations: CasinoStartupConfigurations): Promise {\r\n casinoConfigurations.orbit.config = overrideJson(this._defaultOrbitConfigurations, casinoConfigurations.orbit.config);\r\n if(this._launcherOverrides && this._launcherOverrides.orbit && this._launcherOverrides.orbit.configs) {\r\n overrideJson(casinoConfigurations.orbit.config, this._launcherOverrides.orbit.configs);\r\n }\r\n return casinoConfigurations;\r\n }\r\n\r\n\r\n\r\n private _applySdkConfigOverrides(casinoConfigurations: CasinoStartupConfigurations): CasinoStartupConfigurations {\r\n\r\n if(!(casinoConfigurations.sdk && casinoConfigurations.sdk.config)) { // if SDK configs are not here it probably means the app is loaded from a fallback file\r\n return casinoConfigurations;\r\n }\r\n\r\n overrideJson(casinoConfigurations, {\r\n sdk: {\r\n config: (this._launcherOverrides && this._launcherOverrides.sdk) || {}\r\n }\r\n });\r\n\r\n overrideJson(casinoConfigurations, {\r\n sdk: {\r\n config: {\r\n Language: {\r\n iso3: this._b2cConfigurations.language.iso3,\r\n iso2: this._b2cConfigurations.language.iso2\r\n }\r\n }\r\n }\r\n });\r\n\r\n let orbitLang = casinoConfigurations.orbit.lang;\r\n if(orbitLang && orbitLang.text && orbitLang.text.SDKTexts) {\r\n overrideJson(casinoConfigurations.sdk.config.Language.text, orbitLang.text.SDKTexts);\r\n }\r\n\r\n return casinoConfigurations;\r\n }\r\n\r\n\r\n\r\n\r\n private _applyB2COverrides(b2cConfigs: B2CStartupConfigurations): B2CStartupConfigurations {\r\n\r\n if(this._launcherOverrides?.orbit) {\r\n let languageIso3Override = this._launcherOverrides.orbit.language;\r\n let languageIso2Override = this._launcherOverrides.orbit.iso2;\r\n\r\n if(languageIso3Override) {\r\n b2cConfigs.language = {...b2cConfigs.language, iso3: languageIso3Override};\r\n }\r\n\r\n if(languageIso2Override) {\r\n b2cConfigs.language = {...b2cConfigs.language, iso2: languageIso2Override};\r\n }\r\n\r\n let publicationIdOverride = this._launcherOverrides.orbit.publicationID;\r\n if(publicationIdOverride) {\r\n b2cConfigs.publicationId = publicationIdOverride;\r\n }\r\n }\r\n\r\n\r\n let segmentsOverrides = this._launcherOverrides?.webData?.segments;\r\n\r\n if(segmentsOverrides) {\r\n b2cConfigs.segments = {...b2cConfigs.segments, ...segmentsOverrides};\r\n }\r\n\r\n return b2cConfigs;\r\n }\r\n\r\n private _getB2CConfigurations() : B2CStartupConfigurations {\r\n let b2cConfigs = this._window.getGlobalProperty('webData') || {} as B2CStartupConfigurations;\r\n\r\n b2cConfigs.language = b2cConfigs.language || {};\r\n b2cConfigs.language.iso3 = b2cConfigs.language.iso3 || 'eng';\r\n b2cConfigs.language.iso2 = b2cConfigs.language.iso2 || 'en';\r\n\r\n\r\n if(this._launcherOverrides) {\r\n return this._applyB2COverrides(b2cConfigs);\r\n }\r\n\r\n return b2cConfigs;\r\n }\r\n\r\n\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import ISdkHooksProvider from './sdk-hooks-provider.interface';\r\nimport {MINI_CIP_BASE_ROUTE, MINI_CIS_BASE_ROUTE} from '../../services/mini-orbit/mini-orbit-consts';\r\nimport {Uri} from '../../services/location/uri/uri';\r\nimport {IServiceFactoryExtended} from '../../services/service-factory-extended.interface';\r\nimport {IOrbitComponentToSdkAdapterService} from '../../../common/interfaces/orbit-component-to-sdk-adapter/orbit-component-to-sdk-adapter.service.interface';\r\nimport {ICashierService} from \"../../../common/interfaces/cashier.service.interface\";\r\nimport {IGameRunnerProxy} from \"../../../common/interfaces/game-runner-proxy.interface\";\r\nimport {ICasinofiedAnalyticsService} from \"../../../common/interfaces/casinofied-analytics-proxy.interface\";\r\n\r\nexport class SdkHooksProvider implements ISdkHooksProvider {\r\n services: IServiceFactoryExtended;\r\n\r\n redirectProxy(url: string): void {\r\n if (!url) {\r\n return;\r\n }\r\n\r\n if (this.services) {\r\n //SDK is using this function to do redirects,\r\n //but we must do redirect only if the URL is an absolut URL.\r\n //If is a relative one like /gaming_history/ then we just need to do local routing\r\n if (this.services.window.isAbsolutUrl(url)) {\r\n this.services.location.redirect(url);\r\n } else {\r\n this.services.location.push(url);\r\n }\r\n } else {\r\n window.location.href = url;\r\n }\r\n };\r\n\r\n openInNewWindowHook(): (url: string) => void | null {\r\n if (this.services?.miniOrbit.isEnabled) {\r\n return this.services.miniOrbit.openUrl;\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n isMiniCip(): boolean {\r\n return this._isMiniOrbit(MINI_CIP_BASE_ROUTE);\r\n }\r\n\r\n isMiniCis(): boolean {\r\n return this._isMiniOrbit(MINI_CIS_BASE_ROUTE);\r\n }\r\n\r\n private _isMiniOrbit(basePath: string): boolean {\r\n if (!this.services) {\r\n return false;\r\n }\r\n\r\n const uri = new Uri(new URL(window.location.href));\r\n return uri.pathName.getBase().toString().toLowerCase() === basePath;\r\n }\r\n\r\n getGameTypesMappingForSdk(): Record {\r\n if (!this.services) {\r\n return null;\r\n }\r\n\r\n const mapperData: Record = {};\r\n this.services?.configuration?.usedGameTypesBySite?.forEach(gameType => {\r\n mapperData[gameType] = {};\r\n });\r\n\r\n return mapperData;\r\n };\r\n\r\n getHeaderRegulationDataElement(): HTMLElement {\r\n return this.services?.header?.getHeaderRegulationDataElement();\r\n }\r\n\r\n resolveGameImagePath(imageFilePath: string): string {\r\n return this.services?.configuration?.resolveGameImagePath(imageFilePath);\r\n }\r\n\r\n getOrbitComponentToSdkAdapter(): IOrbitComponentToSdkAdapterService {\r\n return (this.services.orbitComponentInsideSdkProvider as any) as IOrbitComponentToSdkAdapterService;\r\n }\r\n\r\n getCashierService(): ICashierService {\r\n return this.services.cashier;\r\n }\r\n\r\n getGameRunnerService(): IGameRunnerProxy {\r\n return (this.services.gameRunner as any) as IGameRunnerProxy;\r\n }\r\n\r\n getCasinofiedAnalyticsService(): ICasinofiedAnalyticsService {\r\n return this.services.casinofiedAnalytics;\r\n }\r\n}","import {IConfigurationEvaluationContext} from '../configuration-evaluation-context/configuration-evaluation-context.interface';\r\nimport {IPropertyEvaluator} from '../property-evaluator/property-evaluator.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\n\r\nexport class PropertiesEvaluator {\r\n constructor(private _propertiesEvaluators: IPropertyEvaluator[]) {\r\n }\r\n\r\n private _config: unknown = null;\r\n\r\n evaluate(context: IConfigurationEvaluationContext): any {\r\n if(Check.isNullOrUndefined(this._config)) {\r\n let config = {};\r\n\r\n this._propertiesEvaluators.forEach(propEvaluator => {\r\n Object.defineProperty(config, propEvaluator.propertyName, {\r\n get: () => propEvaluator.evaluate(context),\r\n configurable: false,\r\n enumerable: true\r\n });\r\n });\r\n\r\n this._config = config;\r\n }\r\n\r\n return this._config;\r\n }\r\n\r\n static fromRoot(rootObject: object, context: IConfigurationEvaluationContext): PropertiesEvaluator {\r\n let rootProps = Object.keys(rootObject).map(propName => context.createPropertyEvaluator(propName, rootObject));\r\n return new PropertiesEvaluator(rootProps);\r\n }\r\n}\r\n","import {IConfigurationEvaluationContext} from '../../configuration-evaluation-context/configuration-evaluation-context.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {IValueEvaluator} from '../../value-evaluators/value-evaluator.interface/value-evaluator.interface';\r\nimport {IStatementEvaluator} from '../statement-evaluator/statement-evaluator.interface';\r\n\r\nexport class StatementsEvaluator implements IValueEvaluator {\r\n constructor(private _statementsEvaluators: IStatementEvaluator[], private _defaultValue: any) {\r\n }\r\n\r\n get defaultValue() {\r\n return this._defaultValue;\r\n }\r\n\r\n get evaluators(): IStatementEvaluator[] {\r\n return this._statementsEvaluators\r\n }\r\n\r\n evaluate(context: IConfigurationEvaluationContext): any {\r\n for(let i = 0, len = this.evaluators.length; i < len; i++) {\r\n let statementEvaluator = this.evaluators[i];\r\n let evaluatedValue = statementEvaluator.evaluate(context);\r\n if(!Check.isNullOrUndefined(evaluatedValue)) {\r\n return this._applyValueTransformation(context, evaluatedValue);\r\n }\r\n }\r\n\r\n return this._applyValueTransformation(context, this.defaultValue);\r\n }\r\n\r\n private _applyValueTransformation(context: IConfigurationEvaluationContext, value) {\r\n return context.parsePropertyValue(value).evaluate(context)\r\n }\r\n}\r\n","import {IConfigurationEvaluationContext} from '../../configuration-evaluation-context/configuration-evaluation-context.interface';\r\nimport {PropertiesEvaluator} from '../../properties-evaluator/properties-evaluator';\r\nimport {IPropertyEvaluator} from '../../property-evaluator/property-evaluator.interface';\r\nimport {IValueEvaluator} from '../value-evaluator.interface/value-evaluator.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\n\r\nexport class ObjectEvaluator implements IValueEvaluator {\r\n constructor(private _object: object) {\r\n }\r\n\r\n get obj() {\r\n return this._object;\r\n }\r\n\r\n private _evaluatedValue: unknown = undefined;\r\n\r\n evaluate(context: IConfigurationEvaluationContext): any {\r\n if(Check.isUndefined(this._evaluatedValue)) {\r\n let properties: IPropertyEvaluator[] = [];\r\n\r\n Object.keys(this.obj).forEach(propertyName => {\r\n properties.push(context.createPropertyEvaluator(propertyName, this.obj));\r\n });\r\n\r\n let configEvaluator = new PropertiesEvaluator(properties);\r\n this._evaluatedValue = configEvaluator.evaluate(context);\r\n }\r\n\r\n return this._evaluatedValue;\r\n }\r\n}\r\n","import {IConfigurationEvaluationContext} from '../../configuration-evaluation-context/configuration-evaluation-context.interface';\r\nimport {IValueEvaluator} from '../value-evaluator.interface/value-evaluator.interface';\r\n\r\nexport class ArrayEvaluator implements IValueEvaluator {\r\n constructor(private _itemsEvaluators: IValueEvaluator[]) {\r\n }\r\n\r\n get evaluators(): IValueEvaluator[] {\r\n return this._itemsEvaluators;\r\n }\r\n\r\n evaluate(context: IConfigurationEvaluationContext): any {\r\n return this.evaluators.map((item, index) => item.evaluate(context.createPropertyContext(index.toString())));\r\n }\r\n\r\n}\r\n","import {IConfigurationEvaluationContext} from '../../configuration-evaluation-context/configuration-evaluation-context.interface';\r\nimport {IValueEvaluator} from '../value-evaluator.interface/value-evaluator.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\n\r\nexport class SimpleValueEvaluator implements IValueEvaluator {\r\n constructor(private _value: any) {\r\n }\r\n\r\n get value(): any {\r\n return this._value;\r\n }\r\n\r\n private _evaluatedValue = undefined;\r\n\r\n evaluate(context: IConfigurationEvaluationContext): any {\r\n if(Check.isUndefined(this._evaluatedValue)) {\r\n this._evaluatedValue = context.applyValueTransformation(context.getCurrentPropertyPath(), this.value);\r\n }\r\n return this._evaluatedValue;\r\n }\r\n}\r\n\r\n","import {IConfigurationEvaluationContext} from '../../configuration-evaluation-context/configuration-evaluation-context.interface';\r\nimport {IStatementEvaluator} from './statement-evaluator.interface';\r\n\r\n\r\n\r\nexport class StatementEvaluator implements IStatementEvaluator {\r\n constructor(private _statementDefinition: any) {\r\n }\r\n\r\n get definition(): any {\r\n return this._statementDefinition;\r\n }\r\n\r\n evaluate(context: IConfigurationEvaluationContext): any {\r\n let rules = (this.definition.rules || []).map(rule => context.createSegmentationRule(rule));\r\n let logicalOperator = context.createLogicalOperator(this.definition.condition || 'AND', rules);\r\n if(logicalOperator.evaluate(context)) {\r\n return this.definition.value;\r\n }\r\n return null;\r\n }\r\n}\r\n","import {IConfigurationEvaluationContext} from '../../configuration-evaluation-context/configuration-evaluation-context.interface';\r\nimport {ILogicalOperator} from './logical-operator.interface/logical-operator.interface';\r\nimport {ISegmentationRule} from '../segmentation-rule/segmentation-rule.interface';\r\n\r\nexport abstract class BaseLogicalOperator implements ILogicalOperator {\r\n\r\n constructor(private _rules: ISegmentationRule[]) {\r\n\r\n }\r\n\r\n get rules(): ISegmentationRule[] {\r\n return this._rules;\r\n }\r\n\r\n abstract evaluate(context: IConfigurationEvaluationContext): boolean;\r\n}\r\n","import {BaseLogicalOperator} from '../base-logical-operator';\r\nimport {IConfigurationEvaluationContext} from '../../../configuration-evaluation-context/configuration-evaluation-context.interface';\r\n\r\nexport class OrLogicalOperator extends BaseLogicalOperator {\r\n\r\n evaluate(context: IConfigurationEvaluationContext): boolean {\r\n for(let i = 0, len = this.rules.length; i < len; i++) {\r\n let rule = this.rules[i];\r\n if(rule.evaluate(context)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import {BaseLogicalOperator} from '../base-logical-operator';\r\nimport {IConfigurationEvaluationContext} from '../../../configuration-evaluation-context/configuration-evaluation-context.interface';\r\n\r\nexport class AndLogicalOperator extends BaseLogicalOperator {\r\n\r\n evaluate(context: IConfigurationEvaluationContext): boolean {\r\n if(this.rules.length === 0) {\r\n return false;\r\n }\r\n\r\n for(let i = 0, len = this.rules.length; i < len; i++) {\r\n let rule = this.rules[i];\r\n if(!rule.evaluate(context)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","import {IConfigurationEvaluationContext} from '../../configuration-evaluation-context/configuration-evaluation-context.interface';\r\nimport {ISegmentationRule} from './segmentation-rule.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\n\r\n\r\nexport class SegmentationRule implements ISegmentationRule {\r\n constructor(private _ruleDefinition: any) {\r\n }\r\n\r\n get definition(): any {\r\n return this._ruleDefinition;\r\n }\r\n evaluate(context: IConfigurationEvaluationContext): boolean {\r\n if(Check.isArray(this.definition.rules)) {\r\n let innerRules = this.definition.rules.map(rule => context.createSegmentationRule(rule));\r\n let logicalOperator = context.createLogicalOperator(this.definition.condition || 'AND', innerRules);\r\n return logicalOperator.evaluate(context);\r\n } else {\r\n let operator = context.createComparisonOperator(this.definition.operator);\r\n let segmentValue = context.getSegmentValue(this.definition.id);\r\n return operator.compare(segmentValue, this.definition.value)\r\n }\r\n\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n","import {IComparisonOperator} from './comparison-operator.interface/comparison-operator.interface';\r\n\r\nexport abstract class BaseComparisonOperator implements IComparisonOperator {\r\n\r\n abstract compare(value1: unknown, value2: unknown): boolean;\r\n}\r\n","import {BaseComparisonOperator} from '../base-comparison-operator';\r\n\r\nexport class EqualOperator extends BaseComparisonOperator {\r\n compare(value1: unknown, value2: unknown): boolean {\r\n if(this._isBooleanAsString(value1) || this._isBooleanAsString(value2)) {\r\n return value1?.toString() === value2?.toString();\r\n }\r\n // eslint-disable-next-line\r\n return value1 == value2;\r\n }\r\n\r\n private _isBooleanAsString(value: any) {\r\n if (value === 'true' || value === 'false') {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import {BaseComparisonOperator} from '../base-comparison-operator';\r\nimport {EqualOperator} from '../equal-operator/equal-operator';\r\n\r\nexport class NotEqualOperator extends BaseComparisonOperator {\r\n compare(value1: unknown, value2: unknown) {\r\n return !(new EqualOperator().compare(value1, value2));\r\n }\r\n}\r\n","import {IConfigurationEvaluationContext} from '../configuration-evaluation-context/configuration-evaluation-context.interface';\r\nimport {IComparisonOperator} from '../statements/comparison-operators/comparison-operator.interface/comparison-operator.interface';\r\nimport {ISegmentationRule} from '../statements/segmentation-rule/segmentation-rule.interface';\r\nimport {ILogicalOperator} from '../statements/logical-operators/logical-operator.interface/logical-operator.interface';\r\nimport {IStatementEvaluator} from '../statements/statement-evaluator/statement-evaluator.interface';\r\nimport {IValueEvaluator} from '../value-evaluators/value-evaluator.interface/value-evaluator.interface';\r\nimport {IPropertyEvaluator} from '../property-evaluator/property-evaluator.interface';\r\n\r\n\r\nexport class PropertyLevelContext implements IConfigurationEvaluationContext {\r\n constructor(private _originalContext: IConfigurationEvaluationContext, private _currentPropertyName) {\r\n\r\n }\r\n\r\n createComparisonOperator(operatorName: string): IComparisonOperator {\r\n return this._originalContext.createComparisonOperator(operatorName);\r\n }\r\n\r\n createLogicalOperator(logicalOperatorName: string, rules: ISegmentationRule[]): ILogicalOperator {\r\n return this._originalContext.createLogicalOperator(logicalOperatorName, rules);\r\n }\r\n\r\n createSegmentationRule(ruleDefinition: any): ISegmentationRule {\r\n return this._originalContext.createSegmentationRule(ruleDefinition);\r\n }\r\n\r\n createStatementEvaluator(statementDefinition: any): IStatementEvaluator {\r\n return this._originalContext.createStatementEvaluator(statementDefinition);\r\n }\r\n\r\n getSegmentValue(name: string): any {\r\n return this._originalContext.getSegmentValue(name);\r\n }\r\n\r\n parsePropertyValue(value: any): IValueEvaluator {\r\n return this._originalContext.parsePropertyValue(value);\r\n }\r\n\r\n\r\n getCurrentPropertyPath(): string {\r\n return this._originalContext.getCurrentPropertyPath() + '/' + this._currentPropertyName;\r\n }\r\n\r\n createPropertyContext(propertyName: string): IConfigurationEvaluationContext {\r\n return new PropertyLevelContext(this, propertyName);\r\n }\r\n\r\n applyValueTransformation(propertyPath: string, value: any): any {\r\n return this._originalContext.applyValueTransformation(propertyPath, value);\r\n }\r\n\r\n createPropertyEvaluator(propertyName: string, propertyOwner: object): IPropertyEvaluator {\r\n return this._originalContext.createPropertyEvaluator(propertyName, propertyOwner);\r\n }\r\n\r\n getLauncherGames(): number[] {\r\n return this._originalContext.getLauncherGames();\r\n }\r\n}\r\n","import {IConfigurationEvaluationContext} from '../configuration-evaluation-context/configuration-evaluation-context.interface';\r\nimport {IPropertyEvaluator} from './property-evaluator.interface';\r\nimport {IValueEvaluator} from '../value-evaluators/value-evaluator.interface/value-evaluator.interface';\r\n\r\n\r\n\r\nexport class PropertyEvaluator implements IPropertyEvaluator {\r\n constructor(private _propertyName: string, private _valueEvaluator: IValueEvaluator) {\r\n\r\n }\r\n\r\n get propertyName(): string {\r\n return this._propertyName;\r\n }\r\n\r\n evaluate(context: IConfigurationEvaluationContext): any {\r\n\r\n let propertyContext = context.createPropertyContext(this.propertyName);\r\n\r\n try {\r\n return this._valueEvaluator.evaluate(propertyContext);\r\n } catch (err) {\r\n throw new Error(`Failed to evaluate property ${propertyContext.getCurrentPropertyPath()}; ${err}`);\r\n }\r\n\r\n }\r\n}\r\n","// BEWARE: In this file there are similar namings. Don't confuse them\r\n// TODO: Find better namings for interfaces and variables and eliminate implicit any's\r\ninterface IStatementsDefinition {\r\n defaultValue: unknown[];\r\n statements: unknown[];\r\n}\r\ninterface IStatementDefinition {\r\n condition: string;\r\n value: any,\r\n rules: unknown[]\r\n}\r\n\r\nexport function createStatementsDefinition(subLists: any): any {\r\n let statementsDefinition: IStatementsDefinition = {\r\n defaultValue: [],\r\n statements: []\r\n };\r\n\r\n subLists.forEach(sublist => {\r\n if (!sublist.Segment) {\r\n // the sublist with Segment null or undefined is considered to be the default value\r\n statementsDefinition.defaultValue = sublist.Games;\r\n } else {\r\n let statementDefinition: IStatementDefinition = {\r\n condition: \"AND\",\r\n value: sublist.Games,\r\n rules: []\r\n };\r\n\r\n sublist.Segment.forEach(segment => {\r\n statementDefinition.rules.push(_createStatementsRule(segment));\r\n });\r\n\r\n statementsDefinition.statements.push(statementDefinition);\r\n }\r\n });\r\n\r\n return statementsDefinition;\r\n}\r\n\r\nfunction _createStatementsRule(segment: any): any {\r\n return {\r\n id: segment.name,\r\n operator: \"=\",\r\n value:\r\n segment.value === 1 || segment.value === true || segment.value === \"true\"\r\n ? true\r\n : false // Admin sends 1 for true and 2 for false.\r\n };\r\n}\r\n","import { IPropertyEvaluator } from '../../property-evaluator/property-evaluator.interface';\r\nimport { IConfigurationEvaluationContext } from '../../configuration-evaluation-context/configuration-evaluation-context.interface';\r\nimport { createStatementsDefinition } from '../../../../../../app-react/services/configurations/create-statements-definition'\r\n\r\nexport class GamesIdPropertyEvaluator implements IPropertyEvaluator {\r\n constructor(private _owner: any, private _adminConfig: any) {\r\n\r\n }\r\n\r\n get owner(): any {\r\n return this._owner;\r\n }\r\n\r\n get adminConfig(): any {\r\n return this._adminConfig;\r\n }\r\n\r\n get propertyName(): string {\r\n return 'gamesId'\r\n }\r\n\r\n evaluate(context: IConfigurationEvaluationContext): any {\r\n let propertyContext = context.createPropertyContext(this.propertyName);\r\n\r\n let gamesAdminRefKey = this.owner.gamesAdminRefKey;\r\n\r\n //F TO DO - log if gamesAdminRefKey is missing\r\n\r\n let subLists = this.adminConfig && this.adminConfig.listsv2 && this.adminConfig.listsv2[gamesAdminRefKey];\r\n\r\n let gameTypes: number[] = [];\r\n if (!subLists) {\r\n //F TO DO - log if sub-lists is missing\r\n gameTypes = context.parsePropertyValue(this.owner[this.propertyName]).evaluate(propertyContext);\r\n } else {\r\n gameTypes = context.parsePropertyValue(createStatementsDefinition(subLists)).evaluate(propertyContext);\r\n }\r\n\r\n let launcherGames = context.getLauncherGames() || [];\r\n\r\n if (launcherGames.length === 0) {\r\n return gameTypes;\r\n }\r\n\r\n return [...launcherGames, ...gameTypes];\r\n }\r\n}\r\n","import {BaseComparisonOperator} from \"../base-comparison-operator\";\r\n\r\nexport class IsFalsyOperator extends BaseComparisonOperator {\r\n compare(value1: unknown, value2: unknown): boolean {\r\n return !((value1 || '').toString() === (value2 || '').toString());\r\n }\r\n}\r\n","import {BaseComparisonOperator} from '../base-comparison-operator';\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {ILoggerService} from '../../../../../logger/logger.service.interface';\r\n\r\nexport class GreaterThanOperator extends BaseComparisonOperator {\r\n constructor(private _logger: ILoggerService){\r\n super();\r\n }\r\n\r\n compare(value1: unknown, value2: unknown): boolean {\r\n if (!Check.isNumber(value1) || !Check.isNumber(value2)) {\r\n this._logger.error(`Greater Than Operator: Values should be numbers! value1=${value1}; value2=${value2}`);\r\n }\r\n\r\n return value1 > value2;\r\n }\r\n}\r\n","import {BaseComparisonOperator} from '../base-comparison-operator';\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {ILoggerService} from '../../../../../logger/logger.service.interface';\r\n\r\nexport class LessThanOperator extends BaseComparisonOperator {\r\n constructor(private _logger: ILoggerService) {\r\n super();\r\n }\r\n\r\n compare(value1: unknown, value2: unknown): boolean {\r\n if (!Check.isNumber(value1) || !Check.isNumber(value2)) {\r\n this._logger.error(`Less Than Operator: Values should be numbers! value1=${value1}; value2=${value2}`);\r\n }\r\n return value1 < value2;\r\n }\r\n}\r\n","import {BaseComparisonOperator} from \"../base-comparison-operator\";\r\nimport {ILoggerService} from \"../../../../../logger/logger.service.interface\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {EqualOperator} from \"../equal-operator/equal-operator\";\r\n\r\nexport class AnyOfOperator extends BaseComparisonOperator {\r\n constructor(private _logger: ILoggerService){\r\n super();\r\n }\r\n\r\n compare(value1: unknown, value2: unknown): boolean {\r\n if(!Check.isArray(value2)) {\r\n this._logger.error(`Any Of Operator: The second parameter should be an array! value2=${value2}`);\r\n return new EqualOperator().compare(value1, value2);\r\n }\r\n\r\n return value2.includes(value1);\r\n }\r\n}","import {StatementsEvaluator} from '../statements/statements-evaluator/statements-evaluator';\r\nimport {ObjectEvaluator} from '../value-evaluators/object-evaluator/object-evaluator';\r\nimport {ArrayEvaluator} from '../value-evaluators/array-evaluator/array-evaluator';\r\nimport {SimpleValueEvaluator} from '../value-evaluators/simple-value-evaluator/simple-value-evaluator';\r\nimport {IValueEvaluator} from '../value-evaluators/value-evaluator.interface/value-evaluator.interface';\r\nimport {IConfigurationEvaluationContext} from './configuration-evaluation-context.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {IStatementEvaluator} from '../statements/statement-evaluator/statement-evaluator.interface';\r\nimport {StatementEvaluator} from '../statements/statement-evaluator/statement-evaluator';\r\nimport {ILogicalOperator} from '../statements/logical-operators/logical-operator.interface/logical-operator.interface';\r\nimport {ISegmentationRule} from '../statements/segmentation-rule/segmentation-rule.interface';\r\nimport {OrLogicalOperator} from '../statements/logical-operators/or-logical-operator/or-logical-operator';\r\nimport {AndLogicalOperator} from '../statements/logical-operators/and-logical-operator/and-logical-operator';\r\nimport {SegmentationRule} from '../statements/segmentation-rule/segmentation-rule';\r\nimport {IComparisonOperator} from '../statements/comparison-operators/comparison-operator.interface/comparison-operator.interface';\r\nimport {NotEqualOperator} from '../statements/comparison-operators/not-equal-operator/not-equal-operator';\r\nimport {EqualOperator} from '../statements/comparison-operators/equal-operator/equal-operator';\r\nimport {PropertyLevelContext} from '../property-level-context/property-level-context';\r\nimport {PropertyEvaluator} from '../property-evaluator/property-evaluator';\r\nimport {IPropertyEvaluator} from '../property-evaluator/property-evaluator.interface';\r\nimport {GamesIdPropertyEvaluator} from '../special-properties-evaluators/games-id-property-evaluator/games-id-property-evaluator';\r\nimport {IsFalsyOperator} from \"../statements/comparison-operators/is-falsy-operator/is-falsy-operator\";\r\nimport {IConfigurationEvaluationDataProvider} from './configuration-evaluation-data-provider';\r\nimport {GreaterThanOperator} from \"../statements/comparison-operators/greater-than-operator/greater-than-operator\";\r\nimport {LessThanOperator} from \"../statements/comparison-operators/less-than-operator/less-than-operator\";\r\nimport {AnyOfOperator} from \"../statements/comparison-operators/any-of-operator/any-of-operator\";\r\nimport {isInsideAutomation} from '../../../../../utils/automation-helpers';\r\n\r\n\r\nexport function updateAssetPath(assetPath: string, configurationPath: string): string {\r\n return assetPath.replace(/{assetsPath}/gi, configurationPath + '/assets');\r\n}\r\n\r\nexport class ConfigurationEvaluationContext implements IConfigurationEvaluationContext {\r\n constructor(private dataProvider: IConfigurationEvaluationDataProvider) {\r\n\r\n }\r\n\r\n\r\n\r\n getSegmentValue(name: string): any {\r\n return this.dataProvider.getSegmentValue(name);\r\n }\r\n\r\n parsePropertyValue(value: any): IValueEvaluator {\r\n if(Check.isObject(value)) {\r\n if(this._hasStatementsOrDefaultValue(value)) {\r\n return new StatementsEvaluator(this._createStatementsEvaluators(value.statements), value.defaultValue);\r\n } else {\r\n return new ObjectEvaluator(value);\r\n }\r\n } else if(Check.isArray(value)) {\r\n return new ArrayEvaluator(value.map(item => this.parsePropertyValue(item)));\r\n } else {\r\n return new SimpleValueEvaluator(value);\r\n }\r\n }\r\n\r\n private _createStatementsEvaluators(statementsDefinitions): IStatementEvaluator[] {\r\n return (statementsDefinitions || []).map(statementDefinition => this.createStatementEvaluator(statementDefinition))\r\n }\r\n\r\n createStatementEvaluator(statementDefinition: any): IStatementEvaluator {\r\n return new StatementEvaluator(statementDefinition);\r\n }\r\n\r\n createLogicalOperator(logicalOperatorName: string, rules: ISegmentationRule[]): ILogicalOperator {\r\n switch (logicalOperatorName.toUpperCase()) {\r\n case 'OR':\r\n return new OrLogicalOperator(rules);\r\n case 'AND':\r\n return new AndLogicalOperator(rules);\r\n default: {\r\n throw new Error(`Unrecognized logical operator ${logicalOperatorName} for statement`);\r\n }\r\n }\r\n }\r\n\r\n createSegmentationRule(ruleDefinition: any): ISegmentationRule {\r\n return new SegmentationRule(ruleDefinition);\r\n }\r\n\r\n createComparisonOperator(operatorName: string): IComparisonOperator {\r\n switch (operatorName.toLowerCase()) {\r\n case 'equal':\r\n case '=':\r\n return new EqualOperator();\r\n case 'not_equal':\r\n case 'not equal':\r\n case '!=':\r\n return new NotEqualOperator();\r\n case 'is_falsy':\r\n case 'is falsy':\r\n return new IsFalsyOperator();\r\n case 'greater_than':\r\n return new GreaterThanOperator(this.dataProvider.logger);\r\n case 'less_than':\r\n return new LessThanOperator(this.dataProvider.logger);\r\n case \"any_of\":\r\n return new AnyOfOperator(this.dataProvider.logger);\r\n default:\r\n throw new Error(`Can't handle comparison operator ${operatorName}`);\r\n }\r\n }\r\n\r\n private _hasStatementsOrDefaultValue(obj: unknown): obj is {statements?: unknown, defaultValue?: unknown} {\r\n if(!Check.isNullOrUndefined(obj['statements'])\r\n || !Check.isNullOrUndefined(obj['defaultValue'])) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n getCurrentPropertyPath(): string {\r\n return '';\r\n }\r\n\r\n createPropertyContext(propertyName: string): IConfigurationEvaluationContext {\r\n return new PropertyLevelContext(this, propertyName);\r\n }\r\n\r\n applyValueTransformation(propertyPath: string, value: any): any {\r\n if(!Check.isString(value)) {\r\n return value;\r\n }\r\n return updateAssetPath(value, this.dataProvider.configurationPath);\r\n }\r\n\r\n createPropertyEvaluator(propertyName: string, propertyOwner: any): IPropertyEvaluator {\r\n switch (propertyName) {\r\n case 'gamesId':\r\n return new GamesIdPropertyEvaluator(propertyOwner, this.dataProvider.admin);\r\n case 'gamesSettings':\r\n let propertyValue = propertyOwner.gamesSettings;\r\n if (propertyOwner.gamesSettings && propertyOwner.gamesSettings.gamesTags) {\r\n propertyValue = {...propertyValue, gamesTags: this._mergeGamesFromLauncher(propertyOwner.gamesSettings.gamesTags)}\r\n } else {\r\n propertyValue = {...propertyValue, gamesTags: this._mergeGamesFromLauncher(this.dataProvider.admin && this.dataProvider.admin.gamesTags)}\r\n }\r\n return new PropertyEvaluator(propertyName, this.parsePropertyValue(propertyValue));\r\n default:\r\n return new PropertyEvaluator(propertyName, this.parsePropertyValue(propertyOwner[propertyName]));\r\n }\r\n }\r\n\r\n\r\n private _mergeGamesFromLauncher(existingGamesTags: any): any {\r\n\r\n const demoSettings = {\r\n demoCTAAnonymous: {pc: true, mobile: true},\r\n demoCTAAuthorized: {pc: true, mobile: true},\r\n intermediatePageAnonymous: {pc: true, mobile: true},\r\n intermediatePageAuthorized: {pc: true, mobile: true}\r\n };\r\n\r\n existingGamesTags = existingGamesTags || {};\r\n\r\n if(isInsideAutomation()) {\r\n Object.keys(existingGamesTags).forEach(gameType => {\r\n existingGamesTags[gameType]['demoSettings'] = demoSettings;\r\n });\r\n }\r\n\r\n let launcherGameTypes = this.getLauncherGames();\r\n\r\n launcherGameTypes.forEach(gameType => {\r\n if(existingGamesTags[gameType]) {\r\n existingGamesTags[gameType]['demoSettings'] = demoSettings;\r\n } else {\r\n existingGamesTags[gameType] = {};\r\n existingGamesTags[gameType]['demoSettings'] = demoSettings;\r\n }\r\n });\r\n\r\n return existingGamesTags;\r\n }\r\n\r\n getLauncherGames(): number[] {\r\n return this.dataProvider.getLauncherGames() || [];\r\n }\r\n}\r\n","import {IServiceFactory} from '../../service-factory.interface';\r\nimport {GameInfo} from '../../games/game-info';\r\n\r\nexport enum PreviewFeatureType {\r\n description = 1,\r\n check = 2\r\n}\r\n\r\nexport interface PreviewFeatureEvaluationResult {\r\n title: string;\r\n value: any;\r\n type: PreviewFeatureType;\r\n}\r\nexport interface IGamePreviewFeature {\r\n readonly name: string;\r\n evaluate(services: IServiceFactory, gameInfo: GameInfo): PreviewFeatureEvaluationResult;\r\n}\r\n","import {ApplicationStartupConfigurations} from '../config-interfaces/application-startup.configurations';\r\nimport {LauncherOverridesReader} from '../launcher-overrides-reader/launcher-overrides-reader';\r\nimport {IWindowService} from '../../services/window/window.service.interface';\r\nimport {IConfigurationEvaluationDataProvider} from '../../services/configurations/evaluation/configuration-evaluation-context/configuration-evaluation-data-provider';\r\nimport {PropertiesEvaluator} from '../../services/configurations/evaluation/properties-evaluator/properties-evaluator';\r\nimport {\r\n ConfigurationEvaluationContext\r\n} from '../../services/configurations/evaluation/configuration-evaluation-context/configuration-evaluation-context';\r\nimport {ILoggerService} from '../../services/logger/logger.service.interface';\r\nimport {CGP_OBJECT_NAME} from '../constants';\r\nimport ISdkHooksProvider from './sdk-hooks-provider.interface';\r\nimport {IThemeDefinition} from \"../../services/theme/theme-definition.interface\";\r\n\r\nconst overrideJson = require('json-override');\r\n\r\nexport class SdkInitializer {\r\n constructor(private _applicationConfiguration: ApplicationStartupConfigurations,\r\n private _sdkHooksProvider: ISdkHooksProvider,\r\n private _launcherOverridesReader: LauncherOverridesReader,\r\n private _windowService: IWindowService,\r\n private _theme: IThemeDefinition,\r\n private _logger: ILoggerService) {\r\n\r\n }\r\n\r\n init(): Promise {\r\n\r\n return import(/* webpackChunkName: \"cgp-sdk\" */ '../../../sdk/src/core/api').then(module => module.API).then(API => {\r\n window['LOG_LEVEL'] = this._applicationConfiguration.sdk.config.Logger.logLevel || 'INFO';\r\n const sdkApi = new API(this._applicationConfiguration.sdk.config);\r\n let sdkConfigOverrides: any = this.getSdkConfigOverrides();\r\n\r\n return new Promise(resolve => {\r\n let onInitCompleteCallback = () => {\r\n window[CGP_OBJECT_NAME] = sdkApi;\r\n resolve();\r\n };\r\n\r\n sdkApi.initialize(sdkConfigOverrides, onInitCompleteCallback);\r\n });\r\n });\r\n\r\n }\r\n\r\n\r\n private getSdkConfigOverrides() {\r\n let sdkConfigOverrides = {\r\n Country: this.getCountryServiceOverrides(),\r\n Skin: this.getSkinServiceOverrides(),\r\n Game: this.getGameServiceOverrides(),\r\n Integration: this.getIntegrationServiceOverrides(),\r\n Themes: this.getThemesServiceOverrides(),\r\n Http2: this.getHttp2ServiceOverrides(),\r\n JackpotToasters: this.getJackpotToastersServiceOverrides(),\r\n OrbitComponentRender: this.getOrbitComponentRenderOverrides(),\r\n CashierProxy: this.getCashierProxyOverrides(),\r\n GameRunnerProxy: this.getGameRunnerProxyOverrides(),\r\n CasinofiedAnalyticsProxy: this.getCasinofiedAnalyticsProxyOverrides()\r\n };\r\n\r\n overrideJson(sdkConfigOverrides, this._evaluateSdkConfigsInsideOrbit());\r\n return sdkConfigOverrides;\r\n }\r\n\r\n private getJackpotToastersServiceOverrides(): any {\r\n return {\r\n toasterImage: this._theme.shellTheme.images.jackpotWidget.generic.crown.toString()\r\n };\r\n }\r\n\r\n private getCountryServiceOverrides(): any {\r\n return {\r\n country: this._applicationConfiguration.country,\r\n };\r\n }\r\n\r\n private getSkinServiceOverrides(): any {\r\n\r\n const skinOverride = this._applicationConfiguration.orbit?.config?.SDK?.Skin || {};\r\n const sdkConfig = this._applicationConfiguration.sdk?.config;\r\n\r\n let responsibleGamblingLink = sdkConfig?.Skin?.responsibleGamblingLink;\r\n\r\n if(responsibleGamblingLink) {\r\n if (!this._windowService.isAbsolutUrl(responsibleGamblingLink)) { // it means that responsibleGamblingLink is a relative url\r\n let origin = this._windowService.origin;\r\n if (!origin.endsWith('/')) {\r\n origin = origin + '/';\r\n }\r\n let pathName = responsibleGamblingLink;\r\n if (pathName[0] === '/') {\r\n pathName = pathName.substring(1);\r\n }\r\n\r\n responsibleGamblingLink = origin + pathName;\r\n }\r\n\r\n skinOverride.responsibleGamblingLink = responsibleGamblingLink;\r\n }\r\n\r\n return skinOverride;\r\n }\r\n\r\n private _evaluateSdkConfigsInsideOrbit(): any {\r\n let sdkConfigsInsideOrbit = this._applicationConfiguration.orbit && this._applicationConfiguration.orbit.config && this._applicationConfiguration.orbit.config.SDK;\r\n if(!sdkConfigsInsideOrbit) {\r\n return {};\r\n }\r\n\r\n let segments: Record = {\r\n env: this._applicationConfiguration.sdk.config.ExtraProperties.env\r\n };\r\n\r\n let configEvaluationDataProvider: IConfigurationEvaluationDataProvider = {\r\n configurationPath: this._applicationConfiguration.configurationPath,\r\n getSegmentValue: (segmentName => segments[segmentName]),\r\n getLauncherGames: () => [],\r\n admin: this._applicationConfiguration.admin,\r\n logger: this._logger\r\n };\r\n\r\n let context = new ConfigurationEvaluationContext(configEvaluationDataProvider);\r\n let evaluator = PropertiesEvaluator.fromRoot(sdkConfigsInsideOrbit, context);\r\n return evaluator.evaluate(context);\r\n }\r\n\r\n private getGameServiceOverrides(): any {\r\n\r\n let result: any = {\r\n resolveGameImagePath: (imageFilePath: string) => this._sdkHooksProvider.resolveGameImagePath(imageFilePath)\r\n };\r\n\r\n result.gameDefaultIcon = this._theme.mainContentTheme.images.gameDefaultIcon.toString();\r\n result.backgroundDefault = this._theme.mainContentTheme.images.gameDefaultBackground.toString();\r\n\r\n return result;\r\n }\r\n\r\n private _waitForMapperCGP = (resolve: (value?: unknown) => void) => {\r\n let mapperData = this._sdkHooksProvider.getGameTypesMappingForSdk();\r\n if(mapperData) {\r\n resolve(mapperData);\r\n } else {\r\n setTimeout(() => this._waitForMapperCGP(resolve), 5);\r\n }\r\n };\r\n\r\n private _gameTypeMapper() {\r\n return new Promise(resolve => {\r\n this._waitForMapperCGP(resolve);\r\n });\r\n };\r\n\r\n private _getHeaderRegulationDataElement() {\r\n return new Promise(resolve => {\r\n this._waitForHeaderRegulationDataElement(resolve);\r\n });\r\n };\r\n\r\n private _waitForHeaderRegulationDataElement = (resolve: (value?: unknown) => void) => {\r\n let headerRegulationDataElement = this._sdkHooksProvider.getHeaderRegulationDataElement();\r\n this.waitForElement(headerRegulationDataElement, resolve);\r\n };\r\n\r\n waitForElement(element: HTMLElement, resolve: (value?: unknown) => void) {\r\n if(element) {\r\n resolve(element);\r\n } else {\r\n setTimeout(() => this._waitForHeaderRegulationDataElement(resolve), 5);\r\n }\r\n }\r\n\r\n private getIntegrationServiceOverrides(): any {\r\n let launcherOverrides = this._launcherOverridesReader.getOverrides();\r\n\r\n return {\r\n gameTypeMapper: this._gameTypeMapper.bind(this),\r\n proxyLink: (url: string) => this._sdkHooksProvider.redirectProxy(url),\r\n openInNewWindowHook: () => this._sdkHooksProvider.openInNewWindowHook(),\r\n isMiniCipFunc: () => this._sdkHooksProvider.isMiniCip(),\r\n isMiniCisFunc: () => this._sdkHooksProvider.isMiniCis(),\r\n headerRegulationDataElement: this._getHeaderRegulationDataElement.bind(this),\r\n CMSSource: launcherOverrides?.orbit?.cmsSource\r\n };\r\n }\r\n\r\n private getThemesServiceOverrides(): any {\r\n let sdkTheme = this._theme.shellTheme?.sdk;\r\n if (sdkTheme) {\r\n return sdkTheme;\r\n }\r\n return {}\r\n }\r\n\r\n private getHttp2ServiceOverrides(): any {\r\n let result: any = {};\r\n let launcherOverrides = this._launcherOverridesReader.getOverrides();\r\n if(launcherOverrides?.sdk?.api) {\r\n result.origin = launcherOverrides.sdk.api;\r\n }\r\n return result;\r\n }\r\n\r\n private getOrbitComponentRenderOverrides(): any {\r\n return {\r\n getOrbitComponentToSdkAdapter: () => this._sdkHooksProvider.getOrbitComponentToSdkAdapter()\r\n }\r\n }\r\n\r\n private getCashierProxyOverrides(): any {\r\n return {\r\n getCashierService: () => this._sdkHooksProvider.getCashierService()\r\n };\r\n }\r\n\r\n private getGameRunnerProxyOverrides(): any {\r\n return {\r\n getGameRunnerService: () => this._sdkHooksProvider.getGameRunnerService()\r\n };\r\n }\r\n\r\n private getCasinofiedAnalyticsProxyOverrides(): any {\r\n return {\r\n getCasinofiedAnalyticsService: () => this._sdkHooksProvider.getCasinofiedAnalyticsService()\r\n };\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n","export const QA_ENVIRONMENT_POP_UP_BLOCKER_COOKIE:string = 'dontShowEnvironmentPopUpBlockerAgain';","import {IServiceFactoryExtended} from './service-factory-extended.interface';\r\nimport {IReactionOptions} from 'mobx/lib/api/autorun';\r\nimport {reaction as mobxReaction, IReactionDisposer, IReactionPublic} from 'mobx'\r\n\r\nexport class ServiceBase {\r\n constructor(private _serviceFactory: IServiceFactoryExtended) {\r\n }\r\n\r\n protected get services(): IServiceFactoryExtended {\r\n return this._serviceFactory;\r\n }\r\n\r\n private _reactions: IReactionDisposer[] = [];\r\n\r\n private _getClassName(): string {\r\n const thisProto = Object.getPrototypeOf(this);\r\n if(thisProto.constructor.name) {\r\n return thisProto.constructor.name;\r\n } else {\r\n return thisProto.constructor.CLASS;\r\n }\r\n }\r\n\r\n protected reaction(expression: (r: IReactionPublic) => T, effect: (arg: T, r: IReactionPublic) => void, opts?: IReactionOptions): void {\r\n this._reactions.push(mobxReaction(expression, effect, opts));\r\n }\r\n\r\n protected getABFeatureData(): any{\r\n if(!this.services.user.isAuthorized) {\r\n return;\r\n }\r\n return this.services.sdk.getAbTestingDataForFeature(this._getClassName());\r\n }\r\n\r\n\r\n dispose() {\r\n this._reactions.forEach(disposer => disposer());\r\n }\r\n}\r\n","import { QA_ENVIRONMENT_POP_UP_BLOCKER_COOKIE } from './qa-environment-pop-up-blocker.service.constants';\r\nimport { ServiceBase } from './../ServiceBase';\r\nimport { IQAEnvironmentPopUpBlockerService } from './qa-environment-pop-up-blocker.service.interface';\r\nconst md5 = require('md5');\r\n\r\nexport class QAEnvironmentPopUpBlockerService extends ServiceBase implements IQAEnvironmentPopUpBlockerService {\r\n\r\n validatePassword(password) {\r\n if (md5(password) === this.services.configuration.servicesConfigs.QAEnvironmentPopUp.validationKey) {\r\n this._setCookie();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private _setCookie() {\r\n let expirationDate:Date = new Date();\r\n expirationDate.setMonth(expirationDate.getMonth() + 3);\r\n this.services.cookies.createCookie(QA_ENVIRONMENT_POP_UP_BLOCKER_COOKIE, 'true', expirationDate);\r\n }\r\n\r\n}","import { Check } from '@sparkware/app-utils';\r\nimport { observable, action, computed } from 'mobx';\r\nimport { ServiceBase } from '../ServiceBase';\r\nimport { IVideoPlayer } from './video-players/video-player.interface';\r\nimport { IServiceFactoryExtended } from '../service-factory-extended.interface';\r\nimport { IVideoPlayingService } from './video-playing.service.interface';\r\nimport {GameInfo} from \"../games/game-info\";\r\nimport {ISwipeLogicHandler} from \"../arenas/models/swiper-logic-handler/swiper-logic-handler.interface\";\r\n\r\nexport abstract class VideoPlayingServiceBase extends ServiceBase implements IVideoPlayingService {\r\n\r\n public abstract gaCategory: string;\r\n\r\n @observable.ref isSupported: boolean = null;\r\n @action.bound\r\n private _setIsSupported(isSupported: boolean): void {\r\n this.isSupported = isSupported;\r\n }\r\n\r\n @observable.ref isVideoMuted: boolean = true;\r\n @action.bound\r\n private _setIsVideoMuted(isVideoMuted: boolean): void {\r\n this.isVideoMuted = isVideoMuted;\r\n }\r\n\r\n @observable.ref isAppVisible: boolean = true;\r\n @action.bound\r\n private _setIsAppVisible(isAppVisible: boolean): void {\r\n this.isAppVisible = isAppVisible;\r\n }\r\n\r\n @computed\r\n get isDisabledPrelogin(): boolean {\r\n if (this.services.user.isAuthorized) {\r\n return false;\r\n }\r\n\r\n const currentRegulationCode = this.services.regulation.getRegulationCode();\r\n const disableForRegulationPreLogin = this.services.configuration.servicesConfigs.LiveVideoStream.disableForRegulationPreLogin[currentRegulationCode];\r\n return !Check.isNullOrUndefined(disableForRegulationPreLogin) && disableForRegulationPreLogin;\r\n }\r\n\r\n //Swiper Handler for the orbit swiper handling the current playing video.\r\n //This implementation breaks if in the future there will be > 1 swipers playing the same type of video in the same page.\r\n //But for now, we need this to swipe to & start the next video after the current one finishes playing.\r\n private _swiperHandler: ISwipeLogicHandler | null = null;\r\n\r\n public setSwiperHandler(value: ISwipeLogicHandler): void {\r\n this._swiperHandler = value;\r\n }\r\n\r\n public getSwiperHandler(): ISwipeLogicHandler | null {\r\n return this._swiperHandler;\r\n }\r\n\r\n constructor (services: IServiceFactoryExtended) {\r\n super(services);\r\n this._init();\r\n this.services.sdk.events.onAppPaused(() => {\r\n this._setIsAppVisible(false);\r\n });\r\n this.services.sdk.events.onAppResumed(() => {\r\n this._setIsAppVisible(true);\r\n });\r\n services.sdk.events.onGameOpen(() => {\r\n this._setIsVideoMuted(true);\r\n });\r\n }\r\n\r\n private async _init() {\r\n const isSupported = await this._checkIfSupported();\r\n\r\n if (!isSupported) {\r\n this.services.sdk.structuredLoggingService\r\n .getLogger()\r\n .addCategory(this.gaCategory)\r\n .addAction('VideoStreamNotSupported')\r\n .info();\r\n }\r\n\r\n this._setIsSupported(isSupported);\r\n }\r\n\r\n protected abstract _checkIfSupported(): Promise;\r\n\r\n public abstract getVideoPlayer(gameInfo: GameInfo, videoReference: HTMLVideoElement): Promise;\r\n\r\n toggleVideoSound() {\r\n this._setIsVideoMuted(!this.isVideoMuted);\r\n this.services.analytics.sendAnalytics(this.gaCategory, \"SOUND_CLICK\", `${this.isVideoMuted ? \"OFF\" : \"ON\"}`, '', false);\r\n }\r\n}","import {VideoPlayingServiceBase} from \"./video-playing-service-base\";\r\nimport {GameInfo} from \"../games/game-info\";\r\nimport {IVideoPlayer} from \"./video-players/video-player.interface\";\r\n\r\nexport const LIVE_STREAM_WATCH_TIME_LIMIT: number = 120000;\r\n\r\nexport class LiveStreamPlayingService extends VideoPlayingServiceBase {\r\n\r\n public gaCategory = \"ORBIT_LIVE_STREAM\";\r\n\r\n protected async _checkIfSupported() {\r\n const LiveStreamNativePlayer = await import('./video-players/live-stream-players/native/video-live-stream-player-native').then(module => module.LiveStreamNativePlayer);\r\n if (LiveStreamNativePlayer.isSupported()) {\r\n return true;\r\n }\r\n\r\n const LiveStreamHlsPlayer = await import('./video-players/live-stream-players/hls/video-live-stream-player-hls').then(module => module.LiveStreamHlsPlayer);\r\n return LiveStreamHlsPlayer.isSupported();\r\n }\r\n\r\n async getVideoPlayer(gameInfo: GameInfo, videoReference: HTMLVideoElement, dontAutoSwipe?: boolean): Promise {\r\n\r\n const gameType = gameInfo.gameType;\r\n const streamSource = gameInfo.videoURL;\r\n\r\n //In the future, this should be coming from admin as well.\r\n const watchTimeLimit = LIVE_STREAM_WATCH_TIME_LIMIT;\r\n\r\n const LiveStreamNativePlayer = await import('./video-players/live-stream-players/native/video-live-stream-player-native').then(module => module.LiveStreamNativePlayer);\r\n\r\n // We need to check also if not android because Evo live stream games not working on android real device because they use WAF and they don't get referer in android native.\r\n if (LiveStreamNativePlayer.isSupported() && !this.services.device.os.isAndroid) {\r\n return new LiveStreamNativePlayer(this.services, gameType, videoReference, streamSource, watchTimeLimit);\r\n }\r\n\r\n const LiveStreamHlsPlayer = await import('./video-players/live-stream-players/hls/video-live-stream-player-hls').then(module => module.LiveStreamHlsPlayer);\r\n if (LiveStreamHlsPlayer.isSupported()) {\r\n return new LiveStreamHlsPlayer(this.services, gameType, videoReference, streamSource, watchTimeLimit);\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","import {ITranslationService} from \"./translation.service.interface\";\r\n\r\nexport class TextTranslation {\r\n constructor(private readonly translationService: ITranslationService,\r\n public readonly translationKey: string,\r\n private readonly _parameters?: any) {\r\n }\r\n\r\n get translation(): string {\r\n return this.translationService.translate(this.translationKey, this._parameters);\r\n }\r\n\r\n}","import {ITranslationService} from './translation.service.interface';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {TextTranslation} from \"./text-translation\";\r\n\r\nexport class TranslationService extends ServiceBase implements ITranslationService {\r\n\r\n get langData(): any {\r\n return this.services.language.translatedTexts;\r\n }\r\n\r\n translate(key: string, parameters?: any): string {\r\n try {\r\n let translatedPhrase = '';\r\n\r\n if (this.langData && key !== '') {\r\n if (this.langData[key]) {\r\n translatedPhrase = this.langData[key];\r\n } else {\r\n\r\n this.services.logger.debug(`Missing translation for ${key} in language ${this.services.language.currentLanguage}`);\r\n\r\n return key;\r\n }\r\n }\r\n return this._resolveBraces(translatedPhrase, parameters);\r\n } catch (err) {\r\n console.log('error in transform function, error message: ', err);\r\n return '';\r\n }\r\n }\r\n\r\n getTranslation(key: string, parameters?: any): TextTranslation {\r\n return new TextTranslation(this, key, parameters);\r\n }\r\n\r\n private _resolveBraces(str: string, value = null) {\r\n\r\n if('' === str)\r\n return str;\r\n\r\n if (Check.isObject(value)) {\r\n Object.keys(value).forEach(key => str = str.replace(`{${key}}`, value[key]));\r\n }\r\n else {\r\n\r\n let objectKeys = str.match(/[^{]+(?=\\})/g) || []; //array of object keys that have to be replaced (looking for {foo})\r\n\r\n for (let objectKey of objectKeys) {\r\n if (value) {\r\n str = str.replace(`{${objectKey}}`, value);\r\n } else {\r\n //if we didn't get value we will look the key in the config\r\n str = str.replace(`{${objectKey}}`, this.services.configuration.resolveConfigurationValue(objectKey));\r\n }\r\n }\r\n\r\n }\r\n return str;\r\n\r\n }\r\n}\r\n","export const CURRENCY_SYMBOLS: Record = {\r\n CAD: 'C$',\r\n NOK: 'Kr.',\r\n USD: '$',\r\n EUR: '€',\r\n GBP: '£',\r\n DKK: 'Kr.',\r\n SEK: 'kr',\r\n RON: 'RON'\r\n};","import {ICurrencyService} from './currency.service.interface';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {CURRENCY_SYMBOLS} from \"./currency-symbol.interface\";\r\n\r\nexport class CurrencyService extends ServiceBase implements ICurrencyService {\r\n\r\n formatMoney(value: number, withDecimal?: boolean): string {\r\n return this.services.sdk.formatMoney(value, withDecimal);\r\n }\r\n\r\n // TODO: Check if formatMinMaxBet can be called with undefined/null\r\n // after switching to strictNullCheck and repair the signature and code\r\n formatMinMaxBet(minBet: number, maxBet: number): string | null {\r\n if(minBet && maxBet) {\r\n return this.formatMoney(minBet, true) + ' - ' + this.formatMoney(maxBet, true);\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n get currencyIso3(): string {\r\n return this.services.sdk.getCurrencyIso3();\r\n }\r\n\r\n get getCurrencySymbol(): string {\r\n return CURRENCY_SYMBOLS[this.currencyIso3] || this.currencyIso3;\r\n }\r\n}\r\n","import {AIRecommendationsAnalyticsData, ISendElasticEventOptions , IAnalyticsService} from './analytics.service.interface';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IElasticEventData, IStructuredLogger} from '../../../common/interfaces/structured-logging-service-interface';\r\nimport {Check} from \"@sparkware/app-utils\";\r\n\r\nexport class AnalyticsService extends ServiceBase implements IAnalyticsService {\r\n\r\n sendAnalytics(\r\n category: string,\r\n action: string | undefined = undefined,\r\n label: string | undefined = undefined,\r\n value: string | undefined = undefined,\r\n omitStructuredLogger?: boolean\r\n ) {\r\n this.services.sdk.sendAnalytics(category, action, label, value, omitStructuredLogger);\r\n }\r\n\r\n sendAIRecommendations(data: AIRecommendationsAnalyticsData): void {\r\n this.sendAnalytics(data.category, JSON.stringify(data.gameTypes), data.engine);\r\n }\r\n\r\n sendTechnicalEvent(action: string, label?: string, value?: any): void {\r\n this.sendAnalytics('[Technical-event]', action, label, value);\r\n }\r\n\r\n sendElasticInfoEvent(options: ISendElasticEventOptions, sendToDWH?: boolean) {\r\n const logger: IStructuredLogger = this.services.sdk.structuredLoggingService\r\n .getLogger()\r\n .addCategory(options.category)\r\n .addAction(options.action)\r\n .addLabel(options.label)\r\n .addValue(options.value)\r\n .addCustomData(options.customData);\r\n\r\n if (!Check.isNullOrUndefined(options.appID)) {\r\n logger.setAppID(options.appID);\r\n }\r\n\r\n if (sendToDWH) {\r\n logger.setEventType(options.eventType,'Log', 'Analytics');\r\n }\r\n else {\r\n logger.setEventType(options.eventType, 'Log');\r\n }\r\n\r\n logger.info();\r\n }\r\n\r\n getLogger(eventData?: IElasticEventData): IStructuredLogger {\r\n return this.services.sdk.structuredLoggingService.getLogger(eventData);\r\n }\r\n\r\n getGoogleClientID(): string {\r\n return this.services.sdk.getGoogleClientID();\r\n }\r\n}\r\n","import {ILobbyGameInfoPreviewService} from './lobby-game-info-preview.service.interface';\r\nimport {action, observable} from 'mobx';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {GameInfo} from '../games/game-info';\r\n\r\nconst TIME_TO_HANDLE_SET_GAME_PREVIEW = 800;\r\nconst TIME_TO_HANDLE_CLEAR_GAME_PREVIEW = 5000;\r\n\r\n\r\nexport class LobbyGameInfoPreviewService extends ServiceBase implements ILobbyGameInfoPreviewService {\r\n\r\n constructor(serviceFactory: IServiceFactoryExtended) {\r\n super(serviceFactory);\r\n this.reaction(() => this.services.device.isMobile,\r\n () => this._resetGamePreview());\r\n\r\n this.reaction(() => this.services.routing.currentRoute,\r\n () => this._resetGamePreview());\r\n }\r\n\r\n\r\n @observable.ref currentPreviewedGame: GameInfo = null;\r\n\r\n @action.bound\r\n private _setCurrentPreviewedGame(gameType: number | null): void {\r\n if (gameType) {\r\n this.currentPreviewedGame = this.services.games.gamesMap[gameType];\r\n } else {\r\n this.currentPreviewedGame = null;\r\n }\r\n\r\n }\r\n\r\n\r\n private _setGamePreviewTimeout;\r\n private _clearGamePreviewTimeout;\r\n\r\n\r\n enableGamePreview(): void {\r\n this._allowPreview = true;\r\n }\r\n\r\n disableGamePreview(): void {\r\n this._allowPreview = false;\r\n }\r\n\r\n private _allowPreview = false;\r\n get allowGamePreview(): boolean {\r\n return this._allowPreview && !this.services.device.isMobile;\r\n }\r\n\r\n private _currentGamePreviewPinned = false;\r\n\r\n pinCurrentGamePreview() {\r\n this._currentGamePreviewPinned = true;\r\n clearTimeout(this._clearGamePreviewTimeout);\r\n }\r\n\r\n unPinCurrentGamePreview() {\r\n this._currentGamePreviewPinned = false;\r\n // basically when unPinCurrentGamePreview is called it means user mouse leave from the game preview\r\n this.clearGamePreview();\r\n }\r\n\r\n\r\n public setGamePreview(gameType: number): void {\r\n if(!this.allowGamePreview) {\r\n return;\r\n }\r\n clearTimeout(this._clearGamePreviewTimeout);\r\n clearTimeout(this._setGamePreviewTimeout);\r\n this._setGamePreviewTimeout = setTimeout(() => {\r\n this._setCurrentPreviewedGame(gameType);\r\n }, TIME_TO_HANDLE_SET_GAME_PREVIEW);\r\n }\r\n\r\n public clearGamePreview(): void {\r\n if(!this.allowGamePreview) {\r\n return;\r\n }\r\n\r\n clearTimeout(this._setGamePreviewTimeout);\r\n clearTimeout(this._clearGamePreviewTimeout);\r\n this._clearGamePreviewTimeout = setTimeout(() => {\r\n !this._currentGamePreviewPinned && this._setCurrentPreviewedGame(null);\r\n }, TIME_TO_HANDLE_CLEAR_GAME_PREVIEW);\r\n }\r\n\r\n private _resetGamePreview() {\r\n clearTimeout(this._setGamePreviewTimeout);\r\n clearTimeout(this._clearGamePreviewTimeout);\r\n this._setCurrentPreviewedGame(null);\r\n }\r\n\r\n\r\n}\r\n","import { action, observable } from 'mobx';\r\nimport { GameInfo } from '../games/game-info';\r\nimport { OnGameCloseParams, OnGameOpenParams } from '../sdk/sdk-events';\r\nimport { ServiceBase } from '../ServiceBase';\r\nimport { IRunningGameService } from './running-game.service.interface';\r\n\r\nexport class RunningGameService extends ServiceBase implements IRunningGameService {\r\n\r\n get isGameRunning(): boolean {\r\n return this.services.sdk.isGameRunning();\r\n }\r\n\r\n continuePlayingCurrentGame(): void {\r\n this.services.sdk.continuePlayingCurrentGame();\r\n }\r\n\r\n stopCurrentGameAutoplay(): void {\r\n this.services.sdk.stopCurrentGameAutoplay();\r\n }\r\n\r\n closeRunningGame(): void {\r\n this.services.sdk.closeRunningGame();\r\n }\r\n\r\n @observable.ref\r\n lastPlayedRealGame: GameInfo = null;\r\n\r\n\r\n @observable.ref\r\n correlatedGamesForLastPlayedRealGame: GameInfo[] = [];\r\n\r\n private _listenForLastRealGame = false;\r\n\r\n\r\n @action\r\n _setLastPlayedRealGame(lastGameInfo: GameInfo) {\r\n this.lastPlayedRealGame = lastGameInfo;\r\n }\r\n\r\n @action\r\n _setCorrelatedGamesForLastPlayedRealGame(gameInfos: GameInfo[]) {\r\n this.correlatedGamesForLastPlayedRealGame = gameInfos;\r\n }\r\n\r\n listenForLastPlayedRealGame() {\r\n if (this._listenForLastRealGame) {\r\n return;\r\n }\r\n\r\n this.services.sdk.events.onGameClose((closeOptions: OnGameCloseParams) => {\r\n // showNextGameSuggestion should be filled as true when player itself closes the game (press on X button)\r\n if (closeOptions.isReal && closeOptions.isGamePlayed && closeOptions.showNextGameSuggestion) {\r\n this.setLastPlayedRealGame(closeOptions.gameType);\r\n }\r\n });\r\n\r\n this._listenForLastRealGame = true;\r\n }\r\n\r\n async setLastPlayedRealGame(gameType: number): Promise {\r\n const lastGameInfo = await this.services.games.getGameInfo(gameType);\r\n const correlatedGames = await this.services.games.getCorrelatedGames(gameType, 50);\r\n let gameInfosArray = await this.services.games.getGamesInfoArray(correlatedGames) || [];\r\n\r\n this._setLastPlayedRealGame(lastGameInfo);\r\n this._setCorrelatedGamesForLastPlayedRealGame(gameInfosArray);\r\n }\r\n\r\n private _listenForLastOpenDemoGame = false;\r\n\r\n @observable.ref\r\n lastOpenDemoGame: GameInfo = null;\r\n\r\n listenForLastOpenDemoGame() {\r\n if (this._listenForLastOpenDemoGame) {\r\n return;\r\n }\r\n\r\n this.services.sdk.events.onGameOpen((options: OnGameOpenParams) => {\r\n if (!options.isReal) {\r\n this.setLastOpenDemoGame(options.gameType);\r\n }\r\n });\r\n\r\n this._listenForLastOpenDemoGame = true;\r\n }\r\n\r\n async setLastOpenDemoGame(gameType: number): Promise {\r\n const gameInfo = await this.services.games.getGameInfo(gameType);\r\n this._setLastOpenDemoGame(gameInfo);\r\n }\r\n\r\n @action\r\n _setLastOpenDemoGame(lastGameInfo: GameInfo) {\r\n this.lastOpenDemoGame = lastGameInfo;\r\n }\r\n}\r\n","import styled from 'styled-components';\r\n\r\n//info-mobile\r\nexport const GameInfoButtonDefaultBox = styled.div`\r\n padding-right: 20px;\r\n margin-right: 15px;\r\n border-right: 1px solid ${props => props.theme.colors.boxBorderContrast};\r\n cursor: pointer;\r\n`;","import styled from 'styled-components';\r\nimport {GameInfoButtonDefaultBox} from './game-info-button.default.box';\r\n\r\n\r\nexport const GameInfoButtonCasino777Box = styled(GameInfoButtonDefaultBox)`\r\n border-right: 1px solid $transparent;\r\n`;","import {GameInfoButtonDefaultBox} from './game-info-button.default.box';\r\nimport {GameInfoButtonCasino777Box} from './game-info-button.casino777.box';\r\nimport {styledByTheme} from '../../../../../../themes/architecture/styled-by-theme';\r\n\r\nexport const GameInfoButtonBox = styledByTheme(GameInfoButtonDefaultBox).forCasino777(GameInfoButtonCasino777Box).apply();","import styled from 'styled-components';\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\n\r\nconst DefaultBox = styled.div`\r\n flex-grow: 1;\r\n color: ${props => props.theme.colors.textLight};\r\n ${({theme}) => theme.font.presets.body};\r\n line-height: normal;\r\n text-transform: capitalize;\r\n font-size: 1.4em;\r\n letter-spacing: 0.98px;\r\n`;\r\n\r\n\r\nconst PcBox = styled(DefaultBox)`\r\n text-align: center;\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n text-align: left;\r\n`;\r\n\r\nexport const DialogTitleDefaultBox = styledByDevice(PcBox, MobileBox);","import {DialogTitleDefaultBox} from './dialog-title.default.box';\r\n\r\nexport const DialogTitleBox = DialogTitleDefaultBox;","import {DialogCloseButtonDefaultBox} from './dialog-close-button.default.box';\r\n\r\nexport const DialogCloseButtonBox = DialogCloseButtonDefaultBox;","import styled from 'styled-components';\r\nimport {XCloseButtonBox} from \"../../../../basic-ui-components/x-close-button/x-close-button.box\";\r\nexport const DialogCloseButtonDefaultBox = styled(XCloseButtonBox)`\r\n width: ${props => props.theme.components.modalDialog.closeButtonSize};\r\n height: ${props => props.theme.components.modalDialog.closeButtonSize};\r\n`;","export const APPLY_BORDERS = 'apply-borders';\r\nexport const APPLY_ANIMATION = 'apply-animation';\r\nexport const MOBILE_CENTERED_HEADER = 'mobile-centered-header';\r\nexport const FORCE_TRANSPARENT_BACKGROUND = 'force-transparent-background';\r\nexport const FORCE_TRANSPARENT_CONTENT_BACKGROUND = 'force-transparent-content-background';\r\nexport const DISABLE_FULLSCREEN_MOBILE = 'disable-fullscreen-mobile';\r\nexport const FORCE_CENTRALIZATION = 'force-centralization';\r\nexport const APPLY_MAX_HEIGHT = 'apply-max-height';\r\nexport const FORCE_FULLSCREEN_TABLET = 'force-fullscreen-tablet';\r\nexport const APPLY_MODAL_CLOSING_ANIMATION = 'apply-modal-closing-animation';","import styled from 'styled-components';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {MOBILE_CENTERED_HEADER} from \"../../css-classes\";\r\n\r\nexport interface DialogHeaderDefaultBoxProps {\r\n className?: string;\r\n height?: number;\r\n}\r\n\r\nexport const DialogHeaderDefaultBox = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: center;\r\n background-color: ${props => props.theme.colors.backgroundLight};\r\n padding: 10px 15px;\r\n min-height: 30px;\r\n height: ${props => Check.isNullOrUndefined(props.height) ? 'auto' : props.height + 'px'};\r\n width: 100%;\r\n\r\n &.${MOBILE_CENTERED_HEADER} .dialog-header-title {\r\n text-align: center;\r\n margin: 0;\r\n }\r\n\r\n border-top-left-radius: 10px;\r\n border-top-right-radius: 10px;\r\n`;","import styled from 'styled-components';\r\nimport {DialogHeaderDefaultBox} from './dialog-header.default.box';\r\n\r\nexport const DialogHeaderCipBox = styled(DialogHeaderDefaultBox)`\r\n position: relative;\r\n\r\n &::after {\r\n content: \"\";\r\n position: absolute;\r\n left: 0;\r\n bottom: 0;\r\n width: 100%;\r\n height: 1px;\r\n background: linear-gradient(90deg, transparent, white, transparent);\r\n }\r\n`;","import {styledByTheme} from '../../../../themes/architecture/styled-by-theme';\r\nimport {DialogHeaderDefaultBox} from './dialog-header.default.box';\r\nimport {DialogHeaderCipBox} from './dialog-header.cip.box';\r\n\r\nexport const DialogHeaderBox = styledByTheme(DialogHeaderDefaultBox)\r\n .forCip(DialogHeaderCipBox)\r\n .forWsopCip(DialogHeaderCipBox).apply();","import styled from \"styled-components\";\r\n\r\nexport const HeaderButtonsContainerBox = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: flex-end;\r\n \r\n \r\n`","import React from 'react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {DialogHeaderBox} from '../../boxes/header/dialog-header.box';\r\nimport {DialogTitleBox} from '../../boxes/title/dialog-title.box';\r\nimport {DialogCloseButtonBox} from '../../boxes/close-button/dialog-close-button.box';\r\nimport {CyClass} from '../../../../../common/cy-classes';\r\nimport {HeaderButtonsContainerBox} from \"../../boxes/header-buttons/header-buttons-container.box\";\r\n\r\nexport interface ModalDialogHeaderComponentProps {\r\n title?: string;\r\n hideCloseButton?: boolean;\r\n onCloseButtonClick?: () => void;\r\n className?: string;\r\n renderExtraButtons?: () => React.ReactElement;\r\n}\r\nexport class DialogHeaderComponent extends OrbitComponent {\r\n\r\n private _renderTitle() {\r\n if(!this.props.title) {\r\n return null;\r\n }\r\n\r\n return (\r\n {this.props.title}\r\n );\r\n }\r\n\r\n private _renderCloseButton() {\r\n if(this.props.hideCloseButton) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _renderExtraButtons() {\r\n if(this.props.renderExtraButtons) {\r\n return this.props.renderExtraButtons();\r\n }\r\n return null;\r\n }\r\n\r\n private _renderButtons() {\r\n if(this.props.hideCloseButton && !this.props.renderExtraButtons) {\r\n return null;\r\n }\r\n return (\r\n \r\n {this._renderExtraButtons()}\r\n {this._renderCloseButton()}\r\n \r\n )\r\n\r\n }\r\n\r\n private _renderContent() {\r\n if (this.props.children) {\r\n return this.props.children\r\n }\r\n\r\n return (\r\n <>\r\n {this._renderTitle()}\r\n {this._renderButtons()}\r\n \r\n );\r\n }\r\n\r\n render() {\r\n if(!this.props.title && this.props.hideCloseButton && !this.props.children) {\r\n return null;\r\n }\r\n\r\n let height: number | null = null;\r\n if(this.services.miniOrbit.isEnabled) {\r\n height = this.services.header.headerHeight;\r\n }\r\n\r\n return (\r\n \r\n {this._renderContent()}\r\n \r\n )\r\n }\r\n\r\n}","import React from 'react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {GameInfo} from '../../../../services/games/game-info';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {observer} from 'mobx-react';\r\nimport {IModalDialogHandler} from '../../../../services/dialog/dialog.service.interface';\r\nimport {GameInfoButtonBox} from './boxes/game-info-button/game-info-button.box';\r\nimport {DialogTitleBox} from '../../../modal-dialog/boxes/title/dialog-title.box';\r\nimport {DialogCloseButtonBox} from '../../../modal-dialog/boxes/close-button/dialog-close-button.box';\r\nimport {Image} from '../../../raw-components/image/image';\r\nimport {DialogHeaderComponent} from '../../../modal-dialog/parts/header/dialog-header.component';\r\n\r\nexport interface MobileGamePreviewTitleComponentProps {\r\n gameInfo: GameInfo;\r\n arenaName?: string;\r\n dialogHandler: IModalDialogHandler;\r\n}\r\n\r\n@observer\r\nexport class TitleComponent extends OrbitComponent {\r\n\r\n _openGameInfo = () => {\r\n const gameInfo = this.props.gameInfo;\r\n this._closeInfoMobile();\r\n\r\n if (this.props.arenaName) {\r\n //TODO: Do we need it?\r\n this.services.analytics.sendAnalytics(this.props.arenaName, \"Open_Game_Info\", `SEO_${gameInfo.gameType}`);\r\n }\r\n\r\n this.services.location.push(gameInfo.infoPageURL);\r\n };\r\n\r\n _closeInfoMobile = () => {\r\n this.props.dialogHandler?.close();\r\n };\r\n\r\n private _renderOpenInfoButton(gameInfo: GameInfo) {\r\n\r\n if (Check.isEmpty(gameInfo.infoPageURL) || this.services.miniOrbit.isEnabled) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n render() {\r\n let gameInfo = this.props.gameInfo;\r\n return (\r\n \r\n {gameInfo.title}\r\n {this._renderOpenInfoButton(gameInfo)}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n\r\n","import styled from 'styled-components';\r\nimport {styledByDevice} from '../../../../../../../themes/architecture/styled-by-device';\r\nimport { Image } from '../../../../../../raw-components/image/image';\r\n\r\n\r\n//.info-image-wrapper + info-image\r\n\r\nconst DefaultBox = styled(Image)`\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n margin-bottom: 1.1rem;\r\n`;\r\n\r\nconst PcBox = styled(DefaultBox)`\r\n width: 375px;\r\n height: 121px;\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n width: 285px;\r\n height: 92px;\r\n }\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n opacity: 0.7;\r\n`;\r\n\r\nexport const StripeImageDefaultBox = styledByDevice(PcBox, MobileBox);","import {StripeImageDefaultBox} from './stripe-image.default.box';\r\n\r\nexport const StripeImageBox = StripeImageDefaultBox;","import React from 'react';\r\nimport {OrbitComponent} from '../../../../base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\nimport {GameInfo} from '../../../../../services/games/game-info';\r\nimport {StripeImageBox} from './boxes/stripe-image/stripe-image.box';\r\n\r\nexport interface GameImagePreviewComponentProps {\r\n gameInfo: GameInfo;\r\n}\r\n\r\n@observer\r\nexport class GameStripeImageComponent extends OrbitComponent {\r\n\r\n render() {\r\n let gameInfo = this.props.gameInfo;\r\n let imageSrc = gameInfo.stripImage ? gameInfo.stripImage : gameInfo.stripeImageFallback;\r\n // I noticed that sometimes react doesn't re render this component even if a different gameInfo is provided.\r\n // Setting key={gameInfo.gameType} seems to overcome this issue\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\n","import {TrailerDefaultBox} from './trailer.default.box';\r\n\r\nexport const TrailerBox = TrailerDefaultBox;","import styled from 'styled-components';\r\n\r\n//.info-video-wrapper + info-movie\r\nexport const TrailerDefaultBox = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n margin-bottom: 1.1rem;\r\n`;","import React from 'react';\r\nimport {OrbitComponent} from '../../../../base-components/orbit-component/orbit-component';\r\nimport {GameStripeImageComponent} from '../stripe-image/game-stripe-image.component';\r\nimport {observer} from 'mobx-react';\r\nimport {GameInfo} from '../../../../../services/games/game-info';\r\nimport {TrailerBox} from './boxes/trailer/trailer.box';\r\n\r\nexport interface GameTrailerPreviewComponentProps {\r\n gameInfo: GameInfo;\r\n}\r\n@observer\r\nexport class GameTrailerComponent extends OrbitComponent {\r\n\r\n render() {\r\n let gameInfo = this.props.gameInfo;\r\n\r\n //we used here key={gameInfo.gameType} to make react re render the component when a different gameInfo is provided\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import * as React from 'react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {GameStripeImageComponent} from './stripe-image/game-stripe-image.component';\r\nimport {GameTrailerComponent} from './trailer/game-trailer.component';\r\nimport {observer} from 'mobx-react';\r\nimport {GameInfo} from '../../../../services/games/game-info';\r\n\r\nexport interface GameImageContainerComponentProps {\r\n gameInfo: GameInfo;\r\n}\r\n\r\n@observer\r\nexport class TrailerOrStripeImageComponent extends OrbitComponent {\r\n render() {\r\n if (this.props.gameInfo.hasVideoTrailer) {\r\n return (\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n );\r\n }\r\n }\r\n}\r\n","import styled from 'styled-components';\r\n\r\n//check-div\r\nexport const CellValueBoolDefaultBox = styled.div`\r\n width: 13px;\r\n height: 13px;\r\n float: right;\r\n background-image: url(\"${props => props.theme.images.checkMark.toString()}\");\r\n background-repeat: no-repeat;\r\n`;","export enum GAMES_CATEGORIES {\r\n SLOTS = 'slots',\r\n CARD_AND_TABLE = 'card-and-table',\r\n LIVE = 'live'\r\n};\r\n","import {CellValueBoolDefaultBox} from './cell-value-bool.default.box';\r\n\r\nexport const CellValueBoolBox = CellValueBoolDefaultBox;","import styled from 'styled-components';\r\n\r\n//game-info-text\r\nexport const CellValueTextDefaultBox = styled.span`\r\n color: ${props => props.theme.colors.brandSecondary};\r\n ${({theme}) => theme.font.presets.bold};\r\n`;","import styled from 'styled-components';\r\nimport {CellValueTextDefaultBox} from './cell-value-text.default.box';\r\n\r\nexport const CellValueTextCasino777Box = styled(CellValueTextDefaultBox)`\r\n color: ${props => props.theme.colors.dangerDark};\r\n`;","import {CellValueTextDefaultBox} from './cell-value-text.default.box';\r\nimport {CellValueTextCasino777Box} from './cell-value-text.casino777.box';\r\nimport {styledByTheme} from '../../../../../../../../themes/architecture/styled-by-theme';\r\n\r\nexport const CellValueTextBox = styledByTheme(CellValueTextDefaultBox).forCasino777(CellValueTextCasino777Box).apply();","import {CellTitleDefaultBox} from './cell-title.default.box';\r\n\r\nexport const CellTitleBox = CellTitleDefaultBox;","import styled from 'styled-components';\r\n\r\nexport const CellTitleDefaultBox = styled.span`\r\n color: ${props => props.theme.colors.textLight};\r\n ${({theme}) => theme.font.presets.body};\r\n`;","import React from 'react';\r\nimport {OrbitComponent} from '../../../../../base-components/orbit-component/orbit-component';\r\nimport {PreviewFeatureType} from '../../../../../../services/game-preview-features-selector/preview-features/game-preview-feature.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {CellValueBoolBox} from './boxes/cell-value-bool/cell-value-bool.box';\r\nimport {CellValueTextBox} from './boxes/cell-value-text/cell-value-text.box';\r\nimport {CellTitleBox} from './boxes/cell-title/cell-title.box';\r\n\r\nexport interface GameFeaturePreviewCellComponentProps{\r\n title: string;\r\n type: PreviewFeatureType,\r\n value: any\r\n}\r\n\r\nexport class GameFeatureCellComponent extends OrbitComponent {\r\n\r\n private _renderNoInfo() {\r\n return (-);\r\n }\r\n private _renderCheckbox() {\r\n if(this.props.value) {\r\n return ();\r\n }\r\n\r\n return this._renderNoInfo();\r\n }\r\n\r\n private _renderDescription() {\r\n if(Check.isEmpty(this.props.value)) {\r\n return this._renderNoInfo();\r\n }\r\n\r\n return ({this.props.value});\r\n }\r\n\r\n\r\n private _renderValue() {\r\n if(this.props.type === PreviewFeatureType.check) {\r\n return this._renderCheckbox();\r\n }\r\n\r\n return this._renderDescription();\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this.props.title}\r\n {this._renderValue()}\r\n \r\n );\r\n\r\n }\r\n}\r\n","import styled from 'styled-components';\r\n\r\n//game-info game-preview\r\n\r\nexport const TableContainerDefaultBox = styled.table`\r\n padding: 0 8px;\r\n border-radius: 5px;\r\n background-color: ${props => props.theme.colors.backgroundLight};\r\n color: ${props => props.theme.colors.textLight};\r\n & tbody {\r\n border: none;\r\n background: transparent;\r\n }\r\n\r\n & td {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 50%;\r\n padding: 0;\r\n padding-right: 15px;\r\n height: 3.5rem;\r\n\r\n border-bottom: 1px solid ${props => props.theme.colors.boxBorder};\r\n border-top: 1px solid ${props => props.theme.colors.boxBorderLight};\r\n }\r\n\r\n & tr {\r\n display: flex;\r\n background-color: transparent;\r\n height: 30px;\r\n &:first-child {\r\n td {\r\n border-top: none;\r\n }\r\n }\r\n &:last-child {\r\n td {\r\n border-bottom: none;\r\n }\r\n }\r\n }\r\n`;","import styled from 'styled-components';\r\nimport {TableContainerDefaultBox} from './table-container.default.box';\r\nimport {hexToRgba} from '../../../../../../../../themes/hex-to-rgba';\r\n\r\nexport const TableContainerBoxCasino777Box = styled(TableContainerDefaultBox)`\r\n font-size: 1.6rem;\r\n font-weight: 400;\r\n \r\n & td { \r\n border-bottom: 1px solid ${props => hexToRgba(props.theme.colors.brandSecondaryDark, 0.5)};\r\n height:4rem;\r\n }\r\n`;","import {TableContainerDefaultBox} from './table-container.default.box';\r\nimport {TableContainerBoxCasino777Box} from './table-container.casino777.box';\r\nimport {styledByTheme} from '../../../../../../../../themes/architecture/styled-by-theme';\r\n\r\nexport const TableContainerBox = styledByTheme(TableContainerDefaultBox).forCasino777(TableContainerBoxCasino777Box).apply();","import React from 'react';\r\nimport {OrbitComponent} from '../../../../../base-components/orbit-component/orbit-component';\r\nimport {PreviewFeatureEvaluationResult} from '../../../../../../services/game-preview-features-selector/preview-features/game-preview-feature.interface';\r\nimport {splitArrayToChunks} from '../../../../../../../utils/array-helper';\r\nimport {GameFeatureCellComponent} from '../cell/game-feature-cell.component';\r\nimport {TableContainerBox} from './boxes/table-container/table-container.box';\r\n\r\n\r\nexport interface GameFeaturesPreviewTableComponentProps {\r\n features: PreviewFeatureEvaluationResult[]\r\n}\r\n\r\nexport class GameFeaturesTableComponent extends OrbitComponent {\r\n\r\n private _renderGameInfoTableRow(cells: PreviewFeatureEvaluationResult[]) {\r\n let key = cells.reduce((acc, curr) => curr.title + '_' + acc, '');\r\n return (\r\n \r\n {cells.map(cell => ())}\r\n \r\n );\r\n }\r\n\r\n render() {\r\n if(this.props.features.length === 0) {\r\n return null;\r\n }\r\n\r\n let chunks = splitArrayToChunks(this.props.features, 2);\r\n\r\n return (\r\n \r\n \r\n {chunks.map(chunk => this._renderGameInfoTableRow(chunk))}\r\n \r\n \r\n );\r\n }\r\n}\r\n","import {GameDescriptionDefaultTextBox} from './game-description-text.default.box';\r\n\r\nexport const GameDescriptionTextBox = GameDescriptionDefaultTextBox;","import styled from 'styled-components';\r\n\r\n\r\nexport const GameDescriptionDefaultTextBox = styled.div`\r\n font-size: 1.4rem;\r\n ${({theme}) => theme.font.presets.regular};\r\n color: ${props => props.theme.colors.text};\r\n font-weight: 300;\r\n line-height: normal;\r\n padding: 0 1rem 2rem;\r\n`;","import styled from 'styled-components';\r\nimport { flexAdaptiveSizeItem } from '../../themes/architecture/css-helpers/flex';\r\nimport { styledByDevice } from '../../themes/architecture/styled-by-device';\r\n\r\n\r\n\r\nconst DefaultBox = styled.h2`\r\n position: relative;\r\n min-width: 28rem;\r\n max-width: 82.5%;\r\n text-transform: uppercase;\r\n padding: 1rem 2rem;\r\n font-size: 1.5rem;\r\n line-height: normal;\r\n margin: 0;\r\n background: ${props => props.theme.components.generalTitle.colors.background};\r\n border-left: 3px solid ${props => props.theme.colors.brandPrimary};\r\n color: ${props => props.theme.colors.brandPrimary};\r\n ${({theme}) => theme.font.presets.bold};\r\n`;\r\n\r\nexport const PcBox = styled(DefaultBox)`\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n padding: .9rem 2rem;\r\n }\r\n`;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\r\n min-width: 65%;\r\n max-width: 100%;\r\n padding: .8rem 2rem;\r\n font-size: 1.2rem;\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n ${flexAdaptiveSizeItem}\r\n min-width: 0;\r\n }\r\n`;\r\n\r\n\r\n\r\nexport const GeneralTitleDefaultBox = styledByDevice(PcBox, MobileBox);\r\n\r\n","import styled from 'styled-components';\r\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\nimport {GeneralTitleDefaultBox} from '../../../../../basic-components/general-title/general-title.default.box';\r\n\r\n//.general-title\r\nexport const DefaultBox = styled(GeneralTitleDefaultBox)`\r\n color: ${props => props.theme.colors.textLight};\r\n border-left: 2px solid ${props => props.theme.colors.textLight};\r\n ${({theme}) => theme.font.presets.bold};\r\n\r\n margin: 0;\r\n margin-bottom: 10px;\r\n`;\r\n\r\n\r\n\r\nexport const PcBox = styled(DefaultBox)`\r\n font-size: 1.2rem;\r\n padding-left: 0.8rem;\r\n`;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\r\n font-size: 1.4rem;\r\n padding-left: 2rem;\r\n`;\r\n\r\nexport const SectionTitleDefaultBox = styledByDevice(PcBox, MobileBox);","import styled, { css } from 'styled-components';\r\nimport { PcBox as BasePcBox, MobileBox as BaseMobileBox } from './general-title.default.box';\r\nimport { CssRule } from '../../themes/architecture/css-helpers/css-rule';\r\nimport { styledByDevice } from '../../themes/architecture/styled-by-device';\r\n\r\nconst common = css`\r\n ${({theme}) => theme.font.presets.secondary};\r\n padding-left:4.5rem;\r\n text-transform: capitalize;\r\n padding-top:.6rem;\r\n padding-bottom:.6rem;\r\n font-size:2rem;\r\n font-weight: 300;\r\n border-left: none;\r\n z-index:0;\r\n clip-path: polygon(0 0, 10px 50%, 0 100%, 100% 100%, 100% 0);\r\n ${CssRule.For.RTL.build()} & {\r\n clip-path: polygon(0 0, 0 100%, 100% 100%, calc(100% - 10px) 50%, 100% 0);\r\n }\r\n &:before {\r\n content: \"\";\r\n position: absolute;\r\n background-image: url(\"${({theme}) => theme.images.spriteSheet.toString()}\");\r\n height: 20px;\r\n width: 20px;\r\n top: 10px;\r\n left: 16px;\r\n background-position: -176px -766px;\r\n background-repeat: no-repeat;\r\n z-index:-1;\r\n ${CssRule.For.RTL.build()} & {\r\n transform: scaleX(-1);\r\n }\r\n }\r\n`;\r\n\r\nconst PcBox = styled(BasePcBox)`\r\n ${common}\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n padding: 1rem 5.5rem;\r\n font-size:2rem;\r\n }\r\n`;\r\n\r\nconst MobileBox = styled(BaseMobileBox)`\r\n ${common}\r\n padding: .5rem 4rem;\r\n font-size: 1.6rem;\r\n &:before{\r\n background-position: -176px -819px;\r\n }\r\n`;\r\n\r\nexport const GeneralTitleCasino777Box = styledByDevice(PcBox, MobileBox);\r\n","import styled from 'styled-components';\r\nimport {GeneralTitleCasino777Box} from '../../../../../basic-components/general-title/general-title.casino777.box';\r\n\r\n\r\nexport const SectionTitleCasino777Box = styled(GeneralTitleCasino777Box)`\r\n ${({theme}) => theme.font.presets.bold};\r\n color: ${props => props.theme.colors.textLight};\r\n text-transform: uppercase;\r\n font-size: 1.6rem;\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-position: -155px -861px;\r\n height: 40px;\r\n &:before{\r\n content: none;\r\n }\r\n`;","import {SectionTitleDefaultBox} from './section-title.default.box';\r\nimport {styledByTheme} from '../../../../../themes/architecture/styled-by-theme';\r\nimport {SectionTitleCasino777Box} from './section-title.casino777.box';\r\n\r\nexport const SectionTitleBox = styledByTheme(SectionTitleDefaultBox).forCasino777(SectionTitleCasino777Box).apply();","import React from 'react';\r\nimport {OrbitComponent} from '../../../../base-components/orbit-component/orbit-component';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {GameDescriptionTextBox} from './boxes/game-description-text/game-description-text.box';\r\nimport {SectionTitleBox} from '../../boxes/section-title/section-title.box';\r\n\r\nexport interface GameAboutTextComponentProps {\r\n aboutText: string\r\n}\r\n\r\nexport class GameAboutComponent extends OrbitComponent {\r\n render() {\r\n if(Check.isEmpty(this.props.aboutText)) {\r\n return null;\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {this.services.translation.translate('ABOUT')}\r\n \r\n \r\n {this.props.aboutText}\r\n \r\n \r\n );\r\n }\r\n}\r\n","import {GameJackpotPreviewDefaultBox} from './game-jackpot-preview.default.box';\r\n\r\nexport const GameJackpotPreviewBox = GameJackpotPreviewDefaultBox;","import styled from 'styled-components';\r\n\r\n//game-info-jackpot game-preview\r\nexport const GameJackpotPreviewDefaultBox = styled.div`\r\n width: 100%;\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const GameJackpotDefaultBox = styled.div`\r\n width: 100%;\r\n color: ${props => props.theme.colors.moneyColor};\r\n font-weight: 600;\r\n`","import styled from \"styled-components\";\r\nimport {GameJackpotDefaultBox} from \"./game-jackpot.default.box\";\r\n\r\nexport const GameJackpotSIBox = styled(GameJackpotDefaultBox)`\r\n border-left: solid 5px ${props => props.theme.colors.brandSecondary};\r\n border-top-left-radius: 2px;\r\n border-bottom-left-radius: 2px;\r\n padding-left: 3px;\r\n`","import {GameJackpotDefaultBox} from \"./game-jackpot.default.box\";\r\nimport {styledByTheme} from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {GameJackpotSIBox} from \"./game-jackpot.si.box\";\r\n\r\nexport const GameJackpotBox = styledByTheme(GameJackpotDefaultBox).forSI(GameJackpotSIBox).apply();","import styled from \"styled-components\";\r\n\r\nexport const GameJackpotValueDefaultBox = styled.div`\r\n word-break: break-all;\r\n`","import styled from \"styled-components\";\r\nimport {GameJackpotValueDefaultBox} from \"./game-jackpot-value.default.box\";\r\n\r\nexport const GameJackpotValueSIBox = styled(GameJackpotValueDefaultBox)`\r\n width: 100%;\r\n background-color: ${props => props.theme.colors.brandSecondary};\r\n color: ${props => props.theme.colors.moneyColor};\r\n padding: 2px 0;\r\n border-top-right-radius: 2px;\r\n border-bottom-right-radius: 2px;\r\n`;","import {GameJackpotValueDefaultBox} from \"./game-jackpot-value.default.box\";\r\nimport {styledByTheme} from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {GameJackpotValueSIBox} from \"./game-jackpot-value.si.box\";\r\n\r\nexport const GameJackpotValueBox = styledByTheme(GameJackpotValueDefaultBox).forSI(GameJackpotValueSIBox).apply();","import React from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {GameJackpotBox} from \"./boxes/root/game-jackpot.box\";\r\nimport {GameJackpotValueBox} from \"./boxes/value/game-jackpot-value.box\";\r\nimport {CyClass} from \"../../../common/cy-classes\";\r\nimport {observer} from \"mobx-react\";\r\n\r\n\r\nexport interface GameJackpotComponentProps {\r\n gameType: number;\r\n className?: string;\r\n}\r\n\r\n@observer\r\nexport class GameJackpotComponent extends OrbitComponent {\r\n render() {\r\n\r\n const jackpotValue = this.services.jackpots.getGameJackpot(this.props.gameType);\r\n if(!jackpotValue) {\r\n return null;\r\n }\r\n\r\n return (\r\n\r\n \r\n \r\n {this.services.currency.formatMoney(jackpotValue)}\r\n \r\n \r\n );\r\n }\r\n}\r\n","import styled from 'styled-components';\r\nimport {GameJackpotComponent} from \"../../../../../../game-jackpot/game-jackpot.component\";\r\n\r\n//game-info-amount game-info-text\r\nexport const JackpotAmountPreviewDefaultBox = styled(GameJackpotComponent)`\r\n ${({theme}) => theme.font.presets.bold};\r\n font-size: 2.4rem;\r\n font-weight: 800;\r\n text-align: inherit;\r\n margin-top: -4px;\r\n margin-bottom: 5px;\r\n padding: 0 1.5rem;\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n font-size: 2.2rem;\r\n }\r\n`;","import styled from 'styled-components';\r\nimport {JackpotAmountPreviewDefaultBox} from './jackpot-amount-preview.default.box';\r\nimport {baseColors} from '../../../../../../../themes/definitions/casino777/base-colors';\r\n\r\nexport const JackpotAmountPreviewCasino777Box = styled(JackpotAmountPreviewDefaultBox)`\r\n text-shadow: 3px 3px 0 ${props => props.theme.colors.textLight}, 0 0 0 ${props => props.theme.colors.textLight}, 1px 1px 0 ${props => props.theme.colors.textLight}, 2px 2px 0 ${props => props.theme.colors.textLight}, 0 0 0 ${props => props.theme.colors.textLight};\r\n color: ${baseColors.base04Dark};\r\n -webkit-text-stroke-width: .5px;\r\n -webkit-text-stroke-color: ${props => props.theme.colors.textLight};\r\n`;\r\n","import {JackpotAmountPreviewDefaultBox} from './jackpot-amount-preview.default.box';\r\nimport {JackpotAmountPreviewCasino777Box} from './jackpot-amount-preview.casino777.box';\r\nimport {styledByTheme} from '../../../../../../../themes/architecture/styled-by-theme';\r\n\r\nexport const JackpotAmountPreviewBox = styledByTheme(JackpotAmountPreviewDefaultBox).forCasino777(JackpotAmountPreviewCasino777Box).apply();","import React from 'react';\r\nimport {OrbitComponent} from '../../../../base-components/orbit-component/orbit-component';\r\nimport {SectionTitleBox} from '../../boxes/section-title/section-title.box';\r\nimport {GameJackpotPreviewBox} from './boxes/game-jackpot-preview/game-jackpot-preview.box';\r\nimport {JackpotAmountPreviewBox} from './boxes/jackpot-amount-preview/jackpot-amount-preview.box';\r\n\r\nexport interface GameJackpotPreviewComponentProps {\r\n gameType: number;\r\n}\r\n\r\nexport class GameJackpotPreviewComponent extends OrbitComponent {\r\n\r\n render() {\r\n //className={'game-info-jackpot game-preview'}\r\n return (\r\n \r\n \r\n {this.services.translation.translate('GAME_JACKPOT')}\r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\n","import styled from 'styled-components';\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\n\r\nconst DefaultBox = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n width: 100%;\r\n`;\r\n\r\nconst PcBox = DefaultBox;\r\nconst MobileBox = styled(DefaultBox)`\r\n padding: 0 10px 20px;\r\n`;\r\n\r\nexport const GamePreviewInfoContainerDefaultBox = styledByDevice(PcBox, MobileBox);","import {GamePreviewInfoContainerDefaultBox} from './game-preview-info-container.default.box';\r\n\r\nexport const GamePreviewInfoContainerBox = GamePreviewInfoContainerDefaultBox;","import React from 'react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {GameFeaturesTableComponent} from './features/table/game-features-table.component';\r\nimport {GameAboutComponent} from './about/game-about.component';\r\nimport {GameJackpotPreviewComponent} from './jackpot/game-jackpot-preview.component';\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {GameInfo} from '../../../../services/games/game-info';\r\nimport {GamePreviewInfoContainerBox} from './game-preview-info-container.box';\r\n//import {RelatedGamesComponent} from './related-games/related-games.component';\r\n\r\nexport interface GameInfoWrapperComponentProps {\r\n gameInfo: GameInfo;\r\n gameTitleComponent: React.ReactNode | null;\r\n}\r\nexport class GamePreviewInfoContainerComponent extends OrbitComponent {\r\n\r\n private _renderJackpotPreview(gameInfo: GameInfo) {\r\n\r\n if(!gameInfo.hasJackpot){\r\n return null;\r\n }\r\n\r\n let generalSettings = this.services.configuration.data.generalSettings;\r\n\r\n let shouldRenderJackpotPreview = generalSettings?.gamesPreviewConfig?.shouldDisplayJackpot;\r\n\r\n if (Check.isNullOrUndefined(shouldRenderJackpotPreview) || shouldRenderJackpotPreview)\r\n {\r\n return ;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n render() {\r\n let gameInfo = this.props.gameInfo;\r\n\r\n return (\r\n \r\n {this.props.gameTitleComponent}\r\n \r\n \r\n {this._renderJackpotPreview(gameInfo)}\r\n {/**/}\r\n \r\n );\r\n }\r\n}\r\n\r\n","import {ContainerDefaultBox} from './container.default.box';\r\n\r\nexport const ContainerBox = ContainerDefaultBox;\r\n\r\n","import styled from 'styled-components';\r\n\r\n\r\n/**\r\n ContainerDefaultBox is placed over TrailerOrStripeImageComponent using position absolute.\r\n We do this because TrailerOrStripeImageComponent has opacity 0.5\r\n and we can't put ContainerDefaultBox inside TrailerOrStripeImageComponent because will inherit that opacity\r\n */\r\n\r\n\r\nexport const ContainerDefaultBox = styled.div`\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: center;\r\n width: 100%;\r\n height: 100%;\r\n`;\r\n","import {GameIconDefaultBox} from './game-icon.default.box';\r\n\r\nexport const GameIconBox = GameIconDefaultBox;","import styled from 'styled-components';\r\nimport { Image } from '../../components/raw-components/image/image';\r\n\r\n//game-info-icon\r\nexport const GameIconDefaultBox = styled(Image)`\r\n display: block;\r\n background-size: 100%;\r\n background-image: url(\"${props => props.theme.images.singleGame.defaultBackgroundImage.toString()}\");\r\n background-repeat: no-repeat;\r\n`;\r\n\r\n","import {PlayButtonsDefaultBox} from './play-buttons.default.box';\r\n\r\nexport const PlayButtonsBox = PlayButtonsDefaultBox;","import styled from 'styled-components';\r\n\r\n\r\nexport const PlayButtonsDefaultBox = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-end;\r\n justify-content: center;\r\n width: 100%;\r\n height: 100%;\r\n margin-right: 10px;\r\n margin-left: 10px;\r\n`;\r\n","import {GameIconWrapperDefaultBox} from './game-icon-wrapper.default.box';\r\n\r\nexport const GameIconWrapperBox = GameIconWrapperDefaultBox;","import styled from 'styled-components';\r\n\r\nexport const GameIconWrapperDefaultBox = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n height: 100%;\r\n\r\n @media ${({theme}) => theme.mediaQuery.xs} {\r\n padding-left: 15px;\r\n width: 80%;\r\n }\r\n`;","import React from 'react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {GameInfo, OpenGameParameters} from '../../../../services/games/game-info';\r\nimport {observer} from 'mobx-react';\r\nimport {IModalDialogHandler} from '../../../../services/dialog/dialog.service.interface';\r\nimport {ContainerBox} from './boxes/container/container.box';\r\nimport {GameIconBox} from '../../../../basic-components/game-icon/game-icon.box';\r\nimport {PlayButtonsBox} from '../../../../basic-components/play-buttons/play-buttons.box';\r\nimport {GameIconWrapperBox} from '../../../../basic-components/game-icon-wrapper/game-icon-wrapper.box';\r\nimport {CyClass} from '../../../../../common/cy-classes';\r\nimport {Button} from '../../../../basic-ui-components/button/base/button.component';\r\n\r\nexport interface MobileDemoAndPlayComponentProps {\r\n gameInfo: GameInfo;\r\n openGameParams: OpenGameParameters;\r\n dialogHandler: IModalDialogHandler;\r\n}\r\n\r\n@observer\r\nexport class GameIconAndPlayButtonsComponent extends OrbitComponent {\r\n\r\n private _openRealGame = () => {\r\n this.props.dialogHandler.close();\r\n this.props.gameInfo.open({...this.props.openGameParams, isRealMode: true});\r\n };\r\n\r\n private _openDemoGame = () => {\r\n this.props.dialogHandler.close();\r\n this.props.gameInfo.open({...this.props.openGameParams, isRealMode: false});\r\n };\r\n\r\n private _renderDemoButton(gameInfo: GameInfo) {\r\n if (!gameInfo.allowDemoButtonInIntermediatePage) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n { this.services.translation.translate('DEMO') }\r\n \r\n );\r\n }\r\n\r\n render() {\r\n if (!this.services.device.isMobile) {\r\n return null;\r\n }\r\n\r\n const gameInfo = this.props.gameInfo;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.services.translation.translate('PLAY')}\r\n \r\n
\r\n {this._renderDemoButton(gameInfo)}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import {IntermediatePageDefaultBox} from './intermediate-page.default.box';\r\n\r\nexport const IntermediatePageBox = IntermediatePageDefaultBox;","import styled from 'styled-components';\r\nimport { CssRule } from '../../../../../themes/architecture/css-helpers/css-rule';\r\n\r\nexport const IntermediatePageDefaultBox = styled.div`\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n background-image: url(${props => props.theme.images.texture.toString()}); \r\n ${CssRule.For.mobile.tablet.build()} & {\r\n max-width: 54rem;\r\n height: auto;\r\n }\r\n \r\n`;\r\n\r\n","import {StripeImageAndButtonsDefaultBox} from './stripe-image-and-buttons.default.box';\r\n\r\nexport const StripeImageAndButtonsBox = StripeImageAndButtonsDefaultBox;","import styled from 'styled-components';\r\n\r\nexport const StripeImageAndButtonsDefaultBox = styled.div`\r\n position: relative;\r\n width: 100%;\r\n height: 220px;\r\n margin-bottom: 0.5rem;\r\n`;","import styled from 'styled-components';\r\n/**\r\n GradientBox is placed over TrailerOrStripeImageComponent using position absolute.\r\n We do this because TrailerOrStripeImageComponent has opacity 0.5\r\n and we can't put GradientBox inside TrailerOrStripeImageComponent because will inherit that opacity\r\n */\r\nexport const GradientDefaultBox = styled.div`\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background: linear-gradient(to bottom, transparent 46%, ${props => props.theme.colors.background} 100%); \r\n`;","import styled from \"styled-components\";\r\nimport {GradientDefaultBox} from \"./gradient.default.box\";\r\nimport {hexToRgba} from \"../../../../../themes/hex-to-rgba\";\r\n\r\nexport const GradientCasino777Box = styled(GradientDefaultBox)`\r\n background: linear-gradient(to bottom, ${props => hexToRgba(props.theme.colors.backgroundContrast, 0.3)}, ${props => hexToRgba(props.theme.colors.background, 0.6)});\r\n`","import {GradientDefaultBox} from './gradient.default.box';\r\nimport {styledByTheme} from \"../../../../../themes/architecture/styled-by-theme\";\r\nimport {GradientCasino777Box} from \"./gradient.casino777.box\";\r\n\r\nexport const GradientBox = styledByTheme(GradientDefaultBox).forCasino777(GradientCasino777Box).apply();","import {WarningImageDefaultBox} from \"./warning-image.default.box\";\r\n\r\nexport const WarningImageBox = WarningImageDefaultBox;","import styled from \"styled-components\";\r\nimport { Image } from \"../../../../../raw-components/image/image\";\r\n\r\nexport const WarningImageDefaultBox = styled(Image)`\r\n margin: 10px 5px 5px 15px;\r\n`;","import {WarningTextDefaultBox} from \"./warning-text.default.box\";\r\n\r\nexport const WarningTextBox = WarningTextDefaultBox;","import styled from \"styled-components\";\r\n\r\nexport const WarningTextDefaultBox = styled.span`\r\n font-size: 1.2rem;\r\n width: calc(100% - 50px);\r\n display: inline-block;\r\n position: absolute;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n`;\r\n","import {WarningMessageDefaultBox} from \"./warning-message.default.box\";\r\n\r\nexport const WarningMessageBox = WarningMessageDefaultBox;","import styled from \"styled-components\";\r\n\r\nexport const WarningMessageDefaultBox = styled.div`\r\n position: relative;\r\n height: 40px;\r\n background-color: black;\r\n`;","import React from 'react';\r\nimport {OrbitComponent} from \"../../../base-components/orbit-component/orbit-component\";\r\nimport {WarningImageBox} from \"./boxes/warning-image/warning-image.box\";\r\nimport {WarningTextBox} from \"./boxes/warning-text/warning-text.box\";\r\nimport {WarningMessageBox} from \"./boxes/warning-message/warning-message.box\";\r\n\r\nexport class RealMoneyOnlyWarningComponent extends OrbitComponent<{}>{\r\n render() {\r\n return(\r\n \r\n \r\n {this.services.translation.translate('REAL_MONEY_GAME')}\r\n \r\n );\r\n }\r\n}","import React from 'react';\r\nimport {OrbitComponent} from '../../base-components/orbit-component/orbit-component';\r\nimport {GameInfo, OpenGameParameters} from '../../../services/games/game-info';\r\nimport {TitleComponent} from './title/title.component';\r\nimport {TrailerOrStripeImageComponent} from '../common/trailer-or-stripe-image/trailer-or-stripe-image.component';\r\nimport {GamePreviewInfoContainerComponent} from '../common/game-info-container/game-preview-info-container.component';\r\nimport {observer} from 'mobx-react';\r\nimport {IModalDialogHandler} from '../../../services/dialog/dialog.service.interface';\r\nimport {GameIconAndPlayButtonsComponent} from './game-icon-and-play-buttons/game-icon-and-play-buttons.component';\r\nimport {IntermediatePageBox} from './boxes/intermediate-page/intermediate-page.box';\r\nimport {StripeImageAndButtonsBox} from './boxes/stripe-image-and-buttons/stripe-image-and-buttons.box';\r\nimport {GradientBox} from './boxes/gradient/gradient.box';\r\nimport {RealMoneyOnlyWarningComponent} from \"./only-real-money-warning/only-real-money-warning.component\";\r\n\r\nexport interface OpenGameIntermediatePageComponentProps {\r\n gameInfo: GameInfo;\r\n openGameParams: OpenGameParameters;\r\n dialogHandler: IModalDialogHandler;\r\n}\r\n\r\n\r\n@observer\r\nexport class OpenGameIntermediatePageComponent extends OrbitComponent {\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n this.reaction(() => this.services.device.isMobile,\r\n (isMobile) => {\r\n if(!isMobile) { // this is for when you switch from mobile to PC in the emulator or when you resize de browser window\r\n this.props.dialogHandler.close();\r\n }\r\n });\r\n }\r\n\r\n _renderOnlyRealMoneyWarning() {\r\n return this.props.gameInfo.allowWithdrawOnlyFromReal ? () : null;\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n {this._renderOnlyRealMoneyWarning()}\r\n \r\n \r\n {/*GameIconAndPlayButtonsComponent and GradientBox uses position absolute to place itself over the TrailerOrStripeImageComponent because TrailerOrStripeImageComponent box has opacity 0.5 */}\r\n \r\n \r\n \r\n \r\n \r\n\r\n );\r\n }\r\n}","import {IGameRestriction} from \"./game-restriction.interface\";\r\n\r\nexport class NoGameRestriction implements IGameRestriction {\r\n isGameAllowedToPlayReal(): boolean {\r\n return true;\r\n }\r\n\r\n showUserMessage(): void {\r\n\r\n }\r\n\r\n}","import {computed} from 'mobx';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {OpenGameOptions} from '../sdk/sdk.service.interface';\r\nimport {IRunningGameHandler} from './running-game-handler.interface';\r\nimport {MarketingParams} from \"../../../common/interfaces/marketing-params.interface\";\r\nimport {\r\n OpenGameIntermediatePageComponent\r\n} from \"../../components/lobby-game-info-preview/intermediate-page/open-game-intermediate-page.component\";\r\nimport React from \"react\";\r\nimport {GameIconAnimationState} from '../../components/single-game/common/parts/game-image/game-image.component';\r\nimport {\r\n IRunningGameControllerViewModel\r\n} from \"../game-runner/interfaces/game-controller/running-game-controller.interface\";\r\nimport {GameModeEnum} from \"../game-runner/interfaces/game-context/game-context-view-model.interface\";\r\nimport {IOpenFreePlayGameParams} from \"../game-runner/game-runner.service.interface\";\r\nimport {IGameRestriction} from \"../restrictions/game-restriction.interface\";\r\nimport {NoGameRestriction} from \"../restrictions/no-game-restriction\";\r\nimport {GAME_GROUP} from \"../../../common/const/game_groups_consts\";\r\nimport {NullableNumber, NullableString} from \"../../../common/types/nullable-types\";\r\nimport {GAMES_CATEGORIES} from \"./games-categories.enum\";\r\nimport {IGameInfo} from '../../../common/const/game-info.interface';\r\nimport {GAME_VOLATILITY} from '../../../sdk/src/services/games_information/games_information_service_interface';\r\n\r\nexport interface OpenGameParameters {\r\n isRealMode: boolean;\r\n pageName?: string;\r\n listTitle?: string;\r\n listPosition?: number;\r\n AdminListID?: number;\r\n marketingParams?: MarketingParams;\r\n gameIndex?: number;\r\n aiEngine?: string;\r\n aiSortingType?: string;\r\n AIListTypeID?: number;\r\n openFromDrawer?:boolean;\r\n showIntermediatePage?: boolean;\r\n isCalledFromIntermediatePage?: boolean;\r\n animatedIconState?: GameIconAnimationState;\r\n freePlayParams?: IOpenFreePlayGameParams;\r\n skipFreePlaySuggestion?: boolean;\r\n referrerId?: NullableNumber;\r\n}\r\n\r\n\r\n\r\nexport function gameInfoComparerByTitle(game1: GameInfo, game2: GameInfo): number {\r\n if(game1.title < game2.title) {\r\n return -1\r\n } else if(game1.title > game2.title) {\r\n return 1\r\n }\r\n\r\n return 0;\r\n}\r\n\r\n\r\nexport class GameInfo {\r\n constructor(private _rawGameData: IGameInfo,\r\n private services: IServiceFactoryExtended,\r\n private _aboutText: string) {\r\n\r\n Object.defineProperty(this._rawGameData, 'allowSwitchGameMode', {\r\n get: () => this.allowSwitchGameMode,\r\n configurable: true\r\n });\r\n }\r\n\r\n @computed\r\n private get _isMobile(): boolean {\r\n return this.services.device.isMobile;\r\n }\r\n\r\n @computed\r\n private get _isAuthorized(): boolean {\r\n return this.services.user.isAuthorized;\r\n }\r\n\r\n get gameType(): number {\r\n return this._rawGameData.gameType;\r\n }\r\n\r\n get title(): string {\r\n return this._rawGameData.title;\r\n }\r\n\r\n get numberOfLines(): number {\r\n return this._rawGameData.numberOfLines;\r\n }\r\n\r\n\r\n get hasJackpot(): boolean {\r\n return this._rawGameData.hasJackpot || false;\r\n }\r\n\r\n get isNewGame(): boolean {\r\n return this._hasCustomFilter('new');\r\n }\r\n\r\n get isExclusiveGame(): boolean {\r\n return this._hasCustomFilter('exclusive');\r\n }\r\n\r\n private _hasCustomFilter(filterName: string): boolean {\r\n if (!filterName) {\r\n return false;\r\n }\r\n\r\n if (!Check.isArray(this._rawGameData.filtersList)) {\r\n return false;\r\n }\r\n\r\n filterName = filterName.toLowerCase();\r\n\r\n return 0 <= this._rawGameData.filtersList.findIndex(filter => filter.toLowerCase() === filterName);\r\n\r\n }\r\n\r\n get hasBonusGames(): boolean {\r\n return this._rawGameData.hasBonusGames || false;\r\n }\r\n\r\n get numberOfDecks(): number {\r\n return this._rawGameData.numberOfDecks;\r\n }\r\n\r\n get isMultiHand(): boolean {\r\n return this._rawGameData.isMultiHand || false;\r\n }\r\n\r\n get hasFreeSpins(): boolean {\r\n return this._rawGameData.hasFreeSpins || false;\r\n }\r\n\r\n get subGroupName(): string {\r\n return this._rawGameData.subGroupName;\r\n }\r\n\r\n get isEliteLounge(): boolean {\r\n return this._rawGameData.isEliteLounge || false;\r\n }\r\n\r\n get hasSideBets(): boolean {\r\n return this._rawGameData.hasSideBets || false;\r\n }\r\n\r\n get maxBetPerSpot(): number {\r\n return this._rawGameData.maxBetPerSpot;\r\n }\r\n\r\n get allowWithdrawOnlyFromReal(): boolean {\r\n return this._rawGameData.allowWithdrawOnlyFromReal;\r\n }\r\n\r\n get hasLowStakes(): boolean {\r\n return this._hasCustomFilter('lowStakes');\r\n }\r\n\r\n get ClassicSlots(): boolean {\r\n return this._rawGameData.ClassicSlots;\r\n }\r\n\r\n get allowMinMaxBet(): boolean {\r\n let isAllowedCategory = this.isCardOrTableGame || this.isLiveCasino;\r\n\r\n return !this.hasJackpot && isAllowedCategory;\r\n }\r\n\r\n\r\n @computed\r\n get allowHoverDetails(): boolean {\r\n\r\n if (this.gameGroup === 'Live Casino') {\r\n return false;\r\n }\r\n\r\n return !this._isAuthorized || this._rawGameData.forceDemoButton;\r\n }\r\n\r\n @computed\r\n get allowTap(): boolean {\r\n return this._isMobile;\r\n }\r\n\r\n\r\n get hasInfoPage(): boolean {\r\n if (this.infoPageURL) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n @computed\r\n get allowDemoButtonInSingleGame(): boolean {\r\n\r\n if (!this._rawGameData.isAnonymousSupported) {\r\n return false;\r\n }\r\n\r\n if (this._rawGameData.forceDemoButton) {\r\n return true;\r\n }\r\n\r\n\r\n if (this._isMobile) {\r\n return false;\r\n }\r\n\r\n\r\n return (this._rawGameData.demoSettings\r\n && this._rawGameData.demoSettings.demoCTAAnonymous\r\n && this._rawGameData.demoSettings.demoCTAAnonymous.pc);\r\n }\r\n\r\n\r\n @computed\r\n get allowDemoButtonInIntermediatePage(): boolean {\r\n if (!this._rawGameData.isAnonymousSupported) {\r\n return false;\r\n }\r\n\r\n if (this._rawGameData.forceDemoButton) {\r\n return true;\r\n }\r\n\r\n if (this.services.user.isAuthorized) {\r\n return this._rawGameData.demoSettings && this._rawGameData.demoSettings.demoCTAAuthorized && this._rawGameData.demoSettings.demoCTAAuthorized.mobile;\r\n }\r\n\r\n return this._rawGameData.demoSettings && this._rawGameData.demoSettings.demoCTAAnonymous && this._rawGameData.demoSettings.demoCTAAnonymous.mobile;\r\n }\r\n\r\n get infoPageURL(): string {\r\n\r\n if (!this._rawGameData.infoPageURL) {\r\n return '';\r\n }\r\n\r\n if (!this.services.siteMap.isUrlInSiteMap(this._rawGameData.infoPageURL)) {\r\n this.services.logger.debug(`Page info '${this._rawGameData.infoPageURL}' for game ${this.gameType} - ${this.title} is not in the site map`);\r\n return '';\r\n }\r\n\r\n return this._rawGameData.infoPageURL\r\n }\r\n\r\n //Can be either a live stream URL or a static video URL.\r\n get videoURL(): string {\r\n if (!this._rawGameData.videoURL) {\r\n return '';\r\n }\r\n\r\n return this._rawGameData.videoURL;\r\n }\r\n\r\n get hasVideoURL(): boolean {\r\n return Boolean(this.videoURL);\r\n }\r\n\r\n get gameGroup(): string {\r\n return this._rawGameData.gameGroup;\r\n }\r\n\r\n get gameGroupId(): GAME_GROUP {\r\n return this._rawGameData.gameGroupId;\r\n }\r\n\r\n get gameCategory(): string {\r\n if(this.isVideoSlot || this.isScratchCards) {\r\n return GAMES_CATEGORIES.SLOTS;\r\n }\r\n\r\n if(this.isLiveCasino) {\r\n return GAMES_CATEGORIES.LIVE;\r\n }\r\n\r\n if(this.isCardOrTableGame) {\r\n return GAMES_CATEGORIES.CARD_AND_TABLE;\r\n }\r\n\r\n return '';\r\n\r\n }\r\n\r\n get gameCategoryClassName(): string {\r\n return 'game-category-' + this.gameCategory;\r\n }\r\n\r\n get companyName(): string {\r\n return this._rawGameData.companyName;\r\n }\r\n\r\n get vendorName(): string {\r\n return this._rawGameData.vendorName;\r\n }\r\n\r\n getGameImage(options?: {squareIcon?: boolean; animatedIcon?: boolean;}): string {\r\n let opts = {\r\n squareIcon: options?.squareIcon || false,\r\n animatedIcon: options?.animatedIcon || false,\r\n }\r\n let images = this._rawGameData && this._rawGameData.images;\r\n if (!images) {\r\n return '';\r\n }\r\n\r\n if (opts.squareIcon && images.hybrid_icon) {\r\n if (opts.animatedIcon) {\r\n return (images.animated_square) ? this.getAnimatedJsonUrl(this._getResolvedGameImagePath(images.animated_square)) : '';\r\n }\r\n return this._getResolvedGameImagePath(images.hybrid_icon);\r\n }\r\n\r\n if (opts.animatedIcon) {\r\n return (images.animated_round) ? this.getAnimatedJsonUrl(this._getResolvedGameImagePath(images.animated_round)) : '';\r\n }\r\n return this._getResolvedGameImagePath(images.icon);\r\n }\r\n\r\n getBackgroundImage(): string {\r\n let background = this._rawGameData?.images?.background;\r\n if (!background) {\r\n return '';\r\n }\r\n\r\n return this._getResolvedGameImagePath(background);\r\n }\r\n\r\n private getAnimatedJsonUrl(pngImagePath: string) {\r\n if (!pngImagePath.endsWith('.png')) {\r\n this.services.logger.error(\"Animated icon path does not end in '.png': \" + pngImagePath);\r\n return '';\r\n }\r\n // we don't expect for substring '.png' to exist in other place than the end of the string, so we do a simple replace\r\n return pngImagePath.replace('.png', '.json');\r\n }\r\n\r\n getAnimatedImageTimings() {\r\n const animatedImageTimings = this._rawGameData && this._rawGameData.animatedImageTimings\r\n return {\r\n delay: animatedImageTimings?.delay || 2000,\r\n interval: animatedImageTimings?.interval || 3000,\r\n }\r\n }\r\n\r\n get gameImageInsideIntermediatePage(): string {\r\n let images = this._rawGameData && this._rawGameData.images;\r\n if (!images) {\r\n return '';\r\n }\r\n\r\n return this._getResolvedGameImagePath(images.icon);\r\n }\r\n\r\n get gameImageInHistoryPage(): string {\r\n let images = this._rawGameData && this._rawGameData.images;\r\n if (!images) {\r\n return '';\r\n }\r\n\r\n let image: string = images.icon;\r\n if (this.services.theme.shouldUseSquareIcons && images.hybrid_icon) {\r\n image = images.hybrid_icon;\r\n }\r\n\r\n return this._getResolvedGameImagePath(image);\r\n }\r\n\r\n get badge(): string | null {\r\n return this._rawGameData.badge;\r\n }\r\n\r\n get videoThumbnailUrl(): string {\r\n let images = this._rawGameData.images;\r\n if (!images) {\r\n return '';\r\n }\r\n\r\n return this._getResolvedGameImagePath(images.video_thumbnail);\r\n }\r\n\r\n @computed\r\n get badgeUrl(): string | null {\r\n if (this.badge) {\r\n return this.services.configuration.data.generalSettings.gamesSettings.gameBadgePath + this.badge + '.png';\r\n }\r\n\r\n return null;\r\n }\r\n\r\n get minBet(): number {\r\n return this._rawGameData.minBet;\r\n }\r\n\r\n get maxBet(): number {\r\n return this._rawGameData.maxBet;\r\n }\r\n\r\n get maxBetPerBrand(): number {\r\n return this._rawGameData.maxBetPerBrand;\r\n }\r\n\r\n getGameImagePlaceHolderUrl(useSquareIcon?: boolean): string {\r\n if (useSquareIcon) {\r\n return this.services.theme.currentTheme.images.gameIconPlaceHolderSq.toString();\r\n }\r\n return this.services.theme.currentTheme.images.gameIconPlaceHolder.toString();\r\n }\r\n\r\n getImageSeoAlt() {\r\n\r\n let seoValue = this.services.configuration.data?.seo?.games?.images?.alt;\r\n\r\n return this.services.translation.translate(seoValue, {\r\n gameName: this.title,\r\n categoryName: this.gameCategory\r\n });\r\n };\r\n\r\n private _getResolvedGameImagePath(imagePath: string): string {\r\n return this.services.configuration.resolveGameImagePath(imagePath);\r\n }\r\n\r\n @computed\r\n get stripImage(): string {\r\n let images = this._rawGameData.images;\r\n if (!images) {\r\n return '';\r\n }\r\n\r\n return this._isMobile ? this._getResolvedGameImagePath(images.strip_mobile) :\r\n this._getResolvedGameImagePath(images.strip_pc);\r\n }\r\n\r\n @computed\r\n get stripeImageFallback(): string {\r\n let generalSettings = this.services.configuration.data.generalSettings;\r\n let previewDefaultImage = generalSettings && generalSettings.gamesSettings && generalSettings.gamesSettings.gamesPreviewDefaultImages;\r\n\r\n if (previewDefaultImage && this.gameCategory) {\r\n //Replace the game category dash to under score (like the image name for example card-and-table category name should be default_game_strip_card_and_table)\r\n let gameCategoryWithUnderScores = this.gameCategory.replace(/-/g, '_');\r\n previewDefaultImage = previewDefaultImage.replace(/{arena-category}/g, gameCategoryWithUnderScores);\r\n //Add _mobile if we are in mobile\r\n\r\n if (this.services.device.isMobile) {\r\n return previewDefaultImage.replace('.png', '_mobile.png');\r\n }\r\n\r\n return previewDefaultImage;\r\n }\r\n\r\n return ''\r\n }\r\n\r\n get hasVideoTrailer(): boolean {\r\n return this.gameType === 130136;\r\n }\r\n\r\n get aboutText(): string {\r\n return this._aboutText;\r\n }\r\n\r\n get multiplayer(): number {\r\n return this._rawGameData.multiplayer;\r\n }\r\n\r\n get isClassicSlot(): boolean {\r\n return this._hasCustomFilter('ClassicSlots');\r\n }\r\n\r\n get hasHighVolatility(): boolean {\r\n return this.volatility === GAME_VOLATILITY.High;\r\n }\r\n\r\n get hasLowVolatility(): boolean {\r\n return this.volatility === GAME_VOLATILITY.Low;\r\n }\r\n\r\n get hasMediumVolatility(): boolean {\r\n return this.volatility === GAME_VOLATILITY.Medium;\r\n }\r\n\r\n get hasDailyJackpot(): boolean {\r\n return this._hasCustomFilter('DailyJackpot');\r\n }\r\n\r\n get hasTwilightJackpot(): boolean {\r\n return this._hasCustomFilter('TwilightJackpot');\r\n }\r\n\r\n get hasCaptain8tJackpot(): boolean {\r\n return this._hasCustomFilter('Captain8Jackpot');\r\n }\r\n\r\n @computed\r\n get shouldShowIntermediatePage(): boolean {\r\n if (!this._isMobile) {\r\n return false;\r\n }\r\n\r\n if (!this._rawGameData.isAnonymousSupported) {\r\n return false;\r\n }\r\n\r\n if (this.isLiveCasino) {\r\n return false;\r\n }\r\n\r\n if (this._rawGameData.forceDemoButton) {\r\n return true;\r\n }\r\n\r\n let demoSettings = this._rawGameData.demoSettings;\r\n if (this._isAuthorized) {\r\n if ((this._rawGameData?.forceIntermediatePageForAutorizedUsers) || (demoSettings && demoSettings.intermediatePageAuthorized && demoSettings.intermediatePageAuthorized.mobile)) {\r\n return true;\r\n }\r\n } else {\r\n if (demoSettings?.intermediatePageAnonymous?.mobile) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n get isDemoModeSupported(): boolean {\r\n return Boolean(this._rawGameData.isAnonymousSupported);\r\n }\r\n\r\n @computed\r\n get allowSwitchGameMode(): boolean {\r\n\r\n if(!this.isDemoModeSupported) {\r\n return false;\r\n }\r\n\r\n let demoSettings = this._rawGameData.demoSettings;\r\n if (!demoSettings) {\r\n return false;\r\n }\r\n\r\n if (this._isAuthorized) {\r\n return Boolean(demoSettings?.demoCTAAuthorized?.pc);\r\n } else {\r\n return Boolean(demoSettings?.demoCTAAnonymous?.pc);\r\n }\r\n }\r\n\r\n async open(params: OpenGameParameters): Promise {\r\n\r\n if(this.services.gameRunner.shouldUseModernMode(this)) {\r\n return this._openInModernMode(params);\r\n } else {\r\n return await this._openInLegacyMode(params);\r\n }\r\n\r\n }\r\n\r\n private _shouldRedirectToMembership(params: OpenGameParameters): boolean {\r\n return params.isRealMode && params.isCalledFromIntermediatePage\r\n && !this.services.user.isAuthorized\r\n && (this.services.cmsSegmentation.isCstatus === false);\r\n }\r\n private async _openInModernMode(params: OpenGameParameters): Promise {\r\n\r\n if(this._showIntermediatePage(params)) {\r\n return;\r\n }\r\n\r\n if (this._shouldRedirectToMembership(params)) {\r\n this._openMembership();\r\n return {\r\n closeGame: () => {\r\n }\r\n };\r\n }\r\n\r\n this._sendOpenGameAnalytics(params);\r\n\r\n let gameController: IRunningGameControllerViewModel | null = null;\r\n if (params.isRealMode) {\r\n if(params.marketingParams) {\r\n this.services.sdk.eventsTrigger.updateMarketingParams(params.marketingParams);\r\n }\r\n gameController = await this.services.gameRunner.openGame({\r\n gameMode: GameModeEnum.Real,\r\n gameInfo: this,\r\n freePlayParams: params.freePlayParams,\r\n skipFreePlaySuggestion: params.skipFreePlaySuggestion,\r\n referrerId: params.referrerId\r\n });\r\n } else {\r\n gameController = await this.services.gameRunner.openGame({\r\n gameMode: GameModeEnum.Demo,\r\n gameInfo: this\r\n });\r\n }\r\n\r\n return {\r\n closeGame: async () => {\r\n await gameController?.closeGame({\r\n shouldSuggestNextGame: false\r\n })\r\n }\r\n }\r\n }\r\n\r\n //TODO - this should return a Promise\r\n private _showIntermediatePage(params: OpenGameParameters): boolean {\r\n if (this.shouldShowIntermediatePage && params.showIntermediatePage) {\r\n const dialogContentRenderer = ((dialogHandler) => );\r\n this.services.dialog.showModal(dialogContentRenderer, {hideCloseButton: true});\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private async _openInLegacyMode(params: OpenGameParameters): Promise {\r\n const openGameOptions: OpenGameOptions = {\r\n isReal: params.isRealMode,\r\n gameType: this.gameType,\r\n gameName: this.title,\r\n showRegister: !this.services.cmsSegmentation.isCisOrCip && this.services.configuration.data.generalSettings.showRegisterButton,\r\n freePlayData: params.freePlayParams ? {freePlayId: params.freePlayParams.freePlayId, freePlayType: params.freePlayParams.freePlayType} : undefined\r\n };\r\n\r\n if (this._showIntermediatePage(params)) {\r\n return;\r\n }\r\n\r\n if (this._shouldRedirectToMembership(params)) {\r\n this._openMembership();\r\n return;\r\n }\r\n\r\n openGameOptions.marketing = this.services.marketing.getMarketingData(params.marketingParams);\r\n this._sendOpenGameAnalytics(params);\r\n\r\n const gameHandler = await this.services.sdk.openGame(openGameOptions);\r\n\r\n return gameHandler;\r\n }\r\n\r\n private _openMembership() {\r\n this.services.analytics.sendAnalytics('Conversion', 'Play', 'PreGamePopUp');\r\n this.services.externalLinks.openLink({ source: 'membership' }, { dl: \"20614\" });\r\n }\r\n\r\n private _sendOpenGameAnalytics(params: OpenGameParameters): void {\r\n if (!params.pageName || !params.listTitle) {\r\n return;\r\n }\r\n const listTitle = this._replaceUnderscore(params.listTitle);\r\n\r\n const analyticsLabel = (params.isRealMode ? 'Real' : 'Anonymous') + '_' + this.gameType.toString() + '_' + this.title + '_' + params.gameIndex + '_' + (this._isAuthorized ? 'isAuth' : 'isNotAuth');\r\n const analyticsAction = listTitle +\r\n (params.openFromDrawer ? '_Drawer' : '') +\r\n (Check.isNumber(params.listPosition) ? '_' + params.listPosition : '') +\r\n '_' + (params.aiEngine ? params.aiEngine : 'NoAI') +\r\n (params.AIListTypeID ? '_' + params.AIListTypeID : '') +\r\n (params.AdminListID ? '_' + params.AdminListID : '');\r\n\r\n this.services.analytics.sendAnalytics(params.pageName, analyticsAction, analyticsLabel, this.gameType, true);\r\n this.services.analytics.sendElasticInfoEvent({eventType:\"CGP_Game_Click\",category: params.pageName, action: 'game_click', label: listTitle, value: this.gameType.toString(), customData: params}, true);\r\n }\r\n\r\n\r\n isAllWordsMatch(words: RegExp[]) {\r\n let text = this.title + ' ' + this.vendorName;\r\n for (let index = 0; index < words.length; index++) {\r\n if (!text.match(words[index])) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n get gameArenaIcon(): string {\r\n let images = this._rawGameData.images;\r\n if (!images) {\r\n return '';\r\n }\r\n\r\n return this._getResolvedGameImagePath(images.arena_icon);\r\n }\r\n\r\n /**\r\n * @description BI/BA request not to send the underscore as part of the list title since they split by underscore to get all the data on the label\r\n * @param listTitle\r\n * @private\r\n */\r\n private _replaceUnderscore(listTitle): string {\r\n return listTitle.replace(/_/g, '-');\r\n }\r\n\r\n get restriction(): IGameRestriction {\r\n\r\n if(this._rawGameData.restriction) {\r\n return this._rawGameData.restriction as IGameRestriction;\r\n }\r\n return new NoGameRestriction();\r\n }\r\n\r\n get isVideoSlot(): boolean {\r\n return this.gameGroupId === GAME_GROUP.VIDEO_SLOT\r\n || this.gameGroupId === GAME_GROUP.SLOT\r\n }\r\n\r\n //same as isCardOrTableGame() besides ARCADE, PAI_GOW_POKER, ROULETTE_LIKE\r\n get isCasinoGame() {\r\n const casinoGamesGroups = [\r\n GAME_GROUP.BACCARAT,\r\n GAME_GROUP.BLACKJACK,\r\n GAME_GROUP.CARRIBEAN_POKER,\r\n GAME_GROUP.CRAPS,\r\n GAME_GROUP.KENO,\r\n GAME_GROUP.POKER,\r\n GAME_GROUP.POKER_TEMPLATE_GAMES,\r\n GAME_GROUP.ROULETTE,\r\n GAME_GROUP.SCRATCH_CARD,\r\n GAME_GROUP.VIDEO_POKER\r\n ];\r\n\r\n return casinoGamesGroups.includes(this.gameGroupId);\r\n }\r\n\r\n get isVideoPoker(): boolean {\r\n return this.gameGroupId === GAME_GROUP.VIDEO_POKER;\r\n }\r\n\r\n get isScratchCards(): boolean {\r\n return this.gameGroupId === GAME_GROUP.SCRATCH_CARD;\r\n }\r\n\r\n get isBlackJack(): boolean {\r\n return this.gameGroupId === GAME_GROUP.BLACKJACK;\r\n }\r\n\r\n get isRoulette(): boolean {\r\n return this.gameGroupId === GAME_GROUP.ROULETTE;\r\n }\r\n\r\n get isLiveCasino(): boolean {\r\n return this.gameGroupId === GAME_GROUP.LIVE_CASINO;\r\n }\r\n\r\n get isBaccarat(): boolean {\r\n return this.gameGroupId === GAME_GROUP.BACCARAT;\r\n }\r\n\r\n\r\n get isCardOrTableGame(): boolean {\r\n\r\n return this.isBlackJack\r\n || this.isRoulette\r\n || this.isBaccarat\r\n || this.isVideoPoker\r\n || this.gameGroupId === GAME_GROUP.CRAPS\r\n || this.gameGroupId === GAME_GROUP.KENO\r\n || this.gameGroupId === GAME_GROUP.CARRIBEAN_POKER\r\n || this.gameGroupId === GAME_GROUP.POKER_TEMPLATE_GAMES\r\n || this.gameGroupId === GAME_GROUP.ROULETTE_LIKE\r\n || this.gameGroupId === GAME_GROUP.ARCADE\r\n || this.gameGroupId === GAME_GROUP.POWER_VIDEO_POKER\r\n || this.gameGroupId === GAME_GROUP.PAI_GOW_POKER\r\n || this.gameGroupId === GAME_GROUP.CRAZY_BLACKJACK\r\n }\r\n\r\n get externalGameCode(): NullableString {\r\n return this._rawGameData.externalGameCode;\r\n }\r\n\r\n hasTheme(themeId: number): boolean {\r\n return (this._rawGameData.gameThemes ?? []).includes(themeId);\r\n }\r\n\r\n get volatility(): GAME_VOLATILITY {\r\n return this._rawGameData.volatility;\r\n }\r\n}\r\n","import { AdminArenaConfiguration } from \"../../app-bootstrap/config-interfaces/casino-startup.configurations\";\r\nimport { createStatementsDefinition } from './create-statements-definition';\r\nimport {HOME_PAGE_ARENA, LIVE_CASINO_ARENA_NAME, NEW_LIVE_CASINO_ARENA_NAME} from '../arenas/arena-consts';\r\nimport {Check} from \"@sparkware/app-utils\";\r\n\r\nenum List_Type {\r\n Swipers = \"swipers\",\r\n Grids = \"grids\",\r\n PopularTables = \"popularTables\"\r\n}\r\n\r\nexport function injectAdminArenas(\r\n originalConfigData: any,\r\n adminArenaConfigData: { [key: string]: AdminArenaConfiguration }\r\n): void {\r\n\r\n if (originalConfigData.homePage) {\r\n originalConfigData.homePage.gamesLists = getAdminArenaLists(\r\n adminArenaConfigData,\r\n HOME_PAGE_ARENA,\r\n List_Type.Swipers\r\n );\r\n }\r\n\r\n if (originalConfigData.arenas) {\r\n Object.keys(originalConfigData.arenas).forEach(arenaKey => {\r\n if (arenaKey === LIVE_CASINO_ARENA_NAME || arenaKey === NEW_LIVE_CASINO_ARENA_NAME) {\r\n originalConfigData.arenas[arenaKey].popularTables = getAdminArenaLists(\r\n adminArenaConfigData,\r\n arenaKey,\r\n List_Type.PopularTables\r\n );\r\n }\r\n else {\r\n originalConfigData.arenas[arenaKey].swiperGamesList = getAdminArenaLists(\r\n adminArenaConfigData,\r\n arenaKey,\r\n List_Type.Swipers\r\n );\r\n\r\n originalConfigData.arenas[arenaKey].allGamesGrid = getAdminArenaLists(\r\n adminArenaConfigData,\r\n arenaKey,\r\n List_Type.Grids\r\n );\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction getAdminArenaLists(\r\n adminArenaConfigData: { [key: string]: AdminArenaConfiguration },\r\n arenaKey: string,\r\n listType: string\r\n) {\r\n let adminLists: unknown[] = [];\r\n if (adminArenaConfigData[arenaKey] && adminArenaConfigData[arenaKey].lists[listType]) {\r\n adminArenaConfigData[arenaKey].lists[listType].forEach(list => {\r\n let currentList = Object.assign({}, list.Metadata);\r\n\r\n currentList.display = Check.isNullOrUndefined(list.Metadata.display) ? true : list.Metadata.display;\r\n\r\n let segmentation = createStatementsDefinition(list.SubLists);\r\n currentList.gamesId = {};\r\n currentList.gamesId.defaultValue = segmentation.defaultValue;\r\n currentList.gamesId.statements = segmentation.statements;\r\n\r\n adminLists.push(currentList);\r\n });\r\n }\r\n\r\n return adminLists;\r\n}\r\n","import {GamesMap, IGameImageSize, IGamesService, RecentlyPlayedGames} from './games.service.interface';\r\nimport {GameInfo} from './game-info';\r\nimport {action, observable} from 'mobx';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\n\r\nexport class GamesService extends ServiceBase implements IGamesService {\r\n\r\n constructor(serviceFactory: IServiceFactoryExtended) {\r\n super(serviceFactory);\r\n\r\n this.reaction(\r\n () => this.services.user.isAuthorized,\r\n () => this._updateGamesMap(),\r\n {\r\n fireImmediately: true\r\n });\r\n\r\n this.services.sdk.events.onRecentlyPlayedGamesUpdated(this._updateRecentlyPlayedGames);\r\n }\r\n\r\n\r\n @observable.ref gamesMap: GamesMap = {};\r\n @action.bound\r\n private _setGamesMap(gamesMap: GamesMap): void {\r\n this.gamesMap = gamesMap;\r\n }\r\n\r\n @observable.ref\r\n recentlyPlayedGames: RecentlyPlayedGames = {\r\n isInitialized: false,\r\n gameTypes: []\r\n };\r\n\r\n @action.bound\r\n private _updateRecentlyPlayedGames(gameTypes: number[]): void {\r\n if(!this.recentlyPlayedGames.isInitialized\r\n || !this.services.sdk.getUtils().arraysAreEqual(this.recentlyPlayedGames.gameTypes, gameTypes)) {\r\n this.recentlyPlayedGames = {\r\n isInitialized: true,\r\n gameTypes: gameTypes\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n private async _buildGamesMap(sdkGamesInfo: any): Promise {\r\n\r\n let aboutTexts = await this._getGamesAboutTexts();\r\n\r\n let gamesMap: GamesMap = {};\r\n\r\n const usedGameTypesBySiteMap = this.services.configuration.usedGameTypesBySite.reduce((accumulator, gt) => {\r\n accumulator[gt] = true;\r\n return accumulator;\r\n }, {});\r\n\r\n Object.keys(sdkGamesInfo).forEach(gameType => {\r\n try {\r\n // filter only in-layout games\r\n if (usedGameTypesBySiteMap[gameType]) {\r\n let sdkInfo = sdkGamesInfo[gameType];\r\n let generalSettings = this.services.configuration.data.generalSettings;\r\n let gameTagInfo = (generalSettings && generalSettings.gamesSettings && generalSettings.gamesSettings.gamesTags && generalSettings.gamesSettings.gamesTags[gameType]) || {};\r\n\r\n // for now, rawGameData will contain also gameTagInfo properties - which are read by adminClient settings\r\n // moreover, we'll add a new property on it regarding allowSwitchToDemo\r\n let rawGameData = Object.assign(sdkInfo, gameTagInfo);\r\n let gameInfo = new GameInfo(rawGameData, this.services, aboutTexts[gameType]);\r\n gamesMap[gameInfo.gameType] = gameInfo;\r\n }\r\n } catch(err) {\r\n this.services.logger.error(`Failed to generate GameInfo for game type ${gameType}`, err);\r\n }\r\n\r\n });\r\n\r\n return gamesMap;\r\n }\r\n\r\n private _gamesAboutTexts: {[key: string]: string} | null = null;\r\n\r\n private async _getGamesAboutTexts(): Promise<{[key: string]: string}> {\r\n if(this._gamesAboutTexts) {\r\n return this._gamesAboutTexts;\r\n }\r\n let gamesAboutTextConfigPath = this.services.configuration.data.generalSettings.gamesSettings.gamesAboutTextPath;\r\n\r\n //if there is no about path (not supported in this regulation) - we prevent the http call\r\n if(!gamesAboutTextConfigPath){\r\n this._gamesAboutTexts = {};\r\n return this._gamesAboutTexts;\r\n }\r\n\r\n let gamesAboutTextUrl = '';\r\n\r\n try {\r\n gamesAboutTextUrl = gamesAboutTextConfigPath.replace('{currentLanguage}', this.services.language.currentLanguage);\r\n let aboutTextsJson = await this.services.http.get(gamesAboutTextUrl);\r\n\r\n if(Check.isNullOrUndefined(aboutTextsJson) || Object.keys(aboutTextsJson).length === 0) {\r\n this.services.logger.warning(`No games about texts returned from ${gamesAboutTextUrl}`);\r\n }\r\n this._gamesAboutTexts = aboutTextsJson || {};\r\n\r\n return this._gamesAboutTexts!;\r\n } catch (err) {\r\n if(err && ('statusCode' in err) && err.statusCode === 404) {\r\n // NB: Ignore 404s, usually for things like spa_about.json that actually shouldn't exist.\r\n return {};\r\n }\r\n this.services.logger.error(`Failed to read games about texts from ${gamesAboutTextUrl}`, err);\r\n return {};\r\n }\r\n\r\n\r\n }\r\n\r\n private async _updateGamesMap(): Promise {\r\n let usedGameTypesBySite = this.services.configuration.usedGameTypesBySite || [];\r\n if(usedGameTypesBySite.length === 0) {\r\n this.services.logger.error(`configuration.usedGameTypesBySite returned empty array`);\r\n return;\r\n }\r\n\r\n const gamesMap = await this._getGamesInfoMap(usedGameTypesBySite);\r\n this._setGamesMap(gamesMap);\r\n }\r\n\r\n async _getGamesInfoMap(gameTypes: number[]): Promise {\r\n try {\r\n let sdkGamesInfo = await this.services.sdk.getGamesInfo(gameTypes);\r\n return await this._buildGamesMap(sdkGamesInfo);\r\n } catch (err) {\r\n this.services.logger.error(`sdk.getGamesInfo failed in GamesService.getGamesInfo`, err);\r\n return {};\r\n }\r\n }\r\n\r\n async getGamesInfoMap(gameTypes: number[]): Promise {\r\n if (!gameTypes || gameTypes.length === 0) {\r\n return {};\r\n }\r\n\r\n // fill data from cache (if cache found)\r\n if (Object.keys(this.gamesMap).length > 0) {\r\n const inCacheGames = gameTypes.filter((gt) => this.gamesMap[gt]);\r\n const result = inCacheGames.reduce((acc, gt) => {acc[gt] = this.gamesMap[gt]; return acc;}, {});\r\n return result;\r\n } else {\r\n // otherwise fill it from SDK\r\n return this._getGamesInfoMap(gameTypes);\r\n }\r\n }\r\n\r\n async getGamesInfoForHistory(gameTypes: number[]): Promise {\r\n let sdkGamesInfo = await this.services.sdk.getGamesInfoForHistory(gameTypes);\r\n\r\n let gamesMap: GamesMap = {};\r\n Object.keys(sdkGamesInfo).forEach(gameType => {\r\n let rawGameData = Object.assign(sdkGamesInfo[gameType], this.gamesMap[gameType]);\r\n gamesMap[gameType] = new GameInfo(rawGameData, this.services, '')\r\n });\r\n return gamesMap;\r\n }\r\n\r\n async getGamesInfoArray(gameTypes: number[]): Promise {\r\n let gamesMap = await this.getGamesInfoMap(gameTypes);\r\n\r\n const result: GameInfo[] = [];\r\n for(let i = 0; i < gameTypes.length; i++) {\r\n const gameType = gameTypes[i];\r\n if (gamesMap[gameType]) {\r\n result.push(gamesMap[gameType]);\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n async getGameInfo(gameType: number) {\r\n const gamesMap = await this.getGamesInfoMap([gameType]);\r\n if(gamesMap) {\r\n return gamesMap[gameType];\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n async getCorrelatedGames(gameType: number, numberOfGames: number): Promise {\r\n try {\r\n return await this.services.sdk.getCorrelatedGames(gameType, numberOfGames);\r\n } catch (err) {\r\n this.services.logger.error(`Failed to get from SDK the correlated games for game type ${gameType}`, err);\r\n return [];\r\n }\r\n }\r\n\r\n getGameImageExpectedSizes(useSquareIcons?: boolean, animated?: boolean): IGameImageSize {\r\n if (useSquareIcons) {\r\n if (animated) {\r\n return {\r\n width: 210,\r\n height: 292\r\n };\r\n }\r\n return {\r\n width: 400,\r\n height: 555\r\n };\r\n }\r\n\r\n return {\r\n width: 210,\r\n height: 210\r\n };\r\n }\r\n}\r\n","import {ConfigurationEvaluationContext} from './evaluation/configuration-evaluation-context/configuration-evaluation-context';\r\nimport {PropertiesEvaluator} from './evaluation/properties-evaluator/properties-evaluator';\r\nimport {IConfigurationData} from './configuration-data.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IConfigurationService} from './configuration.service.interface';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {LIVE_CASINO_ARENA_NAME, NEW_GAMES_ARENA_NAME, NEW_LIVE_CASINO_ARENA_NAME} from '../arenas/arena-consts';\r\nimport {observable, runInAction} from 'mobx';\r\nimport {ApplicationStartupConfigurations} from '../../app-bootstrap/config-interfaces/application-startup.configurations';\r\nimport {IConfigurationEvaluationDataProvider} from './evaluation/configuration-evaluation-context/configuration-evaluation-data-provider';\r\nimport { injectAdminArenas } from './inject-admin-arenas';\r\nimport {HomePageHeaderArena} from \"./config-data-sections/home-page.configuration\";\r\nimport {IServicesConfigurations} from './config-data-sections/services-configurations';\r\nimport { SideMenuLinkConfiguration } from './config-data-sections/side-menu.configuration';\r\nimport {ListConfiguration, SwiperGamesListConfiguration} from \"./config-data-sections/arenas.configuration\";\r\n\r\n\r\ntype GameTypesMap = {[key: number]: number};\r\n\r\n\r\nexport class ConfigurationsService extends ServiceBase implements IConfigurationService {\r\n\r\n startupConfiguration: ApplicationStartupConfigurations;\r\n\r\n constructor(services: IServiceFactoryExtended, startupConfigs: ApplicationStartupConfigurations) {\r\n super(services);\r\n this.startupConfiguration = startupConfigs;\r\n\r\n this._createConfigData();\r\n }\r\n\r\n private _getConfigEvaluationContextServices(): IConfigurationEvaluationDataProvider {\r\n return {\r\n admin: this.startupConfiguration.admin,\r\n configurationPath: this.startupConfiguration.configurationPath,\r\n getLauncherGames: () => this.services.launcher.getTestedGames(),\r\n getSegmentValue: (segmentName) => this.services.segmentation.getSegmentValue(segmentName),\r\n logger: this.services.logger\r\n };\r\n }\r\n\r\n private _createConfigData(): void {\r\n let originalConfigData = this.startupConfiguration.orbit.config;\r\n if (this.startupConfiguration.admin && this.startupConfiguration.admin.arenas) {\r\n injectAdminArenas(originalConfigData, this.startupConfiguration.admin.arenas);\r\n }\r\n\r\n let context = new ConfigurationEvaluationContext(this._getConfigEvaluationContextServices());\r\n let configEvaluator = PropertiesEvaluator.fromRoot(originalConfigData, context);\r\n let data = configEvaluator.evaluate(context);\r\n this._defineCustomConfigProperty(data,\r\n 'allGamesTypes',\r\n () => {\r\n let gameTypes: number[] = [];\r\n let gamesTags = (data.generalSettings && data.generalSettings.gamesSettings && data.generalSettings.gamesSettings.gamesTags) || {};\r\n Object.getOwnPropertyNames(gamesTags).forEach(gt => {\r\n let gameType = parseInt(gt);\r\n if(!isNaN(gameType)) {\r\n gameTypes.push(gameType);\r\n }\r\n });\r\n return gameTypes;\r\n });\r\n\r\n\r\n runInAction(() => {\r\n this.data = data as IConfigurationData;\r\n });\r\n }\r\n\r\n\r\n private _defineCustomConfigProperty(configData: unknown, propertyName: string, evaluator: () => unknown) {\r\n Object.defineProperty(configData, propertyName, {\r\n get: evaluator,\r\n configurable: false\r\n });\r\n\r\n }\r\n\r\n @observable.ref\r\n data: IConfigurationData;\r\n\r\n get userSelectedState(): string {\r\n return this.startupConfiguration.userSelectedState;\r\n }\r\n\r\n get cmsPublicationId(): number {\r\n return this.startupConfiguration.b2c.publicationId;\r\n }\r\n\r\n get usedGameTypesBySite(): number[] {\r\n\r\n let gameTypesMap = {...this._getUsedGamesByHomePage(), ...this._getUsedGamesByArenas(), ...this._getUsedGameTypesByLiveGamesArena(), ...this._getUsedGameTypesByNewLiveGamesArena()};\r\n\r\n return Object.values(gameTypesMap);\r\n }\r\n\r\n private _getUsedGamesByHomePage(): GameTypesMap {\r\n let result: GameTypesMap = {};\r\n (this.data.homePage.gamesLists || []).forEach(gamesList => {\r\n if(gamesList.display) {\r\n let gamesIds = gamesList.gamesId || [];\r\n if(Check.isArray(gamesIds)) {\r\n gamesIds.forEach(gameType => {\r\n result[gameType] = gameType;\r\n })\r\n }\r\n\r\n }\r\n });\r\n\r\n return result;\r\n }\r\n\r\n private _getUsedGamesByArenas(): GameTypesMap {\r\n let result: GameTypesMap = {};\r\n Object.keys(this.data.arenas).forEach(arenaName => {\r\n let arenaConfig = this.data.arenas[arenaName];\r\n // game types from swipers\r\n (arenaConfig.swiperGamesList || []).forEach(swiperConfig => {\r\n if(swiperConfig.display) {\r\n let gamesIds = swiperConfig.gamesId || [];\r\n if(Check.isArray(gamesIds)) {\r\n gamesIds.forEach(gameType => {\r\n result[gameType] = gameType;\r\n });\r\n }\r\n\r\n }\r\n });\r\n\r\n // game types from all games grid\r\n (arenaConfig.allGamesGrid || []).forEach(gamesGridConfig => {\r\n if(gamesGridConfig.display) {\r\n let gamesIds = gamesGridConfig.gamesId || [];\r\n if(Check.isArray(gamesIds)) {\r\n gamesIds.forEach(gameType => {\r\n result[gameType] = gameType;\r\n });\r\n }\r\n }\r\n });\r\n });\r\n\r\n return result;\r\n }\r\n\r\n private _getUsedGameTypesByLiveGamesArena() : GameTypesMap {\r\n let result: GameTypesMap = {};\r\n\r\n let liveCasinoArenaConfig = this.data.arenas[LIVE_CASINO_ARENA_NAME];\r\n if(!liveCasinoArenaConfig) {\r\n return result;\r\n }\r\n\r\n let gamesIds = liveCasinoArenaConfig.arenas && liveCasinoArenaConfig.arenas.gamesId;\r\n\r\n if(Check.isArray(gamesIds)) {\r\n gamesIds.forEach(gameTypeConfig => {\r\n if(gameTypeConfig.display) {\r\n result[gameTypeConfig.gameId] = gameTypeConfig.gameId;\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n let popularTablesConfig = liveCasinoArenaConfig.popularTables;\r\n if(Check.isArray(popularTablesConfig)) {\r\n popularTablesConfig.forEach(tableConfig => {\r\n let tableGamesIds = tableConfig.gamesId || [];\r\n if(Check.isArray(tableGamesIds)) {\r\n tableGamesIds.forEach(gameType => result[gameType] = gameType);\r\n }\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private _getUsedGameTypesByNewLiveGamesArena() : GameTypesMap {\r\n let result: GameTypesMap = {};\r\n\r\n let liveCasinoArenaConfig = this.data.arenas[NEW_LIVE_CASINO_ARENA_NAME];\r\n if(!liveCasinoArenaConfig) {\r\n return result;\r\n }\r\n\r\n let gamesIds = liveCasinoArenaConfig.arenas && liveCasinoArenaConfig.arenas.gamesId;\r\n\r\n if(Check.isArray(gamesIds)) {\r\n gamesIds.forEach(gameTypeConfig => {\r\n if(gameTypeConfig.display) {\r\n result[gameTypeConfig.gameId] = gameTypeConfig.gameId;\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n let popularTablesConfig = liveCasinoArenaConfig.popularTables;\r\n if(Check.isArray(popularTablesConfig)) {\r\n popularTablesConfig.forEach(tableConfig => {\r\n let tableGamesIds = tableConfig.gamesId || [];\r\n if(Check.isArray(tableGamesIds)) {\r\n tableGamesIds.forEach(gameType => result[gameType] = gameType);\r\n }\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n\r\n resolveConfigurationValue(fullPath: string): string {\r\n let objectValue: any = this.data;\r\n let fullPathArray = fullPath.split('.');\r\n\r\n for (let objectKey of fullPathArray) {\r\n objectValue = objectValue[objectKey];\r\n }\r\n\r\n return (objectValue as string) || '';\r\n }\r\n\r\n\r\n buildConfigUrl(fileName: string): string {\r\n let configurationPath = this.startupConfiguration.configurationPath;\r\n if(!configurationPath.endsWith('/')) {\r\n configurationPath += '/';\r\n }\r\n return configurationPath + fileName;\r\n }\r\n\r\n resolveGameImagePath(imageFileName: string): string {\r\n if(Check.isEmpty(imageFileName)) {\r\n return '';\r\n }\r\n\r\n let imagesBasePath = this.startupConfiguration.sdk.config.ExtraProperties.paths.gamesImages; //paths.gamesImages is used by cypress environment\r\n if(imagesBasePath) {\r\n if (!imagesBasePath.endsWith('/')) {\r\n imagesBasePath += '/';\r\n }\r\n return imagesBasePath + imageFileName;\r\n } else {\r\n let serverPath = this.startupConfiguration.sdk.config.ExtraProperties.paths.server;\r\n if (!serverPath.endsWith('/')) {\r\n serverPath += '/';\r\n }\r\n return serverPath + 'gamesImages/' + imageFileName;\r\n }\r\n }\r\n\r\n resolveJsFilePath(fileName: string): string {\r\n if(Check.isEmpty(fileName)) {\r\n return '';\r\n }\r\n let serverPath = this.startupConfiguration.sdk.config.ExtraProperties.paths.server;\r\n let path = serverPath ? serverPath : this.services.window.origin;\r\n if (!path.endsWith('/')) {\r\n path += '/';\r\n }\r\n return (path + `js/${fileName}`);\r\n }\r\n\r\n getFontsPath(): string {\r\n return new URL(this.startupConfiguration.sdk.config.ExtraProperties.paths.server + \"/assets/fonts/\").href;\r\n }\r\n\r\n getGamesListByJackpotId(id: string): SwiperGamesListConfiguration {\r\n\r\n const homePageGamesLists = this.data.homePage.gamesLists || [];\r\n for(let i = 0; i < homePageGamesLists.length; i++) {\r\n let gamesList = homePageGamesLists[i];\r\n if(gamesList.jackpotWidget?.jackpotId) {\r\n let gamesIds = gamesList.gamesId || [];\r\n if(Check.isArray(gamesIds) && gamesList.jackpotWidget.jackpotId.toString() === id) {\r\n return gamesList;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n getSelfUpdatedByNewestGamesList(): ListConfiguration {\r\n const newGameArenaConfig = this.data.arenas[NEW_GAMES_ARENA_NAME];\r\n if (!newGameArenaConfig) {\r\n return null;\r\n }\r\n\r\n const gamesLists: ListConfiguration[] = (newGameArenaConfig.swiperGamesList || []).concat(newGameArenaConfig.allGamesGrid || []);\r\n const firstSelfUpdatedByNewest = gamesLists.find(listConfig => listConfig.display && listConfig.isSelfUpdatedByNewest);\r\n return firstSelfUpdatedByNewest;\r\n }\r\n\r\n private _getCurrentArenaLists() {\r\n const arenaType = this.services.routing.currentRoute.data?.arenaType;\r\n const lists = Check.isNullOrUndefined(arenaType) || arenaType === \"homePage\" ?\r\n this.data.homePage.gamesLists :\r\n this.services.configuration.data.arenas[arenaType].swiperGamesList;\r\n return lists;\r\n }\r\n\r\n getGamesListByTitle(title: string): SwiperGamesListConfiguration {\r\n const lists = this._getCurrentArenaLists();\r\n return lists?.find(list => list.title.toUpperCase() === title.toUpperCase());\r\n }\r\n\r\n getGamesListById(id: number): SwiperGamesListConfiguration {\r\n const lists = this._getCurrentArenaLists();\r\n return lists?.find(list => list.listId === id);\r\n }\r\n\r\n getHomePageHeaderArenas(): HomePageHeaderArena[] {\r\n let homePageHeaderArenas:HomePageHeaderArena[] = [];\r\n this.data.homePage.headerArenasOrder.forEach( name => {\r\n const arenaHeader = this.data.arenas[name].homepageHeader;\r\n if(arenaHeader){\r\n homePageHeaderArenas.push(arenaHeader);\r\n }\r\n });\r\n return homePageHeaderArenas;\r\n }\r\n\r\n getHomePageHeaderArenasByUserOrientation(arenaNames: string[]): HomePageHeaderArena[] {\r\n let orderedArenas:HomePageHeaderArena[] = [];\r\n arenaNames.forEach( arenaName => {\r\n const arenaConfig:HomePageHeaderArena = this.data.arenas[arenaName] && this.data.arenas[arenaName].homepageHeader;\r\n if(arenaConfig) {\r\n orderedArenas.push(arenaConfig);\r\n }\r\n });\r\n return orderedArenas;\r\n }\r\n\r\n get servicesConfigs(): IServicesConfigurations {\r\n return this.services.sdk.getConfigs();\r\n }\r\n\r\n pickSideMenuItems(keys: string[]) {\r\n const allLinks = this.services.configuration.data.sideMenu.menu_links;\r\n\r\n const reducer = function (accumulator: Array<{key: string, config: SideMenuLinkConfiguration}>, key: string) {\r\n if(key in allLinks) {\r\n accumulator.push({key, config: allLinks[key]});\r\n }\r\n return accumulator;\r\n };\r\n\r\n return keys.reduce(reducer, []);\r\n }\r\n}\r\n","import {IUserService, OpenLoginViewOptions} from './user.service.interface';\r\nimport {action, observable} from 'mobx';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {UserData} from '../sdk/sdk.service.interface';\r\nimport {Check, TimeSpan} from '@sparkware/app-utils';\r\nimport {OnOauthStateChangedParams} from '../sdk/sdk-events';\r\nimport {GetPlatformTokenResponse} from \"../sdk/cgp-sdk.interface\";\r\nimport {IAutoLoginParams} from '../../../common/interfaces/autologin-params.interface';\r\nimport {MarketingParams} from \"../../../common/interfaces/marketing-params.interface\";\r\nimport {\r\n createDefaultCashierWidgetEligibility,\r\n ICashierWidgetsEligibilityDetails\r\n} from \"../../../common/interfaces/cashier-widgets-eligibility-details.interface\";\r\n\r\nconst AUTOLOGIN_QUERY_PARAM = 'UserInfo';\r\n\r\nexport class UserService extends ServiceBase implements IUserService {\r\n\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n this.waitForAutoLogin();\r\n this._updateUserData({});\r\n this.services.sdk.events.onOAuthStateChanged(this._updateUserData);\r\n\r\n }\r\n\r\n @observable.ref isAuthorized: boolean = false;\r\n @observable.ref logoutReason: number = null;\r\n\r\n @observable.ref\r\n private _userData: UserData = {};\r\n\r\n @action.bound\r\n private _updateUserData(params: OnOauthStateChangedParams) {\r\n\r\n params = params || {};\r\n\r\n this.isAuthorized = this.services.sdk.isAuthorized;\r\n\r\n if (Check.isNullOrUndefined(params.logoutReason)) {\r\n this.logoutReason = null;\r\n } else {\r\n this.logoutReason = params.logoutReason;\r\n }\r\n\r\n const userData = (this.services.sdk.userData || {}) as UserData;\r\n\r\n if (!this.isAuthorized) {\r\n const playerStatus = this.services.localStorage.getItem('playerStatus');\r\n this.services.window.scrollTo(0,0);\r\n this._userData = {...userData, statusGroupId: (playerStatus ? parseInt(playerStatus): undefined)};\r\n } else {\r\n this._userData = userData;\r\n this.services.localStorage.setItem('playerStatus', userData.statusGroupId);\r\n\r\n this._checkForFaultyCStatus();\r\n }\r\n\r\n this._updateSegments();\r\n }\r\n\r\n // REQUIREMENT 1627624 - check if cStatus if false but user is logged in or FTD\r\n private _checkForFaultyCStatus() {\r\n const cStatus = this.services.cmsSegmentation.isCstatus;\r\n\r\n //cStatus is CMS segmentation indicates if the user is registered or FDL\r\n if (this.isAuthorized && cStatus === false) {\r\n //this.services.analytics.sendAnalytics(\"ERROR\", \"LOGGED_IN_CSTATUS_FALSE\", this.userData.cid);\r\n console.log('_checkForFaultyCStatus: ' + cStatus);\r\n }\r\n }\r\n\r\n @action.bound\r\n private _updateSegments() {\r\n this.segments = {\r\n IsAuthorized: this.isAuthorized,\r\n statusGroupId: this._userData.statusGroupId || 0,\r\n IsVIP: this._userData.IsVIP || false,\r\n GenderId: this._userData.GenderId || null,\r\n DaysSinceRegistration: this.daysSinceRegistration,\r\n RegistrationCountry: this.registrationCountry?.toLowerCase()\r\n }\r\n }\r\n\r\n @observable.ref segments = {};\r\n\r\n\r\n get hasActiveChallenges(): boolean {\r\n return this.services.sdk.activeChallengeCount > 0;\r\n }\r\n\r\n\r\n get name(): string {\r\n return this._userData.userName || '';\r\n }\r\n\r\n\r\n get cid(): string {\r\n return this._userData.cid || '';\r\n }\r\n\r\n get registrationCountry(): string {\r\n return this._userData.registrationCountry;\r\n }\r\n\r\n get joinDate(): string {\r\n return this._userData.joinDate;\r\n }\r\n\r\n get userData() {\r\n return this._userData;\r\n }\r\n\r\n get isVip(): boolean {\r\n return (this._userData.statusGroupId > 0 && this._userData.statusGroupId !== 4);\r\n }\r\n\r\n get timeSinceRegistration(): TimeSpan {\r\n if (!this._userData)\r\n return null;\r\n if (!this._userData.timeSinceRegistration)\r\n return null;\r\n return TimeSpan.parse(this._userData.timeSinceRegistration);\r\n }\r\n\r\n get daysSinceRegistration(): number {\r\n if (this.timeSinceRegistration)\r\n return this.timeSinceRegistration.totalDays;\r\n\r\n return Infinity;\r\n }\r\n\r\n get playerRMSStatus(): number {\r\n return this._userData.playerRMStatus;\r\n }\r\n\r\n get depositWidgetEligibility(): ICashierWidgetsEligibilityDetails {\r\n return this._userData.depositWidgetEligibility || createDefaultCashierWidgetEligibility();\r\n }\r\n\r\n get cashOutWidgetEligibility(): ICashierWidgetsEligibilityDetails {\r\n return this._userData.cashOutWidgetEligibility || createDefaultCashierWidgetEligibility();\r\n }\r\n\r\n\r\n get countryName(): string {\r\n return this.services.sdk.getCountryName();\r\n }\r\n\r\n getAutoLoginToken(): Promise {\r\n return this.services.sdk.getAutoLoginToken().then(data => data.token);\r\n }\r\n\r\n getPlatformToken(): Promise {\r\n return this.services.sdk.getPlatformToken();\r\n }\r\n\r\n getFirebaseToken(): string {\r\n return this.services.sdk.getFirebaseToken();\r\n }\r\n\r\n async openLogin(viewOptions: OpenLoginViewOptions = {}, marketing: MarketingParams = {}): Promise {\r\n await this.services.sdk.openLoginForm(viewOptions, marketing);\r\n }\r\n\r\n logout(): Promise {\r\n return this.services.sdk.logout();\r\n }\r\n\r\n get genderTitle(): string {\r\n switch (this._userData.GenderId) {\r\n case 1:\r\n return 'MR_TITLE';\r\n case 2:\r\n return 'MRS_TITLE';\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n\r\n private _isInAutoLogin(): boolean {\r\n return this.services.sdk.isInAutologin();\r\n }\r\n\r\n waitForAutoLogin(): Promise {\r\n\r\n if (!this._isInAutoLogin()) {\r\n return Promise.resolve();\r\n }\r\n\r\n\r\n return this.services.sdk.waitForAutologin()\r\n .then(() => {\r\n return this._removeAutoLoginTokenFromUrl()\r\n .catch((err) => {\r\n this.services.logger.error('Remove auto login token from URL failed!', err);\r\n });\r\n\r\n });\r\n\r\n }\r\n\r\n private _removeAutoLoginTokenFromUrl(): Promise {\r\n const urlWithoutToken = this.services.location.currentUri.removeSearchParam(AUTOLOGIN_QUERY_PARAM).toString()\r\n return this.services.location.replace(urlWithoutToken);\r\n }\r\n\r\n\r\n runAutoLogin(autoLoginParams: IAutoLoginParams) {\r\n this.services.sdk.runAutoLogin(autoLoginParams);\r\n }\r\n\r\n panicRestrictUser(): Promise {\r\n const offset = this.services.time.getTimezoneOffset();\r\n\r\n return this.services.api.userController.selfExclusionPanic({\r\n timezoneOffset: offset,\r\n productPackage: this.services.sdk.getProductPackageId()\r\n }).then(() => {\r\n this.logout();\r\n }).catch((err) => {\r\n this.services.sdk.structuredLoggingService\r\n .getLogger()\r\n .addCategory(\"PANIC SELF EXCLUSION\")\r\n .addAction(\"SelfExclusion fails\")\r\n .addValue(JSON.stringify(err))\r\n .error();\r\n this.logout();\r\n this.services.logger.error('Self Exclusion Panic Failed.', err);\r\n });\r\n }\r\n\r\n get loginIP(): string | null {\r\n return this.services.sdk.tokenInfo?.loginIP;\r\n }\r\n}\r\n","export enum LIST_TYPE_ID {\r\n STICKINESS = 0,\r\n BETS = 2,\r\n ACTIVE_USERS = 1\r\n}","export interface ICashierWidgetsEligibilityDetails {\r\n isABEligible: boolean;\r\n isNtsEligible: boolean;\r\n ineligibleReason: string;\r\n errorCode: number;\r\n errorMessage: string;\r\n featureName?: string;\r\n testID?: number\r\n testGroup?: string;\r\n}\r\n\r\nexport function createDefaultCashierWidgetEligibility(): ICashierWidgetsEligibilityDetails {\r\n return {\r\n isABEligible: false,\r\n isNtsEligible: false,\r\n errorCode: 0,\r\n errorMessage: \"\",\r\n ineligibleReason: \"\"\r\n };\r\n}","import {ServiceBase} from \"../ServiceBase\";\r\nimport {IBrowserButtonsHandlerService} from \"./broswer-buttons-handler.service.interface\";\r\nimport {IServiceFactoryExtended} from \"../service-factory-extended.interface\";\r\nimport Device from \"../../../sdk/src/utils/device/device\";\r\n\r\nexport class BrowserButtonsHandlerService extends ServiceBase implements IBrowserButtonsHandlerService {\r\n\r\n private pushedFakeHistoryState: boolean = false;\r\n\r\n constructor(serviceFactory: IServiceFactoryExtended) {\r\n super(serviceFactory);\r\n this._subscribe();\r\n }\r\n\r\n private _subscribe() {\r\n // this._handleSideMenusCloseOnBackButtonClick();\r\n }\r\n\r\n private _handleSideMenusCloseOnBackButtonClick() {\r\n\r\n this.reaction(() => ({\r\n isMobileSideMenuOpen: this.services.sideMenu.isMobileMenuOpen,\r\n isUserAreaMenuOpen: this.services.userMenu.isOpen,\r\n }),\r\n ({isMobileSideMenuOpen, isUserAreaMenuOpen}) => {\r\n if(!this.pushedFakeHistoryState && (isMobileSideMenuOpen || isUserAreaMenuOpen)){\r\n this.services.location.pushWithoutValidation(this.services.window.pathname);\r\n this.pushedFakeHistoryState = true;\r\n }else if(this.pushedFakeHistoryState && !isMobileSideMenuOpen && !isUserAreaMenuOpen){\r\n this.services.location.goBack();\r\n }\r\n });\r\n\r\n this._onBackButtonClicked(() => {\r\n this.services.sideMenu.closeMobileMenu();\r\n this.services.userMenu.closeMenu();\r\n });\r\n }\r\n\r\n private _onBackButtonClicked(callback){\r\n const _callback = (e) => {\r\n this.pushedFakeHistoryState = false;\r\n callback(e);\r\n }\r\n\r\n if(Device.hybrid.inCasino){\r\n return this.services.window.subscribeTo.hardwareBackButton(_callback);\r\n }\r\n\r\n return this.services.window.subscribeTo.popstate(_callback);\r\n }\r\n}","import {ISegmentationAggregatorService} from './segmentation-aggregator.service.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {action, observable} from 'mobx';\r\n\r\nexport class SegmentationAggregatorService extends ServiceBase implements ISegmentationAggregatorService {\r\n constructor(serviceFactory: IServiceFactoryExtended) {\r\n super(serviceFactory);\r\n this.reaction(\r\n () => {\r\n return {\r\n userSegments: this.services.user.segments,\r\n cmsSegments: this.services.cmsSegmentation.segments,\r\n deviceSegments: this.services.device.segments,\r\n isMobile: this.services.device.isMobile,\r\n isMiniOrbit: this.services.miniOrbit.isEnabled,\r\n isPWAInstallable: this.services.progressiveWebApp.isPWAInstallable\r\n }\r\n },\r\n () => {\r\n this._updateSegments();\r\n },\r\n {\r\n fireImmediately: true\r\n });\r\n }\r\n\r\n private _updateSegments() {\r\n this._setAllSegments({\r\n ...this.services.cmsSegmentation.segments,\r\n ...this.services.user.segments,\r\n ...this.services.device.segments,\r\n ...this._extraSegments});\r\n }\r\n\r\n @observable.ref private _allSegments: Record = {};\r\n @observable.ref segmentsLastUpdate: number = null;\r\n\r\n\r\n @action.bound\r\n private _setAllSegments(allSegments) {\r\n this._allSegments = allSegments;\r\n this.segmentsLastUpdate = Date.now();\r\n }\r\n\r\n getSegmentValue(name: string): any {\r\n let segmentValue = this._allSegments[name];\r\n\r\n if(Check.isUndefined(segmentValue)) {\r\n this.services.logger.debug(`Segment ${name} doesn't exists in the segments list!`);\r\n }\r\n\r\n return segmentValue;\r\n }\r\n\r\n private get _extraSegments() {\r\n return {\r\n env: this.services.configuration.startupConfiguration.sdk.config.ExtraProperties.env,\r\n countryCode: this.services.configuration.startupConfiguration.country,\r\n brandID: this.services.sdk.getBrandID(),\r\n subBrandID: this.services.sdk.getSubBrandID(),\r\n regulationID: this.services.regulation.getRegulationCode(),\r\n iso3: this.services.language.currentLanguage,\r\n langCode: this.services.language.currentLanguage,\r\n isMiniOrbit: this.services.miniOrbit.isEnabled,\r\n isPWAInstallable: this.services.progressiveWebApp.isPWAInstallable\r\n };\r\n }\r\n\r\n}\r\n","import { IClientDeviceFeatures } from \"./client-device.features.interface\";\r\n\r\nexport class ClientDeviceFeatures implements IClientDeviceFeatures {\r\n}\r\n","import { action, observable } from \"mobx\";\r\nimport { IClientDeviceDetected } from \"./client-device.detected.interface\";\r\n\r\nexport class ClientDeviceDetected implements IClientDeviceDetected {\r\n public clientHintsAvailable = false;\r\n @observable\r\n public model = \"\";\r\n @observable\r\n public architecture = \"\";\r\n\r\n // this is sync data, no need to be observable, it's available from the begining\r\n public platform = \"\";\r\n @observable\r\n public platformVersion = \"\";\r\n @observable\r\n public bitness = \"\";\r\n\r\n // this is sync data, no need to be observable, it's available from the begining\r\n public mobile = undefined;\r\n\r\n // this is sync data, no need to be observable, it's available from the begining\r\n public brands = [];\r\n @observable\r\n public uaFullVersion = \"\";\r\n\r\n constructor() {\r\n this.buildInfo();\r\n }\r\n\r\n private get navigator() {\r\n return (window.navigator as any);\r\n }\r\n\r\n @action\r\n private buildInfo() {\r\n if (this.navigator.userAgentData) {\r\n this.clientHintsAvailable = true;\r\n this.platform = this.navigator.userAgentData.platform;\r\n this.mobile = this.navigator.userAgentData.mobile;\r\n this.brands = this.navigator.userAgentData.brands;\r\n /* https://developer.mozilla.org/en-US/docs/Web/API/NavigatorUAData/getHighEntropyValues */\r\n this.navigator.userAgentData.getHighEntropyValues([\r\n \"model\", \"architecture\", \"platform\", \"platformVersion\", \"bitness\", \"uaFullVersion\"\r\n ]).then(this.setAsyncdData);\r\n }\r\n }\r\n\r\n @action\r\n private setAsyncdData = (data) => {\r\n this.platform = data.platform;\r\n this.platformVersion = data.platformVersion;\r\n this.mobile = data.mobile;\r\n\r\n this.model = data.model;\r\n this.uaFullVersion = data.uaFullVersion;\r\n this.architecture = data.architecture;\r\n this.bitness = data.bitness;\r\n }\r\n\r\n}\r\n","import { ServiceBase } from '../ServiceBase';\r\nimport { IClientDeviceService } from './client-device.service.interface';\r\nimport { IServiceFactoryExtended } from '../service-factory-extended.interface';\r\nimport { IClientDeviceDetected } from './detected/client-device.detected.interface';\r\nimport { IClientDeviceFeatures } from './features/client-device.features.interface';\r\nimport { ClientDeviceFeatures } from './features/client-device.features';\r\nimport { ClientDeviceDetected } from './detected/client-device.detected';\r\n\r\nexport class ClientDeviceService extends ServiceBase implements IClientDeviceService {\r\n public features: IClientDeviceFeatures;\r\n public detected: IClientDeviceDetected;\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n\r\n this.features = new ClientDeviceFeatures();\r\n this.detected = new ClientDeviceDetected();\r\n }\r\n}\r\n","import {ServiceBase} from '../ServiceBase';\r\nimport {IDeviceService} from './device.service.interface';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {DeviceInfo} from '../sdk/cgp-sdk.interface';\r\nimport {action, observable} from 'mobx';\r\nimport Device from \"../../../sdk/src/utils/device/device\";\r\n\r\nexport class DeviceService extends ServiceBase implements IDeviceService {\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n\r\n this._updateDeviceType();\r\n this.services.dom.subscribeTo.devicechanged(this._updateDeviceType);\r\n\r\n }\r\n\r\n private get _sdkDevice(): DeviceInfo {\r\n return this.services.sdk.device;\r\n }\r\n\r\n @action.bound\r\n private _updateDeviceType() {\r\n this.isMobile = this._sdkDevice.isMobile();\r\n this.isTablet = this._sdkDevice.isTablet();\r\n\r\n this.os = this._sdkDevice.os;\r\n this.browser = this._sdkDevice.browser;\r\n this.hybrid = this._sdkDevice.hybrid;\r\n this.feature = this._sdkDevice.feature;\r\n this.model = this._sdkDevice.model;\r\n this.isProgressiveWebApp = this._sdkDevice.isProgressiveWebApp;\r\n\r\n this.isStandalone = this._sdkDevice.isStandalone;\r\n\r\n this.segments = {\r\n isMobile: this.isMobile,\r\n deviceType: this.isMobile ? 'mobile' : 'pc',\r\n isHybrid: this.hybrid.isHybrid,\r\n isEmbeddedHybrid: this.hybrid.isEmbedded,\r\n operationSystem: this.os.name,\r\n tool: Device.isProbablyIPad ? \"tablet\" : '',\r\n isProgressiveWebApp: this._sdkDevice.isProgressiveWebApp\r\n };\r\n }\r\n\r\n /** @deprecated */\r\n @observable.ref isMobile: boolean;\r\n /** @deprecated */\r\n isTablet: boolean;\r\n\r\n os: DeviceInfo[\"os\"];\r\n browser: DeviceInfo[\"browser\"];\r\n model: DeviceInfo[\"model\"];\r\n hybrid: DeviceInfo[\"hybrid\"];\r\n feature: DeviceInfo[\"feature\"];\r\n isProgressiveWebApp: DeviceInfo[\"isProgressiveWebApp\"];\r\n\r\n isStandalone: boolean;\r\n\r\n segments: {\r\n [key: string]: any;\r\n }\r\n\r\n get productPackageId(): number {\r\n return this.services.sdk.getProductPackageId();\r\n }\r\n\r\n get isMobileWebApp(): boolean {\r\n return Device.isMobileWebApp;\r\n }\r\n\r\n get isProbablyIOSDevice(): boolean {\r\n return Device.isProbablyIOSDevice;\r\n }\r\n}\r\n","import {HOME_PAGE_ARENA} from \"../services/arenas/arena-consts\";\r\n\r\nexport const SEO_CATEGORIES = {\r\n HOME: HOME_PAGE_ARENA,\r\n AI_GAMES_RECOMMENDATIONS: 'AI_GamesDisplayed',\r\n AI_NEW_GAMES_RECOMMENDATIONS: 'AI_NewGamesDisplayed'\r\n};\r\n\r\n","import {ServiceBase} from '../ServiceBase';\r\nimport {AiRecommendedGames, IAiEngineService, IAiSortOptions} from './ai-engine.service.interface';\r\nimport {action, observable} from 'mobx';\r\nimport {SEO_CATEGORIES} from '../../consts/seo-categories';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {LIST_TYPE_ID} from \"../../../common/const/ai-trending-list-ids-map\";\r\n\r\nexport const NO_AI_GAMES_RECOMMENDATIONS: AiRecommendedGames = {\r\n isInitialized: false,\r\n gameTypes: [],\r\n gameTypesMap: {},\r\n engine: undefined\r\n};\r\n\r\ninterface ITrendingGamesRecommendations {\r\n gamesByBets: number[];\r\n gamesByActiveUsers: number[];\r\n}\r\n\r\nexport class AiEngineService extends ServiceBase implements IAiEngineService {\r\n constructor(services: IServiceFactoryExtended){\r\n super(services);\r\n\r\n this.reaction(() => this.services.user.isAuthorized,\r\n () => this._onOauthChange(),\r\n {\r\n fireImmediately: true\r\n });\r\n\r\n this.services.sdk.events.onGamesQuestionnaireCompleted(async () => {\r\n await this._updateAiRecommendedGames();\r\n });\r\n }\r\n\r\n @observable.ref aiRecommendedGames: AiRecommendedGames = NO_AI_GAMES_RECOMMENDATIONS;\r\n\r\n @observable.ref _trendingGamesRecommendations: ITrendingGamesRecommendations | null = null;\r\n get trendingRecommendedGamesForPlayerByBets(): number[] | null {\r\n this._loadTrendingRecommendedGamesForPlayer();\r\n return this._trendingGamesRecommendations?.gamesByBets || null;\r\n }\r\n get trendingRecommendedGamesForPlayerByActiveUsers(): number[] | null {\r\n this._loadTrendingRecommendedGamesForPlayer();\r\n return this._trendingGamesRecommendations?.gamesByActiveUsers || null;\r\n }\r\n\r\n /**\r\n * @description: A map where the key is the game type and the value is then game position in the AI recommendation\r\n */\r\n @observable.ref private _allAiRecommendedGameTypes: Record;\r\n\r\n\r\n @action.bound\r\n private _setAiRecommendedGames(value: AiRecommendedGames) {\r\n\r\n let tempGameTypesMap = {};\r\n\r\n if (value.gameTypes) {\r\n value.gameTypes.forEach((gameType, i) => tempGameTypesMap[gameType] = i);\r\n }\r\n\r\n this.aiRecommendedGames = {\r\n ...value,\r\n gameTypes: (value.gameTypes || []),\r\n gameTypesMap: tempGameTypesMap\r\n };\r\n }\r\n\r\n @action.bound\r\n private _setTrendingRecommendedGamesForPlayer(trendingRecommendedGamesForPlayer: {[key: number]: number[]}) {\r\n this._trendingGamesRecommendations = {\r\n gamesByBets: (trendingRecommendedGamesForPlayer && trendingRecommendedGamesForPlayer[LIST_TYPE_ID.BETS]) || [],\r\n gamesByActiveUsers: (trendingRecommendedGamesForPlayer && trendingRecommendedGamesForPlayer[LIST_TYPE_ID.ACTIVE_USERS]) || []\r\n }\r\n }\r\n\r\n @action.bound\r\n private _setAllAiRecommendedGameTypes(gameTypes: number[]) {\r\n gameTypes = gameTypes || [];\r\n // creates a map where the key is the game type and the value is the index of that game type in the array\r\n this._allAiRecommendedGameTypes = gameTypes.reduce((acc, curr, index) => {\r\n acc[curr] = index;\r\n return acc;\r\n }, {});\r\n }\r\n\r\n private _onOauthChange() {\r\n this._initalizeTrendingRecommendations();\r\n this._updateAiRecommendedGames();\r\n }\r\n\r\n _initalizeTrendingRecommendations() {\r\n if(this.services.user.isAuthorized) {\r\n this._trendingGamesRecommendations = null;\r\n }\r\n }\r\n\r\n private async _updateAiRecommendedGames(): Promise {\r\n let aiRecommendationsData = await this.services.sdk.getAIRecommendations({filterOutRecentlyPlayedGames: true});\r\n\r\n this._setAiRecommendedGames({\r\n gameTypes: aiRecommendationsData.gameTypes,\r\n engine: aiRecommendationsData.engine,\r\n gameTypesMap: {},\r\n isInitialized: true\r\n });\r\n\r\n aiRecommendationsData = await this.services.sdk.getAIRecommendations({maxGames: 500, filterOutRecentlyPlayedGames: false});\r\n this._setAllAiRecommendedGameTypes(aiRecommendationsData.gameTypes || []);\r\n\r\n this._sendAIRecommendationAnalytics();\r\n }\r\n\r\n private _sendAIRecommendationAnalytics(): void {\r\n\r\n let analyticsObject = this.aiRecommendedGames.gameTypes.reduce((result, gameType, index) => {\r\n result[gameType] = index;\r\n return result;\r\n }, {});\r\n\r\n this.services.analytics.sendAIRecommendations({\r\n category: SEO_CATEGORIES.AI_GAMES_RECOMMENDATIONS,\r\n gameTypes: analyticsObject,\r\n engine: this.aiRecommendedGames.engine\r\n });\r\n }\r\n\r\n async getCasinoRecommendedDynamicListsForPlayer(listIDs: string[]): Promise> {\r\n return await this.services.api.insightController.getCasinoRecommendedDynamicListsForPlayer({\r\n listsIDs: listIDs\r\n });\r\n }\r\n\r\n sortGames(gameTypes: number[], options?: IAiSortOptions): number[] {\r\n const allAiRecommendedGameTypes = Check.isEmpty(options?.gamesMapOverride) ? this._allAiRecommendedGameTypes : options?.gamesMapOverride;\r\n if(!allAiRecommendedGameTypes || Object.keys(allAiRecommendedGameTypes).length === 0) {\r\n return gameTypes;\r\n }\r\n\r\n const ignoreNumberOfGames = Check.isNumber(options?.ignoreNumberOfGames) ? options.ignoreNumberOfGames : 0;\r\n let fixedGameTypes = ignoreNumberOfGames > 0 ? gameTypes.slice(0, ignoreNumberOfGames) : [];\r\n const aiGameTypes = ignoreNumberOfGames > 0 ? gameTypes.slice(ignoreNumberOfGames) : gameTypes;\r\n\r\n const originalIndexes = {};\r\n aiGameTypes.forEach((gt, index) => {\r\n originalIndexes[gt] = index;\r\n });\r\n\r\n aiGameTypes.sort((gt1, gt2) => {\r\n let index1 = allAiRecommendedGameTypes[gt1];\r\n let index2 = allAiRecommendedGameTypes[gt2];\r\n\r\n if(Check.isUndefined(index1) && Check.isUndefined(index2)) {\r\n return (originalIndexes[gt1] < originalIndexes[gt2]) ? -1 : 1;\r\n }\r\n\r\n if(Check.isUndefined(index1)) { //if gt1 is not in the AI recommendations\r\n return 1;\r\n } else if(Check.isUndefined(index2)) {\r\n return -1;\r\n }\r\n\r\n return (index1 < index2) ? -1 : 1; //gt1 goes before gt2 if index1 < index2\r\n });\r\n\r\n // concatenate fixed game types (not sorted) with ai sorted ones\r\n return fixedGameTypes.concat(aiGameTypes);\r\n }\r\n\r\n getAiEngine(): string | undefined {\r\n return this.aiRecommendedGames.engine;\r\n }\r\n\r\n getAiEngineForGame(gameType: number): string | undefined {\r\n return this.aiRecommendedGames.gameTypesMap[gameType] === undefined ? undefined : this.aiRecommendedGames.engine;\r\n }\r\n\r\n private _isLoadTrendingRecommendedGamesForPlayerInProgress = false;\r\n private async _loadTrendingRecommendedGamesForPlayer(): Promise {\r\n if(this._isLoadTrendingRecommendedGamesForPlayerInProgress) {\r\n return;\r\n }\r\n\r\n if(!Check.isNullOrUndefined(this._trendingGamesRecommendations)) {\r\n return;\r\n }\r\n\r\n this._isLoadTrendingRecommendedGamesForPlayerInProgress = true;\r\n try {\r\n const trendingRecommendedGames: { [key: number]: number[] } = await this.services.sdk.getTrendingRecommendedGamesForPlayer(LIST_TYPE_ID.BETS, LIST_TYPE_ID.ACTIVE_USERS);\r\n this._setTrendingRecommendedGamesForPlayer(trendingRecommendedGames);\r\n } finally {\r\n this._isLoadTrendingRecommendedGamesForPlayerInProgress = false;\r\n }\r\n\r\n }\r\n\r\n // List Type can be either 1 or 2, when 1 is sorted by bets and 2 is sorted by active_users\r\n private _getGamesTypesByListTypeID(listTypeId?: LIST_TYPE_ID): number[] {\r\n\r\n if(!Check.isNullOrUndefined(listTypeId)) {\r\n if (listTypeId === LIST_TYPE_ID.BETS) {\r\n return this.trendingRecommendedGamesForPlayerByBets;\r\n } else if(listTypeId === LIST_TYPE_ID.ACTIVE_USERS) {\r\n return this.trendingRecommendedGamesForPlayerByActiveUsers;\r\n } else {\r\n this.services.logger.error(`Fail to get ai games order from api. wrong listTypeId: ${listTypeId}`);\r\n }\r\n }\r\n\r\n return [];\r\n }\r\n\r\n sortGamesByAI(gamesTypesArray: number[], listTypeId: LIST_TYPE_ID) {\r\n const aiGamesByScore = this._getGamesTypesByListTypeID(listTypeId);\r\n if(!aiGamesByScore) {\r\n return gamesTypesArray;\r\n }\r\n \r\n return gamesTypesArray.sort((first,second) => {\r\n const firstGamePlace = aiGamesByScore.indexOf(first);\r\n const secondGamePlace = aiGamesByScore.indexOf(second);\r\n if(firstGamePlace === -1 || secondGamePlace === -1) {\r\n if(firstGamePlace === -1) {\r\n return secondGamePlace === -1 ? 0 : 1;\r\n } else {\r\n return -1;\r\n }\r\n }\r\n\r\n return firstGamePlace - secondGamePlace;\r\n });\r\n\r\n }\r\n}\r\n\r\n\r\n","import {CallToActionFunc, ISpecificSafezoneObject, ReadyFunc} from \"./safezone-object-factory.service.interface\";\r\n\r\nexport interface ISafezoneService {\r\n readonly hasError: boolean;\r\n reconnectToSafezone(): void;\r\n openFullSafezone(safeZoneDeeplink?: SafeZoneDeeplink): void;\r\n readonly isEnabled: boolean;\r\n}\r\n\r\nexport interface ISafezoneContext{\r\n userInfo: string,\r\n brandId: number,\r\n subBrandId: number,\r\n productPackage: number,\r\n systemId: number,\r\n lang: string,\r\n clientPlatform: string,\r\n clientVersion: string,\r\n locale: string,\r\n fontDomain: string,\r\n}\r\n\r\nexport interface ISafezoneInitParams{\r\n context: ISafezoneContext,\r\n onReady: ReadyFunc,\r\n onError(error: string): void,\r\n onCallToAction: CallToActionFunc,\r\n}\r\n\r\nexport interface ISafezoneHandler{\r\n closedFromSafezone:boolean;\r\n init(safezoneObj:ISpecificSafezoneObject):void,\r\n onReady():void;\r\n resetOnLogout():void\r\n}\r\n\r\nexport interface IFullSafezoneHandler extends ISafezoneHandler{\r\n openFullSafezone(params?: IOpenFullSafezoneParams):void\r\n}\r\n\r\nexport interface IOpenFullSafezoneParams {\r\n source?:OPEN_SAFEZONE_SOURCE_VALUES;\r\n correlationId?:string;\r\n safeZoneDeeplink?: SafeZoneDeeplink;\r\n}\r\n\r\nexport interface IMiniSafezoneHandler extends ISafezoneHandler{\r\n closeMiniSafezone():void,\r\n correlationID: string;\r\n}\r\n\r\nexport const SAFEZONE_FUNCTION: string = \"SafeZone\";\r\n\r\nexport enum SAFEZONE_CONTAINERS_ID{\r\n FULL_SAFEZONE_CONTAINER_ID = \"FullSafeZoneContainer\",\r\n MINI_SAFEZONE_CONTAINER_ID = \"MiniSafeZoneContainer\"\r\n}\r\n\r\nexport enum COMPONENT_NAMES{\r\n FULL = \"FullSafeZone\",\r\n MINI = \"MiniSafeZone\"\r\n}\r\n\r\n/**\r\n * In the \"OpenSafeZoneSource\" control center will put values like this that we send back at init\r\n{\r\n Boss: \"boss\"\r\n Cashier: \"cashier\"\r\n Email: \"email\"\r\n Lobby: \"lobby\"\r\n Membership: \"membership\"\r\n Pending_action: \"pending_action\"\r\n Promotion: \"promotion\"\r\n Rg_policy: \"rg_policy\"\r\n UserArea: \"mini\"\r\n} */\r\nexport const OPEN_SAFEZONE_SOURCE: string = \"OpenSafeZoneSource\"; // window.OpenSafeZoneSource\r\nexport enum OPEN_SAFEZONE_SOURCE_VALUES {\r\n LOBBY = \"Lobby\",\r\n USER_AREA = \"UserArea\"\r\n}\r\n\r\nexport enum CHANNEL {\r\n LOBBY = \"lobby\",\r\n MINI = \"mini\"\r\n}\r\n\r\nexport const CLOSE_SAFEZONE_SOURCE: string = \"CloseSafeZoneSource\";\r\nexport enum CLOSE_SAFEZONE_SOURCE_VALUES {\r\n CLIENT = \"ClientPage\",\r\n MINI_SZ = \"MiniSafeZone\"\r\n}\r\n\r\nexport interface ICallToActionParams {\r\n actionId: number;\r\n url?: string;\r\n}\r\n\r\nexport enum SafeZoneDeeplink {\r\n TimeSpentReminderPage = 1\r\n}\r\n\r\nexport const ACTIONS = {\r\n OPEN_FULL: 66,\r\n CLOSE_FULL: 67,\r\n OPEN_EXTERNAL_LINK: 27,\r\n OPEN_RESPONSIBLE_GAMING: 69,\r\n OPEN_CONTACT_US: 70,\r\n LOG_OUT:71, // @TODO: is this used by RG or not? Based on their CallToAction definition, this doesn't exists\r\n KICK_OUT: 68\r\n};\r\n\r\nexport const SAFEZONE_EVENTS = {\r\n MINI_OPEN: \"sz_mini_open\", //01010101\r\n MINI_READY: \"sz_mini_ready\",\r\n MINI_CLOSE_INTERNAL: \"sz_mini_close_internal\",\r\n MINI_CLOSE_EXTERNAL: \"sz_mini_close_external\", //01010104\r\n FULL_OPEN: \"sz_full_open\", //01020101\r\n FULL_READY: \"sz_full_ready\",\r\n FULL_CLOSE_EXTERNAL: \"sz_full_close_external\", //01020104\r\n CATEGORY_MINI: \"mini\",\r\n CATEGORY_FULL: \"full\"\r\n};\r\n\r\n\r\n","import {IDeepLinkBuilder} from '../deep-link-builder.interface';\r\nimport {IDeepLinkActionChain} from '../../deep-link-actions/deep-link-action-chain';\r\n\r\nexport class DeepLinkJsonObjectBuilder implements IDeepLinkBuilder {\r\n buildDeepLinkUrl(actionsChain: IDeepLinkActionChain): string {\r\n\r\n let deepLinkObject: any = {};\r\n let resultedMarketingParams: any = {};\r\n\r\n let currentActionIndex = -1;\r\n\r\n let currentActionsChainPointer: IDeepLinkActionChain | null = actionsChain;\r\n while(currentActionsChainPointer) {\r\n let actionPropName = '';\r\n let idPropName = '';\r\n\r\n if(currentActionIndex === -1) {\r\n actionPropName = 'action';\r\n idPropName = 'id'\r\n } else if(currentActionIndex === 0) {\r\n actionPropName = 'action_next';\r\n idPropName = 'id_next'\r\n } else {\r\n actionPropName = 'action_next' + currentActionIndex;\r\n idPropName = 'id_next' + currentActionIndex;\r\n }\r\n\r\n deepLinkObject[actionPropName] = currentActionsChainPointer.descriptor.action;\r\n if(currentActionsChainPointer.descriptor.actionParams && currentActionsChainPointer.descriptor.actionParams.id) {\r\n deepLinkObject[idPropName] = currentActionsChainPointer.descriptor.actionParams.id;\r\n }\r\n\r\n let marketingParams = currentActionsChainPointer.descriptor.marketingParams;\r\n if(marketingParams) {\r\n if(marketingParams.dl) {\r\n resultedMarketingParams.dl = marketingParams.dl;\r\n }\r\n\r\n if(marketingParams.wtc) {\r\n resultedMarketingParams.wtc = marketingParams.wtc;\r\n }\r\n }\r\n\r\n currentActionsChainPointer = currentActionsChainPointer.nextAction;\r\n currentActionIndex++;\r\n }\r\n\r\n if(Object.keys(deepLinkObject).length === 0) {\r\n return ''\r\n }\r\n\r\n deepLinkObject = {...deepLinkObject, ...resultedMarketingParams};\r\n\r\n // replace \" with ' - for some reason cause to JSON parsing to fail.\r\n const deepLinkObjectAfterConvert = JSON.stringify(deepLinkObject).split('\"').join('\\'')\r\n\r\n return \"#deeplink=\" + deepLinkObjectAfterConvert;\r\n }\r\n}\r\n","import {DeepLinkActionDescriptor, IDeepLinkParser} from '../deep-link-parser.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {IDeepLinkBuilder} from '../../../deep-link-builders/deep-link-builder.interface';\r\nimport {DeepLinkJsonObjectBuilder} from '../../../deep-link-builders/deeplink-json-object-builder/deeplink-json-object-builder';\r\n\r\n\r\n\r\nexport class DeepLinkJsonObjectParser implements IDeepLinkParser {\r\n\r\n constructor(public deepLinkObject: any) {\r\n\r\n }\r\n\r\n\r\n getActionsDescriptors(): DeepLinkActionDescriptor[] {\r\n\r\n let marketingParams = {\r\n dl: this.deepLinkObject.dl,\r\n wtc: this.deepLinkObject.wtc\r\n };\r\n\r\n\r\n let result: DeepLinkActionDescriptor[] = [];\r\n\r\n result.push({\r\n action: this.deepLinkObject.action,\r\n marketingParams: marketingParams,\r\n actionParams: {\r\n id: this.deepLinkObject.id\r\n }\r\n });\r\n\r\n for(let i = 0; i <= 2; i++) {\r\n let actionNextPropName = i === 0 ? 'action_next' : 'action_next' + i;\r\n let idNextPropName = i === 0 ? 'id_next' : 'id_next' + i;\r\n\r\n if(!Check.isNullOrUndefined(this.deepLinkObject[actionNextPropName])) {\r\n let params = {\r\n id: this.deepLinkObject[idNextPropName],\r\n };\r\n\r\n result.push({\r\n action: this.deepLinkObject[actionNextPropName],\r\n marketingParams: marketingParams,\r\n actionParams: params\r\n });\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n\r\n getDeepLinkBuilder(): IDeepLinkBuilder {\r\n return new DeepLinkJsonObjectBuilder();\r\n }\r\n\r\n}\r\n","import {ServiceBase} from '../../ServiceBase';\r\nimport {IDeepLinkParserService} from './deep-link-parser.service.interface';\r\nimport {IDeepLinkParser} from './parsers/deep-link-parser.interface';\r\nimport {DeepLinkJsonObjectParser} from './parsers/deep-link-json-object-parser/deep-link-json-object-parser';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {decodeUriComponentRecursive} from '../../../../utils/url-utils';\r\n\r\n\r\nconst DEEP_LINK_HASH_PARAM = 'deeplink=';\r\nexport const DEEP_LINK_QUERY_PARAM = 'deeplink';\r\nconst SPECIFIC_NAVIGATION = 'specificNavigation';\r\nconst SPECIFIC_NAVIGATION_PARAM = SPECIFIC_NAVIGATION + '=';\r\n\r\n\r\nexport class DeepLinkParserService extends ServiceBase implements IDeepLinkParserService {\r\n getParserFromCurrentRoute(): IDeepLinkParser | null {\r\n\r\n if(!this.services.location.currentUri) {\r\n return null;\r\n }\r\n\r\n let deepLinkJson = this._extractDeepLinkJsonFromFragment();\r\n\r\n\r\n if(!deepLinkJson) {\r\n deepLinkJson = this._extractDeepLinkJsonFromDeepLinkQueryParam();\r\n }\r\n\r\n let isDeepLinkFromSpecificNavigation = false;\r\n if(!deepLinkJson) {\r\n deepLinkJson = this._extractDeepLinkJsonFromSpecificNavigationQueryParam();\r\n if(deepLinkJson) {\r\n isDeepLinkFromSpecificNavigation = true;\r\n }\r\n }\r\n\r\n\r\n if(Check.isEmpty(deepLinkJson)) {\r\n return null;\r\n }\r\n\r\n try {\r\n let deepLinkObject: string | null = null;\r\n if(Check.isString(deepLinkJson)) {\r\n deepLinkObject = JSON.parse(deepLinkJson);\r\n } else if(Check.isObject(deepLinkJson)) {\r\n deepLinkObject = deepLinkJson;\r\n } else {\r\n return null;\r\n }\r\n\r\n if(this._isDeepLinkObject(deepLinkObject)) {\r\n return new DeepLinkJsonObjectParser(deepLinkObject);\r\n }\r\n\r\n return null;\r\n\r\n } catch (err) {\r\n if(isDeepLinkFromSpecificNavigation) {\r\n this.services.logger.info(`Current route specific navigation doesn't contain a deep link: ${this.services.location.currentUri.toString()}`);\r\n } else {\r\n this.services.logger.error(`Failed to parse deep link object from current route ${this.services.location.currentUri.toString()}`);\r\n }\r\n\r\n return null;\r\n }\r\n }\r\n\r\n\r\n getParserFromDeepLinkObject(deepLinkObject: any): IDeepLinkParser | null {\r\n if(this._isDeepLinkObject(deepLinkObject)) {\r\n return new DeepLinkJsonObjectParser(deepLinkObject);\r\n }\r\n return null;\r\n }\r\n\r\n private _isDeepLinkObject(obj: any): boolean {\r\n if(!Check.isObject(obj)) {\r\n return false;\r\n }\r\n\r\n if(!obj['action']){\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private _extractDeepLinkJsonFromFragment(): string | null {\r\n let fragment = this.services.location.currentUri.hash.value;\r\n if(!fragment) {\r\n return null;\r\n }\r\n\r\n fragment = decodeUriComponentRecursive(fragment);\r\n\r\n if(fragment.indexOf(DEEP_LINK_HASH_PARAM) !== 0 && fragment.indexOf(SPECIFIC_NAVIGATION_PARAM) !== 0) {\r\n return null;\r\n }\r\n\r\n return fragment.replace(DEEP_LINK_HASH_PARAM, '').replace(SPECIFIC_NAVIGATION_PARAM, '');\r\n }\r\n\r\n\r\n\r\n private _extractDeepLinkJsonFromDeepLinkQueryParam(): string | null {\r\n if (this.services.location.currentUri.queryParams.isEmpty) {\r\n return null;\r\n }\r\n\r\n return decodeUriComponentRecursive(this.services.location.currentUri.queryParams.getParamValue(DEEP_LINK_QUERY_PARAM) || '');\r\n }\r\n\r\n private _extractDeepLinkJsonFromSpecificNavigationQueryParam(): string | null {\r\n\r\n if (this.services.location.currentUri.queryParams.isEmpty) {\r\n return null;\r\n }\r\n\r\n return decodeUriComponentRecursive(this.services.location.currentUri.queryParams.getParamValue(SPECIFIC_NAVIGATION) || '');\r\n }\r\n\r\n}\r\n","import {ServiceBase} from '../ServiceBase';\r\nimport {IDeepLinkService} from './deep-link.service.interface';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {IDeepLinkAction} from './deep-link-actions/deep-link-action.interface';\r\nimport {observable, reaction, runInAction} from 'mobx';\r\nimport {IReactionPublic} from 'mobx';\r\nimport {DEEP_LINK_QUERY_PARAM} from './deep-link-parsers/deep-link-parser.service';\r\n\r\n\r\n\r\n/**\r\n Deep link can come from\r\n 1. route\r\n 2. SDK event\r\n 3. direct call window.orbit.deepLink\r\n 4. post message\r\n */\r\n\r\nexport class DeepLinkService extends ServiceBase implements IDeepLinkService {\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n\r\n this._subscribeToCurrentUriReaction(true);\r\n\r\n this.services.sdk.events.onDeepLinkReceived(this._executeDeepLinkFromSdkEvent);\r\n this.services.window.subscribeTo.postMessage(this._executeDeepLinkFromPostMessage);\r\n }\r\n\r\n\r\n private _subscribeToCurrentUriReaction(fireImmediately: boolean): void{\r\n reaction(() => this.services.location.currentUri,\r\n (_, reaction) => this._executeDeepLinkFromCurrentRoute(reaction),\r\n {\r\n fireImmediately: fireImmediately\r\n });\r\n }\r\n\r\n @observable.ref lastTimeDeepLinkWasExecuted: number;\r\n\r\n private _isExecuting: boolean = false;\r\n get isExecuting(): boolean {\r\n return this._isExecuting;\r\n }\r\n\r\n\r\n private async _waitForAutologin(): Promise {\r\n try {\r\n await this.services.user.waitForAutoLogin();\r\n } catch (err) {\r\n // we will continue the deep link flow if waiting for auto login to complete fails.\r\n // if there are any issues with the auto login probably the login screen will pop up\r\n // depending on the deep link action\r\n this.services.logger.error('Waiting for auto login to complete failed', err);\r\n }\r\n }\r\n\r\n private async _executeAction(action: IDeepLinkAction): Promise {\r\n if(this._isExecuting) {\r\n this.services.logger.error(`You tried to execute a deep link while another one is in progress. The following deep link will be ignored: ${JSON.stringify(action.descriptor)}`);\r\n return;\r\n }\r\n this._isExecuting = true;\r\n\r\n try {\r\n await action.execute();\r\n } finally {\r\n this._isExecuting = false;\r\n runInAction(() => this.lastTimeDeepLinkWasExecuted = Date.now())\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n private async _executeDeepLinkFromCurrentRoute(reactionDisposer: IReactionPublic): Promise {\r\n\r\n\r\n try {\r\n reactionDisposer.dispose(); // we unsubscribe from this.services.location.currentUri reaction so if the currentUri changes inside the waitForAutoLogin or for any other reasons it will not trigger another deep link execution\r\n\r\n await this._waitForAutologin();\r\n\r\n // In case there is an auto login we want to create the deep link action after the auto login finishes\r\n // so any code that looks for isAuthorized during the action creation to find it on true\r\n let action = this.services.deepLinkActionsFactory.createActionFromCurrentRoute();\r\n if(!action) {\r\n return;\r\n }\r\n\r\n this.services.logger.debug('Execute deep link from current route: ' + this.services.location.currentUri.toString());\r\n\r\n const urlWithoutHash = this.services.location.currentUri.removeSearchParam(DEEP_LINK_QUERY_PARAM).getUrlWithoutHash();\r\n await this.services.location.replace(urlWithoutHash);\r\n\r\n await this._executeAction(action);\r\n\r\n } finally {\r\n this._subscribeToCurrentUriReaction(false);\r\n }\r\n\r\n\r\n }\r\n\r\n private _executeDeepLinkFromSdkEvent = async (deepLinkObject: any): Promise => {\r\n\r\n await this._waitForAutologin();\r\n\r\n let action = this.services.deepLinkActionsFactory.createActionFromDeepLinkObject(deepLinkObject);\r\n if(action) {\r\n this.services.logger.debug('Execute deep link object in _executeDeepLinkFromSdkEvent: ' + JSON.stringify(deepLinkObject));\r\n return this._executeAction(action);\r\n } else if (Check.isNullOrUndefined(deepLinkObject)){\r\n this.services.logger.warning(`${deepLinkObject} deep link object received from SDK DEEPLINK_RECEIVED event`);\r\n } else {\r\n this.services.logger.error(`Received deep link object from the SDK DEEPLINK_RECEIVED is not a valid deep link object. Received data: ${JSON.stringify(deepLinkObject)}`);\r\n }\r\n };\r\n\r\n async executeDeepLink(deepLinkObject: any, navigate?: any): Promise {\r\n if(!Check.isObject(deepLinkObject)) {\r\n this.services.logger.error(`_executeDeepLinkFromDirectCall was called with a deepLinkObject argument that is not an object`);\r\n return;\r\n }\r\n if(Object.keys(deepLinkObject).length === 0) {\r\n this.services.logger.error(`_executeDeepLinkFromDirectCall was called with an empty deep deepLinkObject argument`);\r\n return;\r\n }\r\n\r\n this.services.logger.debug('Execute deep link object in executeDeepLink: ' + JSON.stringify(deepLinkObject));\r\n\r\n await this._waitForAutologin();\r\n\r\n let action = this.services.deepLinkActionsFactory.createActionFromDeepLinkObject(deepLinkObject);\r\n if(action) {\r\n if(Check.isString(navigate)) {\r\n this.services.location.push(navigate as string);\r\n } else if(Check.isArrayOfStrings(navigate)) {\r\n if(navigate.length > 0) {\r\n await this.services.location.push('/' + (navigate as Array).join('/'));\r\n }\r\n } else if(!Check.isNullOrUndefined(navigate)) {\r\n this.services.logger.error(`expecting _executeDeepLinkFromDirectCall to be called with a navigate parameter that is string or an array of strings but it was ${JSON.stringify(navigate)}`);\r\n }\r\n\r\n await this._executeAction(action);\r\n } else {\r\n this.services.logger.error(`_executeDeepLinkFromDirectCall was called with an invalid deep link object ${JSON.stringify(deepLinkObject)}`);\r\n }\r\n };\r\n\r\n private _executeDeepLinkFromPostMessage = async (postEvent: any): Promise => {\r\n let messageData = postEvent && postEvent.data;\r\n if(!messageData) {\r\n return;\r\n }\r\n\r\n if(messageData.ActionName !== 'deeplink') {\r\n return;\r\n }\r\n\r\n\r\n if(!messageData.data) {\r\n this.services.logger.error(`Received deep link post message action with ${messageData.data} data`);\r\n return;\r\n }\r\n\r\n let deepLinkJsonObject = null;\r\n\r\n try {\r\n deepLinkJsonObject = JSON.parse(messageData.data);\r\n } catch (err) {\r\n this.services.logger.error(`Failed to parse deep link object from post message: ${messageData.data}`, err);\r\n return;\r\n }\r\n\r\n await this._waitForAutologin();\r\n\r\n let action = this.services.deepLinkActionsFactory.createActionFromDeepLinkObject(deepLinkJsonObject);\r\n\r\n if(action) {\r\n this.services.logger.debug('Execute deep link object in _executeDeepLinkFromPostMessage: ' + messageData.data);\r\n return this._executeAction(action);\r\n } else {\r\n this.services.logger.error(`Received post message with invalid deep link object ${messageData.data}`);\r\n }\r\n\r\n }\r\n}\r\n\r\n","import {CmsUserSignature, DateAndTimeFormat, GameRawData, ITokenInfo} from './sdk.service.interface';\r\nimport {IRunningGameHandler} from '../games/running-game-handler.interface';\r\nimport {IUsefulLinkSdkData} from \"../user-menu/useful-links/useful-link-data.interface\";\r\nimport {IAutoLoginParams} from '../../../common/interfaces/autologin-params.interface';\r\nimport {BalanceType} from \"../../../common/const/wallet_balance_type\";\r\nimport IStructuredLoggingService from \"../../../common/interfaces/structured-logging-service-interface\";\r\nimport {SdkOverlayZIndex} from \"../../../common/interfaces/sdk-overlay-z-index\";\r\nimport {ICashierWidgetsEligibilityDetails} from \"../../../common/interfaces/cashier-widgets-eligibility-details.interface\";\r\nimport {IGeoLocationInfo} from \"../../../common/interfaces/geo-location-info.interface\";\r\nimport {ILegacyCompanyViewModel} from \"../companies/legacy-company-view-model.interface\";\r\nimport {GamingHistoryRecordRawData} from \"../gaming-history/gaming-history.service.interfce\";\r\nimport { IAbTestingFeatureProperties } from '../../../common/interfaces/ab-testing-interface';\r\nimport {IHybridService} from \"../hybrid/hybrid.service.interface\";\r\nimport {ILegacyRegulation} from \"../regulation/legacy-regulation.interface\";\r\nimport {NullableNumber, NullableString} from \"../../../common/types/nullable-types\";\r\nimport ISdkGnwpService from \"../../../sdk/src/services/gnwp/gnwp_service_interface\";\r\nimport {IScriptLoaderService} from \"../scrip-loader/script-loader.service.interface\";\r\nimport {IFreePlayVoucherData} from \"../../../common/interfaces/free-play/free-play-voucher-data.interface\";\r\nimport {ISdkMessageButtonOptions} from '../../../common/interfaces/sdk-message-button-options';\r\nimport IStateOfResidence from \"../../../common/interfaces/state-of-residence.interface\";\r\n\r\ninterface OnEventParams {\r\n eventName: string;\r\n callback: Function;\r\n context: any;\r\n}\r\n\r\ninterface SendAnalyticsParams {\r\n category: string;\r\n action: string;\r\n label: string;\r\n value: string;\r\n omitStructuredLogger?: boolean\r\n}\r\n\r\ninterface GetAIListResponse {\r\n aiGameTypesArray: number[];\r\n aiEngine: string;\r\n}\r\n\r\n\r\n\r\n\r\nexport const CGP_EVENTS_NAMES = {\r\n ON_BEFORE_OAUTH_STATE_CHANGE: 'ON_BEFORE_OAUTH_STATE_CHANGE',\r\n OAUTH_STATE_CHANGE: 'OAUTH_STATE_CHANGE',\r\n RECENTLY_PLAYED_GAMES_UPDATED: 'RECENTLY_PLAYED_GAMES_UPDATED',\r\n AUTOLOGIN_SUCCESS: 'AUTOLOGIN_SUCCESS',\r\n AUTOLOGIN_FAILED: 'AUTOLOGIN_FAILED',\r\n DEEPLINK_RECEIVED: 'DEEPLINK_RECEIVED',\r\n GAME_OPEN: 'GAME_OPEN',\r\n CLOSE_GAME: 'CLOSE_GAME',\r\n PLAYER_ACTION: 'PLAYER_ACTION',\r\n LOGIN_FORM_OPEN: 'LOGIN_FORM_OPEN',\r\n LOGIN_FORM_CLOSE: 'LOGIN_FORM_CLOSE',\r\n TOKEN_LIFETIME_EXPIRED: 'TOKEN_LIFETIME_EXPIRED',\r\n LIVE_TABLES_UPDATE: 'LIVE_TABLES_UPDATE',\r\n GAMES_QUESTIONNAIRE_COMPLETED: 'GAMES_QUESTIONNAIRE_COMPLETED',\r\n FREE_PLAY_UPDATED: 'FREE_PLAY_UPDATED',\r\n LIVE_FEEDS_JACKPOT_AMOUNTS_UPDATED: 'LIVE_FEEDS_JACKPOT_AMOUNTS_UPDATED',\r\n LIVE_FEEDS_STATE_JACKPOTS_UPDATED: 'LIVE_FEEDS_STATE_JACKPOTS_UPDATED',\r\n GAME_POPUP_SHOW: 'GAME_POPUP_SHOW',\r\n BALANCE_UPDATED: 'BALANCE_UPDATED',\r\n REALITY_CHECK_OPENED: 'REALITY_CHECK_OPENED',\r\n REALITY_CHECK_CLOSED: 'REALITY_CHECK_CLOSED',\r\n REGISTRATION_COMPLETED: 'REGISTRATION_COMPLETED',\r\n DAILY_DEAL_REMOVE_INDICATION: 'DAILY_DEAL_REMOVE_INDICATION',\r\n OMG_AWAITING_MESSAGES_UPDATED: 'OMG_AWAITING_MESSAGES_UPDATED',\r\n APP_RESUMED: 'APP_RESUMED',\r\n APP_PAUSED: 'APP_PAUSED',\r\n EXTERNAL_LINK_CLOSED: 'EXTERNAL_LINK_CLOSED',\r\n TOUCH_ID_STATE_CHANGED: 'TOUCH_ID_STATE_CHANGED',\r\n OMG_DISPLAYED: 'OMG_DISPLAYED',\r\n SESSION_EVENT_PLAYER_BURNOUT_MESSAGE_RECEIVED: 'SESSION_EVENT_PLAYER_BURNOUT_MESSAGE_RECEIVED',\r\n LIVE_GAME_SWITCHED: 'LIVE_GAME_SWITCHED',\r\n PROMOTIONS_CHANGED: 'PROMOTIONS_CHANGED',\r\n DEPOSIT_WIDGET_CLOSED : 'DEPOSIT_WIDGET_CLOSED',\r\n};\r\n\r\n\r\nexport interface DeviceInfo {\r\n os: {\r\n name: string;\r\n version: number;\r\n isMobileOS: boolean;\r\n isIOS: boolean;\r\n isAndroid: boolean;\r\n isPC: boolean;\r\n isMacOS: boolean;\r\n };\r\n browser: {\r\n name: string;\r\n version: number;\r\n isSafari: boolean;\r\n isChrome: boolean;\r\n isFirefox: boolean;\r\n };\r\n model: {\r\n isIphone: boolean;\r\n isIpad: boolean;\r\n };\r\n hybrid: {\r\n isHybrid: boolean;\r\n isEmbedded: boolean;\r\n };\r\n feature: {\r\n isTouch: boolean;\r\n };\r\n isProgressiveWebApp: boolean;\r\n isStandalone: boolean;\r\n\r\n /** @deprecated */\r\n isMobile(): boolean;\r\n /** @deprecated */\r\n isTablet(): boolean;\r\n}\r\n\r\nexport interface CGPEventSubscription {\r\n off();\r\n}\r\n\r\n\r\nexport interface GetAutoLoginTokenResponse {\r\n token: string;\r\n}\r\n\r\nexport interface GetPlatformTokenResponse {\r\n token: string;\r\n}\r\n\r\nexport interface IDailyDealCampaign {\r\n MarketingCampaignId: string;\r\n}\r\n\r\n\r\nexport interface CgpSkinInfo {\r\n getBrandName(): string;\r\n getPlatformSystemID(): number;\r\n getClientPlatform(): string;\r\n getVersion(): string;\r\n getCulture(): string;\r\n shouldPreventLoginToEnforceHybridAppForMobileWeb(): boolean;\r\n shouldPreventOpenGameForMobileWebApp(): boolean;\r\n getMinimumAge(): number;\r\n getSafeToPlayURL(): NullableString;\r\n}\r\n\r\nexport interface ISdkUtils {\r\n getGuid():string\r\n arraysAreEqual(arr1: any[], arr2: any[]): boolean;\r\n}\r\n\r\nexport interface ISdkRegulationService {\r\n isUSRegulation(): boolean;\r\n getRegulationCode(): number;\r\n getSessionCooldownConfig(): {featureEnabled: boolean; cooldownTime: string};\r\n shouldShowPlayerLimitsToaster(): boolean;\r\n getErrorMessage(errorCode: number): NullableString;\r\n forceDemoButton(): boolean;\r\n}\r\n\r\nexport interface IOpenHistoryGameRequest {\r\n historyRecordData: GamingHistoryRecordRawData;\r\n gameType: number,\r\n gameName: string,\r\n gameRoundId: string,\r\n gameRoundDate: string;\r\n}\r\n\r\nexport interface ICgpSdk {\r\n closeRunningGame(): void;\r\n countPlayerChallenges(): number;\r\n getRegulationDateAndTimeFormat(): DateAndTimeFormat;\r\n createComponentRenderer(componentId: string): any;\r\n device(): DeviceInfo;\r\n displayHybrid?: () => void;\r\n isHybridEmbeddedGame(gameType: number): boolean;\r\n openHybridLink(url: string): void;\r\n format$$$(value: number, withDecimal: boolean);\r\n getBalance();\r\n getAIList(maxGames: number, filterOutRecentlyPlayedGames: boolean, numberOfRecentlyPlayedGameToFilterOut: number): Promise;\r\n getAINewGamesList(maxGames: number, filterOutRecentlyPlayedGames: boolean, numberOfRecentlyPlayedGameToFilterOut: number): Promise;\r\n getAutoLoginToken(): Promise;\r\n getPlatformToken(): Promise;\r\n getFirebaseToken(): string;\r\n getBrandID(): number;\r\n getCorrelatedGames(gameType: number, numberOfGames: number): Promise;\r\n getExternalBrandCallbackURL(): string;\r\n getExternalBrandCallbackURLMethod(): string;\r\n getGamesInfo(gameTypes: number[]): Promise;\r\n getGamesThemes(): Record;\r\n getGamesInfoForHistory(gameTypes: number[]): Promise;\r\n getGRSEnvironments(): Promise;\r\n getDepositWidgetEligibilityDetails(): ICashierWidgetsEligibilityDetails;\r\n getCashoutWidgetEligibilityDetails(): ICashierWidgetsEligibilityDetails;\r\n getSourceSubBrandName(): string;\r\n getSubBrandID(): number;\r\n dateAndTimeFormat(): DateAndTimeFormat;\r\n getUserData(): any;\r\n getUsername(): string;\r\n getSessionId(): string;\r\n getUserSegments(): CmsUserSignature;\r\n isAuthorized(): boolean;\r\n isLoginFromRegistration():boolean;\r\n getCGPMaxOverlayZIndex(): number;\r\n structuredLoggingService():IStructuredLoggingService;\r\n isVIP(): boolean;\r\n logout(): Promise;\r\n menuActionExecute(key: string): void;\r\n menuJSON(): Promise;\r\n onEvent(params: OnEventParams): CGPEventSubscription;\r\n routeChanged(): void;\r\n openExternalLink(params: any): Promise;\r\n openResponsibleGamingLink(view?:number):void;\r\n isGameRunning(): boolean;\r\n openGame(options: any): Promise;\r\n openInNewWindow(url: string, features?: string): void;\r\n openLoginForm(options: any): Promise;\r\n sendAnalytics(params: SendAnalyticsParams);\r\n setAutoLoginToken(autologinToken: any): void;\r\n startLiveTableFeeds(): void;\r\n stopLiveTableFeeds(): void;\r\n refreshThirdPartyVouchers(): Promise;\r\n getAbTestingDataForFeature(featureName: string): IAbTestingFeatureProperties;\r\n getAbTestingData(): { [key: string]: IAbTestingFeatureProperties };\r\n waitForAnonymousAbTestingData(): Promise;\r\n getCurrentServerDate(): Date;\r\n closeCurrentDetailHistory(): void;\r\n getRichPageUrl(campaignId: string): string;\r\n getDailyDealCampaigns(): Promise;\r\n getBankroll(balanceType: BalanceType, plainNumber?: boolean): string | number;\r\n\r\n getJackpotsWithState(): unknown;\r\n getJackpotAmountByGameType(gameType: number): NullableNumber;\r\n getNumberOfAwaitingMessages(): number;\r\n openOmgAwaitingMessages(): void;\r\n getFreeplayVouchers(): Promise;\r\n\r\n loadSafezoneSdk(): Promise;\r\n getProductPackage(): number;\r\n\r\n getSkin(): CgpSkinInfo;\r\n runAutoLogin(autoLoginParams: IAutoLoginParams):unknown;\r\n\r\n getUtils(): ISdkUtils;\r\n onOrbitInitComplete(): void;\r\n\r\n getEnvironment(): string;\r\n pushDataToDataLayer(data:{}): void;\r\n getCountryName(): string;\r\n getCountryIso3(): string;\r\n getSupportedStates(): IStateOfResidence[];\r\n getWrongLocationDetectionPath(): string;\r\n getTrendingRecommendedGamesForPlayer(listTypeId: number[]):Promise<{[key:number] : number[]}>;\r\n\r\n showToaster(toasterData: {}): unknown;\r\n getRegulationService(): ISdkRegulationService;\r\n\r\n waitForAutologin(): Promise;\r\n httpPost(url: string, requestData: unknown): Promise;\r\n httpGet(url: string, requestData: unknown): Promise;\r\n getConfigs(): any;\r\n loadScript(url: string, tagId?: string): Promise;\r\n getRefreshToken(): string;\r\n getCurrencyIso3(): string;\r\n readonly overlayZIndex: SdkOverlayZIndex;\r\n getGoogleClientID(): string;\r\n isInAutologin(): boolean;\r\n fireDepositWidgetClosed(): void;\r\n getToken(): ITokenInfo | null;\r\n\r\n continuePlayingCurrentGame(): void;\r\n stopCurrentGameAutoplay(): void;\r\n openHistoryLink(): void;\r\n isDepositWidgetSupportedByHybrid(): boolean;\r\n getGeoLocationInfo(): Promise;\r\n getDownloadAppLink(): string;\r\n promptPushNotificationPermissionRequest(): void;\r\n openPopUpOnSecondWebView(content : string, timeout : number) : void;\r\n closePopUpOnSecondWebView() : void;\r\n bringOmgToFront(): void;\r\n getBurnoutAnimationZIndex(): number;\r\n getCompanyByName(name: string): Promise;\r\n openHistoryGame(request: IOpenHistoryGameRequest): Promise\r\n readonly hybrid: IHybridService;\r\n readonly currentRegulation: ILegacyRegulation;\r\n getCurrentBrowserTabId(): string;\r\n readonly hasOpenOverlays: boolean;\r\n readonly gnwp: ISdkGnwpService;\r\n readonly scriptLoader: IScriptLoaderService;\r\n startGeoLocationOnOpenRealGame(): Promise;\r\n getButtonsForNonRetryGeoFlow(): Partial[];\r\n stopGameTimeReminders(): void;\r\n isEligibleForGameGeoRetry(): boolean;\r\n getRetryMessageButtons(analyticsLabel: string, resolve?, reject?): Partial[];\r\n}\r\n","import {CGP_EVENTS_NAMES, CGPEventSubscription, ICgpSdk} from './cgp-sdk.interface';\r\nimport { LiveTables } from '../live-table-feeds-service/live-table-feeds.service.interface';\r\nimport {TimeSpan} from '@sparkware/app-utils';\r\nimport {SYSTEM_EVENTS} from \"../../../sdk/src/events/events\";\r\nimport {\r\n IFreePlayVoucherData,\r\n IFreePlayVoucherDelta\r\n} from \"../../../common/interfaces/free-play/free-play-voucher-data.interface\";\r\nimport {\r\n INetPositionGameTypeData\r\n} from \"../../../sdk/src/services/player_messages_service/firebase/handlers/netposition_handler.interfaces\";\r\n\r\nexport interface OnShowGamePopupCallbackParams {\r\n gameType?: number,\r\n gamePopupApprovedCallback: () => void\r\n}\r\n\r\nexport interface OnGameOpenParams {\r\n gameType: number;\r\n isReal: boolean;\r\n}\r\n\r\nexport interface OnGameCloseParams {\r\n gameType: number;\r\n isReal: boolean;\r\n isGamePlayed: boolean;\r\n showNextGameSuggestion: boolean;\r\n}\r\n\r\nexport interface OnPlayerActionParams {\r\n actionName: string;\r\n options?: any;\r\n}\r\n\r\nexport interface OnOauthStateChangedParams {\r\n loginType?: number;\r\n logoutReason?: number;\r\n kickReason?: number;\r\n}\r\n\r\nexport class SdkEvents {\r\n constructor(private CGP: ICgpSdk) {\r\n\r\n }\r\n\r\n onOAuthStateChanged(callback: (params: OnOauthStateChangedParams) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.OAUTH_STATE_CHANGE,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onBeforeOAuthStateChanged(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.ON_BEFORE_OAUTH_STATE_CHANGE,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onDeepLinkReceived(callback: (deepLinkObject: any) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.DEEPLINK_RECEIVED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onShowGamePopup(callback: (args: OnShowGamePopupCallbackParams) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.GAME_POPUP_SHOW,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onGameOpen(callback: (params: OnGameOpenParams) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.GAME_OPEN,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onGameClose(callback: (params?: OnGameCloseParams) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.CLOSE_GAME,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n\r\n onPlayerAction(callback: (eventData: OnPlayerActionParams) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.PLAYER_ACTION,\r\n callback: (data) => callback(data || {} as OnPlayerActionParams),\r\n context: this\r\n });\r\n }\r\n\r\n onRecentlyPlayedGamesUpdated(callback: (gameTypes: number[]) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.RECENTLY_PLAYED_GAMES_UPDATED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onLoginFormOpen(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.LOGIN_FORM_OPEN,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onLoginFormClosed(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.LOGIN_FORM_CLOSE,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onTokenLifetimeExpired(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.TOKEN_LIFETIME_EXPIRED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onLiveTableFeedsUpdate(callback: (tablesData: LiveTables) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.LIVE_TABLES_UPDATE,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onGamesQuestionnaireCompleted(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.GAMES_QUESTIONNAIRE_COMPLETED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onFreeplayVouchersUpdated(callback: (vouchers: []) => void):CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.FREE_PLAY_UPDATED,\r\n callback: callback,\r\n context: this\r\n })\r\n }\r\n\r\n onJackpotsWithStateUpdate(callback: (jackpots: unknown) => void) {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.LIVE_FEEDS_STATE_JACKPOTS_UPDATED,\r\n callback,\r\n context: this\r\n });\r\n }\r\n\r\n onJackpotsAmountsUpdate(callback: (jackpots: Record) => void) {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.LIVE_FEEDS_JACKPOT_AMOUNTS_UPDATED,\r\n callback,\r\n context: this\r\n });\r\n }\r\n\r\n onBalanceUpdated(callback: () => void) {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.BALANCE_UPDATED,\r\n callback,\r\n context: this\r\n });\r\n }\r\n\r\n onSessionTimerUpdate(callback: (data: {sessionTime: TimeSpan}) => void) {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.SESSION_TIMER_UPDATE,\r\n callback,\r\n context: this\r\n });\r\n }\r\n\r\n onRealityCheckOpened(callback: () => void) {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.REALITY_CHECK_OPENED,\r\n callback,\r\n context: this\r\n });\r\n }\r\n\r\n onRealityCheckClosed(callback: () => void) {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.REALITY_CHECK_CLOSED,\r\n callback,\r\n context: this\r\n });\r\n }\r\n\r\n onDailyDealRemoveIndication(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.DAILY_DEAL_REMOVE_INDICATION,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onRegistrationCompleted(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.REGISTRATION_COMPLETED,\r\n callback,\r\n context: this\r\n });\r\n }\r\n\r\n onOmgAwaitingMessagesUpdated(callback: (numberOfAwaitingMessages: number) => void) {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.OMG_AWAITING_MESSAGES_UPDATED,\r\n callback,\r\n context: this\r\n });\r\n }\r\n\r\n onAppResumed(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.APP_RESUMED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onAppPaused(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.APP_PAUSED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onExternalLinkClosed(callback: (linkSource: string) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.EXTERNAL_LINK_CLOSED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onTouchIDActiveStateChanged(callback: (state: boolean) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.TOUCH_ID_STATE_CHANGED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onOmgDisplayed(callback: (state: unknown) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.OMG_DISPLAYED,\r\n callback,\r\n context: this\r\n });\r\n }\r\n\r\n onBurnoutMessageReceived(callback: (state: unknown) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.SESSION_EVENT_PLAYER_BURNOUT_MESSAGE_RECEIVED,\r\n callback,\r\n context: this\r\n });\r\n }\r\n\r\n onLiveGameSwitched(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.LIVE_GAME_SWITCHED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onPromotionsChanged(callback: (data: {Cid: number, IsPromotionDisplayedInClient: boolean, IndicationInClientPromotionsIds: number[]}) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.PROMOTIONS_CHANGED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onDepositWidgetClosed(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.DEPOSIT_WIDGET_CLOSED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onPostMessage(callback: (message: MessageEvent) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.POST_MESSAGE_ARRIVE,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onHybridPostMessage(callback: (message: MessageEvent) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.HYBRID_POST_MESSAGE_ARRIVE,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onFreePlayBatchAdded(callback: (data: IFreePlayVoucherData[]) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.SESSION_EVENT_FREE_PLAY_BATCH_ADDED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onFreePlayBatchUpdated(callback: (data: IFreePlayVoucherDelta[]) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.SESSION_EVENT_FREE_PLAY_BATCH_UPDATED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onFreePlayBatchRemoved(callback: (voucherIds: string[]) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.SESSION_EVENT_FREE_PLAY_BATCH_REMOVED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onThirdPartyVouchersReceived(callback: (vouchers: IFreePlayVoucherData[]) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.SESSION_EVENT_THIRD_PARTY_FREE_PLAY_UPDATED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onHybridEmbeddedGameLoadingIndicatorUpdateV1(callback: (percentage: number | string) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.LOADING_INDICATOR_EMBEDDED_UPDATE,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onHybridEmbeddedGameLoadingIndicatorUpdateV2(callback: (eventData: {statusBar: number | string; numberOfPackages: string}) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.LOADING_INDICATOR_EMBEDDED_UPDATE_V2,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onFirebaseGotNewToken(callback: (eventData: {token: string}) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.FIREBASE_GOT_NEW_TOKEN,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onNetPositionUpdated(callback: (gamesTypesData: INetPositionGameTypeData[]) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.SESSION_EVENT_NET_POSITION_UPDATE,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onLoginSessionResumed(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.LOGIN_SESSION_RESUMED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onUserApprovedPostLoginPopup(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.USER_APPROVE_GAME_POPUP,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n}\r\n","import Event from \"../../../sdk/src/utils/event\";\r\nimport {SYSTEM_EVENTS} from \"../../../sdk/src/events/events\";\r\n\r\nexport class SdkEventsTrigger {\r\n gameOpen(eventData: {gameType: number; isReal: boolean}): void {\r\n Event.fire(SYSTEM_EVENTS.GAME_OPEN, {\r\n gametype: eventData.gameType,\r\n gameType: eventData.gameType,\r\n isReal: eventData.isReal\r\n });\r\n }\r\n\r\n gameClosed(eventData: {gameType: number; isReal: boolean; isGamePlayed: boolean; showNextGameSuggestion: boolean}): void {\r\n Event.fire(SYSTEM_EVENTS.CLOSE_GAME, {\r\n gametype: eventData.gameType,\r\n gameType: eventData.gameType,\r\n isReal: eventData.isReal,\r\n isGamePlayed: eventData.isGamePlayed,\r\n showNextGameSuggestion: eventData.showNextGameSuggestion\r\n });\r\n }\r\n\r\n keepAlive(): void {\r\n Event.fire(SYSTEM_EVENTS.EXTEND_USER_TIME_TO_LIVE);\r\n }\r\n\r\n liveGameSwitched(): void {\r\n Event.fire(SYSTEM_EVENTS.LIVE_GAME_SWITCHED);\r\n }\r\n\r\n hybridGameLoadingIndicatorClosed(): void {\r\n Event.fire(SYSTEM_EVENTS.LOADING_INDICATOR_EMBEDDED_CLOSED_BY_X);\r\n }\r\n\r\n updateMarketingParams(marketingParams: any): void {\r\n Event.fire(SYSTEM_EVENTS.INCOMING_MARKETING_DATA, marketingParams);\r\n }\r\n\r\n\r\n navigateToGameInWebView(url: string): void {\r\n Event.fire(SYSTEM_EVENTS.WEB_VIEW_NAVIGATE_GAME, url);\r\n }\r\n\r\n gameSequenceFinishedSuccess(): void {\r\n Event.fire(SYSTEM_EVENTS.GAME_SEQUENCE_FINISH, true);\r\n }\r\n\r\n showHybridAlert(message: string): void {\r\n Event.fire(SYSTEM_EVENTS.HYBRID_ALERT, message);\r\n }\r\n\r\n locationPopupClosed(): void {\r\n Event.fire(SYSTEM_EVENTS.LOCATION_POPUP_CLOSED);\r\n }\r\n}","import {\r\n AIRecommendations,\r\n CmsUserSignature,\r\n ISdkService,\r\n SdkOpenExternalLinkParams,\r\n OpenGameOptions,\r\n UserData, GameRawData, ExternalBrandCallbackInfo, DateAndTimeFormat, ITokenInfo, IToasterParams\r\n} from './sdk.service.interface';\r\nimport {action, computed, observable} from 'mobx';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {\r\n DeviceInfo,\r\n GetAutoLoginTokenResponse,\r\n ICgpSdk,\r\n CgpSkinInfo,\r\n GetPlatformTokenResponse,\r\n ISdkUtils,\r\n ISdkRegulationService,\r\n IOpenHistoryGameRequest\r\n} from './cgp-sdk.interface';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IRunningGameHandler} from '../games/running-game-handler.interface';\r\nimport {OpenLoginViewOptions} from '../user/user.service.interface';\r\nimport {SdkEvents} from './sdk-events';\r\nimport {ISdkComponentRenderer} from '../sdk-component-factory/sdk-component-factory.service.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {IUsefulLinkSdkData} from \"../user-menu/useful-links/useful-link-data.interface\";\r\nimport {CGP_OBJECT_NAME} from '../../app-bootstrap/constants';\r\nimport {IAutoLoginParams} from '../../../common/interfaces/autologin-params.interface';\r\nimport { BalanceType } from '../../../common/const/wallet_balance_type';\r\nimport IStructuredLoggingService from \"../../../common/interfaces/structured-logging-service-interface\";\r\nimport {MarketingParams} from \"../../../common/interfaces/marketing-params.interface\";\r\nimport {IGeoLocationInfo} from \"../../../common/interfaces/geo-location-info.interface\";\r\nimport {createDefaultCashierWidgetEligibility} from \"../../../common/interfaces/cashier-widgets-eligibility-details.interface\";\r\nimport {ILegacyCompanyViewModel} from \"../companies/legacy-company-view-model.interface\";\r\nimport { IAbTestingFeatureProperties } from '../../../common/interfaces/ab-testing-interface';\r\nimport {IHybridService} from \"../hybrid/hybrid.service.interface\";\r\nimport {ILegacyRegulation} from \"../regulation/legacy-regulation.interface\";\r\nimport {SdkEventsTrigger} from \"./sdk-events-trigger\";\r\nimport {NullableNumber} from \"../../../common/types/nullable-types\";\r\nimport ISdkGnwpService from \"../../../sdk/src/services/gnwp/gnwp_service_interface\";\r\nimport {IScriptLoaderService} from \"../scrip-loader/script-loader.service.interface\";\r\nimport {IFreePlayVoucherData} from \"../../../common/interfaces/free-play/free-play-voucher-data.interface\";\r\nimport {ISdkMessageButtonOptions} from \"../../../common/interfaces/sdk-message-button-options\";\r\nimport {IModalDialogButtonsComponentProps, IModalDialogActionProps} from \"../../components/modal-dialog/modal-dialog-actions.component\";\r\nimport IStateOfResidence from \"../../../common/interfaces/state-of-residence.interface\";\r\n\r\nexport interface IGetAiRecommendationsOptions {\r\n maxGames?: number;\r\n filterOutRecentlyPlayedGames?: boolean;\r\n numberOfRecentlyPlayedGameToFilterOut?: number;\r\n}\r\n\r\nexport class SdkService extends ServiceBase implements ISdkService {\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n\r\n this._updateLocalStorageAccordingToCookie();\r\n\r\n this._displayHybrid();\r\n\r\n this.reaction(() => this.services.location.currentUri,\r\n () => {\r\n if (this.services.location.hasNavigationHistory) {\r\n this.CGP.routeChanged();\r\n }\r\n });\r\n }\r\n\r\n private _displayHybrid() {\r\n //F TO DO why is this here and not in the SDK ?\r\n if (Check.isFunction(this.CGP.displayHybrid)) {\r\n this.CGP.displayHybrid();\r\n }\r\n }\r\n\r\n private _events: SdkEvents = null;\r\n\r\n get events(): SdkEvents {\r\n if (!this._events) {\r\n this._events = new SdkEvents(this.CGP);\r\n }\r\n\r\n return this._events;\r\n }\r\n\r\n\r\n private get CGP(): ICgpSdk {\r\n return this.services.window.getGlobalProperty(CGP_OBJECT_NAME) as ICgpSdk;\r\n }\r\n\r\n\r\n get isAuthorized(): boolean {\r\n return this.CGP.isAuthorized();\r\n }\r\n\r\n get isLoginFromRegistration(): boolean {\r\n return this.CGP.isLoginFromRegistration();\r\n }\r\n\r\n get getCGPMaxOverlayZIndex(): number {\r\n return this.CGP.getCGPMaxOverlayZIndex();\r\n }\r\n\r\n get structuredLoggingService(): IStructuredLoggingService {\r\n return this.CGP.structuredLoggingService();\r\n }\r\n\r\n get dateAndTimeFormat(): DateAndTimeFormat {\r\n return this.CGP.getRegulationDateAndTimeFormat();\r\n }\r\n\r\n get userData(): UserData {\r\n let rawUserData = this.CGP.getUserData();\r\n let rawAccountData = (rawUserData && rawUserData.accountData) || {};\r\n\r\n let depositWidgetEligibility = this.CGP.getDepositWidgetEligibilityDetails() || createDefaultCashierWidgetEligibility();\r\n let cashOutWidgetEligibility = this.CGP.getCashoutWidgetEligibilityDetails() || createDefaultCashierWidgetEligibility();\r\n\r\n return {\r\n userName: rawUserData?.userName,\r\n firstName: rawAccountData.FirstName,\r\n lastName: rawAccountData.LastName,\r\n IsVIP: this.CGP.isVIP(),\r\n DWHGameGroupOrientation: rawAccountData.DWHGameGroupOrientation, // when product are asking to do something with user Orientation, - it is not this one. use this.services.userGameOrientation.gameGroup\r\n statusGroupId: rawAccountData.StatusGroupId,\r\n GenderId: rawAccountData.genderID,\r\n depositWidgetEligibility: depositWidgetEligibility,\r\n cashOutWidgetEligibility: cashOutWidgetEligibility,\r\n timeSinceRegistration: rawAccountData.TimeSinceRegistration,\r\n cid: rawUserData?.cid,\r\n playerRMStatus: rawAccountData.PlayerRMStatus,\r\n sessionId: this.CGP.getSessionId(),\r\n registrationCountry: rawAccountData.RegistrationCountry,\r\n joinDate: rawAccountData.JoinDate,\r\n isFTD: rawAccountData.FTDSubBrand === this.getSubBrandID(),\r\n IsPromotionPermitted: rawAccountData.IsPromotionPermitted\r\n };\r\n }\r\n\r\n\r\n @observable isSdkReady: boolean = true;\r\n\r\n @action.bound\r\n private _setIsSdkReady(value: boolean) {\r\n this.isSdkReady = value;\r\n }\r\n\r\n getAIRecommendations(options?: IGetAiRecommendationsOptions): Promise {\r\n return this.CGP.getAIList(options?.maxGames, options?.filterOutRecentlyPlayedGames, options?.numberOfRecentlyPlayedGameToFilterOut).then(data => {\r\n return {\r\n gameTypes: data.aiGameTypesArray || [],\r\n engine: data.aiEngine\r\n };\r\n });\r\n }\r\n\r\n getTrendingRecommendedGamesForPlayer(...listTypeIds: number[]): Promise<{ [key: number]: number[] }> {\r\n return this.CGP.getTrendingRecommendedGamesForPlayer(listTypeIds);\r\n }\r\n\r\n getAINewRecommendations(options?: IGetAiRecommendationsOptions): Promise {\r\n return this.CGP.getAINewGamesList(options?.maxGames, options?.filterOutRecentlyPlayedGames, options?.numberOfRecentlyPlayedGameToFilterOut).then(data => {\r\n return {\r\n gameTypes: data.aiGameTypesArray || [],\r\n engine: data.aiEngine\r\n };\r\n });\r\n }\r\n\r\n getCurrentServerDate(): Date {\r\n return this.CGP.getCurrentServerDate();\r\n }\r\n\r\n getAbTestingData(): { [key: string]: IAbTestingFeatureProperties } {\r\n return this.CGP.getAbTestingData();\r\n }\r\n\r\n getAbTestingDataForFeature(featureName: string): IAbTestingFeatureProperties {\r\n return this.CGP.getAbTestingDataForFeature(featureName);\r\n }\r\n\r\n waitForAnonymousAbTestingData(): Promise {\r\n return this.CGP.waitForAnonymousAbTestingData();\r\n }\r\n\r\n sendAnalytics(category: string, action: string = null, label: string = null, value: string = null, omitStructuredLogger: boolean = null) {\r\n try {\r\n this.CGP.sendAnalytics({\r\n category: category,\r\n action: action,\r\n label: label,\r\n value: value,\r\n omitStructuredLogger: omitStructuredLogger\r\n });\r\n } catch (ex) {\r\n this.services.logger.error(`SdkService failed to sendAnalytics: ${ex}`);\r\n }\r\n }\r\n\r\n getCmsUserSignature(): CmsUserSignature {\r\n return this.CGP.getUserSegments();\r\n }\r\n\r\n formatMoney(value: number, withDecimal: boolean = false): string {\r\n return this.CGP.format$$$(value, withDecimal);\r\n }\r\n\r\n get device(): DeviceInfo {\r\n return this.CGP.device();\r\n }\r\n\r\n waitForAutologin(): Promise {\r\n return this.CGP.waitForAutologin();\r\n }\r\n\r\n openExternalLink(linkParams: SdkOpenExternalLinkParams, useCallbackURL = false): Promise {\r\n\r\n let params: any = {...linkParams};\r\n\r\n //F TO DO - this if statement should be in SDK\r\n if (useCallbackURL && params.source === this.CGP.getSourceSubBrandName()) {\r\n params.callbackUrl = this.CGP.getExternalBrandCallbackURL();\r\n }\r\n\r\n return this.CGP.openExternalLink(params);\r\n }\r\n\r\n openResponsibleGamingLink(view?: number): void {\r\n this.CGP.openResponsibleGamingLink(view);\r\n }\r\n\r\n isGameRunning(): boolean {\r\n return this.CGP.isGameRunning();\r\n }\r\n\r\n async openGame(options: OpenGameOptions): Promise {\r\n\r\n let openGameOptions: any = {...options};\r\n if (!options.showRegister) {\r\n openGameOptions.navbar = { //F TO DO - do we realy need this navbar option ?\r\n login: {\r\n showRegister: false\r\n }\r\n }\r\n }\r\n\r\n return await this.CGP.openGame(openGameOptions);\r\n\r\n }\r\n\r\n async openLoginForm(viewOptions: OpenLoginViewOptions = {}, marketing: MarketingParams = {}): Promise {\r\n if (!viewOptions['marketingDataFn']) {\r\n marketing = marketing || {};\r\n viewOptions['marketingDataFn'] = 'getMarketingData(' + JSON.stringify(marketing) + ')';\r\n }\r\n\r\n await this.CGP.openLoginForm(viewOptions);\r\n }\r\n\r\n createComponentRenderer(componentId: string): ISdkComponentRenderer {\r\n return this.CGP.createComponentRenderer(componentId) as ISdkComponentRenderer;\r\n }\r\n\r\n getGamesInfoForHistory(gameTypes: number[]): Promise {\r\n return this.CGP.getGamesInfoForHistory(gameTypes);\r\n }\r\n\r\n getGamesInfo(gameTypes: number[]): Promise {\r\n return this.CGP.getGamesInfo(gameTypes);\r\n }\r\n\r\n getGamesThemes(): Record {\r\n return this.CGP.getGamesThemes();\r\n }\r\n\r\n getAutoLoginToken(): Promise {\r\n return this.CGP.getAutoLoginToken();\r\n }\r\n\r\n getPlatformToken(): Promise {\r\n return this.CGP.getPlatformToken();\r\n }\r\n\r\n getFirebaseToken(): string {\r\n return this.CGP.getFirebaseToken();\r\n }\r\n\r\n getCorrelatedGames(gameType: number, numberOfGames: number = 3): Promise {\r\n return this.CGP.getCorrelatedGames(gameType, numberOfGames);\r\n }\r\n\r\n logout(): Promise {\r\n return this.CGP.logout();\r\n }\r\n\r\n getBrandID(): number {\r\n return this.CGP.getBrandID();\r\n }\r\n\r\n getSubBrandID(): number {\r\n return this.CGP.getSubBrandID();\r\n }\r\n\r\n getRegulationService(): ISdkRegulationService {\r\n return this.CGP.getRegulationService();\r\n }\r\n\r\n isHybridEmbeddedGame(gameType: number): boolean {\r\n return this.CGP.isHybridEmbeddedGame(gameType);\r\n }\r\n\r\n openHybridLink(url: string): void {\r\n this.CGP.openHybridLink(url);\r\n }\r\n\r\n private _updateLocalStorageAccordingToCookie() {\r\n try {\r\n let autologinCookie = this.services.cookies.getCookie('orbit_autologin_token');\r\n\r\n if (autologinCookie) {\r\n this.CGP.setAutoLoginToken(autologinCookie);\r\n }\r\n } catch (err) {\r\n this.services.logger.error('update local storage according to cookie failed. Error: ' + err);\r\n } finally {\r\n // Remove cookie\r\n this.services.cookies.removeCookie('orbit_autologin_token');\r\n }\r\n\r\n }\r\n\r\n getGRSEnvironmentUrls(): Promise {\r\n return this.CGP.getGRSEnvironments();\r\n }\r\n\r\n @computed get activeChallengeCount(): number {\r\n return this.CGP.countPlayerChallenges();\r\n }\r\n\r\n openInNewWindow(url: string, features?: string): void {\r\n return this.CGP.openInNewWindow(url, features);\r\n }\r\n\r\n executeMenuAction(id: string): void {\r\n this.CGP.menuActionExecute(id);\r\n }\r\n\r\n closeRunningGame(): void {\r\n this.CGP.closeRunningGame();\r\n }\r\n\r\n getExternalBrandCallbackInfo(): ExternalBrandCallbackInfo {\r\n return {\r\n method: this.CGP.getExternalBrandCallbackURLMethod(),\r\n url: this.CGP.getExternalBrandCallbackURL()\r\n }\r\n }\r\n\r\n menuActionExecute(key: string): void {\r\n return this.CGP.menuActionExecute(key);\r\n }\r\n\r\n async getUsefulLinks(): Promise {\r\n try {\r\n return await this.CGP.menuJSON();\r\n } catch (ex) {\r\n console.error(\"Failed to get CGP menuJSON!\", ex);\r\n return [];\r\n }\r\n }\r\n\r\n startLiveTableFeeds(): void {\r\n if (Check.isFunction(this.CGP.startLiveTableFeeds)) {\r\n this.CGP.startLiveTableFeeds();\r\n } else {\r\n //TODO - to be removed in the future\r\n (this.CGP as any).startEvolutionLiveFeeds();\r\n }\r\n }\r\n\r\n stopLiveTableFeeds(): void {\r\n if (Check.isFunction(this.CGP.stopLiveTableFeeds)) {\r\n this.CGP.stopLiveTableFeeds();\r\n } else {\r\n //TODO - to be removed in the future\r\n (this.CGP as any).stopEvolutionLiveFeeds();\r\n }\r\n }\r\n\r\n refreshThirdPartyVouchers(): Promise {\r\n return this.CGP.refreshThirdPartyVouchers();\r\n }\r\n\r\n closeCurrentDetailHistory(): void {\r\n // we check if closeCurrentDetailHistory is defined just in case Orbit is not deployed along with the SDK version that contains this function\r\n if (this.CGP.closeCurrentDetailHistory) {\r\n this.CGP.closeCurrentDetailHistory();\r\n }\r\n }\r\n\r\n getRichPageUrl(campaignId: string) {\r\n return this.CGP.getRichPageUrl(campaignId);\r\n }\r\n\r\n getDailyDealCampaigns() {\r\n return this.CGP.getDailyDealCampaigns();\r\n }\r\n\r\n getJackpotsWithState() {\r\n return this.CGP.getJackpotsWithState();\r\n }\r\n\r\n getJackpotAmountByGameType(gameType: number): NullableNumber {\r\n return this.CGP.getJackpotAmountByGameType(gameType);\r\n }\r\n\r\n\r\n getNumberOfAwaitingMessages() {\r\n return this.CGP.getNumberOfAwaitingMessages();\r\n }\r\n\r\n openOmgAwaitingMessages() {\r\n return this.CGP.openOmgAwaitingMessages();\r\n }\r\n\r\n getFreeplayVouchers() {\r\n return this.CGP.getFreeplayVouchers();\r\n }\r\n\r\n showToaster(toasterData: IToasterParams) {\r\n return this.CGP.showToaster(toasterData);\r\n }\r\n\r\n getBankroll(balanceType: BalanceType, plainNumber?: boolean) {\r\n return this.CGP.getBankroll(balanceType, plainNumber);\r\n }\r\n\r\n runAutoLogin(autoLoginParams: IAutoLoginParams) {\r\n return this.CGP.runAutoLogin(autoLoginParams);\r\n }\r\n\r\n loadSafezoneSdk(): Promise {\r\n return this.CGP.loadSafezoneSdk();\r\n }\r\n\r\n getProductPackageId(): number {\r\n return this.CGP.getProductPackage();\r\n }\r\n\r\n getSkin(): CgpSkinInfo {\r\n return {\r\n getPlatformSystemID: () => this.CGP.getSkin().getPlatformSystemID(),\r\n getClientPlatform: () => this.CGP.getSkin().getClientPlatform(),\r\n getVersion: () => this.CGP.getSkin().getVersion(),\r\n getCulture: () => this.CGP.getSkin().getCulture(),\r\n shouldPreventLoginToEnforceHybridAppForMobileWeb: () => this.CGP.getSkin().shouldPreventLoginToEnforceHybridAppForMobileWeb(),\r\n shouldPreventOpenGameForMobileWebApp: () => this.CGP.getSkin().shouldPreventOpenGameForMobileWebApp(),\r\n getBrandName: () => this.CGP.getSkin().getBrandName(),\r\n getMinimumAge: () => this.CGP.getSkin().getMinimumAge(),\r\n getSafeToPlayURL: () => this.CGP.getSkin().getSafeToPlayURL()\r\n }\r\n }\r\n\r\n getUtils(): ISdkUtils {\r\n return this.CGP.getUtils();\r\n };\r\n\r\n fireOrbitInitComplete(): void {\r\n this.CGP.onOrbitInitComplete();\r\n }\r\n\r\n getEnvironment(): string {\r\n return this.CGP.getEnvironment();\r\n }\r\n\r\n pushDataToDataLayer(data: {}): void {\r\n this.CGP.pushDataToDataLayer(data);\r\n }\r\n\r\n getCountryName() {\r\n return this.CGP.getCountryName();\r\n }\r\n\r\n getCountryIso3(): string {\r\n return this.CGP.getCountryIso3();\r\n }\r\n\r\n getSupportedStates(): IStateOfResidence[] {\r\n return this.CGP.getSupportedStates();\r\n }\r\n\r\n getWrongLocationDetectionPath(): string {\r\n return this.CGP.getWrongLocationDetectionPath();\r\n }\r\n\r\n httpPost(url: string, requestData: unknown): Promise {\r\n return this.CGP.httpPost(url, requestData);\r\n }\r\n\r\n httpGet(url: string, requestData: unknown): Promise {\r\n return this.CGP.httpGet(url, requestData);\r\n }\r\n\r\n getConfigs(): any {\r\n return this.CGP.getConfigs();\r\n }\r\n\r\n loadScript(url: string, tagId?: string): Promise {\r\n return this.CGP.loadScript(url, tagId);\r\n }\r\n\r\n getRefreshToken(): string {\r\n return this.CGP.getRefreshToken();\r\n }\r\n\r\n getCurrencyIso3(): string {\r\n return this.CGP.getCurrencyIso3();\r\n }\r\n\r\n get overlayZIndex() {\r\n return this.CGP.overlayZIndex;\r\n }\r\n\r\n getGoogleClientID(): string {\r\n return this.CGP.getGoogleClientID();\r\n }\r\n\r\n isInAutologin(): boolean {\r\n return this.CGP.isInAutologin();\r\n }\r\n\r\n fireDepositWidgetClosed(): void {\r\n this.CGP.fireDepositWidgetClosed();\r\n }\r\n\r\n get tokenInfo(): ITokenInfo | null {\r\n return this.CGP.getToken() || null;\r\n }\r\n\r\n redirectToHistory(): void {\r\n return this.CGP.openHistoryLink();\r\n }\r\n\r\n continuePlayingCurrentGame(): void {\r\n this.CGP.continuePlayingCurrentGame();\r\n }\r\n\r\n stopCurrentGameAutoplay(): void {\r\n this.CGP.stopCurrentGameAutoplay();\r\n }\r\n\r\n getGeoLocationInfo(): Promise {\r\n return this.CGP.getGeoLocationInfo();\r\n }\r\n\r\n getDownloadAppLink(): string {\r\n return this.CGP.getDownloadAppLink();\r\n }\r\n\r\n isDepositWidgetSupportedByHybrid(): boolean {\r\n return this.CGP.isDepositWidgetSupportedByHybrid();\r\n }\r\n\r\n promptPushNotificationPermissionRequest() {\r\n return this.CGP.promptPushNotificationPermissionRequest();\r\n }\r\n\r\n openPopUpOnSecondWebView(content: string, timeout: number): void {\r\n this.CGP.openPopUpOnSecondWebView(content, timeout);\r\n }\r\n\r\n closePopUpOnSecondWebView(): void {\r\n this.CGP.closePopUpOnSecondWebView();\r\n }\r\n\r\n bringOmgToFront(): void {\r\n this.CGP.bringOmgToFront();\r\n }\r\n\r\n getBurnoutAnimationZIndex() {\r\n return this.CGP.getBurnoutAnimationZIndex();\r\n }\r\n\r\n getCompanyByName(name: string): Promise {\r\n return this.CGP.getCompanyByName(name);\r\n }\r\n\r\n openHistoryGame(request: IOpenHistoryGameRequest): Promise {\r\n return this.CGP.openHistoryGame(request);\r\n }\r\n\r\n get hybrid(): IHybridService {\r\n return this.CGP.hybrid;\r\n }\r\n\r\n get currentRegulation(): ILegacyRegulation {\r\n return this.CGP.currentRegulation;\r\n }\r\n\r\n eventsTrigger: SdkEventsTrigger = new SdkEventsTrigger();\r\n\r\n getCurrentBrowserTabId(): string {\r\n return this.CGP.getCurrentBrowserTabId();\r\n }\r\n\r\n get hasOpenOverlays(): boolean {\r\n return this.CGP.hasOpenOverlays;\r\n }\r\n\r\n get gnwp(): ISdkGnwpService {\r\n return this.CGP.gnwp;\r\n }\r\n\r\n get scriptLoader(): IScriptLoaderService {\r\n return this.CGP.scriptLoader;\r\n }\r\n\r\n startGeoLocationOnOpenRealGame(): Promise {\r\n return this.CGP.startGeoLocationOnOpenRealGame();\r\n }\r\n\r\n private _convertButtonsToOrbitFormat(buttons) {\r\n\r\n const sdkButtonToModalButton = (sdkBtnOpts: Partial): IModalDialogActionProps => {\r\n return {\r\n text: sdkBtnOpts.name || \"\",\r\n onClick: sdkBtnOpts.callback,\r\n className: sdkBtnOpts.cssClass\r\n };\r\n };\r\n\r\n const primarySdkButton = buttons.find((sdkBtnOpts) => {\r\n return Check.isNullOrUndefined(sdkBtnOpts.type) || sdkBtnOpts.type === \"main\";\r\n });\r\n const secondarySdkButton = buttons.find((sdkBtnOpts) => {\r\n return (sdkBtnOpts.type && sdkBtnOpts.type === \"secondary\");\r\n });\r\n\r\n let modalDialogButtonsComponentProps: IModalDialogButtonsComponentProps = {} as IModalDialogButtonsComponentProps;\r\n if (primarySdkButton) {\r\n // if we detected a primary button then we are OK, use it, and if the secondary exists also, use that too\r\n modalDialogButtonsComponentProps.primaryAction = sdkButtonToModalButton(primarySdkButton);\r\n if (secondarySdkButton) {\r\n modalDialogButtonsComponentProps.secondaryAction = sdkButtonToModalButton(secondarySdkButton);\r\n }\r\n } else {\r\n // if we did not detected a primary button, use the secondary as primary because the primary is required in IModalDialogButtonsComponentProps\r\n if (secondarySdkButton) {\r\n modalDialogButtonsComponentProps.primaryAction = sdkButtonToModalButton(secondarySdkButton);\r\n } else {\r\n throw new Error(\"No button found that we can use as primary button\");\r\n }\r\n }\r\n\r\n return modalDialogButtonsComponentProps;\r\n }\r\n\r\n\r\n getButtonsForNonRetryGeoFlow(): IModalDialogButtonsComponentProps {\r\n const buttons = this.CGP.getButtonsForNonRetryGeoFlow();\r\n return this._convertButtonsToOrbitFormat(buttons);\r\n }\r\n\r\n getRetryMessageButtons(analyticsLabel: string, resolve?, reject?): IModalDialogButtonsComponentProps {\r\n const buttons = this.CGP.getRetryMessageButtons(analyticsLabel, resolve, reject);\r\n return this._convertButtonsToOrbitFormat(buttons);\r\n }\r\n\r\n stopGameTimeReminders(): void {\r\n this.CGP.stopGameTimeReminders();\r\n }\r\n\r\n isEligibleForGameGeoRetry(): boolean {\r\n return this.CGP.isEligibleForGameGeoRetry();\r\n }\r\n}","import React from 'react';\r\nimport {IGamesFilterStrategy} from \"../games-filter-strategy.interface\";\r\nimport {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {GamesMap} from \"../../../games/games.service.interface\";\r\nimport {Nullable} from \"../../../../../common/types/nullable-types\";\r\nimport {IPcFilterIndicatorRenderingOptions} from \"../../games-filter.service.interface\";\r\n\r\nexport class NoGamesFilterStrategy implements IGamesFilterStrategy {\r\n constructor(private readonly services: IServiceFactoryExtended) {\r\n }\r\n get filteredGamesMap(): GamesMap {\r\n return this.services.games.gamesMap;\r\n }\r\n readonly isFilteringAvailable: boolean = false;\r\n\r\n renderMobileFiltersIndicator(): React.ReactElement {\r\n return null;\r\n }\r\n\r\n renderPCFiltersIndicator(): Nullable {\r\n return null;\r\n }\r\n\r\n showFiltersEditor(): void {\r\n }\r\n\r\n dispose(): void {\r\n }\r\n}","import {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {\r\n IGamesFilterService,\r\n IPcFilterIndicatorRenderingOptions\r\n} from './games-filter.service.interface';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IGamesFilterStrategy} from \"./strategies/games-filter-strategy.interface\";\r\nimport {GameInfo} from \"../games/game-info\";\r\nimport React from \"react\";\r\nimport {action, computed} from \"mobx\";\r\nimport {Nullable} from \"../../../common/types/nullable-types\";\r\nimport {NoGamesFilterStrategy} from \"./strategies/no-filter/no-games-filter.strategy\";\r\nimport {IArenaViewModel} from '../arenas/models/arenas/arena-view-model.interface';\r\n\r\nexport class GamesFilterService extends ServiceBase implements IGamesFilterService {\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n\r\n this._currentFilteringStrategy = new NoGamesFilterStrategy(this.services);\r\n\r\n this.reaction(() => this.services.routing.currentRoute, () => {\r\n this._setCurrentStrategy(this.services.arenas.getCurrentArena())\r\n }, {\r\n fireImmediately: true\r\n });\r\n }\r\n\r\n @action.bound\r\n private _setCurrentStrategy(currentArena: IArenaViewModel) {\r\n if (this._currentFilteringStrategy) {\r\n this._currentFilteringStrategy.dispose();\r\n }\r\n\r\n if(currentArena) {\r\n this._currentFilteringStrategy = currentArena.getGamesFilteringStrategy();\r\n } else {\r\n this._currentFilteringStrategy = new NoGamesFilterStrategy(this.services);\r\n }\r\n }\r\n\r\n\r\n get filteredGamesMap(): Record {\r\n return this._currentFilteringStrategy.filteredGamesMap;\r\n }\r\n\r\n\r\n @computed\r\n get currentAppliedFiltersIds(): string[] {\r\n const urlHash = this.services.location.currentUri.hash?.value;\r\n if(urlHash) {\r\n let params = urlHash.split('=');\r\n if(params[0]?.toLowerCase() === 'filters') {\r\n return params[1].split(',').map(id => id.toLowerCase());\r\n }\r\n }\r\n\r\n return [];\r\n\r\n }\r\n\r\n async applyFilters(filterIds: string[]): Promise {\r\n this.services.window.scrollTo(0, 0);\r\n\r\n if(filterIds.length > 0) {\r\n await this.services.location.push('#filters=' + filterIds.join(','));\r\n } else {\r\n await this.services.location.push(this.services.location.currentUri.pathName.toString());\r\n }\r\n }\r\n\r\n async clearFilters(): Promise {\r\n await this.services.location.push(this.services.location.currentUri.pathName.toString());\r\n }\r\n\r\n private _currentFilteringStrategy: IGamesFilterStrategy;\r\n\r\n get isFilterOn(): boolean {\r\n return this.currentAppliedFiltersIds.length > 0;\r\n }\r\n\r\n get isFilteringAvailable(): boolean {\r\n return this._currentFilteringStrategy.isFilteringAvailable;\r\n }\r\n\r\n isFilterApplied(filterId: string): boolean {\r\n return this.currentAppliedFiltersIds.includes(filterId?.toLowerCase());\r\n }\r\n\r\n renderMobileFiltersIndicator(): React.ReactElement {\r\n return this._currentFilteringStrategy.renderMobileFiltersIndicator();\r\n }\r\n\r\n renderPCFiltersIndicator(): Nullable {\r\n return this._currentFilteringStrategy.renderPCFiltersIndicator();\r\n }\r\n\r\n showFiltersEditor(): void {\r\n this._currentFilteringStrategy.showFiltersEditor();\r\n }\r\n}\r\n","import {RedTigerJackpotWidgetConfiguration} from './red-tiger-jackpot-widget.configuration';\r\nimport { JackpotWidgetConfiguration } from './jackpot-widget.configuration';\r\nimport {HomePageHeaderArena} from \"./home-page.configuration\";\r\nimport {LinkToOfferConfiguration} from \"./link-to-offer.configuration\";\r\nimport {NullableUndefined} from \"../../../../common/types/nullable-types\";\r\nimport {\r\n CategoryDefinitionId\r\n} from \"../../games-filter/filters-categories-definitions/filter-category-definition.interface\";\r\n\r\nexport interface InfoSideBarConfiguration {\r\n readonly infoImage: string;\r\n readonly infoTitle: string;\r\n readonly infoText: string;\r\n}\r\n\r\nexport enum ApiListType {\r\n TOP_PICKS = \"TOP_PICKS\",\r\n NEW_GAMES = \"NEW_GAMES\",\r\n PLAYERS_LIKE_YOU = \"PLAYERS_LIKE_YOU\",\r\n RECENTLY_PLAYED = \"RECENTLY_PLAYED\",\r\n STATIC_VIDEO = \"STATIC_VIDEO\",\r\n LIVE_CASINO_VIDEO = \"LIVE_CASINO_VIDEO\",\r\n BECAUSE_YOU_PLAYED = \"BECAUSE_YOU_PLAYED\",\r\n}\r\n\r\nexport interface ListConfiguration {\r\n readonly title: string;\r\n readonly display: boolean;\r\n readonly gamesId: number[];\r\n readonly isSelfUpdatedByNewest?: boolean;\r\n readonly forceRoundIcons?: boolean;\r\n}\r\n\r\nexport interface SwiperGamesListConfiguration extends ListConfiguration {\r\n readonly title: string;\r\n readonly display: boolean;\r\n readonly gamesId: number[];\r\n readonly gamesAdminRefKey?: string;\r\n readonly templateType?: string;\r\n readonly redTigerWidget?: RedTigerJackpotWidgetConfiguration;\r\n readonly jackpotWidget?: JackpotWidgetConfiguration;\r\n readonly titleIconClassName?: string;\r\n readonly useSquareIcons?: boolean;\r\n readonly showNumberBadge?: boolean;\r\n readonly useAISortedList?: boolean;\r\n readonly ignoreNumberOfGamesInAISorting?: number;\r\n readonly forceListInLayout?: boolean;\r\n readonly seeAll?: string;\r\n readonly listId?: number; // should be mandatory??\r\n readonly shouldInjectUsernameInTitle?: boolean;\r\n readonly apiListType?: ApiListType;\r\n}\r\n\r\nexport interface ArenaGamesGridConfiguration extends ListConfiguration {\r\n readonly listId: number;\r\n readonly title: string;\r\n readonly display: boolean;\r\n readonly useAISortedList: boolean;\r\n readonly gamesId: number[];\r\n readonly templateType?: string;\r\n readonly gamesAdminRefKey?: string;\r\n readonly useSquareIcons?: boolean;\r\n}\r\n\r\nexport interface SeoSectionConfiguration {\r\n display: boolean;\r\n componentID: string;\r\n templateID: string;\r\n fallbackComponent: string;\r\n}\r\n\r\nexport interface HeaderArenaConfiguration {\r\n display: boolean;\r\n title: string;\r\n image: string;\r\n link: string;\r\n}\r\n\r\nexport interface HeaderFilterConfiguration {\r\n display: boolean;\r\n title: string;\r\n image: string;\r\n filter: string;\r\n seoPage: string;\r\n isActiveTabDefault?: boolean;\r\n maxGamesToShow?: number;\r\n banners?: {\r\n promotionalBanner: {\r\n templateID: string,\r\n componentID: string,\r\n bannerAdminPlaceholderId?: string\r\n }\r\n }\r\n}\r\n\r\nexport interface ArenaCommonConfiguration {\r\n topImage: string;\r\n title: string;\r\n seoSection: SeoSectionConfiguration;\r\n}\r\n\r\nexport interface CasinoArenaPromotionalBannerConfiguration {\r\n templateID: string;\r\n componentID: string;\r\n displayRowPlace?: number;\r\n displayTablePlace?: number;\r\n fallbackComponent?: string;\r\n}\r\n\r\nexport interface CasinoArenaConfiguration extends ArenaCommonConfiguration {\r\n promotionalBanner?: CasinoArenaPromotionalBannerConfiguration\r\n linkToOffer?: LinkToOfferConfiguration;\r\n filters: NullableUndefined;\r\n advancedFilters?: {\r\n categories: [{\r\n id: CategoryDefinitionId;\r\n }];\r\n };\r\n infoSideBar: InfoSideBarConfiguration;\r\n swiperGamesList: SwiperGamesListConfiguration[];\r\n allGamesGrid: ArenaGamesGridConfiguration[];\r\n orderListsByAI?: boolean;\r\n arenaType?: string;\r\n homepageHeader?: HomePageHeaderArena;\r\n}\r\n\r\nexport interface LiveCasinoHeaderConfiguration {\r\n display: boolean;\r\n gameId: number;\r\n image: string;\r\n}\r\n\r\nexport interface LiveCasinoPopularTableConfiguration {\r\n title: string;\r\n gamesId: number[];\r\n useAISortedList?: boolean;\r\n ignoreNumberOfGamesInAISorting?: number;\r\n}\r\n\r\nexport interface LiveCasinoPromotionalBannerConfiguration {\r\n displayTablePlace: number;\r\n displayRowPlace: number;\r\n componentID: string;\r\n templateID: string;\r\n bannerAdminPlaceholderId?: string;\r\n}\r\n\r\nexport interface LiveCasinoConfiguration extends ArenaCommonConfiguration {\r\n promotionalBanner: LiveCasinoPromotionalBannerConfiguration;\r\n linkToOffer?: LinkToOfferConfiguration\r\n arenas: {\r\n gamesId: LiveCasinoHeaderConfiguration[];\r\n },\r\n popularTables: LiveCasinoPopularTableConfiguration[];\r\n customLayout: string;\r\n}\r\n\r\nexport interface NewLiveCasinoConfiguration extends ArenaCommonConfiguration {\r\n promotionalBanner: LiveCasinoPromotionalBannerConfiguration;\r\n arenas: HeaderFilterConfiguration[],\r\n popularTables: LiveCasinoPopularTableConfiguration[];\r\n customLayout: string;\r\n useAISortedList: boolean;\r\n linkToOffer?: LinkToOfferConfiguration;\r\n}\r\n\r\nexport type ArenaConfiguration = CasinoArenaConfiguration & LiveCasinoConfiguration & NewLiveCasinoConfiguration;\r\n\r\nexport type ArenasConfiguration = {[key: string]: ArenaConfiguration};\r\n\r\n","import {IUsefulLinkConfiguration} from \"../configurations/config-data-sections/drawer.configuration\";\r\nimport {IServiceFactoryExtended} from \"../service-factory-extended.interface\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {AppIdentifiers, AreaType} from \"@sparkware/uc-sdk-core\";\r\nimport {OPEN_SAFEZONE_SOURCE_VALUES} from \"../safezone/safezone.service.interface\";\r\nimport {CHANNEL_ELEMENTS, CHANNEL_SOURCE} from \"../../../common/const/casinofied-analytics-consts\";\r\nimport {MyAccountTab} from \"../external-links/handlers/my-account/my-account.external-link-handler.interface\";\r\nimport {ControlCenterDeeplink} from \"@sparkware/uc-sdk-core/lib/apps/control-center/control-center.interfaces\";\r\n\r\n\r\nexport default class UsefulLinkActions {\r\n private services: IServiceFactoryExtended;\r\n\r\n constructor(serviceFactory: IServiceFactoryExtended) {\r\n this.services = serviceFactory;\r\n }\r\n\r\n public executeAction(link: IUsefulLinkConfiguration) {\r\n // Handlers are instance methods of `this` named 'on[LinkId]'\r\n const handler = this._findHandler(link.id);\r\n if(handler) {\r\n handler.call(this, link);\r\n }\r\n }\r\n\r\n private _findHandler(linkId: string): (link: IUsefulLinkConfiguration) => void {\r\n if(!linkId || linkId.length < 1) {\r\n return null;\r\n }\r\n\r\n const handlerName = 'on' + linkId.charAt(0).toUpperCase() + linkId.slice(1);\r\n if(Check.isFunction(this[handlerName])) {\r\n return this[handlerName];\r\n }\r\n\r\n return null;\r\n }\r\n\r\n onTransactionHistory() {\r\n this.services.cashier.openTransactionHistory(\r\n {\r\n channel: {\r\n source: CHANNEL_SOURCE.casinoClient,\r\n area: AreaType.UserArea,\r\n element: CHANNEL_ELEMENTS.transactionHistoryButton\r\n }\r\n }\r\n )\r\n }\r\n\r\n onTippingHistory(link: IUsefulLinkConfiguration) {\r\n this.services.location.push(link.link);\r\n }\r\n\r\n onReverseWithdrawal() {\r\n this.services.cashier.openOldCashier({sessionType: 6});\r\n }\r\n\r\n onUploadDocuments() {\r\n this.services.cashier.openOldCashier({sessionType: 20});\r\n }\r\n\r\n onCompPoints() {\r\n this.services.externalLinks.openMyAccount({\r\n tabId: MyAccountTab.ComPoints\r\n });\r\n }\r\n\r\n onContactUs(link: IUsefulLinkConfiguration) {\r\n this.services.externalLinks.openContactUs({view: link.target});\r\n }\r\n\r\n onHelpCenter(link: IUsefulLinkConfiguration) {\r\n // If not enabled, we shouldn't show the link, but how do I do that?\r\n if (this.services.configuration.servicesConfigs.AppLauncher.apps.CR_HELP_CENTER.enabled) {\r\n this._openHelpWidget();\r\n } else {\r\n this.onContactUs(link);\r\n }\r\n }\r\n\r\n on888club(link: IUsefulLinkConfiguration) {\r\n this._openLinkAction(link);\r\n }\r\n\r\n onBeGambleAware(link: IUsefulLinkConfiguration) {\r\n this._openLinkAction(link);\r\n }\r\n\r\n onGameCare(link: IUsefulLinkConfiguration) {\r\n this._openLinkAction(link);\r\n }\r\n\r\n onSafeZone(link: IUsefulLinkConfiguration) {\r\n this.services.appLauncher.openControlCenterFull({\r\n businessCorrelationID: this.services.tools.getGuid(),\r\n channel: {\r\n area: AreaType.UserArea,\r\n element: CHANNEL_ELEMENTS.safezoneUsefulLink,\r\n source: CHANNEL_SOURCE.casinoClient\r\n },\r\n appSpecificParameters: {\r\n source: OPEN_SAFEZONE_SOURCE_VALUES.USER_AREA\r\n }\r\n });\r\n\r\n }\r\n\r\n onTimeSpentReminder(link: IUsefulLinkConfiguration) {\r\n this.services.appLauncher.openControlCenterFull({\r\n businessCorrelationID: this.services.tools.getGuid(),\r\n\r\n channel: {\r\n area: AreaType.UserArea,\r\n element: CHANNEL_ELEMENTS.safezoneUsefulLink,\r\n source: CHANNEL_SOURCE.casinoClient\r\n },\r\n appSpecificParameters: {\r\n deeplink: ControlCenterDeeplink.TimeSpentReminderPage,\r\n source: OPEN_SAFEZONE_SOURCE_VALUES.USER_AREA\r\n }\r\n });\r\n }\r\n\r\n onHelp() {\r\n this.services.externalLinks.openHelpPage();\r\n }\r\n\r\n private _openHelpWidget() {\r\n this.services.appLauncher.openHelpWidget({\r\n businessCorrelationID: this.services.tools.getGuid(),\r\n channel: {\r\n area: AreaType.NavigationMenu,\r\n element: AppIdentifiers.CRHelpCenter,\r\n source: AppIdentifiers.CasinoClient\r\n }\r\n });\r\n }\r\n\r\n private _openLinkAction({local:shouldOpenLocal, link}: IUsefulLinkConfiguration){\r\n if(shouldOpenLocal) {\r\n this.services.location.push(link);\r\n } else {\r\n this.services.externalLinks.openLink({\r\n sourceLink: link,\r\n view: 'window'\r\n })\r\n }\r\n }\r\n}\r\n","import styled, {css} from 'styled-components';\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\nimport {CssRule} from '../../../../themes/architecture/css-helpers/css-rule';\r\n\r\ninterface IUsefulLinksItemBoxProps {\r\n hideArrow?: boolean;\r\n icon?: string,\r\n}\r\n\r\nconst DefaultBox = styled.li`\r\n position: relative;\r\n width: 100%;\r\n /*\r\n The border-bottom is intentionally set to theme.colors.itemTopBorder and also border-top set to theme.colors.itemBottomBorder\r\n The reason is that the bottom border of the useful link item is actually the top border of the divider\r\n and top border of the useful link item is actually the bottom border of the divider\r\n\r\n */\r\n border-bottom: 1px solid ${props => props.theme.colors.boxBorder};\r\n border-top: 1px solid ${props => props.theme.colors.boxBorderDark};\r\n padding-left: 1rem;\r\n white-space: nowrap;\r\n cursor: pointer;\r\n color: ${props => props.theme.colors.text};\r\n background-color: ${props => props.theme.colors.background};\r\n\r\n &:hover {\r\n color: ${props => props.theme.colors.textHover};\r\n background-color: ${props => props.theme.colors.backgroundHover};\r\n }\r\n\r\n &:last-child {\r\n border-bottom: 0;\r\n }\r\n\r\n &:after {\r\n content: \"\";\r\n position: absolute;\r\n right: 5px;\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-repeat: no-repeat;\r\n ${CssRule.For.RTL.build()} & {\r\n transform: scaleX(-1);\r\n }\r\n }\r\n\r\n &:before {\r\n display: inline-block;\r\n margin-right: 5px;\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n }\r\n`;\r\n\r\n\r\nexport const PcBox = styled(DefaultBox)`\r\n height: 3.75rem;\r\n font-weight: 500;\r\n font-size: 1.3rem;\r\n line-height: 3.5rem;\r\n\r\n &:first-child {\r\n margin-top: 3px;\r\n }\r\n\r\n\r\n\r\n ${({hideArrow}) => !hideArrow && css`\r\n &:after {\r\n top: 1.5rem;\r\n width: 5px;\r\n height: 9px;\r\n background-position: -785px -657px;\r\n }\r\n `}\r\n\r\n ${({icon}) => icon && css`\r\n &:before {\r\n content: \"\";\r\n position:relative;\r\n top: 3px;\r\n width: 21px;\r\n height: 21px;\r\n background-image: url(\"${icon.toString()}\");\r\n }\r\n `}\r\n`;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\r\n display: flex;\r\n align-items: center;\r\n height: 5rem;\r\n font-weight: 300;\r\n font-size: 1.7rem;\r\n line-height: 5rem;\r\n color: ${props => props.theme.colors.textLight};\r\n ${({theme}) => theme.font.presets.regular};\r\n\r\n &:first-child {\r\n margin-top: 5px;\r\n }\r\n\r\n ${({hideArrow}) => !hideArrow && css`\r\n &:after {\r\n top: 2rem;\r\n width: 15px;\r\n height: 15px;\r\n background-position: -751px -655px;\r\n }\r\n `}\r\n\r\n ${({icon}) => icon && css`\r\n &:before {\r\n content: \"\";\r\n width: 21px;\r\n height: 21px;\r\n background-image: url(\"${icon.toString()}\");\r\n }\r\n `}\r\n`;\r\n\r\n\r\nexport const UsefulLinksItemDefaultBox = styledByDevice(PcBox, MobileBox);","import styled, { css } from 'styled-components';\r\nimport {PcBox as BasePcBox, MobileBox as BaseMobileBox} from './useful-links-item.default.box'\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\n\r\nconst common = css`\r\n margin: 1rem 0;\r\n border: none;\r\n &:after {\r\n right: 15px;\r\n background-size: 1036px;\r\n }\r\n`;\r\n\r\nconst PcBox = styled(BasePcBox)`\r\n ${common}\r\n font-size: 1.4rem;\r\n &:first-child {\r\n margin-top: 1rem;\r\n }\r\n &:after {\r\n background-position: -446px -370px;\r\n top: 1.15rem;\r\n width: 10px;\r\n height: 15px;\r\n }\r\n`;\r\n\r\nconst MobileBox = styled(BaseMobileBox)`\r\n ${common}\r\n ${({theme}) => theme.font.presets.body};\r\n &:after {\r\n background-position: -629px -525px;\r\n background-size: auto;\r\n height: 2rem;\r\n }\r\n`;\r\n\r\nexport const UsefulLinksItemCasino777Box = styledByDevice(PcBox, MobileBox);","import styled from 'styled-components';\r\n\r\nimport {PcBox as BasePcBox, MobileBox as BaseMobileBox} from './useful-links-item.default.box'\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\n\r\nconst PcBox = BasePcBox;\r\n\r\nconst MobileBox = styled(BaseMobileBox)`\r\n padding-left: 0;\r\n\r\n text-transform: uppercase;\r\n ${({theme}) => theme.font.presets.medium};\r\n &:after {\r\n content: none;\r\n }\r\n\r\n &:first-child {\r\n margin-top: 0;\r\n border-top: 0;\r\n }\r\n`;\r\n\r\nexport const UsefulLinksItemCipBox = styledByDevice(PcBox, MobileBox);","import {UsefulLinksItemDefaultBox} from './useful-links-item.default.box';\r\nimport {styledByTheme} from '../../../../themes/architecture/styled-by-theme';\r\nimport {UsefulLinksItemCasino777Box} from './useful-links-item.casino777.box';\r\nimport {UsefulLinksItemCipBox} from './useful-links-item.cip.box';\r\n\r\nexport const UsefulLinksItemBox = styledByTheme(UsefulLinksItemDefaultBox)\r\n .forCasino777(UsefulLinksItemCasino777Box)\r\n .forCip(UsefulLinksItemCipBox)\r\n .forWsopCip(UsefulLinksItemCipBox)\r\n .forCis(UsefulLinksItemCipBox) // TODO: see here!!!!!!\r\n .apply();","import React, {ReactNode} from \"react\";\r\nimport {get} from 'lodash';\r\nimport {IUsefulLink, UsefulLinkRenderOptions} from \"./useful-link.interface\";\r\nimport {IUsefulLinkConfiguration} from \"../../configurations/config-data-sections/drawer.configuration\";\r\nimport {IServiceFactory} from \"../../service-factory.interface\";\r\nimport {UsefulLinksItemBox} from '../../../components/useful-links/boxes/useful-links-item/useful-links-item.box';\r\nimport {Image} from \"../../../components/raw-components/image/image\";\r\n\r\ntype LinkActionType = (config: IUsefulLinkConfiguration) => void;\r\n\r\nexport class ConfigUsefulLink implements IUsefulLink {\r\n private readonly linkConfig: IUsefulLinkConfiguration;\r\n private readonly linkAction: LinkActionType;\r\n private readonly services: IServiceFactory;\r\n\r\n constructor(linkConfig: IUsefulLinkConfiguration, linkAction: LinkActionType, services: IServiceFactory){\r\n this.linkConfig = linkConfig;\r\n this.linkAction = linkAction;\r\n this.services = services;\r\n }\r\n\r\n private renderTextItem(options: UsefulLinkRenderOptions): ReactNode {\r\n const {id, text, iconAsset} = this.linkConfig;\r\n const iconURI = get(this.services.theme.currentTheme.images, iconAsset, null);\r\n\r\n return (\r\n {\r\n if(options.onClick) {\r\n options.onClick();\r\n }\r\n this.linkAction(this.linkConfig);\r\n }}>\r\n {this.services.translation.translate(text)}\r\n \r\n );\r\n }\r\n\r\n private renderImageItem(options: UsefulLinkRenderOptions): ReactNode {\r\n const {id, imageAsset, imageAlt} = this.linkConfig;\r\n const imageURI = get(this.services.theme.currentTheme.images, imageAsset, '');\r\n\r\n return (\r\n {\r\n if(options.onClick) {\r\n options.onClick();\r\n }\r\n this.linkAction(this.linkConfig);\r\n }}>\r\n {imageAlt\r\n \r\n );\r\n }\r\n\r\n render(options: UsefulLinkRenderOptions): ReactNode {\r\n if(!this.linkConfig.display) return null;\r\n\r\n return this.linkConfig.imageAsset ? this.renderImageItem(options) : this.renderTextItem(options);\r\n }\r\n}\r\n","import styled from \"styled-components\";\r\n\r\nexport const UsefulLinksItemSideTextBox = styled.div`\r\n display: inline-block;\r\n margin-left: auto;\r\n margin-right: 25px;\r\n`;","import {IUsefulLink, UsefulLinkRenderOptions} from \"./useful-link.interface\";\r\nimport React, {ReactNode} from \"react\";\r\nimport {IUsefulLinkSdkData} from \"./useful-link-data.interface\";\r\nimport {UsefulLinksItemBox} from '../../../components/useful-links/boxes/useful-links-item/useful-links-item.box';\r\nimport {UsefulLinksItemSideTextBox} from \"../../../components/useful-links/boxes/useful-links-item/useful-links-item-side-text.box\";\r\n\r\ntype ActivatorType = (IUsefulLinkSdkData) => void;\r\n\r\nexport class SdkUsefulLink implements IUsefulLink {\r\n private readonly activator: ActivatorType;\r\n private readonly linkConfig: IUsefulLinkSdkData;\r\n\r\n constructor(activator: ActivatorType, link: IUsefulLinkSdkData) {\r\n this.activator = activator;\r\n this.linkConfig = link;\r\n }\r\n\r\n render(options: UsefulLinkRenderOptions): ReactNode {\r\n return (\r\n {\r\n if(options.onClick) {\r\n options.onClick();\r\n }\r\n this.activator(this.linkConfig);\r\n }}>\r\n {this.linkConfig.translation}\r\n {this.linkConfig.sideText && {this.linkConfig.sideText}}\r\n \r\n );\r\n }\r\n}\r\n","import {sortBy} from 'lodash';\r\nimport {ServiceBase} from \"../ServiceBase\";\r\nimport {IUserMenuService} from \"./user-menu.service.interface\";\r\nimport {\r\n IDrawerBoxConfiguration,\r\n IUsefulLinkConfiguration\r\n} from \"../configurations/config-data-sections/drawer.configuration\";\r\nimport {IServiceFactoryExtended} from \"../service-factory-extended.interface\";\r\nimport {action, observable} from \"mobx\";\r\nimport UsefulLinkActions from \"./useful-link-actions\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {IUsefulLink} from \"./useful-links/useful-link.interface\";\r\nimport {ConfigUsefulLink} from \"./useful-links/config-useful-link\";\r\nimport {SdkUsefulLink} from \"./useful-links/sdk-useful-link\";\r\nimport {IUsefulLinkSdkData} from \"./useful-links/useful-link-data.interface\";\r\nimport {CHANNEL_ELEMENTS, CHANNEL_SOURCE} from \"../../../common/const/casinofied-analytics-consts\";\r\nimport {AreaType} from \"@sparkware/uc-sdk-core/lib/apps/app-enums\";\r\nimport {IOverlayConsumer} from \"../overlay/overlay-consumer.interface\";\r\n\r\nconst ANALYTICS_CATEGORY = 'My_Area';\r\nconst USEFUL_LINKS_ACTION = 'Useful Links';\r\n\r\n// Logout button is not implemented by SdkUsefulLink; we can filter it out by this ID:\r\nconst LOGOUT_BUTTON_ID = 'logout_button';\r\n\r\nexport class UserMenuService extends ServiceBase implements IUserMenuService, IOverlayConsumer {\r\n private linkActions: UsefulLinkActions;\r\n /*\r\n The user menu is sort of modal:\r\n - you can open the base user menu (openMenu())\r\n - you can open the rewards panel (openRewards()), which replaces the\r\n user menu contents (but is still the same DOM element)\r\n\r\n You can check what's currently open by the properties:\r\n - isOpen: either the base user menu or a secondary panel is open\r\n - isRewardsInfo: the rewards secondary panel is open\r\n\r\n When closing things, you can either close just the secondary panel or close\r\n the whole menu (closeMenu()), which will also close the secondary.\r\n */\r\n\r\n @observable.ref isOpen: boolean = false;\r\n @observable.ref isRewardsInfo: boolean = false;\r\n\r\n @observable.ref usefulLinks: IUsefulLink[] = [];\r\n\r\n constructor(serviceFactory: IServiceFactoryExtended) {\r\n super(serviceFactory);\r\n this.services.overlay.registerConsumer(this);\r\n this.linkActions = new UsefulLinkActions(serviceFactory);\r\n\r\n this.reaction(() => this.services.user.isAuthorized,\r\n () => {\r\n this.reFetchLinks();\r\n }, {\r\n fireImmediately: true,\r\n });\r\n\r\n this.services.sdk.events.onGameOpen(() => this.services.userMenu.closeMenu());\r\n\r\n this.services.sdk.events.onTouchIDActiveStateChanged(() => this.reFetchLinks())\r\n }\r\n\r\n private reFetchLinks(){\r\n this._fetchLinks().then(links => {\r\n this._setUsefulLinks(links)\r\n });\r\n }\r\n\r\n get needsOverlay(): boolean {\r\n return this.isOpen;\r\n }\r\n\r\n getOverlayZIndex(): number | undefined {\r\n return this.zIndex - 1;\r\n }\r\n\r\n get zIndex(): number {\r\n return this.services.sideMenu.zIndex - 1;\r\n }\r\n\r\n onOverlayClicked(): void {\r\n this.closeMenu();\r\n }\r\n\r\n @action.bound\r\n private _setIsOpen(shouldOpen: boolean) {\r\n this.isOpen = shouldOpen;\r\n }\r\n\r\n @action.bound\r\n private _setIsRewardsInfo(shouldBeRewards: boolean) {\r\n this.isRewardsInfo = shouldBeRewards;\r\n }\r\n\r\n @action.bound\r\n private _setUsefulLinks(newLinks: IUsefulLink[]) {\r\n this.usefulLinks = newLinks;\r\n }\r\n\r\n private async _fetchLinks() {\r\n const fetchSteps = [this._fetchConfigLinks(), this._fetchSdkLinks()];\r\n const stepLinks = await Promise.all(fetchSteps);\r\n\r\n const combinedLinks = stepLinks.reduce((acc, n) => acc.concat(n), []);\r\n\r\n return this.orderLinksByPosition(combinedLinks);\r\n }\r\n\r\n private orderLinksByPosition(links: IUsefulLink[]): IUsefulLink[]{\r\n const sortingOrder = {\r\n \"top\": 0,\r\n \"bottom\": 1\r\n }\r\n\r\n return sortBy(links, (link) => sortingOrder[link.linkConfig.position] || 0);\r\n }\r\n\r\n private async _fetchConfigLinks(): Promise {\r\n const configData = this.services.configuration.data.drawer.usefulLinks;\r\n\r\n return configData.map(\r\n l => new ConfigUsefulLink(l, this._doConfigMenuAction.bind(this), this.services));\r\n }\r\n\r\n private async _fetchSdkLinks(): Promise {\r\n const sdkLinks = await this.services.sdk.getUsefulLinks();\r\n // NB: Logout button has special (separate) handling, therefore we don't want it from SDK:\r\n const filteredOutIds = this._getSdkFilteredOutUsefulLinksIds();\r\n const pickedLinks = sdkLinks.filter(l => filteredOutIds.indexOf(l.id) < 0);\r\n\r\n return pickedLinks.map(\r\n l => new SdkUsefulLink(this._doSdkMenuAction.bind(this), l));\r\n }\r\n\r\n private _getSdkFilteredOutUsefulLinksIds():string[] {\r\n let ids = [LOGOUT_BUTTON_ID];\r\n\r\n return ids;\r\n }\r\n\r\n private _doConfigMenuAction(link: IUsefulLinkConfiguration) {\r\n if (link.analytics && link.analytics.label) {\r\n this.services.analytics.sendAnalytics(ANALYTICS_CATEGORY, USEFUL_LINKS_ACTION, link.analytics.label);\r\n }\r\n this.linkActions.executeAction(link);\r\n this.closeMenu();\r\n }\r\n\r\n private _doSdkMenuAction({id, translation}: IUsefulLinkSdkData) {\r\n this.services.sdk.menuActionExecute(id);\r\n this.services.analytics.sendAnalytics(ANALYTICS_CATEGORY, USEFUL_LINKS_ACTION, translation);\r\n this.closeMenu();\r\n }\r\n\r\n doLogout() {\r\n this.services.analytics.sendAnalytics(ANALYTICS_CATEGORY, USEFUL_LINKS_ACTION, 'Logout'); \r\n this.services.regulation.current.logoutUser();\r\n this.closeMenu();\r\n }\r\n\r\n get greeting() {\r\n const now = new Date();\r\n const hour = now.getHours();\r\n const minute = now.getMinutes();\r\n\r\n const {defaultMessage, conditions} = this.services.configuration.data.drawer.welcomeMessage;\r\n let result = defaultMessage;\r\n for (const rule of conditions) {\r\n const [ruleHour, ruleMinute] = rule.time.split(':').map(parseInt);\r\n\r\n if (hour > ruleHour) {\r\n result = rule.text;\r\n } else if (hour === ruleHour) {\r\n // NB: only if the current hour is strictly equal to the rule hour do we need to check the minutes\r\n if (minute >= ruleMinute) {\r\n result = rule.text;\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n launchMyAccount(): void {\r\n this.services.analytics.sendAnalytics(ANALYTICS_CATEGORY, 'My Account', 'Open_my_Account');\r\n this.services.externalLinks.openMyAccount();\r\n this.closeMenu();\r\n }\r\n\r\n launchDeposit(): void {\r\n this.services.analytics.sendAnalytics(ANALYTICS_CATEGORY, 'Deposit', 'Open_deposit');\r\n this.services.cashier.openDeposit({\r\n channel: {\r\n source: CHANNEL_SOURCE.casinoClient,\r\n area: AreaType.UserArea,\r\n element: CHANNEL_ELEMENTS.depositButton\r\n }\r\n });\r\n this.closeMenu();\r\n }\r\n\r\n launchWithdraw(): void {\r\n this.services.analytics.sendAnalytics(ANALYTICS_CATEGORY, 'Withdraw', 'Open_withdraw');\r\n this.services.cashier.openWithdraw({\r\n channel: {\r\n source: CHANNEL_SOURCE.casinoClient,\r\n area: AreaType.UserArea,\r\n element: CHANNEL_ELEMENTS.withdrawButton\r\n }\r\n });\r\n this.closeMenu();\r\n }\r\n\r\n sendLoyaltyAnalytics(): void {\r\n const {category, action, label} = this.services.configuration.data.drawer.showLoyalty.analytics;\r\n this.services.analytics.sendAnalytics(category, action, label);\r\n }\r\n\r\n launchDrawerLink(config: IDrawerBoxConfiguration): void {\r\n if (Check.isObject(config.seo)) {\r\n this.services.analytics.sendAnalytics(config.seo.category, config.seo.action, config.seo.label);\r\n }\r\n\r\n if (this.services.menuFlow.hasCustomFlow(config)) {\r\n const flowResult = this.services.menuFlow.executeCustomFlow(config);\r\n if (!flowResult.continue)\r\n return;\r\n }\r\n\r\n const source = config.externalLinkSource || config.link;\r\n const options = config.options || {};\r\n this.services.externalLinks.openLink({source, options});\r\n this.closeMenu();\r\n }\r\n\r\n openRewards(): void {\r\n this.openMenu();\r\n this._setIsRewardsInfo(true);\r\n }\r\n\r\n closeMenu(): void {\r\n if (this.isOpen) {\r\n this._setIsOpen(false);\r\n this._setIsRewardsInfo(false);\r\n }\r\n }\r\n\r\n openMenu(): void {\r\n if (!this.isOpen) {\r\n this.services.analytics.sendAnalytics('Navigator', 'Navbar', 'Open_UserMenu');\r\n this._setIsOpen(true);\r\n this.services.sideMenu.closeMobileMenu();\r\n this.services.drawer.right.closeDrawer();\r\n }\r\n }\r\n}\r\n","import styled from 'styled-components';\r\nimport { Image } from '../../../../raw-components/image/image';\r\n\r\nexport const GameBadgeDefaultBox = styled(Image)`\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n height: 24%;\r\n width: 23%;\r\n`;\r\n","import styled from 'styled-components';\r\nimport {GameBadgeDefaultBox} from './game-badge.default.box';\r\n\r\nexport const GameBadgeCasino777Box = styled(GameBadgeDefaultBox)`\r\n height: 28%;\r\n width: 28%;\r\n`;","import styled from 'styled-components';\r\nimport { Image } from '../../../../raw-components/image/image';\r\n\r\nexport const GameBadgeSIBox = styled(Image)`\r\n position: absolute;\r\n bottom: 0;\r\n left: 0;\r\n max-width: 40%;\r\n`;\r\n","import {GameBadgeDefaultBox} from './game-badge.default.box';\r\nimport {styledByTheme} from '../../../../../themes/architecture/styled-by-theme';\r\nimport {GameBadgeCasino777Box} from './game-badge.casino777.box';\r\nimport {GameBadgeSIBox} from './game-badge.si.box';\r\n\r\nexport const GameBadgeBox = styledByTheme(GameBadgeDefaultBox).forCasino777(GameBadgeCasino777Box).forSI(GameBadgeSIBox).apply();\r\n\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../../../../base-components/orbit-component/orbit-component';\r\nimport {GameBadgeBox} from '../../boxes/game-badge/game-badge.box';\r\n\r\nexport interface GameBadgeComponentProps {\r\n badgeUrl?: string;\r\n useSquareIcons?: boolean;\r\n}\r\n\r\n\r\nexport class GameBadgeComponent extends OrbitComponent {\r\n\r\n render() {\r\n if(!this.props.badgeUrl) {\r\n return null;\r\n }\r\n\r\n if(this.props.useSquareIcons && !this.services.theme.supportBadgeOnSquareIcons) {\r\n return null;\r\n }\r\n\r\n if(this.props.badgeUrl) {\r\n return (\r\n \r\n );\r\n }\r\n return null;\r\n }\r\n}\r\n","export const GAME_BOX = 'game-box';\r\nexport const GAME_BOX_JACKPOT_TEMPLATE = 'game-box-jackpot-template';\r\nexport const TWO_LINES_TITLE = 'two-lines-title';\r\nexport const GAME_GROUP_LIVE_CASINO = 'game-group-live-casino';\r\nexport const ENABLE_HOVER_ANIMATION = 'enable-hover-animation';\r\nexport const SWIPER_MODE = 'swiper-mode'; //.orbit-slider-slide\r\nexport const GAME_IMAGE_CONTAINER = 'game-image-container';\r\nexport const GRID_GAMES_LIST = 'grid-games-list'; //TODO - I should do something with this when I will refactor games grid list\r\nexport const SINGLE_GAME_IMAGE = 'single-game-image';\r\n","import styled, { css } from 'styled-components';\r\nimport { GAME_BOX_JACKPOT_TEMPLATE } from '../../../css-constants';\r\nimport { Image } from '../../../../raw-components/image/image';\r\n\r\nexport const commonGameImageCssMixin = css`\r\n position: absolute;\r\n width: 100%;\r\n\r\n .${GAME_BOX_JACKPOT_TEMPLATE} & {\r\n max-width: 20rem;\r\n }\r\n`;\r\n\r\nexport const GameImageDefaultBox = styled(Image)<{hide?: boolean; squareIcon?: boolean;}>`\r\n opacity: ${({hide}) => hide ? 0: 1};\r\n ${commonGameImageCssMixin}\r\n /**\r\n * BUGFIX-1896215 https://dev.azure.com/888holdings/GamingNDL/_workitems/edit/1896215\r\n * In a scrolling container (in this case orbit swiper), the first animated icon loaded is above all elements (in this case the static image and the number badge)\r\n * When swiping, if the first animated icon gets out of the viewport and unloads, the problem is transfered to the second animation.\r\n * Yes, I know, the solution doesn't have any logic. But I tried this long shot and it worked:\r\n * https://css-tricks.com/forums/topic/safari-for-ios-z-index-ordering-bug-while-scrolling-a-page-with-a-fixed-element/\r\n * https://stackoverflow.com/questions/16033416/while-scrolling-on-an-ios-device-the-z-index-of-elements-isnt-working\r\n * https://stackoverflow.com/questions/9807620/ipad-safari-scrolling-causes-html-elements-to-disappear-and-reappear-with-a-dela\r\n */\r\n -webkit-transform: translate3d(0,0,0);\r\n /**\r\n * Normally, the radius is taken care in game-image-container.default.box, but for Safari, where we encountered the bug solved above\r\n * the image is rendered in a separate layer and ignores the border radius of the parent\r\n */\r\n ${props => props.squareIcon && css`\r\n border-radius: 15px;\r\n @media ${props.theme.mediaQuery.lAndBelow} {\r\n border-radius: 8px;\r\n }\r\n `};\r\n /**\r\n * Because YES, Safari is the new Internet Explorer!!!\r\n */\r\n`;\r\n","import {GameImageDefaultBox} from './game-image.default.box';\r\n\r\nexport const GameImageBox = GameImageDefaultBox;","import {GameImageAnimatedDefaultBox} from './game-image-animated.default.box';\r\n\r\nexport const GameImageAnimatedBox = GameImageAnimatedDefaultBox;","import styled from 'styled-components';\r\nimport { commonGameImageCssMixin } from '../game-image/game-image.default.box';\r\n\r\nconst DefaultBox = styled.div`\r\n ${commonGameImageCssMixin};\r\n height: 100%;\r\n`;\r\n\r\nexport const GameImageAnimatedDefaultBox = DefaultBox;","import React from 'react';\r\nimport { OrbitComponent } from '../../../../base-components/orbit-component/orbit-component';\r\nimport { GameImageAnimatedBox } from '../../boxes/game-image/game-image-animated.box';\r\nimport { IGameAnimatedIconRegistrationResult } from '../../../../../services/game-animated-icons-manager/game-animated-icons-manager.service.interface';\r\n\r\ninterface IGameImageComponentProps {\r\n animationJsonUrl: string;\r\n animationTiming: {\r\n delay: number;\r\n interval: number;\r\n }\r\n width: number;\r\n height: number;\r\n useSquareIcons?: boolean;\r\n onAnimationLoad?(): void;\r\n onAnimationBeforeUnload?(): void;\r\n onAnimationUnload?(): void;\r\n}\r\n\r\nexport class GameImageAnimatedComponent extends OrbitComponent {\r\n private animatedImageWrapper: HTMLElement | null = null;\r\n private pixiAnimationRegistration: IGameAnimatedIconRegistrationResult | null = null;\r\n\r\n private _captureAnimatedImageElementRef = (element: HTMLElement) => {\r\n this.animatedImageWrapper = element;\r\n // cancelAnimationRequest\r\n if (this.pixiAnimationRegistration) {\r\n this.pixiAnimationRegistration.unregister();\r\n this.pixiAnimationRegistration = null;\r\n }\r\n if (element) {\r\n // requestAnimation\r\n this.loadPixiAnimatedIcon();\r\n }\r\n this.animatedImageWrapper = element;\r\n };\r\n\r\n private async loadPixiAnimatedIcon() {\r\n this.pixiAnimationRegistration = this.services.gameAnimatedIconsManager.register({\r\n jsonUrl: this.props.animationJsonUrl,\r\n size: {\r\n width: this.props.width, height: this.props.height\r\n },\r\n wrapper: this.animatedImageWrapper,\r\n timings: this.props.animationTiming,\r\n onAnimationLoad: () => {\r\n if (this.props.onAnimationLoad) {\r\n this.props.onAnimationLoad();\r\n }\r\n },\r\n onAnimationBeforeUnload: () => {\r\n if (this.props.onAnimationBeforeUnload) {\r\n this.props.onAnimationBeforeUnload();\r\n }\r\n },\r\n onAnimationUnload: () => {\r\n if (this.props.onAnimationUnload) {\r\n this.props.onAnimationUnload();\r\n }\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return \r\n }\r\n}\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport {OrbitComponent} from \"../../base-components/orbit-component/orbit-component\";\r\n\r\ninterface IAspectRatioBoxProps {\r\n expectedWidth: number;\r\n expectedHeight: number;\r\n}\r\n\r\nconst AspectRatioBox = styled.div`\r\n position: relative;\r\n width: 100%;\r\n height: 0;\r\n padding-top: calc(${({expectedWidth, expectedHeight}) => `${expectedHeight} / ${expectedWidth} * 100%`});\r\n`;\r\n\r\ninterface IAspectRatioContentBoxProps {\r\n isLoading?: boolean;\r\n useBGColorDuringLoadAnimation?: boolean;\r\n}\r\n\r\nconst AspectRatioContentBox = styled.div`\r\n position: absolute;\r\n display: flex;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n align-items: center;\r\n justify-content: center;\r\n opacity: 0;\r\n\r\n ${(props) => props.useBGColorDuringLoadAnimation && props.isLoading && `background-color: ${props.theme.colors.backgroundDark}`};\r\n\r\n animation: ${({isLoading}) => isLoading ? \"LoadingAnimation 1.5s linear 3 forwards\" : \"RevealAnimation 0.5s ease-out forwards\"};\r\n\r\n @keyframes LoadingAnimation {\r\n 0% {\r\n opacity: 0;\r\n }\r\n 50% {\r\n opacity: 1\r\n }\r\n 100% {\r\n opacity: 0;\r\n }\r\n }\r\n\r\n @keyframes RevealAnimation {\r\n to {\r\n opacity: 1;\r\n }\r\n }\r\n`;\r\n\r\ninterface IAspectRatioContainerComponentProp {\r\n width: number;\r\n height: number;\r\n isLoading?: boolean;\r\n useBGColorDuringLoadAnimation?: boolean;\r\n}\r\n\r\nexport class AspectRatioContainerComponent extends OrbitComponent {\r\n render() {\r\n return (\r\n \r\n \r\n {this.props.children}\r\n \r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {observer} from 'mobx-react';\r\nimport {GameInfo} from '../../../../../services/games/game-info';\r\nimport {GameImageBox} from '../../boxes/game-image/game-image.box';\r\nimport {GameImageAnimatedComponent} from './game-image-animated.component';\r\nimport { OrbitComponentWithState } from '../../../../base-components/orbit-component-with-state/orbit-component-with-state';\r\nimport {SINGLE_GAME_IMAGE} from '../../../css-constants';\r\nimport { AspectRatioContainerComponent } from '../../../../raw-components/aspect-ratio-container/aspect-ratio-container.component';\r\n\r\nexport type GameIconAnimationState = \"ab-disabled\" | \"unavailable\" | \"static\" | \"animated\";\r\n\r\nexport interface GameIconComponentProps {\r\n gameInfo: GameInfo;\r\n useSquareIcons?: boolean;\r\n useLazyLoading?: boolean;\r\n onLoad?(): void;\r\n onLoadStart?(): void;\r\n onSettled?(): void;\r\n onAnimationIconStateChange?(state: GameIconAnimationState): void;\r\n}\r\n\r\nexport interface GameIconComponentState {\r\n loadingAnimation?: boolean;\r\n animationJsonUrl?: string;\r\n hideStaticImage?: boolean;\r\n}\r\n\r\n@observer\r\nexport class GameImageComponent extends OrbitComponentWithState {\r\n constructor(props: GameIconComponentProps) {\r\n super(props);\r\n this.state = {};\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.onAnimationIconStateChange) {\r\n this.props.onAnimationIconStateChange(\r\n this.services.abTestingFeatureDataProvider.animatedGameIconsDisabled ? \"ab-disabled\" : (!this.state.animationJsonUrl ? \"unavailable\" : \"static\")\r\n );\r\n }\r\n }\r\n\r\n private _loadAnimatedIconTimeout = null;\r\n\r\n componentWillUnmount() {\r\n super.componentWillUnmount();\r\n if(this._loadAnimatedIconTimeout) {\r\n clearTimeout(this._loadAnimatedIconTimeout);\r\n this._loadAnimatedIconTimeout = null;\r\n }\r\n }\r\n private onSettled = () => {\r\n this.setState({loadingAnimation: false});\r\n if (this.props.onSettled) {\r\n this.props.onSettled();\r\n }\r\n this.attemptLoadAnimatedIcon();\r\n };\r\n\r\n private attemptLoadAnimatedIcon = () => {\r\n this._loadAnimatedIconTimeout = setTimeout(() => {\r\n let data = this.props.gameInfo.getGameImage({squareIcon: this.props.useSquareIcons, animatedIcon: true});\r\n if (data) {\r\n this.setState({animationJsonUrl: data});\r\n }\r\n this._loadAnimatedIconTimeout = null;\r\n }, this.props.gameInfo.getAnimatedImageTimings().delay || 0);\r\n };\r\n\r\n private onAnimationLoad = () => {\r\n this.setState({hideStaticImage: true});\r\n if (this.props.onAnimationIconStateChange) {\r\n this.props.onAnimationIconStateChange(\"animated\");\r\n }\r\n };\r\n\r\n private onAnimationBeforeUnload = () => {\r\n this.setState({hideStaticImage: false});\r\n if (this.props.onAnimationIconStateChange) {\r\n this.props.onAnimationIconStateChange(\"static\");\r\n }\r\n };\r\n\r\n render() {\r\n const seoAlt = this.props.gameInfo.getImageSeoAlt();\r\n const imgUrl = this.props.gameInfo.getGameImage({squareIcon: this.props.useSquareIcons});\r\n const useLazyLoad = Check.isNullOrUndefined(this.props.useLazyLoading) ? true : this.props.useLazyLoading;\r\n\r\n return \r\n { this.state.animationJsonUrl && !this.services.abTestingFeatureDataProvider.animatedGameIconsDisabled ? : null }\r\n {\r\n this.setState({loadingAnimation: true});\r\n }}\r\n onLoad={this.props.onLoad}\r\n onSettled={this.onSettled}\r\n />\r\n ;\r\n }\r\n}\r\n","import React from 'react';\r\nimport {GameBadgeComponent} from '../game-badge/game-badge.component';\r\nimport {GameImageComponent, GameIconAnimationState} from '../game-image/game-image.component';\r\nimport {observer} from 'mobx-react';\r\nimport {TapHandler} from '../../../../tap-handler/tap-handler.component';\r\nimport {AnyStyledComponent} from 'styled-components';\r\nimport {GameInfo} from '../../../../../services/games/game-info';\r\nimport {GAME_IMAGE_CONTAINER} from '../../../css-constants';\r\nimport {OrbitComponentWithState} from '../../../../base-components/orbit-component-with-state/orbit-component-with-state';\r\n\r\ninterface GameImageContainerComponentState {\r\n isLoading: boolean;\r\n}\r\n\r\nexport interface GameGameImageContainerComponentProps {\r\n gameInfo: GameInfo;\r\n box: AnyStyledComponent;\r\n playRealGameButton: React.ReactNode | null;\r\n onOpenRealGame: () => void;\r\n useSquareIcons?: boolean;\r\n onAnimationIconStateChange?(state: GameIconAnimationState): void;\r\n}\r\n\r\n\r\n@observer\r\nexport class GameImageContainerComponent extends OrbitComponentWithState {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: true\r\n };\r\n }\r\n\r\n private _handleImageDoneLoading = () => {\r\n this.setState({ isLoading: false });\r\n }\r\n\r\n render() {\r\n //className=\"game-item-image\"\r\n const gameItemImageRef: any = React.createRef();\r\n const Box = this.props.box;\r\n\r\n return (\r\n \r\n \r\n \r\n {this.props.playRealGameButton}\r\n \r\n \r\n );\r\n }\r\n}\r\n","import styled from 'styled-components';\r\nimport {TWO_LINES_TITLE} from '../../../css-constants';\r\n\r\nexport const GameTitleDefaultBox = styled.div<{hasTwoLinesTitle?: boolean}>`\r\n text-align: center;\r\n color: ${props => props.theme.colors.backgroundContrast};\r\n opacity: 1;\r\n font-size: 1.4rem;\r\n line-height: normal;\r\n width: 100%;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n direction: initial;\r\n padding-bottom: 2px;\r\n\r\n &.${TWO_LINES_TITLE} {\r\n max-width: 90%;\r\n white-space: initial;\r\n }\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n font-size: 1.2rem;\r\n padding-bottom: 0;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n font-size: 0.9rem;\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\nimport {GameTitleDefaultBox} from './game-title.default.box';\r\n\r\nexport const GameTitleCasino777Box = styled(GameTitleDefaultBox)`\r\n color: ${props => props.theme.colors.textContrast};\r\n ${({theme}) => theme.font.presets.bold};\r\n font-size: 1.5rem;\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n font-size: 1.2rem;\r\n }\r\n`\r\n","import styled from \"styled-components\";\r\nimport {GameTitleDefaultBox} from \"./game-title.default.box\";\r\n\r\nexport const GameTitleCipBox = styled(GameTitleDefaultBox)`\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n ${({theme}) => theme.font.presets.regular};\r\n }\r\n`","import styled from 'styled-components';\r\nimport {GameTitleDefaultBox} from './game-title.default.box';\r\n\r\nexport const GameTitleSIBox = styled(GameTitleDefaultBox)`\r\n font-weight: bold;\r\n`\r\n","import {GameTitleDefaultBox} from './game-title.default.box';\r\nimport {styledByTheme} from '../../../../../themes/architecture/styled-by-theme';\r\nimport {GameTitleCasino777Box} from './game-title.casino777.box';\r\nimport {GameTitleCipBox} from \"./game-title.cip.box\";\r\nimport {GameTitleSIBox} from \"./game-title.si.box\";\r\n\r\nexport const GameTitleBox = styledByTheme(GameTitleDefaultBox)\r\n .forCip(GameTitleCipBox)\r\n .forWsopCip(GameTitleCipBox)\r\n .forSI(GameTitleSIBox)\r\n .forCasino777(GameTitleCasino777Box).apply();","import styled from 'styled-components';\r\nimport {GAME_GROUP_LIVE_CASINO} from '../../../css-constants';\r\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\n\r\nconst DefaultBox = styled.div`\r\n text-align: center;\r\n opacity: 1;\r\n color: ${props => props.theme.colors.brandSecondary};\r\n\r\n .${GAME_GROUP_LIVE_CASINO} & {\r\n color: ${props => props.theme.colors.brandPrimary};\r\n }\r\n`;\r\n\r\nexport const PcBox = styled(DefaultBox)`\r\n font-size: 1.4rem;\r\n font-weight: 600;\r\n`;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\r\n font-size: 1.3rem;\r\n font-weight: 400;\r\n \r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n font-size: 0.9rem;\r\n }\r\n`;\r\n\r\nexport const MinMaxBetAmountDefaultBox = styledByDevice(PcBox, MobileBox);\r\n","import styled, { css } from 'styled-components';\r\nimport {PcBox as BasePcBox, MobileBox as BaseMobileBox} from './min-max-bet-amount.default.box';\r\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\n\r\nconst common = css`\r\n color: ${props => props.theme.colors.dangerLight};\r\n font-weight: 600;\r\n ${({theme}) => theme.font.presets.bold};\r\n`;\r\n\r\nconst PcBox = styled(BasePcBox)`\r\n ${common}\r\n font-size: 1.4rem;\r\n`;\r\n\r\nconst MobileBox = styled(BaseMobileBox)`\r\n ${common}\r\n @media ${({theme}) => theme.mediaQuery.mAndAbove} {\r\n font-size: 1.4rem;\r\n top: 2rem;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n font-size: 1.2rem;\r\n }\r\n`;\r\n\r\n\r\nexport const MinMaxBetAmountCasino777Box = styledByDevice(PcBox, MobileBox);","import styled from 'styled-components';\r\nimport {MinMaxBetAmountDefaultBox} from './min-max-bet-amount.default.box';\r\n\r\nexport const MinMaxBetAmountSIBox = styled(MinMaxBetAmountDefaultBox) `\r\n color: ${({theme}) => theme.colors.textLight};\r\n ${({theme}) => theme.font.presets.bold};\r\n`;\r\n","import {MinMaxBetAmountDefaultBox} from './min-max-bet-amount.default.box';\r\nimport {styledByTheme} from '../../../../../themes/architecture/styled-by-theme';\r\nimport {MinMaxBetAmountCasino777Box} from './min-max-bet-amount.casino777.box';\r\nimport {MinMaxBetAmountSIBox} from './min-max-bet-amount.si.box';\r\n\r\nexport const MinMaxBetAmountBox = styledByTheme(MinMaxBetAmountDefaultBox)\r\n .forCasino777(MinMaxBetAmountCasino777Box)\r\n .forSI(MinMaxBetAmountSIBox)\r\n .apply();","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {OrbitComponent} from '../../../../base-components/orbit-component/orbit-component';\r\nimport {Button} from '../../../../../basic-ui-components/button/base/button.component';\r\n\r\nexport interface InfoPageButtonComponentProps {\r\n enabled: boolean;\r\n onOpenInfoPage: () => void;\r\n}\r\n\r\n@observer\r\nexport class InfoPageButtonComponent extends OrbitComponent {\r\n\r\n render() {\r\n if(!this.props.enabled) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import {GameButtonsDefaultBox} from './game-buttons.default.box';\r\n\r\nexport const GameButtonsBox = GameButtonsDefaultBox;","import styled from 'styled-components';\r\nimport {GAME_BOX} from '../../../css-constants';\r\n\r\n//.hover-details\r\nexport const GameButtonsDefaultBox = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n width: 100%;\r\n z-index: 2;\r\n position: absolute;\r\n margin: auto;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n transform: translateY(5rem);\r\n opacity: 0;\r\n transition: all 0.3s ease-in-out;\r\n padding-top: 2px;\r\n\r\n .${GAME_BOX}:hover & {\r\n transform: translateY(0);\r\n opacity: 0.9;\r\n }\r\n`;","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {OrbitComponent} from '../../../../base-components/orbit-component/orbit-component';\r\nimport {Button} from '../../../../../basic-ui-components/button/base/button.component';\r\nimport {CyClass} from '../../../../../../common/cy-classes';\r\n\r\nexport interface PlayDemoButtonComponentProps {\r\n enabled: boolean;\r\n onOpenAnonymousGame: () => void;\r\n}\r\n\r\n@observer\r\nexport class PlayDemoButtonComponent extends OrbitComponent {\r\n\r\n render() {\r\n if(!this.props.enabled) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n { this.services.translation.translate('DEMO') }\r\n \r\n );\r\n\r\n }\r\n}\r\n\r\n","import styled from 'styled-components';\r\n\r\ninterface GameDetailsContainerProps {\r\n squareGameIcon?: number\r\n}\r\n\r\nexport const GameDetailsContainerDefaultBox = styled.div`\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n align-content: center;\r\n justify-content: flex-start;\r\n overflow: hidden;\r\n top: ${props => props.squareGameIcon? '10px' : '0'};\r\n min-height: 4.7rem;\r\n padding: 0 1rem;\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n min-height: 4rem;\r\n padding: 0 0.4rem;\r\n top: ${props => props.squareGameIcon? '5px' : '0'};\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n min-height: 3.3rem;\r\n }\r\n /** Glow Line Boottom **/\r\n &:after {\r\n content: \"\";\r\n position: absolute;\r\n background-image: url(\"${props => props.theme.images.horizontalLineGlowPC.toString()}\");\r\n background-repeat: no-repeat;\r\n background-position: bottom center;\r\n background-size: contain;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n width: 100%;\r\n height: 40px;\r\n margin: 0 auto;\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n background-image: url(\"${props => props.theme.images.horizontalLineGlowMobile.toString()}\");\r\n }\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\nimport {\r\n GameDetailsContainerDefaultBox\r\n} from './game-details-container.default.box';\r\n\r\n\r\n\r\nexport const GameDetailsContainerCasino777Box = styled(GameDetailsContainerDefaultBox)`\r\n overflow: initial;\r\n &:after {\r\n background-size: 75%;\r\n opacity: .6;\r\n height: 15px;\r\n bottom:-15px;\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n bottom:-18px;\r\n }\r\n }\r\n`","import {GameDetailsContainerDefaultBox} from './game-details-container.default.box';\r\nimport {styledByTheme} from '../../../../../themes/architecture/styled-by-theme';\r\nimport {GameDetailsContainerCasino777Box} from './game-details-container.casino777.box';\r\n\r\nexport const GameDetailsContainerBox: any = styledByTheme(GameDetailsContainerDefaultBox).forCasino777(GameDetailsContainerCasino777Box).apply();","import styled from 'styled-components';\r\n\r\nexport const JackpotAmountDefaultBox = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: center;\r\n width: 70%;\r\n text-align: center;\r\n opacity: 1;\r\n font-size: 1.4rem;\r\n font-weight: 600;\r\n margin-bottom: 4px;\r\n \r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n font-size: 1.3rem;\r\n font-weight: 400;\r\n width: 100%;\r\n }\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n font-size: 1rem;\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\nimport {JackpotAmountDefaultBox} from './jackpot-amount.default.box';\r\n\r\n\r\nexport const JackpotAmountCasino777Box = styled(JackpotAmountDefaultBox)`\r\n color: ${props => props.theme.colors.dangerLight};\r\n font-weight: 600;\r\n ${({theme}) => theme.font.presets.bold};\r\n font-size: 1.4rem;\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndAbove} {\r\n font-size: 1.4rem;\r\n top: 2rem;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n font-size: 1.2rem;\r\n }\r\n`","import styled from \"styled-components\";\r\nimport {JackpotAmountDefaultBox} from \"./jackpot-amount.default.box\";\r\n\r\nexport const JackpotAmountSiBox = styled(JackpotAmountDefaultBox)`\r\n font-size: ${props => props.theme.font.size.small};\r\n font-weight: 400;\r\n`","import {JackpotAmountDefaultBox} from './jackpot-amount.default.box';\r\nimport {styledByTheme} from '../../../../../themes/architecture/styled-by-theme';\r\nimport {JackpotAmountCasino777Box} from './jackpot-amount.casino777.box';\r\nimport {JackpotAmountSiBox} from \"./jackpot-amount.si.box\";\r\n\r\nexport const JackpotAmountBox = styledByTheme(JackpotAmountDefaultBox)\r\n .forCasino777(JackpotAmountCasino777Box)\r\n .forSI(JackpotAmountSiBox)\r\n .apply();","import {GameInfoContainerDefaultBox} from './game-info-container.default.box';\r\n\r\nexport const GameInfoContainerBox = GameInfoContainerDefaultBox;","import styled from 'styled-components';\r\nimport {ENABLE_HOVER_ANIMATION, GAME_BOX} from '../../../css-constants';\r\n\r\nexport const GameInfoContainerDefaultBox = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n padding-top: 2px;\r\n width: 100%;\r\n transition: all 0.3s ease-in-out;\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n padding-top: 0;\r\n }\r\n \r\n\r\n .${GAME_BOX}:hover &{\r\n &.${ENABLE_HOVER_ANIMATION} {\r\n transform: translateY(6rem);\r\n opacity: 0;\r\n }\r\n \r\n`;\r\n","import styled from 'styled-components';\r\n\r\nexport const AmountContainerBox = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: center;\r\n width: 100%;\r\n height: 100%;\r\n min-height: 2.5rem;\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n min-height: 2.0rem;\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\n\r\nexport const TwoRowsGameTitleContainerBox = styled.div<{hasDetails: boolean}>`\r\n height: 3.5rem;\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n height: 2.7rem;\r\n }\r\n\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: flex-start;\r\n align-items: center;\r\n`;\r\n","import React from 'react';\r\n\r\nimport {observer} from 'mobx-react';\r\nimport {GameTitleBox} from '../../boxes/game-title/game-title.box';\r\nimport classNames from 'classnames';\r\nimport {ENABLE_HOVER_ANIMATION, TWO_LINES_TITLE} from '../../../css-constants';\r\nimport {OrbitComponent} from '../../../../base-components/orbit-component/orbit-component';\r\n\r\nimport {GameInfo} from '../../../../../services/games/game-info';\r\nimport {MinMaxBetAmountBox} from '../../boxes/min-max-bet-amount/min-max-bet-amount.box';\r\nimport {InfoPageButtonComponent} from '../info-page-button/info-page-button.component';\r\nimport {GameButtonsBox} from '../../boxes/game-buttons/game-buttons.box';\r\nimport {PlayDemoButtonComponent} from '../play-demo-button/play-demo-button.component';\r\nimport {GameDetailsContainerBox} from '../../boxes/game-details-container/game-details-container.box';\r\nimport {JackpotAmountBox} from '../../boxes/jackpot-amount/jackpot-amount.box';\r\nimport {GameJackpotComponent} from '../../../../game-jackpot/game-jackpot.component';\r\nimport {GameInfoContainerBox} from '../../boxes/game-info-container/game-info-container.box';\r\nimport {CyClass} from \"../../../../../../common/cy-classes\";\r\nimport { AmountContainerBox } from '../../boxes/amount-container/amount-container.box';\r\nimport { TwoRowsGameTitleContainerBox } from '../../boxes/two-rows-game-title-container/two-rows-game-title-container.box';\r\n\r\nexport interface GameDetailsContainerComponentProps {\r\n gameInfo: GameInfo;\r\n disableGameInfoHover: boolean;\r\n onOpenAnonymousGame: () => void;\r\n onOpenInfoPage: () => void;\r\n squareGameIcon?: boolean;\r\n hasTwoLinesTitle: boolean;\r\n}\r\n\r\n@observer\r\nexport class GameDetailsContainerComponent extends OrbitComponent {\r\n\r\n private get _allowHoverDetails(): boolean {\r\n\r\n if (this.props.disableGameInfoHover || this.services.device.isMobile || !this.props.gameInfo.allowHoverDetails) {\r\n return false;\r\n }\r\n\r\n return Boolean(this.props.gameInfo.hasInfoPage || this.props.gameInfo.allowDemoButtonInSingleGame);\r\n }\r\n\r\n\r\n private _renderGameButtons() {\r\n if (!this._allowHoverDetails) {\r\n return null;\r\n }\r\n\r\n return (\r\n\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private _renderAmount() {\r\n if (this.props.gameInfo.hasJackpot) {\r\n return this._renderJackpot();\r\n }\r\n\r\n const formattedMinBaxBets = this.services.currency.formatMinMaxBet(this.props.gameInfo.minBet, this.props.gameInfo.maxBet);\r\n const hasMinMaxBets = this.props.gameInfo.allowMinMaxBet && formattedMinBaxBets;\r\n if (hasMinMaxBets) {\r\n return this._renderMinBaxBet();\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _hasDetails() {\r\n return this.props.gameInfo.allowMinMaxBet || this.props.gameInfo.hasJackpot;\r\n }\r\n\r\n private _renderJackpot() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private _renderMinBaxBet() {\r\n const formattedMinBaxBets = this.services.currency.formatMinMaxBet(this.props.gameInfo.minBet, this.props.gameInfo.maxBet);\r\n return (\r\n \r\n {formattedMinBaxBets}\r\n \r\n );\r\n }\r\n\r\n private _renderTitle() {\r\n const hasDetails = this._hasDetails();\r\n if (this.props.hasTwoLinesTitle) {\r\n return \r\n \r\n {this.props.gameInfo.title}\r\n \r\n ;\r\n } else {\r\n return \r\n {this.props.gameInfo.title}\r\n ;\r\n }\r\n }\r\n\r\n private _renderGameInfoSection() {\r\n return (\r\n \r\n {this._renderTitle()}\r\n {this.props.hasTwoLinesTitle || this._hasDetails()? \r\n {this._renderAmount()} \r\n : null}\r\n \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this._renderGameInfoSection()}\r\n {this._renderGameButtons()}\r\n \r\n );\r\n }\r\n}\r\n","import styled from 'styled-components';\r\nimport {SWIPER_MODE} from '../../../css-constants';\r\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\nimport {HOME_PAGE, LOBBY_PAGE} from '../../../../../themes/css-global-classes';\r\n\r\nexport interface GameBoxProps {\r\n squareGameIcon: boolean;\r\n}\r\n\r\nconst DefaultBox = styled.div`\r\n position: relative;\r\n margin-top: 10px;\r\n margin-bottom: 3rem;\r\n width: calc(100% / 7);\r\n text-align: center;\r\n cursor: pointer;\r\n user-select: none;\r\n\r\n\r\n &.${SWIPER_MODE} {\r\n flex-shrink: 0;\r\n justify-content: center;\r\n }\r\n`;\r\n\r\nexport const PcBox = styled(DefaultBox)`\r\n .${HOME_PAGE} &.${SWIPER_MODE} {\r\n width: 16.6667%;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n .${LOBBY_PAGE} & {\r\n padding: 0 1%;\r\n width: calc(100% / 7);\r\n }\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n margin-right: ${props => props.squareGameIcon ? '15px' : '0'};\r\n }\r\n`;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\r\n padding: 0 4px;\r\n margin-bottom: 0;\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndAbove} {\r\n width: 16.667%;\r\n &.${SWIPER_MODE} {\r\n width: 16%;\r\n }\r\n }\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove} {\r\n width: 16.667%;\r\n &.${SWIPER_MODE} {\r\n width: 16.1%;\r\n }\r\n }\r\n @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n width: 20%;\r\n &.${SWIPER_MODE} {\r\n width: 19%;\r\n }\r\n }\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n width: 33.3333%;\r\n &.${SWIPER_MODE} {\r\n width: 31%;\r\n }\r\n }\r\n`;\r\n\r\nexport const GameDefaultBox = styledByDevice(PcBox, MobileBox);","import styled, { css } from 'styled-components';\r\nimport {PcBox as BasePcBox, MobileBox as BaseMobileBox} from './game.default.box';\r\nimport {SWIPER_MODE} from '../../../css-constants';\r\nimport {LOBBY_PAGE} from '../../../../../themes/css-global-classes';\r\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\n\r\nconst common = css`\r\n width:14.25%;\r\n ${({theme}) => theme.font.presets.bold};\r\n`;\r\n\r\nconst PcBox = styled(BasePcBox)`\r\n ${common}\r\n margin-bottom: 5.5rem;\r\n\r\n .${SWIPER_MODE} &{\r\n height:24rem;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n .${LOBBY_PAGE} & {\r\n width:14.25%;\r\n padding: 0 1%;\r\n }\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n .${SWIPER_MODE} & {\r\n height:22rem;\r\n }\r\n }\r\n`;\r\n\r\nconst MobileBox = styled(BaseMobileBox)`\r\n ${common}\r\n\r\n margin-bottom: 0;\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n .${SWIPER_MODE} &{\r\n height: 18rem;\r\n }\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndAbove} {\r\n .${SWIPER_MODE} &{\r\n height: 26rem;\r\n }\r\n }\r\n`;\r\n\r\nexport const GameCasino777Box = styledByDevice(PcBox, MobileBox);","import styled from \"styled-components\";\r\nimport {GameDefaultBox} from \"./game.default.box\";\r\n\r\nexport const GameCisBox = styled(GameDefaultBox)`\r\n margin-bottom: 0;\r\n margin-top: 0\r\n`;","import {GameDefaultBox} from './game.default.box';\r\nimport {styledByTheme} from '../../../../../themes/architecture/styled-by-theme';\r\nimport {GameCasino777Box} from './game.casino777.box';\r\nimport {GameCisBox} from \"./game.cis.box\";\r\n\r\n// TODO: address this any!!!!\r\nexport const GameBox: any = styledByTheme(GameDefaultBox)\r\n .forCis(GameCisBox)\r\n .forCasino777(GameCasino777Box)\r\n .apply();\r\n\r\n","import styled from 'styled-components';\r\nimport {GAME_BOX} from '../../../css-constants';\r\n\r\n\r\nexport const PlayRealButtonDefaultBox = styled.button`\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-position: -544px -409px;\r\n background-size: 1200px;\r\n background-repeat: no-repeat;\r\n position: absolute;\r\n cursor: pointer;\r\n right: 0;\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n margin: auto;\r\n width: 6rem;\r\n height: 6rem;\r\n opacity: 0;\r\n transition: all 0.35s ease-in-out;\r\n\r\n .${GAME_BOX}:hover & {\r\n transform: translateY(0);\r\n opacity: 0.9;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.lowHeight}, ${({theme}) => theme.mediaQuery.xlExact} {\r\n background-position: -552px -408px;\r\n }\r\n\r\n`;","import styled from 'styled-components';\r\nimport {PlayRealButtonDefaultBox} from './play-real-button.default.box';\r\n\r\nexport const PlayRealButtonCasino777Box = styled(PlayRealButtonDefaultBox)`\r\n background-position: -195px -354px;\r\n width: 6.3rem;\r\n height: 6.3rem;\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n background-position: -201px -358px;\r\n }\r\n`;","import {PlayRealButtonDefaultBox} from './play-real-button.default.box';\r\nimport {styledByTheme} from '../../../../../themes/architecture/styled-by-theme';\r\nimport {PlayRealButtonCasino777Box} from './play-real-button.casino777.box';\r\n\r\n\r\nexport const PlayRealButtonBox = styledByTheme(PlayRealButtonDefaultBox).forCasino777(PlayRealButtonCasino777Box).apply();\r\n","import styled, {css} from 'styled-components';\r\nimport { ORBIT_TAP } from '../../../../../themes/css-global-classes';\r\nimport { styledByDevice } from '../../../../../themes/architecture/styled-by-device';\r\n\r\n\r\ninterface GameImageContainerProps {\r\n isLoading?: boolean;\r\n squareIcon?: boolean;\r\n isCasinoGameIcon?: boolean;\r\n}\r\n\r\nfunction getPlaceholderBackground(theme, isLoading: boolean, isSquareIcon: boolean, isCasinoGameIcon: boolean): string {\r\n\r\n if (isLoading) {\r\n return theme.images.emptyImage.toString();\r\n }\r\n\r\n if (isCasinoGameIcon) {\r\n\r\n if (isSquareIcon) {\r\n return theme.images.singleGame.cardAndTablesSquareBackgroundImage.toString();\r\n }\r\n\r\n return theme.images.singleGame.cardAndTablesBackgroundImage.toString();\r\n }\r\n\r\n if (isSquareIcon) {\r\n return theme.images.singleGame.defaultSquareBackgroundImage.toString();\r\n }\r\n\r\n return theme.images.singleGame.defaultBackgroundImage.toString();\r\n}\r\n\r\n//.game-item-image\r\nconst DefaultBox = styled.div`\r\n position: relative;\r\n width: 100%;\r\n overflow: hidden;\r\n max-width: 21rem;\r\n margin: auto;\r\n background: url(${({theme, squareIcon, isLoading, isCasinoGameIcon}) => getPlaceholderBackground(theme, isLoading, squareIcon, isCasinoGameIcon)}) no-repeat center center;\r\n background-size: 100%;\r\n ${props => props.squareIcon && css`\r\n border-radius: 15px;\r\n `};\r\n\r\n &::after {\r\n position: absolute;\r\n display: ${({isLoading}) => isLoading ? \"block\" : \"none\"};\r\n content: \"\";\r\n top: ${({squareIcon}) => squareIcon ? \"0\" : \"1rem\"};\r\n left: ${({squareIcon}) => squareIcon ? \"0\" : \"1rem\"};\r\n right: ${({squareIcon}) => squareIcon ? \"0\" : \"1rem\"};\r\n bottom: ${({squareIcon}) => squareIcon ? \"0\" : \"1.5rem\"};\r\n background: radial-gradient(rgba(255, 255, 255, 0.25), rgba(255, 255, 255, 0.1));\r\n\r\n border-radius: ${({squareIcon}) => squareIcon ? \"1.5rem\" : \"35%\"};\r\n animation: LoadingAnimation 1s linear 3;\r\n }\r\n\r\n @keyframes LoadingAnimation {\r\n 0% {\r\n opacity: 1;\r\n }\r\n 50% {\r\n opacity: 0.5;\r\n }\r\n 100% {\r\n opacity: 1;\r\n }\r\n }\r\n`;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\r\n transform: none;\r\n\r\n &.${ORBIT_TAP} {\r\n transform: scale(0.95);\r\n }\r\n\r\n ${props => props.squareIcon && css`\r\n border-radius: 8px;\r\n `};\r\n`;\r\n\r\nexport const PcBox = DefaultBox;\r\n\r\nexport const GameImageContainerDefaultBox = styledByDevice(PcBox, MobileBox);","import styled from 'styled-components';\r\n\r\nimport {PcBox as BasePcBox, MobileBox as BaseMobileBox} from './game-image-container.default.box';\r\nimport {LOBBY_PAGE} from '../../../../../themes/css-global-classes';\r\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\nimport {SINGLE_GAME_IMAGE} from '../../../css-constants';\r\n\r\n\r\nfunction common(): string {\r\n return `\r\n max-width: 19rem;\r\n & > .${SINGLE_GAME_IMAGE} {\r\n top: 4px;\r\n position: relative;\r\n }\r\n `;\r\n}\r\n\r\nconst PcBox = styled(BasePcBox)`\r\n ${common()}\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n &img {\r\n min-height: 139px\r\n .${LOBBY_PAGE} & {\r\n min-height: 125px;\r\n }\r\n }\r\n }\r\n`;\r\n\r\nconst MobileBox = styled(BaseMobileBox)`\r\n ${common()}\r\n`;\r\n\r\nexport const GameImageContainerCasino777Box = styledByDevice(PcBox, MobileBox);\r\n","import React from \"react\";\r\nimport { observable, action } from \"mobx\";\r\nimport { observer } from \"mobx-react\";\r\nimport {GameInfo} from \"../../../services/games/game-info\";\r\nimport {OrbitComponent} from \"../../base-components/orbit-component/orbit-component\";\r\nimport {VideoTileComponent} from \"../../live-streaming-tile/video-common-components/video-tile/video-tile.component\";\r\nimport {VideoItemContainerBox} from \"./boxes/video-item-container.box\";\r\nimport {IVideoPlayingService} from \"../../../services/video-live-stream/video-playing.service.interface\";\r\n\r\nexport enum VIDEO_ITEM_TYPE {\r\n LIVE_STREAM = 'Live-Streaming-Video-Item',\r\n STATIC = 'Static-Video-Item'\r\n}\r\n\r\nexport interface SingleGameVideoTemplateProps {\r\n gameInfo: GameInfo;\r\n intersectionTarget?: HTMLDivElement;\r\n onOpenRealGame: () => void;\r\n videoItemType: VIDEO_ITEM_TYPE;\r\n isLastGametype?: boolean;\r\n gameIndex?: number;\r\n onBringInCentralView: (gameIndex: number) => void;\r\n\r\n}\r\n\r\n@observer\r\nexport class SingleGameVideoTemplate extends OrbitComponent {\r\n private _inSwiperIntersectionObserver: IntersectionObserver | null = null;\r\n private _viewportIntersectionObserver: IntersectionObserver | null = null;\r\n private _videoContainerElement: HTMLDivElement | null = null;\r\n @observable\r\n private _isInCenterStage = false;\r\n @observable\r\n private _inViewport = false;\r\n\r\n private _captureVideoContainerRef = (element: HTMLDivElement | null) => {\r\n this._videoContainerElement = element;\r\n if (!this._inSwiperIntersectionObserver || !this._viewportIntersectionObserver) {\r\n return;\r\n }\r\n if (element) {\r\n this._inSwiperIntersectionObserver.observe(element);\r\n this._viewportIntersectionObserver.observe(element);\r\n } else {\r\n this._inSwiperIntersectionObserver.unobserve(element);\r\n this._viewportIntersectionObserver.unobserve(element);\r\n }\r\n }\r\n\r\n private _triggerOnBringInCentralView(): void {\r\n if(this._inViewport && this._isInCenterStage) {\r\n this.props.onBringInCentralView(this.props.gameIndex);\r\n }\r\n }\r\n\r\n private _createSwiperIntersectionObserver(element: HTMLElement) {\r\n const intersectionObserverOptions: IntersectionObserverInit = {\r\n threshold: 0.99,\r\n root: element\r\n };\r\n if (this.services.mediaQuery.xlAndAbove) {\r\n intersectionObserverOptions.rootMargin = \"0px -33.33%\";\r\n }\r\n\r\n this._inSwiperIntersectionObserver = new IntersectionObserver(this._inSwiperIntersectionObserverCallback, intersectionObserverOptions);\r\n }\r\n\r\n private _inSwiperIntersectionObserverCallback = (entries: IntersectionObserverEntry[]) => {\r\n entries.forEach((entry) => {\r\n this.setIsInCenterStage(entry.isIntersecting);\r\n });\r\n }\r\n\r\n @action\r\n setIsInCenterStage(i: boolean) {\r\n this._isInCenterStage = i;\r\n this._triggerOnBringInCentralView();\r\n }\r\n\r\n private _destroySwiperIntersectionObserver() {\r\n if (this._inSwiperIntersectionObserver) {\r\n this._inSwiperIntersectionObserver.disconnect();\r\n this._inSwiperIntersectionObserver = null;\r\n }\r\n }\r\n\r\n private _createViewportIntersectionObserver() {\r\n this._viewportIntersectionObserver = new IntersectionObserver(this._viewportIntersectionObserverCallback, {\r\n threshold: 0.99\r\n });\r\n }\r\n\r\n private _viewportIntersectionObserverCallback = (entries: IntersectionObserverEntry[]) => {\r\n entries.forEach((entry) => {\r\n this.setInViewport(entry.isIntersecting);\r\n });\r\n }\r\n\r\n @action\r\n setInViewport(i: boolean) {\r\n this._inViewport = i;\r\n this._triggerOnBringInCentralView();\r\n }\r\n\r\n private _destroyViewportIntersectionObserver() {\r\n if (this._viewportIntersectionObserver) {\r\n this._viewportIntersectionObserver.disconnect();\r\n this._viewportIntersectionObserver = null;\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n this._createViewportIntersectionObserver();\r\n if (this._videoContainerElement) {\r\n this._viewportIntersectionObserver.observe(this._videoContainerElement);\r\n }\r\n if (this.props.intersectionTarget) {\r\n this._createSwiperIntersectionObserver(this.props.intersectionTarget);\r\n if (this._videoContainerElement) {\r\n this._inSwiperIntersectionObserver.observe(this._videoContainerElement);\r\n }\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n super.componentWillUnmount();\r\n this._destroySwiperIntersectionObserver();\r\n this._destroyViewportIntersectionObserver();\r\n }\r\n\r\n componentDidUpdate(prevProps: SingleGameVideoTemplateProps) {\r\n if (this.props.intersectionTarget) {\r\n if (this.props.intersectionTarget !== prevProps.intersectionTarget) {\r\n this._destroySwiperIntersectionObserver();\r\n this._createSwiperIntersectionObserver(this.props.intersectionTarget);\r\n this._inSwiperIntersectionObserver.observe(this._videoContainerElement);\r\n }\r\n } else {\r\n this._destroySwiperIntersectionObserver();\r\n }\r\n }\r\n\r\n private _getVideoPlayingService = (): IVideoPlayingService => {\r\n if (this.props.videoItemType === VIDEO_ITEM_TYPE.LIVE_STREAM) {\r\n return this.services.liveStreamPlaying;\r\n }\r\n\r\n return this.services.staticVideoPlaying;\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import {GameImageContainerDefaultBox} from './game-image-container.default.box';\r\nimport {styledByTheme} from '../../../../../themes/architecture/styled-by-theme';\r\nimport {GameImageContainerCasino777Box} from './game-image-container.casino777.box';\r\n\r\nexport const GameImageContainerBox = styledByTheme(GameImageContainerDefaultBox).forCasino777(GameImageContainerCasino777Box).apply();","import styled from \"styled-components\";\r\n\r\nexport const GameNumberBadgeBox = styled.div`\r\n font-size: 100px;\r\n line-height: 1;\r\n ${({theme}) => theme.font.presets.secondary};\r\n margin-right: -30px;\r\n color: ${props => props.theme.colors.backgroundDark};\r\n z-index: 2;\r\n text-shadow: -1px -1px 0 ${props => props.theme.colors.brandPrimary},\r\n 1px -1px 0 ${props => props.theme.colors.brandPrimary},\r\n -1px 1px 0 ${props => props.theme.colors.brandPrimary},\r\n 1px 1px 0 ${props => props.theme.colors.brandPrimary};\r\n\r\n /**\r\n * BUGFIX-1896215 https://dev.azure.com/888holdings/GamingNDL/_workitems/edit/1896215\r\n * In a scrolling container (in this case orbit swiper), the first animated icon loaded is above all elements (in this case the static image and the number badge)\r\n * When swiping, if the first animated icon gets out of the viewport and unloads, the problem is transfered to the second animation.\r\n * Yes, I know, the solution doesn't have any logic. But I tried this long shot and it worked:\r\n * https://css-tricks.com/forums/topic/safari-for-ios-z-index-ordering-bug-while-scrolling-a-page-with-a-fixed-element/\r\n * https://stackoverflow.com/questions/16033416/while-scrolling-on-an-ios-device-the-z-index-of-elements-isnt-working\r\n * https://stackoverflow.com/questions/9807620/ipad-safari-scrolling-causes-html-elements-to-disappear-and-reappear-with-a-dela\r\n */\r\n -webkit-transform: translate3d(0,0,0);\r\n /**\r\n * Because YES, Safari is the new Internet Explorer!!!\r\n */\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n margin-right: -17px;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n font-size: 75px;\r\n margin-right: -16px;\r\n }\r\n`;\r\n","import React from 'react'\r\nimport {GameImageContainerComponent} from '../common/parts/game-image-container.component/game-image-container.component';\r\nimport {GameDetailsContainerComponent} from './parts/game-details-container/game-details-container.component';\r\nimport {OrbitComponent} from '../../base-components/orbit-component/orbit-component';\r\nimport {GameInfo} from '../../../services/games/game-info';\r\nimport {observer} from 'mobx-react';\r\nimport {GameBox} from './boxes/game/game.box';\r\nimport {PlayRealButtonBox} from './boxes/play-real-button/play-real-button.box';\r\nimport {GameImageContainerBox} from './boxes/game-image-container/game-image-container.box';\r\nimport {GameNumberBadgeBox} from \"./boxes/game-number-badge/game-number-badge.box\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport { GameIconAnimationState } from '../common/parts/game-image/game-image.component';\r\n\r\nexport interface SingleGameRegularTemplateComponentProps {\r\n className: string;\r\n gameInfo: GameInfo;\r\n disableGameInfoHover: boolean;\r\n onMouseEnter: () => void;\r\n onMouseLeave: () => void;\r\n onOpenRealGame: () => void;\r\n onOpenAnonymousGame: () => void;\r\n onOpenInfoPage: () => void;\r\n onAnimationIconStateChange?(state: GameIconAnimationState): void;\r\n gameIndex?: number;\r\n useSquareIcons?: boolean;\r\n showNumberBadge?: boolean;\r\n hasTwoLinesTitle: boolean;\r\n}\r\n\r\n@observer\r\nexport class SingleGameRegularTemplateComponent extends OrbitComponent {\r\n\r\n get gameInfo(): GameInfo {\r\n return this.props.gameInfo;\r\n }\r\n\r\n private _renderPlayRealGameButton() {\r\n if(this.services.device.os.isMobileOS) {\r\n return null;\r\n }\r\n\r\n return ();\r\n }\r\n\r\n private _renderGameNumberBadge() {\r\n if(!this.props.showNumberBadge || Check.isNullOrUndefined(this.props.gameIndex)) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {this.props.gameIndex+1}\r\n \r\n )\r\n }\r\n render() {\r\n return (\r\n <>\r\n\r\n {this._renderGameNumberBadge()}\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import {Check} from '@sparkware/app-utils';\r\n\r\n\r\nexport class CssClassNameBuilder {\r\n _classes: string[] = [];\r\n append(...classes): this {\r\n\r\n classes.forEach(item => {\r\n if(Check.isString(item)) {\r\n this._classes.push(item);\r\n } else if(Check.isArray(item)) {\r\n item.forEach(c => this._classes.push(String(c)));\r\n } else if (Check.isNullOrUndefined(item)) {\r\n // just ignore it\r\n } else {\r\n throw new Error('append method accepts only string or string[] as argument');\r\n }\r\n });\r\n return this;\r\n }\r\n\r\n build() {\r\n let result = this._classes.reduce((acc, curr) => acc + ' ' + curr, '');\r\n return result.substring(1, result.length);\r\n }\r\n}\r\n\r\n\r\n","import styled from 'styled-components';\r\nimport {SWIPER_MODE} from '../../../css-constants';\r\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\n\r\nconst DefaultBox = styled.div`\r\n display: flex;\r\n align-items: center;\r\n width: 32%;\r\n margin: 10px 1% 0 0.25rem;\r\n padding-left: 0;\r\n padding-right: 0;\r\n padding-bottom: 5rem;\r\n cursor: pointer;\r\n user-select: none;\r\n`;\r\n\r\nconst PcBox = styled(DefaultBox)`\r\n justify-content: center;\r\n &.${SWIPER_MODE} {\r\n flex-shrink: 0;\r\n }\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n flex-direction: row;\r\n justify-content: space-around;\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndAbove} {\r\n width: 49%;\r\n flex-shrink: 0;\r\n padding: 0.5rem;\r\n margin-right:0;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n width: 100%;\r\n padding: 0 2em 1em;\r\n margin-left:0;\r\n margin-right:0;\r\n margin-bottom: 1rem;\r\n }\r\n`;\r\n\r\n\r\n\r\nexport const GameDefaultBox = styledByDevice(PcBox, MobileBox);\r\n\r\n","import {GameDefaultBox} from './game.default.box';\r\n\r\nexport const GameBox = GameDefaultBox;","import styled from 'styled-components';\r\nimport { styledByDevice } from '../../../../../themes/architecture/styled-by-device';\r\nimport { CssRule } from '../../../../../themes/architecture/css-helpers/css-rule';\r\n\r\nconst DefaultBox = styled.div`\r\n position: relative;\r\n width: 40%;\r\n max-width: 20rem;\r\n margin-left: 0;\r\n margin-right: 3.5rem;\r\n overflow: visible;\r\n background-size: 100%;\r\n background-image: url(\"${props => props.theme.images.singleGame.defaultBackgroundImage.toString()}\");\r\n background-repeat: no-repeat;\r\n\r\n &:after {\r\n content: \"\";\r\n background-image: url(\"${props => props.theme.images.verticalLineGlow.toString()}\");\r\n background-repeat: no-repeat;\r\n background-size: contain;\r\n position: absolute;\r\n top: 0;\r\n height: 100%;\r\n transform: translateX(100%);\r\n }\r\n`;\r\n\r\n\r\nconst PcBox = styled(DefaultBox)`\r\n &:after {\r\n right: -10px;\r\n width: 40px;\r\n\r\n ${CssRule.For.RTL.build()} & {\r\n right: 28px;\r\n }\r\n }\r\n\r\n\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndAbove} {\r\n &:after {\r\n right: -10px;\r\n width: 40px;\r\n ${CssRule.For.RTL.build()} & {\r\n right: 28px;\r\n }\r\n }\r\n }\r\n\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n &:after {\r\n right: -8%;\r\n width: 25px;\r\n\r\n ${CssRule.For.RTL.build()} & {\r\n right: 80%;\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const GameImageContainerDefaultBox = styledByDevice(PcBox, MobileBox);\r\n","import {GameImageContainerDefaultBox} from './game-image-container.default.box';\r\n\r\nexport const GameImageContainerBox = GameImageContainerDefaultBox;","import {GameDetailsContainerDefaultBox} from './game-details-container.default.box';\r\n\r\nexport const GameDetailsContainerBox = GameDetailsContainerDefaultBox;","import styled from 'styled-components';\r\n\r\nexport const GameDetailsContainerDefaultBox = styled.div`\r\n position: relative;\r\n flex: 1 0 auto;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 0;\r\n overflow: hidden;\r\n text-align: center;\r\n font-size: 1rem;\r\n align-items: flex-start;\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndAbove} {\r\n font-size: 0.85rem;\r\n justify-content: space-between;\r\n min-height: 4rem;\r\n }\r\n \r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n align-items: center;\r\n font-size: 0.7rem;\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\n\r\nexport const GameTitleDefaultBox = styled.div`\r\n line-height: 2.5rem;\r\n font-size: 1.5em;\r\n font-weight: 300;\r\n ${({theme}) => theme.font.presets.medium};\r\n color: ${props => props.theme.colors.textLight};\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n max-width: 13rem;\r\n line-height: 1.7;\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\nimport {GameTitleDefaultBox} from './game-title.default.box';\r\n\r\nexport const GameTitleCasino777Box = styled(GameTitleDefaultBox)`\r\n font-size: 1.9em;\r\n`;\r\n","import {GameTitleDefaultBox} from './game-title.default.box';\r\nimport {styledByTheme} from '../../../../../themes/architecture/styled-by-theme';\r\nimport {GameTitleCasino777Box} from './game-title.casino777.box';\r\n\r\n\r\nexport const GameTitleBox = styledByTheme(GameTitleDefaultBox).forCasino777(GameTitleCasino777Box).apply();","import styled from 'styled-components';\r\n\r\nexport const JackpotAmountDefaultBox = styled.div`\r\n color: ${props => props.theme.colors.brandSecondary};\r\n ${({theme}) => theme.font.presets.ultra};\r\n font-size: 2.6em;\r\n width: 100%;\r\n margin-bottom: 4px;\r\n @media ${({theme}) => theme.mediaQuery.xlExact} {\r\n font-size: 2.2em;\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\nimport {JackpotAmountDefaultBox} from './jackpot-amount.default.box';\r\nimport {baseColors} from \"../../../../../themes/definitions/casino777/base-colors\";\r\n\r\nexport const JackpotAmountCasino777Box = styled(JackpotAmountDefaultBox)`\r\n ${({theme}) => theme.font.presets.secondary};\r\n font-weight: 300;\r\n color: ${baseColors.base04Dark};\r\n text-shadow: 3px 3px 0 ${props => props.theme.colors.textLight}, 0 0 0 ${props => props.theme.colors.textLight}, 1px 1px 0 ${props => props.theme.colors.textLight}, 2px 2px 0 ${props => props.theme.colors.textLight}, 0 0 0 ${props => props.theme.colors.textLight};\r\n -webkit-text-stroke-width: .5px;\r\n -webkit-text-stroke-color: ${props => props.theme.colors.textLight};\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n color: ${props => props.theme.colors.textLight};\r\n text-shadow: none;\r\n letter-spacing: .3px;\r\n -webkit-text-stroke-width: 0;\r\n -webkit-text-stroke-color: transparent;\r\n }\r\n`;\r\n","import {JackpotAmountDefaultBox} from './jackpot-amount.default.box';\r\nimport {styledByTheme} from '../../../../../themes/architecture/styled-by-theme';\r\nimport {JackpotAmountCasino777Box} from './jackpot-amount.casino777.box';\r\n\r\nexport const JackpotAmountBox = styledByTheme(JackpotAmountDefaultBox).forCasino777(JackpotAmountCasino777Box).apply();","import React from 'react';\r\nimport {OrbitComponent} from '../../../../base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\nimport {GameInfo} from '../../../../../services/games/game-info';\r\nimport {Button} from '../../../../../basic-ui-components/button/base/button.component';\r\nimport {GameDetailsContainerBox} from '../../boxes/game-details-container/game-details-container.box';\r\nimport {GameTitleBox} from '../../boxes/game-title/game-title.box';\r\nimport {JackpotAmountBox} from '../../boxes/jackpot-amount/jackpot-amount.box';\r\nimport {GameJackpotComponent} from '../../../../game-jackpot/game-jackpot.component';\r\n\r\nexport interface GameDetailsContainerComponentProps {\r\n gameInfo: GameInfo;\r\n onOpenRealGame: () => void;\r\n}\r\n\r\n@observer\r\nexport class GameDetailsContainerComponent extends OrbitComponent {\r\n render() {\r\n return (\r\n \r\n \r\n {this.props.gameInfo.title}\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n {this.services.translation.translate('HIT_THE_JACKPOT')}\r\n \r\n \r\n );\r\n }\r\n}","import React from 'react';\r\nimport {OrbitComponent} from '../../base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\nimport {GameInfo} from '../../../services/games/game-info';\r\nimport {GameImageContainerComponent} from '../common/parts/game-image-container.component/game-image-container.component';\r\nimport {GameBox} from './boxes/game/game.box';\r\nimport {GameImageContainerBox} from './boxes/game-image-container/game-image-container.box';\r\nimport {GameDetailsContainerComponent} from './parts/game-details-container/game-details-container.component';\r\nimport {GAME_BOX_JACKPOT_TEMPLATE} from '../css-constants';\r\n\r\nexport interface SingleGameJackpotTemplateComponentProps {\r\n gameInfo: GameInfo;\r\n className: string;\r\n onOpenRealGame: () => void;\r\n}\r\n\r\n@observer\r\nexport class SingleGameJackpotTemplateComponent extends OrbitComponent {\r\n\r\n\r\n render() {\r\n let gameInfo = this.props.gameInfo;\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n );\r\n }\r\n}","import {LiveGameContainerDefaultBox} from \"./live-game-container.default.box\";\r\n\r\nexport const LiveGameContainerBox = LiveGameContainerDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const LiveGameContainerDefaultBox = styled.div`\r\n\r\n flex-shrink: 0;\r\n width: calc(100% / 4);\r\n padding: 1rem 0.5rem 3rem 0.5rem;\r\n\r\n @media ${props => props.theme.mediaQuery.sAndBelow} {\r\n width: calc(100% / 2);\r\n padding: 1rem 0.5rem;\r\n }\r\n`;\r\n","import React from 'react'\r\nimport {observer} from 'mobx-react';\r\nimport {OrbitComponent} from '../../base-components/orbit-component/orbit-component';\r\nimport {LiveGameContainerBox} from './boxes/live-game-container/live-game-container.box';\r\nimport {LiveCasinoArenaGridItem} from '../../arena-host/new-live-casino-arena/live-casino-arena-grid/live-casino-arena-grid-item.component';\r\nimport {GameInfo} from '../../../services/games/game-info';\r\n\r\nexport interface SingleGameLiveTemplateComponentProps {\r\n tableConfig: GameInfo;\r\n}\r\n\r\n@observer\r\nexport class SingleGameLiveTemplateComponent extends OrbitComponent {\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n\r\n","import {VideoTileDefaultBox} from \"./video-tile-default.box\";\r\n\r\nexport const VideoTileBox = VideoTileDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoTileDefaultBox = styled.div`\r\n position: relative;\r\n width: 100%;\r\n overflow: hidden;\r\n box-shadow: ${props => props.theme.colors.boxBorderDark} 0px 10px 8px -6px;\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove} {\r\n border-radius: 12px;\r\n border: 0.5px solid ${props => props.theme.components.newLiveCasino.colors.gridItem.wrapperBorder};\r\n }\r\n\r\n @media ${({theme}) => `${theme.mediaQuery.lAndBelow} and ${theme.mediaQuery.landscape}`} {\r\n padding: 0 12.5vw;\r\n }\r\n\r\n @media ${({theme}) => `${theme.mediaQuery.mAndBelow} and ${theme.mediaQuery.landscape}`} {\r\n padding: 0 25vw;\r\n }\r\n`;\r\n","import {VideoOverlayItemDefaultBox} from \"./video-overlay-item.default.box\";\r\n\r\nexport const VideoOverlayItemBox = VideoOverlayItemDefaultBox;\r\n","import styled, {css} from \"styled-components\";\r\nimport { hexToRgba } from \"../../../../themes/hex-to-rgba\";\r\n\r\ninterface ILiveStreamingOverlayItemDefaultBoxProps {\r\n capsule?: boolean;\r\n transparent?: boolean;\r\n}\r\n\r\nexport const VideoOverlayItemDefaultBox = styled.div`\r\n display: flex;\r\n background: ${({theme, transparent}) => !transparent && hexToRgba(theme.colors.background.toString(), 0.7)};\r\n\r\n\r\n ${({capsule}) => !capsule ? css`\r\n padding: 2px;\r\n border-radius: 4px;\r\n ` : css`\r\n padding: 0 0.25rem;\r\n border-radius: 2rem;\r\n `}\r\n`;\r\n","import {VideoSoundButtonDefaultBox} from \"./video-sound-button-default.box\";\r\n\r\nexport const VideoSoundButtonBox = VideoSoundButtonDefaultBox;\r\n","import styled from \"styled-components\";\r\nimport { hexToRgba } from \"../../../../../themes/hex-to-rgba\";\r\n\r\nexport const VideoSoundButtonDefaultBox = styled.div`\r\n padding: 0.25rem;\r\n background: ${({theme}) => hexToRgba(theme.colors.background.toString(), 0.9) };\r\n border-radius: 50%;\r\n`;\r\n","import React from \"react\";\r\nimport {OrbitComponent} from \"../../../base-components/orbit-component/orbit-component\";\r\nimport {VideoSoundButtonBox} from \"./boxes/video-sound-button.box\";\r\nimport {IVideoPlayingService} from \"../../../../services/video-live-stream/video-playing.service.interface\";\r\n\r\nexport interface VideoSoundButtonComponentProps {\r\n videoPlayingService: IVideoPlayingService;\r\n}\r\n\r\nexport class VideoSoundButtonComponent extends OrbitComponent {\r\n private _renderIcon() {\r\n\r\n if (this.props.videoPlayingService.isVideoMuted) {\r\n const MuteIcon = this.services.theme.currentTheme.icons.muteIcon;\r\n return ;\r\n }\r\n\r\n const UnmuteIcon = this.services.theme.currentTheme.icons.unmuteIcon;\r\n return ;\r\n }\r\n\r\n private _handleClick() {\r\n this.props.videoPlayingService.toggleVideoSound();\r\n }\r\n\r\n render() {\r\n return (\r\n this._handleClick()}>\r\n {this._renderIcon()}\r\n \r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport {OrbitComponent} from \"../../../base-components/orbit-component/orbit-component\";\r\nimport {VideoOverlayItemBox} from \"../video-overlay-item/video-overlay-item.box\";\r\nimport {VideoSoundButtonComponent} from \"../video-sound-button/video-sound-button.component\";\r\nimport {IVideoPlayingService} from \"../../../../services/video-live-stream/video-playing.service.interface\";\r\n\r\nexport interface VideoTileOverlayComponentProps {\r\n videoPlayingService: IVideoPlayingService;\r\n videoPlaying: boolean;\r\n bottomLeftComponent?: React.ReactNode;\r\n bottomRightComponent?: React.ReactNode;\r\n}\r\n\r\nexport class VideoTileOverlayComponent extends OrbitComponent {\r\n\r\n private _padding = \"1rem\";\r\n\r\n private _renderTopRight(): React.ReactElement {\r\n if (!this.props.videoPlaying) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private _renderBottomLeft(): React.ReactElement {\r\n if (!this.props.bottomLeftComponent) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {this.props.bottomLeftComponent}\r\n \r\n );\r\n }\r\n\r\n private _renderBottomRight(): React.ReactElement {\r\n if (!this.props.bottomRightComponent) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {this.props.bottomRightComponent}\r\n \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this._renderTopRight()}\r\n {this._renderBottomLeft()}\r\n {this._renderBottomRight()}\r\n \r\n );\r\n }\r\n}\r\n","import {VideoTileOverlayDefaultBox} from \"./video-tile-overlay-default.box\";\r\n\r\nexport const VideoTileOverlayBox = VideoTileOverlayDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoTileOverlayDefaultBox = styled.div`\r\n position: absolute;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 100%;\r\n height: 100%;\r\n font-size: 1.5rem;\r\n ${({theme}) => theme.font.presets.regular};\r\n color: ${({theme}) => theme.colors.textLight};\r\n background: rgba(0,0,0,0.5);\r\n`;\r\n","import {VideoTileStaticImageOverlayDefaultBox} from \"./video-tile-static-image-overlay-default.box\";\r\n\r\nexport const VideoTileStaticImageOverlayBox = VideoTileStaticImageOverlayDefaultBox;\r\n","import styled from \"styled-components\";\r\nimport { hexToRgba } from \"../../../../themes/hex-to-rgba\";\r\n\r\nexport const VideoTileStaticImageOverlayDefaultBox = styled.div`\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n bottom: 0px;\r\n right: 0;\r\n background-color: ${props => hexToRgba(props.theme.colors.background, 0.85)};;\r\n`;\r\n","import {VideoTileSkeletonContainerDefaultBox} from \"./video-tile-skeleton-container-default.box\";\r\n\r\nexport const VideoTileSkeletonContainerBox = VideoTileSkeletonContainerDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoTileSkeletonContainerDefaultBox = styled.div`\r\n position: absolute;\r\n top: 0px;\r\n left: 0px;\r\n width: 100%;\r\n`;\r\n","import styled from \"styled-components\";\r\n\r\nconst DefaultBox = styled.video`\r\n width: 100%;\r\n height: 100%;\r\n`;\r\n\r\nexport const VideoDefaultBox = DefaultBox;\r\n","import { VideoDefaultBox } from './video-default.box';\r\nimport { styledByTheme } from '../../../../../themes/architecture/styled-by-theme';\r\n\r\nexport const VideoBox = styledByTheme(VideoDefaultBox).apply();\r\n","import { VideoPlayButtonDefaultBox } from './video-play-button.default.box';\r\n\r\n\r\nexport const VideoPlayButtonBox = VideoPlayButtonDefaultBox;\r\n","import styled from 'styled-components';\r\n\r\n\r\nexport const VideoPlayButtonDefaultBox = styled.button`\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-position: -544px -409px;\r\n background-size: 1200px;\r\n background-repeat: no-repeat;\r\n position: absolute;\r\n cursor: pointer;\r\n right: 0;\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n margin: auto;\r\n width: 6rem;\r\n height: 6rem;\r\n opacity: 0.9;\r\n transform: scale(1.5);\r\n transform: translateY(0);\r\n transition: all 0.35s ease-in-out;\r\n`;\r\n","import styled from 'styled-components';\r\n\r\ninterface LiveStreamingVideoContainerBoxProps {\r\n videoIsLoading: boolean;\r\n videoWatchTimeLimitReached: boolean;\r\n displayVideo: boolean;\r\n}\r\n\r\nconst DefaultBox = styled.div`\r\n display: ${props => props.displayVideo ? 'block' : 'none'};\r\n width: 100%;\r\n height: 100%;\r\n ${props => props.videoIsLoading || props.videoWatchTimeLimitReached ? 'filter: blur(2px)' : null};\r\n`;\r\n\r\nexport const VideoContainerDefaultBox = DefaultBox;\r\n","import { styledByTheme } from '../../../../themes/architecture/styled-by-theme';\r\nimport { VideoContainerDefaultBox } from './video-container-default.box';\r\n\r\nexport const VideoContainerBox = styledByTheme(VideoContainerDefaultBox).apply();\r\n","import React from 'react';\r\nimport { observer } from 'mobx-react';\r\nimport { CyClass } from '../../../../../common/cy-classes';\r\nimport { OrbitComponent } from '../../../base-components/orbit-component/orbit-component';\r\nimport { IVideoPlayer } from '../../../../services/video-live-stream/video-players/video-player.interface';\r\nimport { action, observable } from 'mobx';\r\nimport { VideoBox } from './boxes/video.box';\r\nimport { VideoPlayButtonBox } from \"../video-play-button/video-play-button.box\";\r\nimport {GameInfo} from \"../../../../services/games/game-info\";\r\nimport {VideoContainerBox} from '../video-container/video-container.box';\r\nimport {IVideoPlayingService} from \"../../../../services/video-live-stream/video-playing.service.interface\";\r\n\r\ninterface VideoComponentProps {\r\n gameInfo: GameInfo;\r\n muted: boolean;\r\n onError?: (hasError: boolean, retryFn?: (() => void) | undefined) => void;\r\n onLoading?: (isLoading: boolean) => void;\r\n onWatchTimeLimitReached?: (watchTimeLimitReached: boolean) => void;\r\n isInCenterStage: boolean;\r\n inViewport: boolean;\r\n display: boolean;\r\n videoPlayingService: IVideoPlayingService;\r\n isLastGametype?: boolean;\r\n}\r\n\r\n@observer\r\nexport class VideoComponent extends OrbitComponent {\r\n\r\n @observable\r\n private _videoPlayer: IVideoPlayer = null;\r\n @action.bound\r\n setLiveStreamPlayer(player: IVideoPlayer) {\r\n this._videoPlayer = player;\r\n }\r\n\r\n private _videoElement: HTMLVideoElement | null = null;\r\n private _isAppVisible = true;\r\n\r\n private _captureVideoRef = (mediaElement: HTMLVideoElement | null) => {\r\n if (mediaElement) {\r\n this._videoElement = mediaElement;\r\n }\r\n }\r\n\r\n private async _createVideoPlayer() {\r\n const liveStreamPlayer = await this.props.videoPlayingService.getVideoPlayer(this.props.gameInfo, this._videoElement, this.props.isLastGametype);\r\n this.setLiveStreamPlayer(liveStreamPlayer);\r\n }\r\n\r\n private _playVideo = async () => {\r\n if (!this._videoPlayer) {\r\n await this._createVideoPlayer();\r\n }\r\n\r\n this._videoPlayer.play();\r\n }\r\n\r\n private _pauseVideo = () => {\r\n if (this._videoPlayer) {\r\n this._videoPlayer.pause();\r\n }\r\n }\r\n\r\n private _detectIfVideoIsInFocus = () => {\r\n if (this._isAppVisible && this.props.isInCenterStage && this.props.inViewport) {\r\n this._playVideo();\r\n } else {\r\n this._pauseVideo();\r\n }\r\n }\r\n\r\n private _handlePlayVideoClick = () => {\r\n if (this._isAppVisible && this.props.isInCenterStage && this.props.inViewport) {\r\n this._playVideo();\r\n this._videoPlayer.logUIAction('info', 'VideoPlayClick');\r\n const gaCategory = this.props.videoPlayingService.gaCategory;\r\n this.services.analytics.sendAnalytics(gaCategory, \"AUTOPLAY\", \"VIDEO_PLAY_CLICK\", this.props.gameInfo.gameType, true);\r\n }\r\n }\r\n\r\n private _renderPlayerControls = () => {\r\n return this._videoPlayer?.autoplayAllowed ? null : (\r\n \r\n );\r\n }\r\n\r\n @action\r\n private _destroyPlayer = () => {\r\n if (this._videoPlayer) {\r\n this._videoPlayer.destroy();\r\n this._videoPlayer = null;\r\n }\r\n };\r\n\r\n private _retryPlay = () => {\r\n this._destroyPlayer();\r\n this._detectIfVideoIsInFocus();\r\n };\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n\r\n this._detectIfVideoIsInFocus();\r\n\r\n this.reaction(() => this._videoPlayer?.hasError, (hasError) => {\r\n this.props.onError(hasError, hasError ? this._retryPlay : undefined);\r\n });\r\n this.reaction(() => this._videoPlayer?.isLoading, (isLoading) => {\r\n this.props.onLoading(isLoading);\r\n });\r\n this.reaction(() => this._videoPlayer?.watchTimeLimitReached, (watchTimeLimitReached) => {\r\n this.props.onWatchTimeLimitReached(watchTimeLimitReached);\r\n });\r\n this.reaction(() => this.props.videoPlayingService.isAppVisible, (isAppVisible) => {\r\n this._isAppVisible = isAppVisible;\r\n this._detectIfVideoIsInFocus();\r\n });\r\n }\r\n\r\n componentDidUpdate(prevProps: VideoComponentProps) {\r\n if (this.props.isInCenterStage !== prevProps.isInCenterStage || this.props.inViewport !== prevProps.inViewport) {\r\n this._detectIfVideoIsInFocus();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n super.componentWillUnmount();\r\n\r\n this._destroyPlayer();\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n {this._renderPlayerControls()}\r\n \r\n )\r\n }\r\n};\r\n","import styled from \"styled-components\";\r\n\r\ninterface SkeletonAnimatedButtonProps {\r\n width: string;\r\n height: string;\r\n borderRadius?: string;\r\n}\r\n\r\nexport const SkeletonAnimatedButton = styled.div`\r\n\r\n width: ${({width}) => width};\r\n height: ${({height}) => height};\r\n margin-left: auto;\r\n\r\n background: rgba(255, 255, 255, 0.25);\r\n\r\n border-radius: ${({borderRadius}) => borderRadius || \"5px\"};\r\n animation: PulsatingAnimation 2.5s alternate infinite;\r\n\r\n @keyframes PulsatingAnimation {\r\n 0% {\r\n opacity: 1;\r\n }\r\n 100% {\r\n opacity: 0.25;\r\n }\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\n\r\ninterface SkeletonAnimatedRectangleProps {\r\n top?: boolean;\r\n left?: boolean;\r\n right?: boolean;\r\n bottom?: boolean;\r\n width: string;\r\n height: string;\r\n borderRadius?: string;\r\n}\r\n\r\nexport const SkeletonAnimatedRectangle = styled.div`\r\n\r\n position: absolute;\r\n\r\n top: ${({top}) => top ? \"1rem\" : \"initial\"};\r\n left: ${({left}) => left ? \"1rem\" : \"initial\"};\r\n right: ${({right}) => right ? \"1rem\" : \"initial\"};\r\n bottom: ${({bottom}) => bottom ? \"1rem\" : \"initial\"};\r\n\r\n width: ${({width}) => width};\r\n height: ${({height}) => height};\r\n\r\n background: rgba(0, 0, 0, 0.25);\r\n\r\n border-radius: ${({borderRadius}) => borderRadius || \"5px\"};\r\n animation: PulsatingAnimation 2s alternate infinite;\r\n\r\n @keyframes PulsatingAnimation {\r\n 0% {\r\n opacity: 1;\r\n }\r\n 100% {\r\n opacity: 0.5;\r\n }\r\n }\r\n`;\r\n","import {VideoTileFooterDefaultBox} from \"./video-tile-footer-default.box\";\r\n\r\nexport const VideoTileFooterBox = VideoTileFooterDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoTileFooterDefaultBox = styled.div`\r\n display: flex;\r\n position: relative;\r\n padding: 2rem 1rem;\r\n align-items: center;\r\n justify-content: space-between;\r\n background: ${({theme}) => theme.colors.backgroundLight.toString()};\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove } {\r\n padding: 3rem 2.5rem;\r\n }\r\n\r\n &::after {\r\n content: \"\";\r\n position: absolute;\r\n width: 100%;\r\n height: 1px;\r\n left: 0;\r\n bottom: 0;\r\n background: linear-gradient(90deg, transparent 10%, rgba(255, 255, 255, 0.85), transparent 90%);\r\n }\r\n`;\r\n","import {VideoTileSkeletonDefaultbox} from \"./video-tile-skeleton.defaultbox\";\r\n\r\nexport const VideoTileSkeletonbox = VideoTileSkeletonDefaultbox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoTileSkeletonDefaultbox = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n height: 100%;\r\n background: ${({theme}) => theme.colors.backgroundLight.toString()};\r\n`;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport {Image} from \"../raw-components/image/image\";\r\nimport {GameBox} from \"../single-game/regular-template/boxes/game/game.box\";\r\nimport {GameBox as JackpotGameBox} from \"../single-game/jackpot-template/boxes/game/game.box\";\r\nimport {GameTitleBox} from \"../single-game/regular-template/boxes/game-title/game-title.box\";\r\nimport {OrbitComponent} from \"../base-components/orbit-component/orbit-component\";\r\nimport {GameImageContainerBox} from \"../single-game/regular-template/boxes/game-image-container/game-image-container.box\";\r\nimport {GameImageContainerBox as JackpotGameImageContainerBox} from \"../single-game/jackpot-template/boxes/game-image-container/game-image-container.box\";\r\nimport {GameDetailsContainerBox} from \"../single-game/regular-template/boxes/game-details-container/game-details-container.box\";\r\nimport {GameDetailsContainerBox as JackpotGameDetailsContainerBox} from \"../single-game/jackpot-template/boxes/game-details-container/game-details-container.box\";\r\nimport {AspectRatioContainerComponent} from \"../raw-components/aspect-ratio-container/aspect-ratio-container.component\";\r\nimport {JACKPOTS_ITEM, LIVE_STREAMING_ITEM, STATIC_VIDEO_ITEM} from \"../../themes/css-global-classes\";\r\nimport {VideoTileBox} from \"../live-streaming-tile/video-common-components/video-tile/boxes/video-tile.box\";\r\nimport {SkeletonAnimatedButton} from \"../live-streaming-tile/video-common-components/video-tile-skeleton/skeleton-animated-button.box\";\r\nimport {SkeletonAnimatedRectangle} from \"../live-streaming-tile/video-common-components/video-tile-skeleton/skeleton-animated-rectangle.box\";\r\nimport {VideoTileFooterBox} from \"../live-streaming-tile/video-common-components/video-tile-footer/boxes/video-tile-footer.box\";\r\nimport {VideoTileSkeletonbox} from \"../live-streaming-tile/video-common-components/video-tile-skeleton/video-tile.skeletonbox\";\r\nimport { CyClass } from \"../../../common/cy-classes\";\r\nimport { AmountContainerBox } from \"./regular-template/boxes/amount-container/amount-container.box\";\r\n\r\nconst DummyTextBox = styled.div`\r\n background: linear-gradient(90deg, rgba(255, 255, 255, 0.25), rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.25));\r\n background-size: 400px 100%;\r\n border-radius: 5px;\r\n animation: TextLoadingAnimation 1s linear infinite;\r\n\r\n @keyframes TextLoadingAnimation {\r\n 0% {\r\n background-position-x: -200px;\r\n }\r\n 100% {\r\n background-position-x: 200px;\r\n }\r\n }\r\n`;\r\n\r\nconst DummyTextBoxAbsolute = styled(DummyTextBox)`\r\n position: absolute;\r\n top: 0;\r\n left: 25%;\r\n right: 25%;\r\n bottom: 0;\r\n`;\r\n\r\ninterface IDummyTextBoxRelativeProps {\r\n small?: boolean;\r\n}\r\n\r\nconst DummyTextBoxRelative = styled(DummyTextBox)`\r\n position: relative;\r\n width: ${({small}) => small ? \"50%\" : \"80%\"};\r\n height: 2rem;\r\n margin-bottom: 1rem;\r\n`;\r\n\r\nexport interface ISingleGameSkeletonComponentProps {\r\n templateType: string;\r\n useSquareIcons: boolean;\r\n placeholderImageSrc: string;\r\n}\r\n\r\nexport class SingleGameSkeletonComponent extends OrbitComponent {\r\n\r\n private _renderRegularGameSkeleton() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n  \r\n \r\n \r\n  \r\n \r\n \r\n );\r\n }\r\n\r\n private _renderJackpotGameSkeleton() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private _renderVideoSkeleton() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.services.mediaQuery.xlAndAbove ?\r\n :\r\n }\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n render () {\r\n\r\n if (this.props.templateType === JACKPOTS_ITEM) {\r\n return this._renderJackpotGameSkeleton();\r\n }\r\n\r\n if ([LIVE_STREAMING_ITEM, STATIC_VIDEO_ITEM].includes(this.props.templateType)) {\r\n return this._renderVideoSkeleton();\r\n }\r\n\r\n return this._renderRegularGameSkeleton();\r\n }\r\n}\r\n","import {VideoRetryScreenTileDefaultBox} from \"./video-retry-screen-tile-default.box\";\r\n\r\nexport const VideoRetryScreenTileBox = VideoRetryScreenTileDefaultBox;\r\n","import styled from \"styled-components\";\r\nimport { hexToRgba } from \"../../../../../themes/hex-to-rgba\";\r\n\r\nexport const VideoRetryScreenTileDefaultBox = styled.div`\r\n position: absolute;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n height: 100%;\r\n background: ${({theme}) => hexToRgba(theme.colors.background.toString(), 0.6)};\r\n`;\r\n","import {VideoRetryScreenIconDefaultBox} from \"./video-retry-screen-icon-default.box\";\r\n\r\nexport const VideoRetryScreenIconBox = VideoRetryScreenIconDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoRetryScreenIconDefaultBox = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 5rem;\r\n height: 5rem;\r\n background: ${({theme}) => theme.colors.background.toString()};\r\n border-radius: 50%;\r\n`;\r\n","import {VideoRetryScreenTitleDefaultBox} from \"./video-retry-screen-title-default.box\";\r\n\r\nexport const VideoRetryScreenTitleBox = VideoRetryScreenTitleDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoRetryScreenTitleDefaultBox = styled.div`\r\n margin: 1rem 0;\r\n font-size: 2rem;\r\n color: ${({theme}) => theme.colors.textLight.toString()};\r\n`;\r\n","import {VideoRetryScreenTextDefaultBox} from \"./video-retry-screen-text-default.box\";\r\n\r\nexport const VideoRetryScreenTextBox = VideoRetryScreenTextDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoRetryScreenTextDefaultBox = styled.div`\r\n margin-bottom: 1rem;\r\n font-size: 1.6rem;\r\n line-height: 1.5;\r\n color: ${({theme}) => theme.colors.textLight.toString()};\r\n`;\r\n","import {OrbitComponent} from \"../../../base-components/orbit-component/orbit-component\";\r\nimport React from 'react';\r\nimport {VideoRetryScreenTileBox} from \"./video-retry-screen-boxes/video-retry-screen-tile.box\";\r\nimport {VideoRetryScreenIconBox} from \"./video-retry-screen-boxes/video-retry-screen-icon.box\";\r\nimport {SvgSizeUnit} from \"../../../../basic-ui-components/icon/svg-icon/svg.icon\";\r\nimport {VideoRetryScreenTitleBox} from \"./video-retry-screen-boxes/video-retry-screen-title.box\";\r\nimport {VideoRetryScreenTextBox} from \"./video-retry-screen-boxes/video-retry-screen-text.box\";\r\nimport {Button} from \"../../../../basic-ui-components/button/base/button.component\";\r\n\r\nexport interface VideoRetryScreenComponentProps {\r\n retryFn: () => void;\r\n setHasError: (value: boolean, retryFn?: (() => void) | undefined) => void;\r\n}\r\n\r\nexport default class VideoRetryScreenComponent extends OrbitComponent {\r\n\r\n private _retryAndSetError = () => {\r\n if (this.props.retryFn) {\r\n this.props.retryFn();\r\n }\r\n this.props.setHasError(false);\r\n };\r\n\r\n render(): React.ReactNode {\r\n const BrokenLinkIcon = this.services.theme.currentTheme.icons.brokenLinkIcon;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {this.services.translation.translate('CANT_CONNECT_ERROR_TITLE')}\r\n \r\n \r\n {this.services.translation.translate('CANT_CONNECT_ERROR_MESSAGE')}\r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n","import {OrbitComponent} from \"../../../base-components/orbit-component/orbit-component\";\r\nimport {GameInfo} from \"../../../../services/games/game-info\";\r\nimport React from 'react';\r\nimport {LiveCasinoGridItemThumbnailImageBox} from \"../../../arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/thumbnail/live-casino-grid-item-thumbnail-image.box\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {addQueryParam} from \"../../../../../utils/url-utils\";\r\n\r\nexport interface VideoThumbnailImageComponentProps {\r\n onLoad: () => void;\r\n onSettled: () => void;\r\n gameInfo: GameInfo;\r\n filterBlur: boolean;\r\n}\r\n\r\nexport default class VideoThumbnailImageComponent extends OrbitComponent {\r\n\r\n //Priority for game video thumbnail image(takes the 1st that exists):\r\n // gameinfo.videoThumbnailUrl\r\n // tableinfo.TableImage\r\n // gameinfo.gameArenaIcon\r\n\r\n private _getImageSource = (): string => {\r\n const gameInfo: GameInfo = this.props.gameInfo;\r\n\r\n if (gameInfo?.videoThumbnailUrl) {\r\n return gameInfo?.videoThumbnailUrl;\r\n }\r\n\r\n const tableInfo = this.services.liveTableFeeds.getTableInfo(gameInfo.gameType);\r\n\r\n if (Check.isEmpty(tableInfo) || !tableInfo.TableImage) {\r\n return gameInfo?.gameArenaIcon;\r\n } else {\r\n // We need this random because we want to force react to reload the image because the url of the image is identical but the image changed.\r\n let imageRandom = Math.random();\r\n\r\n return addQueryParam(tableInfo.TableImage, imageRandom.toString());\r\n }\r\n };\r\n\r\n render(): React.ReactNode {\r\n return ();\r\n }\r\n}\r\n","import {VideoTileBettingRangeDefaultBox} from \"./video-tile-betting-range-default.box\";\r\n\r\nexport const VideoTileBettingRangeBox = VideoTileBettingRangeDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\n\r\nexport const VideoTileBettingRangeDefaultBox = styled.div`\r\n font-size: 1.2rem;\r\n color: ${({theme}) => theme.colors.brandPrimary.toString()};\r\n line-height: 1;\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove } {\r\n margin: 12px 0 0 0rem;\r\n font-size: 1.3rem;\r\n }\r\n`;\r\n","import {VideoTileGameTitleDefaultBox} from \"./video-tile-game-title-default.box\";\r\n\r\nexport const VideoTileGameTitleBox = VideoTileGameTitleDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoTileGameTitleDefaultBox = styled.div`\r\n text-overflow: ellipsis;\r\n font-size: 1rem;\r\n color: ${({theme}) => theme.colors.textLight.toString()};\r\n line-height: 1.1;\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove } {\r\n font-size: 1.3rem;\r\n }\r\n`;\r\n","import {VideoTileFooterSectionDefaultBox} from \"./video-tile-footer-section-default.box\";\r\n\r\nexport const VideoTileFooterSectionBox = VideoTileFooterSectionDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoTileFooterSectionDefaultBox = styled.div<{width?: string;}>`\r\n width: ${({width}) => width ? width : \"auto\"};\r\n margin-right: 1rem;\r\n`;\r\n","import styled from \"styled-components\";\r\n\r\nconst VideoListJackpotValueDefaultBox = styled.span`\r\n color: ${({theme}) => theme.colors.brandPrimary.toString()};\r\n margin-left: 0.5rem;\r\n`;\r\n\r\nexport const VideoListJackpotValueBox = VideoListJackpotValueDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nconst VideoListJackpotContainerDefaultBox = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n font-size: 1.2rem;\r\n margin-top: 5px;\r\n`;\r\n\r\nexport const VideoListJackpotContainerBox = VideoListJackpotContainerDefaultBox;","import {OrbitComponent} from \"../../../base-components/orbit-component/orbit-component\";\r\nimport React, {ReactNode} from 'react';\r\nimport {GameInfo} from \"../../../../services/games/game-info\";\r\nimport {ILiveTableInfo} from \"../../../../services/live-table-feeds-service/live-table-feeds.service.interface\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {VideoTileBettingRangeBox} from \"../video-tile-betting-range/video-tile-betting-range.box\";\r\nimport {VideoTileGameTitleBox} from \"../video-tile-game-title/video-tile-game-title.box\";\r\nimport {VideoTileFooterBox} from \"./boxes/video-tile-footer.box\";\r\nimport {CyClass} from \"../../../../../common/cy-classes\";\r\nimport {VideoTileFooterSectionBox} from \"./boxes/video-tile-footer-section.box\";\r\nimport {Button} from \"../../../../basic-ui-components/button/base/button.component\";\r\nimport {GameJackpotComponent} from \"../../../game-jackpot/game-jackpot.component\";\r\nimport {\r\n VideoListJackpotValueBox\r\n} from \"../../static-video-specific-components/video-list-jackpot-value/video-list-jackpot-value.box\";\r\nimport {\r\n VideoListJackpotContainerBox\r\n} from \"../../static-video-specific-components/video-list-jackpot-container/video-list-jackpot-container.box\";\r\n\r\nexport type VideoTileFooterType = \"jackpot\" | \"bets\";\r\n\r\nexport interface VideoTileFooterComponentProps {\r\n onClickPlay: () => void;\r\n gameInfo: GameInfo;\r\n type: VideoTileFooterType;\r\n}\r\n\r\nexport default class VideoTileFooterComponent extends OrbitComponent {\r\n\r\n //Information from GetLiveTables request feed, for live casino games only.\r\n private get _tableInfo(): ILiveTableInfo | null {\r\n return this.services.liveTableFeeds.getTableInfo(this.props.gameInfo.gameType);\r\n }\r\n\r\n private _renderMinMaxBet(): ReactNode {\r\n\r\n let minBet: number;\r\n let maxBet: number;\r\n\r\n if(Check.isNullOrUndefined(this._tableInfo?.MinBet) || Check.isNullOrUndefined(this._tableInfo?.MaxBet)){\r\n minBet = this.props.gameInfo.minBet;\r\n maxBet = this.props.gameInfo.maxBet;\r\n } else {\r\n minBet = this._tableInfo.MinBet;\r\n maxBet = this._tableInfo.MaxBet;\r\n }\r\n\r\n return (\r\n \r\n {this.services.currency.formatMinMaxBet(minBet, maxBet)}\r\n \r\n );\r\n }\r\n\r\n private _renderGameTitle(): ReactNode {\r\n\r\n let title = this.props.gameInfo?.title || \"\\xa0\";\r\n\r\n if (this._tableInfo?.Name?.length > 0) {\r\n title = this._tableInfo.Name;\r\n }\r\n\r\n return (\r\n \r\n {title}\r\n \r\n );\r\n }\r\n\r\n private _renderJackpot() {\r\n if(!this.props.gameInfo.hasJackpot) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n {this.services.translation.translate(\"JACKPOT\")}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private _renderSecondaryText() {\r\n switch (this.props.type) {\r\n case \"bets\":\r\n return this._renderMinMaxBet();\r\n case \"jackpot\":\r\n return this._renderJackpot();\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n render(): React.ReactNode {\r\n return (\r\n \r\n \r\n {this._renderGameTitle()}\r\n {this._renderSecondaryText()}\r\n \r\n \r\n \r\n {this.services.translation.translate(\"PLAY_NOW\")}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { imagePreload, ImagePreloadPromiseResponse } from \"../../../../../common/utils/image-preload\";\r\nimport {CyClass} from \"../../../../../common/cy-classes\";\r\nimport {OrbitComponent} from \"../../../base-components/orbit-component/orbit-component\";\r\nimport {VideoTileBox} from \"./boxes/video-tile.box\";\r\nimport {AspectRatioContainerComponent} from \"../../../raw-components/aspect-ratio-container/aspect-ratio-container.component\";\r\nimport {VideoTileOverlayComponent} from \"../video-tile-overlay/video-tile-overlay.component\";\r\nimport {VideoTileOverlayBox} from \"../video-tile-overlay/boxes/video-tile-overlay.box\";\r\nimport {VideoTileStaticImageOverlayBox} from \"../video-tile-static-image-overlay/video-tile-static-image-overlay.box\";\r\nimport {VideoTileSkeletonContainerBox} from \"../video-tile-skeleton-container/video-tile-skeleton-container.box\";\r\nimport {VideoComponent} from \"../video-component/video.component\";\r\nimport {action, observable} from \"mobx\";\r\nimport {observer} from \"mobx-react\";\r\nimport {GameInfo} from \"../../../../services/games/game-info\";\r\nimport {SingleGameSkeletonComponent} from \"../../../single-game/single-game-skeleton.component\";\r\nimport {LIVE_STREAMING_ITEM} from \"../../../../themes/css-global-classes\";\r\nimport {TableSeatsComponent} from \"../../../arena-host/new-live-casino-arena/live-casino-arena-grid/shared-components/table-seats.component\";\r\nimport {RouletteDrawsComponent} from \"../../../arena-host/new-live-casino-arena/live-casino-arena-grid/shared-components/roulette-draws.component\";\r\nimport {IVideoPlayingService} from \"../../../../services/video-live-stream/video-playing.service.interface\";\r\nimport VideoRetryScreenComponent from \"../video-retry-screen/video-retry-screen.component\";\r\nimport {VIDEO_ITEM_TYPE} from \"../../../single-game/video-template/single-game-video-template.component\";\r\nimport VideoThumbnailImageComponent from \"../video-thumbnail-image/video-thumbnail-image.component\";\r\nimport VideoTileFooterComponent from \"../video-tile-footer/video-tile-footer.component\";\r\n\r\nexport interface VideoTileComponentProps {\r\n gameInfo: GameInfo;\r\n isInCenterStage: boolean;\r\n inViewport: boolean;\r\n onOpenRealGame: () => void;\r\n videoPlayingService: IVideoPlayingService;\r\n videoItemType: VIDEO_ITEM_TYPE;\r\n isLastGametype?: boolean;\r\n}\r\n\r\n@observer\r\nexport class VideoTileComponent extends OrbitComponent {\r\n private _posterImageLoadPromise: Promise | undefined = undefined;\r\n\r\n @observable\r\n private _hasError: boolean = false;\r\n\r\n private _retryFn: (() => void) | undefined;\r\n\r\n @action.bound\r\n setHasError(value: boolean, retryFn?: (() => void) | undefined) {\r\n this._hasError = value;\r\n this._retryFn = retryFn;\r\n }\r\n\r\n @observable\r\n private _posterImageLoaded = false;\r\n\r\n @action\r\n private setPosterImageLoaded(value: boolean) {\r\n this._posterImageLoaded = value;\r\n }\r\n private onPosterImageLoaded = () => {\r\n this.setPosterImageLoaded(true);\r\n }\r\n\r\n @observable\r\n private _isVideoLoading: boolean = true;\r\n\r\n @observable\r\n private _isFirstTimeLoading: boolean = true;\r\n\r\n @action.bound\r\n setIsVideoLoading(value: boolean) {\r\n this._isVideoLoading = value;\r\n if (value === false) {\r\n this.firstTimeLoadingDone();\r\n }\r\n }\r\n @action.bound\r\n firstTimeLoadingDone() {\r\n if (this._isFirstTimeLoading === true) {\r\n this._isFirstTimeLoading = false;\r\n }\r\n }\r\n\r\n @observable\r\n private _isWatchTimeLimitReached: boolean = false;\r\n\r\n @action.bound\r\n setIsWatchTimeLimitReached(value: boolean) {\r\n this._isWatchTimeLimitReached = value;\r\n }\r\n\r\n private _onPlayClickHandler = () => {\r\n this.props.onOpenRealGame();\r\n const gaCategory = this.props.videoPlayingService.gaCategory;\r\n this.services.analytics.sendAnalytics(gaCategory, \"PLAY_GAME\", \"CLICK\", this.props.gameInfo.gameType, true);\r\n };\r\n\r\n componentDidMount() {\r\n if (this.props.gameInfo.videoThumbnailUrl) {\r\n this._posterImageLoadPromise = imagePreload(this.props.gameInfo.videoThumbnailUrl);\r\n this._posterImageLoadPromise.then(this.onPosterImageLoaded);\r\n }\r\n }\r\n componentWillUnmount() {\r\n if (this._posterImageLoadPromise) {\r\n this._posterImageLoadPromise = undefined;\r\n }\r\n }\r\n\r\n private _renderPlayerOverlay() {\r\n if (!this._isWatchTimeLimitReached && !this._isVideoLoading) {\r\n return null;\r\n }\r\n\r\n let statusText = '';\r\n if (this._isWatchTimeLimitReached) {\r\n statusText = this.services.translation.translate('LIVE_STREAM_WATCH_TIME_REACHED');\r\n } else if (this._isVideoLoading) {\r\n statusText = this.services.translation.translate('LIVE_STREAM_VIDEO_LOADING');\r\n }\r\n\r\n return {statusText};\r\n }\r\n\r\n private _renderRetryScreen() {\r\n return (\r\n \r\n )\r\n }\r\n\r\n private _renderPlayer() {\r\n return (\r\n \r\n {/* For the video element I cannot conditionally render it for this.props.isInCenterStage because when the video reaches end and the user\r\n swipes right/left it renders again and starts again */}\r\n \r\n {((this.services.mediaQuery.xlAndAbove && !this.props.isInCenterStage) || this._hasError || (this.props.isInCenterStage && this._isFirstTimeLoading && this._posterImageLoaded)) ? this._renderVideoThumbnailImage(this._hasError && this.props.isInCenterStage) : this._renderPlayerOverlay()}\r\n {this._renderTileOverlayComponent()}\r\n {(this._hasError && this.props.isInCenterStage) ? this._renderRetryScreen() : null}\r\n \r\n );\r\n }\r\n\r\n private _renderTileOverlayComponent(): React.ReactNode {\r\n if (this.props.videoItemType === VIDEO_ITEM_TYPE.STATIC) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n const tableInfo = this.services.liveTableFeeds.getTableInfo(this.props.gameInfo.gameType);\r\n\r\n return (\r\n }\r\n bottomRightComponent={}\r\n videoPlaying={this.props.isInCenterStage && !this._hasError}\r\n />\r\n )\r\n\r\n }\r\n\r\n private _renderVideoThumbnailImage(filterBlur: boolean) {\r\n return \r\n }\r\n\r\n private _renderFooter() {\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _renderSkeleton() {\r\n if (this._isFirstTimeLoading && !this._posterImageLoaded) {\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n }\r\n\r\n private _renderStaticImageOverlay() {\r\n if (this.props.isInCenterStage || this.services.mediaQuery.lAndBelow) {\r\n return null;\r\n }\r\n return ;\r\n }\r\n\r\n\r\n render() {\r\n\r\n return (\r\n \r\n {this._renderPlayer()}\r\n {this._renderFooter()}\r\n {this._renderSkeleton()}\r\n {this._renderStaticImageOverlay()}\r\n \r\n );\r\n }\r\n}\r\n","import {VideoItemContainerDefaultBox} from \"./video-item-container-default.box\";\r\n\r\nexport const VideoItemContainerBox = VideoItemContainerDefaultBox;\r\n","import styled from \"styled-components\";\r\nimport {flexFixedSizeItem} from \"../../../../themes/architecture/css-helpers/flex\";\r\n\r\nexport const VideoItemContainerDefaultBox = styled.div<{stepBackStyle: boolean;}>`\r\n width: 100%;\r\n ${flexFixedSizeItem}\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove} {\r\n width: 33.33%;\r\n transition: transform 0.5s ease-in-out;\r\n transform: ${({stepBackStyle}) => stepBackStyle ? \"scale(0.7)\" : \"scale(1)\"};\r\n }\r\n`;\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {SingleGameRegularTemplateComponent} from './regular-template/single-game-regular-template.component';\r\nimport {GameInfo, OpenGameParameters} from '../../services/games/game-info';\r\nimport {CssClassNameBuilder} from '../../../utils/css-class-name-builder';\r\nimport {observer} from 'mobx-react';\r\nimport {GAME_BOX, SWIPER_MODE} from './css-constants';\r\nimport {SingleGameJackpotTemplateComponent} from './jackpot-template/single-game-jackpot-template.component';\r\nimport {JACKPOTS_ITEM, LIVE_CASINO_ITEM, LIVE_STREAMING_ITEM, STATIC_VIDEO_ITEM} from '../../themes/css-global-classes';\r\nimport {CyClass} from '../../../common/cy-classes';\r\nimport {SingleGameLiveTemplateComponent} from './live-template/single-game-live-template.component';\r\nimport {SingleGameVideoTemplate, VIDEO_ITEM_TYPE} from './video-template/single-game-video-template.component';\r\nimport {GameIconAnimationState} from './common/parts/game-image/game-image.component';\r\n\r\nexport interface SingleGameComponentProps {\r\n gameType: number;\r\n seoCategory: string;\r\n listTitle: string;\r\n listPosition?: number,\r\n AdminListID?: number,\r\n AIListTypeID?: number;\r\n templateType?: any;\r\n gameIndex?: number;\r\n skipIntermediatePage?: boolean;\r\n disableGameInfoHover: boolean;\r\n isInsideSwiper?: boolean;\r\n aiEngine?: string;\r\n useSquareIcons?: boolean;\r\n showNumberBadge?: boolean;\r\n intersectionTarget?: HTMLDivElement;\r\n hasTwoLinesTitle?: boolean;\r\n isLastGametype?: boolean;\r\n onBringInCentralView?: (gameIndex: number) => void;\r\n}\r\n\r\n@observer\r\nexport class SingleGameComponent extends OrbitComponent {\r\n private animatedIconState: GameIconAnimationState = \"static\";\r\n\r\n get gameInfo(): GameInfo {\r\n return this.services.games.gamesMap[this.props.gameType];\r\n }\r\n\r\n private openRealGame = () => {\r\n this._openGame(true);\r\n };\r\n\r\n private openAnonymousGame = () => {\r\n this._openGame(false);\r\n };\r\n\r\n private openInfoPage = () => {\r\n this.services.location.push(this.gameInfo.infoPageURL);\r\n this.sendAnalytics(`SEO_${this.gameInfo.gameType}`);\r\n };\r\n\r\n private _openGame(openInRealMode: boolean): void {\r\n\r\n\r\n const openGameParams: OpenGameParameters = {\r\n isRealMode: openInRealMode,\r\n pageName: this.props.seoCategory,\r\n listTitle: this.props.listTitle,\r\n listPosition: this.props.listPosition,\r\n AdminListID: this.props.AdminListID,\r\n AIListTypeID: this.props.AIListTypeID,\r\n gameIndex: this.props.gameIndex,\r\n aiEngine: this.props.aiEngine,\r\n showIntermediatePage: !this.props.skipIntermediatePage,\r\n animatedIconState: this.animatedIconState\r\n };\r\n\r\n this.gameInfo.open(openGameParams)\r\n }\r\n\r\n private get _allowPreview(): boolean {\r\n return this.services.lobbyGameInfoPreview.allowGamePreview\r\n && !this.props.disableGameInfoHover;\r\n }\r\n\r\n private sendAnalytics(label: string) {\r\n this.services.analytics.sendAnalytics(this.props.seoCategory, this.props.listTitle, label);\r\n }\r\n\r\n private setAnimatedIconState = (state: GameIconAnimationState) => {\r\n this.animatedIconState = state;\r\n }\r\n\r\n private onMouseEnter = () => {\r\n if (this._allowPreview) {\r\n this.services.lobbyGameInfoPreview.setGamePreview(this.props.gameType);\r\n }\r\n };\r\n\r\n\r\n private onMouseLeave = () => {\r\n if (this._allowPreview) {\r\n this.services.lobbyGameInfoPreview.clearGamePreview();\r\n }\r\n };\r\n\r\n\r\n private _buildComponentClasses(gameInfo: GameInfo): string {\r\n let builder = new CssClassNameBuilder();\r\n\r\n builder.append(GAME_BOX);\r\n\r\n if(this.props.isInsideSwiper) {\r\n builder = builder.append(SWIPER_MODE);\r\n }\r\n\r\n if (gameInfo) {\r\n builder = builder.append(`game-group-${toCssClass(gameInfo.gameGroup)}`)\r\n .append(gameInfo.gameCategoryClassName)\r\n .append(`game-company-${toCssClass(gameInfo.companyName)}`)\r\n .append(`game-type-${gameInfo.gameType}`);\r\n }\r\n\r\n if(this.props.skipIntermediatePage) {\r\n builder.append(CyClass('cy-skip-intermediate-page'));\r\n }\r\n\r\n return builder.build();\r\n\r\n }\r\n\r\n render() {\r\n\r\n let gameInfo = this.gameInfo;\r\n\r\n if(!gameInfo) {\r\n return null;\r\n }\r\n\r\n try {\r\n\r\n const classes = this._buildComponentClasses(gameInfo);\r\n\r\n switch (this.props.templateType) {\r\n\r\n case JACKPOTS_ITEM:\r\n return (\r\n \r\n );\r\n\r\n case LIVE_CASINO_ITEM:\r\n return (\r\n \r\n );\r\n\r\n case LIVE_STREAMING_ITEM:\r\n return (\r\n \r\n );\r\n\r\n case STATIC_VIDEO_ITEM:\r\n return (\r\n \r\n );\r\n\r\n default:\r\n return (\r\n \r\n );\r\n }\r\n\r\n } catch (err) {\r\n this.services.logger.error(`Failed to render SingleGameComponent for game ${gameInfo.gameType} - ${gameInfo.title} in list ${this.props.listTitle}`, err);\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nfunction toCssClass(str: string){\r\n try{\r\n return str.replace(/\\s+/g, '-').toLowerCase();\r\n }\r\n catch(e){\r\n return '';\r\n }\r\n}\r\n\r\n","import styled from 'styled-components';\r\nimport {GameBox} from '../../../single-game/regular-template/boxes/game/game.box';\r\nimport { CssRule } from '../../../../themes/architecture/css-helpers/css-rule';\r\n\r\n\r\nexport const GamePlaceHolderDefaultBox = styled(GameBox)`\r\n ${CssRule.For.mobile.embededHybrid.build()} & , ${CssRule.For.mobile.miniOrbit.build()} & {\r\n display: none;\r\n }\r\n`;","import { IJackpotHandler } from \"./jackpot-handler/jackpot-handler.interface\";\r\nimport {JACKPOT_STATE, JackpotType} from '../../../common/const/jackpot_map_ids';\r\n\r\nexport enum JackpotThemeType {\r\n Light,\r\n Dark\r\n}\r\n\r\nexport interface IJackpotData {\r\n amountInCents: number;\r\n jackpotId: string;\r\n jackpotState: JACKPOT_STATE;\r\n lastWinAmount: number;\r\n mustHitTime: Date;\r\n}\r\n\r\nexport interface IJackpotsWithStateService {\r\n readonly currentJackpots: Record;\r\n getThemeType(jpType: JackpotType): JackpotThemeType;\r\n}\r\n","import {GamePlaceHolderDefaultBox} from './game-placeholder.default.box';\r\n\r\nexport const GamePlaceHolderBox = GamePlaceHolderDefaultBox;","import {GameImageDefaultBox} from './game-image.default.box';\r\n\r\nexport const GameImageBox = GameImageDefaultBox;","import styled from 'styled-components';\r\nimport {GameImageBox as BaseGameImageBox} from '../../../single-game/common/boxes/game-image/game-image.box';\r\n\r\nexport const GameImageDefaultBox = styled(BaseGameImageBox)`\r\n cursor: default;\r\n`;\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {GamePlaceHolderBox} from './boxes/placeholder/game-placeholder.box';\r\nimport {GameImageBox} from './boxes/game-image/game-image.box';\r\nimport {GameImageContainerBox} from '../single-game/regular-template/boxes/game-image-container/game-image-container.box';\r\nimport {observer} from 'mobx-react';\r\nimport {GAME_IMAGE_CONTAINER, SWIPER_MODE} from '../single-game/css-constants';\r\nimport classNames from 'classnames';\r\n\r\nexport interface SingleGamePlaceholderComponentProps {\r\n isInsideSwiper: boolean\r\n}\r\n\r\n@observer\r\nexport class SingleGamePlaceholderComponent extends OrbitComponent {\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import styled from 'styled-components';\r\nimport {HOME_PAGE, JACKPOTS_ITEM, LIVE_STREAMING_ITEM, STATIC_VIDEO_ITEM} from '../../../../themes/css-global-classes';\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\n\r\n\r\nconst DefaultBox = styled.div`\r\n position: relative;\r\n width: 100%;\r\n padding: 0;\r\n margin: 0 auto;\r\n overflow: hidden;\r\n`;\r\n\r\n//Temporary duplicate style for STATIC_VIDEO_ITEM and LIVE_STREAMING_ITEM\r\nexport const PcBox = styled(DefaultBox)`\r\n .${HOME_PAGE} & {\r\n width: 90%;\r\n &.${JACKPOTS_ITEM} {\r\n width: 100%;\r\n }\r\n }\r\n\r\n &.${LIVE_STREAMING_ITEM},\r\n &.${STATIC_VIDEO_ITEM} {\r\n width: 104%;\r\n padding-bottom: 2.5rem;\r\n padding-top: 1.5rem;\r\n margin-left: -2%;\r\n clip-path: polygon(8% 0, 92% 0%, 92% 100%, 8% 100%);\r\n overflow: unset;\r\n }\r\n`;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\r\n padding: 0;\r\n`;\r\n\r\nexport const SwiperWrapperDefaultBox = styledByDevice(PcBox, MobileBox);\r\n","import styled from 'styled-components';\r\nimport {PcBox as BasePcBox, MobileBox as BaseMobileBox} from './swiper-wrapper.default.box';\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\n\r\nconst PcBox = styled(BasePcBox)`\r\n padding-top: 0.5rem;\r\n`;\r\n\r\nconst MobileBox = styled(BaseMobileBox)`\r\n padding-top: 0;\r\n`;\r\n\r\n\r\nexport const SwiperWrapperCasino777Box = styledByDevice(PcBox, MobileBox);","import {styledByTheme} from '../../../../themes/architecture/styled-by-theme';\r\nimport {SwiperWrapperDefaultBox} from './swiper-wrapper.default.box';\r\nimport {SwiperWrapperCasino777Box} from './swiper-wrapper.casino777.box';\r\n\r\nexport const SwiperWrapperBox = styledByTheme(SwiperWrapperDefaultBox).forCasino777(SwiperWrapperCasino777Box).apply();","import styled, { css } from 'styled-components';\r\nimport {JACKPOTS_ITEM} from '../../../../themes/css-global-classes';\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\n\r\n\r\ninterface SwiperGamesListBoxProp {\r\n isTouchDevice: boolean;\r\n}\r\n\r\nconst DefaultBox = styled.div`\r\n position: relative;\r\n display: flex;\r\n justify-content: flex-start;\r\n transition: transform .5s ease-in-out;\r\n will-change: transform;\r\n width: 100%;\r\n height: 100%;\r\n margin-top: 10px;\r\n\r\n -webkit-overflow-scrolling: touch;\r\n -ms-overflow-style: -ms-autohiding-scrollbar;\r\n overflow: -moz-scrollbars-none;\r\n &::-webkit-scrollbar {\r\n display: none;\r\n }\r\n\r\n ${({isTouchDevice}) => !isTouchDevice? css`\r\n overflow: visible;\r\n ` : css`\r\n overflow-x: scroll;\r\n overflow-y: hidden;\r\n `}\r\n`;\r\n\r\nconst PcBox = styled(DefaultBox)`\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n margin-top: 5px;\r\n margin-bottom: 20px;\r\n\r\n .${JACKPOTS_ITEM} & {\r\n display: flex;\r\n flex-wrap: wrap;\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n flex-direction: column;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndAbove} {\r\n flex-direction: row;\r\n }\r\n }\r\n`;\r\n\r\nexport const SwiperGamesListDefaultBox = styledByDevice(PcBox, MobileBox);\r\n","import {SwiperGamesListDefaultBox} from './swiper-games-list.default.box';\r\n\r\nexport const SwiperGamesListBox = SwiperGamesListDefaultBox;","import {SwiperDefaultBox} from './swiper.default.box';\r\n\r\nexport const SwiperBox = SwiperDefaultBox;","import styled from 'styled-components';\r\n\r\nexport const SwiperDefaultBox = styled.div`\r\n /** This overflow hidden solves a problem with live video streaming on right-to-left languages\r\n Without it, the IntersectionObserver does not work correctly and a weird behavior happens:\r\n The first video flicker like it is intersecting and transforms from scale(0.7) to scale(1) but in that process it loses intersection (ratio>0.99) and transforms back\r\n And again and again, an infinite flicker */\r\n overflow: hidden;\r\n`;","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {SingleGameComponent} from '../single-game/single-game.component';\r\nimport {SingleGamePlaceholderComponent} from '../single-game-placeholder/single-game-placeholder.component';\r\nimport classNames from 'classnames';\r\nimport {SwiperWrapperBox} from './boxes/swiper-wrapper/swiper-wrapper.box';\r\nimport {SwiperGamesListBox} from './boxes/swiper-games-list/swiper-games-list.box';\r\nimport {SwiperBox} from './boxes/swiper/swiper.box';\r\nimport {SingleGameSkeletonComponent} from '../single-game/single-game-skeleton.component';\r\nimport {CyClass} from '../../../common/cy-classes';\r\nimport {TextTranslation} from \"../../services/translation/text-translation\";\r\nimport {OrbitComponent} from \"../base-components/orbit-component/orbit-component\";\r\nimport {ISwiperListViewModel} from \"../../services/arenas/models/lists/swiper-list-view-model.interface\";\r\nimport { observable, action } from 'mobx';\r\n\r\nexport interface OrbitSwiperComponentProps {\r\n viewModel: ISwiperListViewModel;\r\n numberOfPlaceholders?: number;\r\n skipIntermediatePage?: boolean;\r\n showNumberBadge?: boolean;\r\n className?: string;\r\n listPosition: number;\r\n lastGameType?: number;\r\n onGameBringInCentralView?: (gameIndex: number) => void;\r\n}\r\n\r\n\r\n@observer\r\nexport class OrbitSwiperComponent extends OrbitComponent {\r\n\r\n private get _title() : TextTranslation {\r\n return this.props.viewModel.title;\r\n }\r\n\r\n private get _shouldUseSquareIcons(): boolean {\r\n return this.props.viewModel.shouldUseSquareIcons();\r\n }\r\n\r\n private _renderOneGame(gameType: number, gameIndex: number, isLastGametype?: boolean) {\r\n return ;\r\n }\r\n\r\n private _renderPlaceholders() {\r\n\r\n if (this.props.viewModel.numberOfGamesSkeletons > 0) {\r\n return null;\r\n }\r\n\r\n let placeHolders: React.ReactNode[] = [];\r\n let numberOfPlaceholders = this.props.numberOfPlaceholders || 0;\r\n\r\n for (let i = 0; i < numberOfPlaceholders; i++) {\r\n placeHolders.push();\r\n }\r\n\r\n return placeHolders;\r\n }\r\n \r\n\r\n private _swiperGameListElement: HTMLDivElement | null = null;\r\n\r\n private _captureSwiperGameListElement = (element: HTMLDivElement | null) => {\r\n this._swiperGameListElement = element;\r\n this.props.viewModel.swipeLogicHandler.setElement(element);\r\n };\r\n\r\n /* I hate to put observable on a dom element but for now I cannot see another method to rapidly notify child nodes that the wrapper is ready to be used in IntersectionObserver as root\r\n I can create the intersection observer here and pass it instead of the DOM element but I would also need to put observable on the intersection observer */\r\n @observable.ref\r\n private _swiperWrapperElement: HTMLDivElement | null = null;\r\n @action\r\n private _captureSwiperWrapperElement = (element: HTMLDivElement | null) => {\r\n this._swiperWrapperElement = element;\r\n };\r\n\r\n private get aiEngine(): string {\r\n return this.props.viewModel.aiEngine;\r\n }\r\n private _renderGamesSkeletons() {\r\n\r\n let numSkeletons = this.props.viewModel.numberOfGamesSkeletons;\r\n let placeholderImageSrc: string;\r\n if (this._shouldUseSquareIcons) {\r\n placeholderImageSrc = this.services.theme.currentTheme?.images.gameIconPlaceHolderSq.toString();\r\n } else {\r\n placeholderImageSrc = this.services.theme.currentTheme?.images.gameIconPlaceHolder.toString();\r\n }\r\n\r\n let skeletons = [];\r\n\r\n for (let i = 1; i <= numSkeletons; i++) {\r\n skeletons.push(\r\n \r\n );\r\n }\r\n\r\n return skeletons;\r\n }\r\n\r\n private _renderGames() {\r\n\r\n const gameTypes = this.props.viewModel.gameTypes;\r\n if (gameTypes.length > 0) {\r\n return gameTypes.map((gameType, index) => {\r\n return this._renderOneGame(gameType, index, gameType === this.props.lastGameType)\r\n });\r\n }\r\n\r\n return this._renderGamesSkeletons();\r\n }\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n\r\n this.reaction(() => [this.props.viewModel.gameTypes],\r\n () => this.props.viewModel.swipeLogicHandler.setElement(this._swiperGameListElement),\r\n {\r\n fireImmediately: true\r\n });\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly, prevState: Readonly<{}>, snapshot?: any) {\r\n this.props.viewModel.swipeLogicHandler.setElement(this._swiperGameListElement)\r\n }\r\n\r\n render() {\r\n if(!this.props.viewModel.isVisible) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n\r\n {this.props.viewModel.renderListHeader()}\r\n\r\n \r\n \r\n {this.props.viewModel.renderSpecialWidgets()}\r\n {this._renderGames()}\r\n {this._renderPlaceholders()}\r\n \r\n {this.props.viewModel.renderListNavigation()}\r\n \r\n\r\n {this.props.viewModel.renderListFooter()}\r\n\r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {OrbitSwiperComponent} from '../orbit-swiper/orbit-swiper.component';\r\nimport {observer} from 'mobx-react';\r\nimport {ISwiperListViewModel} from \"../../services/arenas/models/lists/swiper-list-view-model.interface\";\r\n\r\ninterface RecentlyPlayedComponentProps {\r\n viewModel: ISwiperListViewModel;\r\n listPosition: number\r\n}\r\n\r\n@observer\r\nexport class RecentlyPlayedComponent extends OrbitComponent {\r\n\r\n render() {\r\n const viewModel = this.props.viewModel;\r\n let numberOfPlaceholders = Math.max(0, 6 - viewModel.gameTypes.length);\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\n\r\n","import React from \"react\";\r\nimport {IGamesListRenderer} from \"./games-list-renderer.interface\";\r\nimport {IGamesListViewModel} from \"./games-list-view-model.interface\";\r\nimport {IArenaToGamesListAdapter} from \"../arenas/arena-to-games-list-adapter.interface\";\r\nimport {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {computed} from \"mobx\";\r\nimport {TextTranslation} from \"../../../translation/text-translation\";\r\n\r\nexport abstract class GamesListBaseModel implements IGamesListRenderer, IGamesListViewModel {\r\n constructor(protected readonly arena: IArenaToGamesListAdapter) {\r\n\r\n }\r\n\r\n abstract get listId(): number;\r\n abstract get title(): TextTranslation;\r\n abstract get forceInLayout(): boolean;\r\n abstract get templateType(): string;\r\n\r\n protected abstract get _forceRoundIcons(): boolean;\r\n protected abstract get _useSquareIcons(): boolean;\r\n protected abstract get _isAISorted(): boolean;\r\n protected abstract get _numberOfGamesToBeIgnoredInAISorting(): number | undefined;\r\n protected abstract _shouldBeDisplayed(): boolean;\r\n protected abstract _renderList(listPosition: number): React.ReactElement | null;\r\n protected abstract _getGameTypes(): number[];\r\n abstract renderListHeader(): React.ReactElement;\r\n\r\n protected get services(): IServiceFactoryExtended {\r\n return this.arena.services;\r\n }\r\n\r\n get arenaName(): string {\r\n return this.arena.arenaName;\r\n }\r\n\r\n get listKey(): string {\r\n return `${this.arena.arenaName}_${this.title.translationKey}_${this.listId}`;\r\n }\r\n\r\n get aiEngine(): string {\r\n if(this.arena.aiEngine) {\r\n return this.arena.aiEngine;\r\n }\r\n\r\n if(this._isAISorted) {\r\n return this.services.aiEngine.getAiEngine();\r\n }\r\n\r\n return \"\";\r\n }\r\n get maxGamesToShowInList(): number {\r\n return this.arena.maxGamesToShowInList;\r\n }\r\n\r\n @computed\r\n get isVisible(): boolean {\r\n return this._shouldBeDisplayed();\r\n }\r\n\r\n @computed\r\n get gameTypes(): number[] {\r\n return this._applyGameTypesTransformations(this._getGameTypes());\r\n }\r\n\r\n protected _applyGameTypesTransformations(gameTypes: number[]): number[] {\r\n return this._reduceGameTypes(\r\n this._sortGameTypes(\r\n this._distinctGameTypes(gameTypes)));\r\n }\r\n\r\n protected _sortGameTypes(gameTypes: number[]): number[] {\r\n if(this._isAISorted) {\r\n return this.services.aiEngine.sortGames(gameTypes, {ignoreNumberOfGames: this._numberOfGamesToBeIgnoredInAISorting});\r\n }\r\n return gameTypes;\r\n }\r\n\r\n protected _reduceGameTypes(gameTypes: number[]): number[] {\r\n return gameTypes.filter(gt => this.services.gamesFilter.filteredGamesMap[gt])\r\n .slice(0, this.maxGamesToShowInList);\r\n }\r\n\r\n protected _distinctGameTypes(gameTypes: number[]): number[] {\r\n return [...new Set(gameTypes)];\r\n }\r\n\r\n shouldUseSquareIcons(): boolean {\r\n if(this._forceRoundIcons){\r\n return false;\r\n }\r\n\r\n return this.services.device.hybrid.isEmbedded || this.services.theme.shouldUseSquareIcons || this._useSquareIcons;\r\n }\r\n\r\n render(listPosition: number): React.ReactElement | null {\r\n return this._renderList(listPosition);\r\n }\r\n\r\n}","export const JACKPOT_WIDGET = 'daily-jackpot';\r\nexport const RED_TIGER_JACKPOT = 'red-tiger-jackpot';","import styled from 'styled-components';\r\nimport { flexFixedSizeItem } from '../../../../themes/architecture/css-helpers/flex';\r\nimport { CssRule } from '../../../../themes/architecture/css-helpers/css-rule';\r\nimport {JACKPOT_WIDGET} from '../../constants';\r\nimport {EXCLUSIVES_LIST_ICON} from \"../../../../themes/css-global-classes\";\r\n\r\nexport const ListTitleIconDefaultBox = styled.span`\r\n ${flexFixedSizeItem}\r\n display: inline-block;\r\n width: 3rem;\r\n height: 2.5rem;\r\n margin: 0 1rem 0 0;\r\n background-position: center center;\r\n background-repeat: no-repeat;\r\n background-size: contain;\r\n ${CssRule.For.mobile.build()} & {\r\n width: 2rem;\r\n height: 2rem;\r\n }\r\n\r\n .${JACKPOT_WIDGET} & {\r\n background-image: url(\"${props => props.theme.images.gamesListTitle.dailyJackpot.toString()}\")\r\n }\r\n\r\n .${EXCLUSIVES_LIST_ICON} & {\r\n background-image: url(\"${props => props.theme.images.gamesListTitle.exclusive.toString()}\")\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\nimport {ListTitleIconDefaultBox} from \"./list-title-icon.default.box\";\r\nimport {JACKPOT_WIDGET} from '../../constants';\r\n\r\nexport const ListTitleIconWsopCipBox = styled(ListTitleIconDefaultBox)`\r\n .${JACKPOT_WIDGET} & {\r\n background-image: url(\"${props => props.theme.images.miniOrbit.gamesListTitleOverride.dailyJackpot.toString()}\");\r\n }\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const ListTitleIconCisBox = styled.span``;","import {styledByTheme} from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {ListTitleIconDefaultBox} from \"./list-title-icon.default.box\";\r\nimport {ListTitleIconWsopCipBox} from \"./list-title-icon.wsop.cip.box\";\r\nimport {ListTitleIconCisBox} from \"./list-title-icon.cis.box\";\r\n\r\nexport const ListTitleIconBox = styledByTheme(ListTitleIconDefaultBox)\r\n .forCis(ListTitleIconCisBox)\r\n .forWsopCip(ListTitleIconWsopCipBox)\r\n .apply();","import styled from 'styled-components';\r\n\r\nexport const JackpotWidgetDefaultBox = styled.div<{isClickable?: boolean}>`\r\n cursor: ${({isClickable}) => isClickable ? \"pointer\" : \"default\"};\r\n\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n top: 0;\r\n bottom: 0;\r\n`;\r\n","import {JackpotWidgetDefaultBox} from './jackpot-widget.default.box';\r\nimport {styledByTheme} from '../../../themes/architecture/styled-by-theme';\r\n\r\nexport const JackpotWidgetBox = styledByTheme(JackpotWidgetDefaultBox).apply();","import styled, {css} from 'styled-components';\r\nimport { JackpotType } from '../../../../../common/const/jackpot_map_ids';\r\nimport {JACKPOT_WIDGET_LAYOUT} from '../../jackpot-widget.component';\r\nimport {OrbitTheme} from '../../../../themes/architecture/orbit-theme.interface';\r\n\r\nexport interface IJackpotWidgetBgBoxProps {\r\n jackpotType: JackpotType;\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n shouldRenderSkeleton?: boolean;\r\n}\r\n\r\nconst handleBackgroundImage = (props: IJackpotWidgetBgBoxProps, theme: OrbitTheme) => {\r\n if (props.shouldRenderSkeleton) {\r\n return 'none';\r\n }\r\n if (\r\n (props.layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE || props.layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE_WIDE) &&\r\n theme.images.jackpotWidget.byType[props.jackpotType].landscape?.background\r\n ) {\r\n return 'url(' + theme.images.jackpotWidget.byType[props.jackpotType].landscape.background.toString() + ')';\r\n }\r\n return 'url(' + theme.images.jackpotWidget.byType[props.jackpotType].background.toString() + ')';\r\n}\r\n\r\nexport const JackpotWidgetBgBox = styled.div`\r\n background-image: ${props => handleBackgroundImage(props, props.theme) };\r\n background-size: cover;\r\n width: 100%;\r\n height: 100%;\r\n background-position-y: bottom;\r\n\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n\r\n border-radius: 10px;\r\n\r\n ${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE_WIDE && css`\r\n flex-direction: row;\r\n align-items: center;\r\n `}\r\n\r\n animation: JackpotBackgroundLoadingAnimation 1.5s linear infinite;\r\n\r\n @keyframes JackpotBackgroundLoadingAnimation {\r\n 0% {\r\n background-color: #000000;\r\n }\r\n 50% {\r\n background-color: #171717;\r\n }\r\n 100% {\r\n background-color: #000000;\r\n }\r\n }\r\n`;\r\n","import styled, {css} from 'styled-components';\r\nimport {JACKPOT_WIDGET_LAYOUT} from '../../jackpot-widget.component';\r\n\r\nexport interface IJackpotWidgetLogoBoxProps {\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n};\r\n\r\nexport const JackpotWidgetLogoBox = styled.img`\r\n /* In a widget of 468px wide, logo should be 222px wide */\r\n width: 47.436%;\r\n margin: 0rem auto;\r\n display: block;\r\n\r\n ${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.PORTRAIT && css`\r\n\t width: 78%;\r\n\t padding-top: 1rem;\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n width: 83%;\r\n }\r\n `}\r\n\r\n ${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE_WIDE && css`\r\n width: 25%;\r\n padding-left: 1rem;\r\n `}\r\n`;\r\n","import styled, { css } from \"styled-components\";\r\nimport { styledByTheme } from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {JACKPOT_STATE} from '../../../../../common/const/jackpot_map_ids';\r\nimport { JackpotThemeType } from \"../../../../services/jackpots-with-state/jackpots-with-state.service.interface\";\r\nimport {JACKPOT_WIDGET_LAYOUT} from \"../../jackpot-widget.component\";\r\n\r\ninterface IJackpotWidgetAmountBox {\r\n state: JACKPOT_STATE;\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n widgetWidth: number;\r\n themeType: JackpotThemeType;\r\n}\r\n\r\nconst handleAmountBoxFontSize = (layout: JACKPOT_WIDGET_LAYOUT, widgetWidth: number, mAndBelow: boolean = false) => {\r\n switch (layout) {\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE:\r\n /** In desktop view at a widget width of 468px, the amount should be of font-size 35px */\r\n return widgetWidth * 35 / 468 + \"px\";\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE_WIDE:\r\n /** In minimized view at a widget width of 375px, the amount should be of font-size 16px */\r\n return widgetWidth * 16 / 375 + \"px\";\r\n case JACKPOT_WIDGET_LAYOUT.PORTRAIT:\r\n default:\r\n if (mAndBelow) {\r\n /** In mobile view at a widget width of 131px, the amount should be of font-size 16px */\r\n return widgetWidth * 16 / 131 + \"px\";\r\n } else {\r\n /** In mobile view at a widget width of 131px, the amount should be of font-size 19px */\r\n return widgetWidth * 19 / 131 + \"px\";\r\n }\r\n }\r\n};\r\n\r\nconst JackpotWidgetAmountDefaultBox = styled.div`\r\n text-align: center;\r\n width: 100%;\r\n color: ${({state, theme}) => state === JACKPOT_STATE.Cold ? theme.colors.textLight : theme.colors.brandSecondary };\r\n text-shadow: 0px 2px 3px ${({theme}) => theme.colors.backgroundMiddleDark};\r\n /* font-preset: a standardized combination of font-family + font-weight + font-style + font-stretch */\r\n ${({state, theme}) => state === JACKPOT_STATE.Cold ? theme.font.presets.bold : theme.font.presets.black }\r\n ${({state}) => state === JACKPOT_STATE.Cold ? css`\r\n opacity: 0.8;\r\n ` : null };\r\n font-size: ${({layout, widgetWidth}) => handleAmountBoxFontSize(layout, widgetWidth)};\r\n /* bugfix: 2039067 */\r\n padding-bottom: 0.8rem;\r\n line-height: 1.2;\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n font-size: ${({layout, widgetWidth}) => handleAmountBoxFontSize(layout, widgetWidth, true)};\r\n }\r\n`;\r\n\r\nconst JackpotWidgetAmountCasino777Box = styled(JackpotWidgetAmountDefaultBox)`\r\n color: ${({state, theme, themeType}) => (themeType === JackpotThemeType.Light ? (state === JACKPOT_STATE.Cold ? theme.colors.textContrast : theme.colors.danger) : theme.colors.brandSecondary) };\r\n text-shadow: none;\r\n`;\r\n\r\nconst JackpotWidgetAmountSiBox = styled(JackpotWidgetAmountDefaultBox)`\r\n color: ${({theme}) => theme.colors.moneyColor };\r\n text-shadow: none;\r\n`;\r\n\r\nexport const JackpotWidgetAmountBox = styledByTheme(JackpotWidgetAmountDefaultBox)\r\n .forCasino777(JackpotWidgetAmountCasino777Box)\r\n .forSI(JackpotWidgetAmountSiBox)\r\n .apply();\r\n","import styled, { css } from \"styled-components\";\r\nimport {JACKPOT_WIDGET_LAYOUT} from \"../../jackpot-widget.component\";\r\n\r\nexport interface IJackpotWidgetFooterBoxProps {\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n};\r\n\r\nexport const JackpotWidgetFooterBox = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 0 2rem;\r\n\r\n ${({layout}) => (layout === JACKPOT_WIDGET_LAYOUT.PORTRAIT) && css`\r\n\t flex-direction: column;\r\n\t padding: 0rem 0rem 0.6rem;\r\n\t`}\r\n\r\n\t${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE_WIDE && css`\r\n\t\tflex-direction: column;\r\n\t\tjustify-content: center;\r\n\t\twidth: 35%;\r\n\t\tpadding: 0 1rem 0 0;\r\n\t`}\r\n`;\r\n","import styled from \"styled-components\";\r\nimport { styledByTheme } from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport {JACKPOT_STATE} from '../../../../../../../common/const/jackpot_map_ids';\r\nimport { JackpotThemeType } from \"../../../../../../services/jackpots-with-state/jackpots-with-state.service.interface\";\r\nimport {JACKPOT_WIDGET_LAYOUT} from \"../../../../jackpot-widget.component\";\r\n\r\ninterface IJackpotWidgetClockLabelBox{\r\n state: JACKPOT_STATE;\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n widgetWidth: number;\r\n themeType: JackpotThemeType;\r\n}\r\n\r\nconst handleClockLabelFontSize = (layout: JACKPOT_WIDGET_LAYOUT, widgetWidth: number) => {\r\n switch (layout) {\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE:\r\n /** In landscape view at a widget width of 468px, the amount should be of font-size 14px */\r\n return widgetWidth * 14 / 468 + \"px\";\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE_WIDE:\r\n /** In minimized view at a widget width of 375px, the amount should be of font-size 9px */\r\n return widgetWidth * 9 / 375 + \"px\";\r\n case JACKPOT_WIDGET_LAYOUT.PORTRAIT:\r\n default:\r\n /** In portrait view at a widget width of 131px, the amount should be of font-size 9px */\r\n return widgetWidth * 9 / 131 + \"px\";\r\n }\r\n};\r\n\r\nconst JackpotWidgetClockLabelDefaultBox = styled.div`\r\n ${({theme}) => theme.font.presets.body};\r\n text-transform: uppercase;\r\n color: ${({state, theme}) => state === JACKPOT_STATE.Hot ? theme.colors.brandSecondary : theme.colors.textLight };\r\n letter-spacing: 0.02rem;\r\n\r\n width: ${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE ? \"74%\" : \"100%\" };\r\n text-align: ${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE ? \"left\" : \"center\" };\r\n font-size: ${({widgetWidth, layout}) => handleClockLabelFontSize(layout, widgetWidth)};\r\n`;\r\n\r\nconst JackpotWidgetClockLabelCasino777Box = styled(JackpotWidgetClockLabelDefaultBox)`\r\n color: ${({state, theme, themeType}) => themeType === JackpotThemeType.Light ? (state === JACKPOT_STATE.Hot ? theme.colors.danger : theme.colors.textContrast) : theme.colors.brandSecondary};\r\n`;\r\n\r\nconst JackpotWidgetClockLabelSiBox = styled(JackpotWidgetClockLabelDefaultBox)`\r\n color: ${({theme}) => theme.colors.textContrast };\r\n`;\r\n\r\nexport const JackpotWidgetClockLabelBox = styledByTheme(JackpotWidgetClockLabelDefaultBox)\r\n .forCasino777(JackpotWidgetClockLabelCasino777Box)\r\n .forSI(JackpotWidgetClockLabelSiBox)\r\n .apply();\r\n","import styled from \"styled-components\";\r\nimport { styledByTheme } from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport { JackpotThemeType } from \"../../../../../../services/jackpots-with-state/jackpots-with-state.service.interface\";\r\nimport {JACKPOT_WIDGET_LAYOUT} from \"../../../../jackpot-widget.component\";\r\n\r\nexport interface IJackpotWidgetClockBoxProps {\r\n className?: string;\r\n widgetWidth?: number;\r\n themeType: JackpotThemeType;\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n}\r\n\r\nconst handleClockBoxFontSize = (layout: JACKPOT_WIDGET_LAYOUT, widgetWidth: number): string => {\r\n switch (layout) {\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE:\r\n /** In landscape view at a widget width of 468px, the amount should be of font-size 30px */\r\n return widgetWidth ? (widgetWidth * 30 / 468 + \"px\") : \"30px\";\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE_WIDE:\r\n /** In minimized view at a widget width of 375px, the amount should be of font-size 15px */\r\n return widgetWidth ? (widgetWidth * 15 / 375 + \"px\") : \"15px\";\r\n case JACKPOT_WIDGET_LAYOUT.PORTRAIT:\r\n default:\r\n /** In portrait view at a widget width of 131px, the amount should be of font-size 15px */\r\n return widgetWidth ? (widgetWidth * 15 / 131 + \"px\") : \"15px\";\r\n }\r\n};\r\n\r\nconst JackpotWidgetClockDefaultBox = styled.div`\r\n color: ${({theme}) => theme.colors.textLight};\r\n font-family: ${({theme}) => theme.components.jackpotWidget.font.clock};\r\n\r\n width: ${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE ? \"26%\" : \"100%\" };\r\n text-align: ${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE ? \"right\" : \"center\" };\r\n\r\n /** For the floating clock shown in game, no need to compute relative (fluid) font-size */\r\n font-size: ${({widgetWidth, layout}) => handleClockBoxFontSize(layout, widgetWidth)};\r\n /* bugfix: 2039067 */\r\n line-height: 1.0;\r\n padding-bottom: 0.5rem;\r\n`;\r\n\r\nconst JackpotWidgetClockCasino777Box = styled(JackpotWidgetClockDefaultBox)`\r\n color: ${({themeType, theme}) => themeType === JackpotThemeType.Light ? theme.colors.brandPrimaryContrast : theme.colors.brandSecondary};\r\n`;\r\n\r\nconst JackpotWidgetClockSiBox = styled(JackpotWidgetClockDefaultBox)`\r\n color: ${({theme}) => /* theme.colors.textContrast */ theme.colors.moneyColor };\r\n`;\r\n\r\nexport const JackpotWidgetClockBox = styledByTheme(JackpotWidgetClockDefaultBox)\r\n .forCasino777(JackpotWidgetClockCasino777Box)\r\n .forSI(JackpotWidgetClockSiBox)\r\n .apply();\r\n","import React from 'react';\r\nimport { observable, action } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport { TimeSpan } from '@sparkware/app-utils';\r\nimport { OrbitComponent } from '../base-components/orbit-component/orbit-component';\r\nimport { JackpotWidgetClockBox } from './boxes/footer/clock/box/jackpot-widget-clock.box';\r\nimport {JACKPOT_STATE, JackpotType} from '../../../common/const/jackpot_map_ids';\r\nimport {JACKPOT_WIDGET_LAYOUT} from './jackpot-widget.component';\r\n\r\ninterface IDailyJackpotWidgetClockComponentProps {\r\n jackpotState: JACKPOT_STATE;\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n getMustHitTime: () => Date; \r\n widgetWidth?: number;\r\n jackpotType: JackpotType;\r\n}\r\n\r\n@observer\r\nexport class JackpotWidgetClockComponent extends OrbitComponent {\r\n private updateClockInterval: number | undefined = undefined;\r\n @observable\r\n private clockValue: string = \"\";\r\n\r\n componentDidMount() {\r\n this.clockInit();\r\n }\r\n\r\n componentDidUpdate(prevProps: IDailyJackpotWidgetClockComponentProps) {\r\n if (prevProps.getMustHitTime() !== this.props.getMustHitTime()) {\r\n this.clearClockInterval();\r\n this.clockInit();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.clearClockInterval();\r\n }\r\n\r\n private clockInit() {\r\n this.updateClock();\r\n this.updateClockInterval = setInterval(() => {\r\n this.updateClock();\r\n }, 1000);\r\n }\r\n\r\n private clearClockInterval() {\r\n if (this.updateClockInterval) {\r\n clearInterval(this.updateClockInterval);\r\n this.updateClockInterval = undefined;\r\n }\r\n }\r\n\r\n @action\r\n private updateClock() {\r\n const serverDate = this.services.time.getCurrentServerDate();\r\n if(!serverDate) {\r\n this.services.logger.warning('Server date is invalid');\r\n return;\r\n }\r\n\r\n const mustHitDate = this.props.getMustHitTime();\r\n\r\n // round it to 1 second\r\n const remainingTimeMilis = Math.round((mustHitDate.getTime() - serverDate.getTime()) / 1000) * 1000;\r\n const remainingTimeTimeSp = TimeSpan.fromMilliseconds(Math.max(0, remainingTimeMilis));\r\n this.clockValue = remainingTimeTimeSp.toString({useTotalHours: true});\r\n }\r\n\r\n render() {\r\n return \r\n { this.clockValue }\r\n ;\r\n }\r\n}\r\n","import styled from \"styled-components\";\r\nimport { styledByTheme } from \"../../../../../themes/architecture/styled-by-theme\";\r\nimport { JackpotThemeType } from \"../../../../../services/jackpots-with-state/jackpots-with-state.service.interface\";\r\nimport {JACKPOT_WIDGET_LAYOUT} from \"../../../jackpot-widget.component\";\r\n\r\ninterface IJackpotWidgetAmountLabelBox {\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n widgetWidth: number;\r\n themeType: JackpotThemeType;\r\n}\r\n\r\nconst handleAmountLabelFontSize = (layout: JACKPOT_WIDGET_LAYOUT, widgetWidth: number) => {\r\n switch (layout) {\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE:\r\n /** In landscape view at a widget width of 468px, the amount should be of font-size 15px */\r\n return widgetWidth * 15 / 468 + \"px\";\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE_WIDE:\r\n /** In minimized view at a widget width of 375px, the amount should be of font-size 9px */\r\n return widgetWidth * 9 / 375 + \"px\";\r\n case JACKPOT_WIDGET_LAYOUT.PORTRAIT:\r\n default:\r\n /** In portrait view at a widget width of 131px, the amount should be of font-size 9px */\r\n return widgetWidth * 9 / 131 + \"px\";\r\n }\r\n};\r\n\r\n/**\r\n * This is the \"PAID\" label shown above the amount at cold state\r\n */\r\nconst JackpotWidgetAmountLabelDefaultBox = styled.div`\r\n width: 100%;\r\n margin: 0 auto;\r\n text-align: center;\r\n letter-spacing: 0.2rem;\r\n\r\n text-transform: uppercase;\r\n color: ${({theme}) => theme.colors.textLight};\r\n ${({theme}) => theme.font.presets.ultra};\r\n\r\n font-size: ${({widgetWidth, layout}) => handleAmountLabelFontSize(layout, widgetWidth)};\r\n`;\r\n\r\nconst JackpotWidgetAmountLabelCasino777Box = styled(JackpotWidgetAmountLabelDefaultBox)`\r\n color: ${(props) => props.themeType === JackpotThemeType.Light ? props.theme.colors.brandPrimaryContrast : props.theme.colors.brandSecondary};\r\n`;\r\n\r\nconst JackpotWidgetAmountLabelSiBox = styled(JackpotWidgetAmountLabelDefaultBox)`\r\n color: ${({theme}) => theme.colors.textContrast };\r\n`;\r\n\r\nexport const JackpotWidgetAmountLabelBox = styledByTheme(JackpotWidgetAmountLabelDefaultBox)\r\n .forCasino777(JackpotWidgetAmountLabelCasino777Box)\r\n .forSI(JackpotWidgetAmountLabelSiBox)\r\n .apply();\r\n","import styled from \"styled-components\";\r\nimport { styledByTheme } from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport { JackpotThemeType } from \"../../../../../../services/jackpots-with-state/jackpots-with-state.service.interface\";\r\nimport {JACKPOT_WIDGET_LAYOUT} from \"../../../../jackpot-widget.component\";\r\n\r\ninterface IJackpotWidgetCollectingLabelBox {\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n widgetWidth: number;\r\n themeType: JackpotThemeType;\r\n}\r\n\r\nconst handleCollectingLabelFontSize = (layout: JACKPOT_WIDGET_LAYOUT, widgetWidth: number) => {\r\n switch (layout) {\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE:\r\n return widgetWidth * 16 / 468 + \"px\";\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE_WIDE:\r\n return widgetWidth * 10 / 375 + \"px\";\r\n case JACKPOT_WIDGET_LAYOUT.PORTRAIT:\r\n default:\r\n return widgetWidth * 10 / 131 + \"px\";\r\n }\r\n};\r\n\r\nconst JackpotWidgetCollectingLabelDefaultBox = styled.div`\r\n ${({theme}) => theme.font.presets.body};\r\n color: ${({theme}) => theme.colors.brandSecondary};\r\n letter-spacing: 0.02rem;\r\n\r\n width: ${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE ? \"62%\" : \"100%\" };\r\n text-align: ${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE ? \"left\" : \"center\" };\r\n font-size: ${({widgetWidth, layout}) => handleCollectingLabelFontSize(layout, widgetWidth)};\r\n`;\r\n\r\nconst JackpotWidgetCollectingLabelCasino777Box = styled(JackpotWidgetCollectingLabelDefaultBox)`\r\n color: ${({theme, themeType}) => themeType === JackpotThemeType.Light ? theme.colors.danger : theme.colors.brandSecondary};\r\n`;\r\n\r\nconst JackpotWidgetCollectingLabelSiBox = styled(JackpotWidgetCollectingLabelDefaultBox)`\r\n color: ${({theme}) => theme.colors.textContrast };\r\n`;\r\n\r\nexport const JackpotWidgetCollectingLabelBox = styledByTheme(JackpotWidgetCollectingLabelDefaultBox)\r\n .forCasino777(JackpotWidgetCollectingLabelCasino777Box)\r\n .forSI(JackpotWidgetCollectingLabelSiBox).apply();\r\n","import styled from \"styled-components\";\r\nimport { styledByTheme } from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport { JackpotThemeType } from \"../../../../../../services/jackpots-with-state/jackpots-with-state.service.interface\";\r\nimport {JACKPOT_WIDGET_LAYOUT} from \"../../../../jackpot-widget.component\";\r\n\r\ninterface IJackpotWidgetCollectingAmountBox{\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n widgetWidth: number;\r\n themeType: JackpotThemeType;\r\n}\r\n\r\nconst handleCollectingAmountFontSize = (layout: JACKPOT_WIDGET_LAYOUT, widgetWidth: number) => {\r\n switch (layout) {\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE:\r\n /** In landscape view at a widget width of 468px, the amount should be of font-size 25px */\r\n return widgetWidth * 25 / 468 + \"px\";\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE_WIDE:\r\n /** In minimized view at a widget width of 375px, the amount should be of font-size 12px */\r\n return widgetWidth * 12 / 375 + \"px\";\r\n case JACKPOT_WIDGET_LAYOUT.PORTRAIT:\r\n default:\r\n /** In portrait view at a widget width of 131px, the amount should be of font-size 12px */\r\n return widgetWidth * 12 / 131 + \"px\";\r\n }\r\n};\r\n\r\nconst JackpotWidgetCollectingAmountDefaultBox = styled.div`\r\n ${({theme}) => theme.font.presets.bold};\r\n color: ${({theme}) => theme.colors.brandSecondary};\r\n\r\n width: ${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE ? \"38%\" : \"100%\" };\r\n text-align: ${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE ? \"right\" : \"center\" };\r\n font-size: ${({widgetWidth, layout}) => handleCollectingAmountFontSize(layout, widgetWidth)};\r\n`;\r\n\r\nconst JackpotWidgetCollectingAmountCasino777Box = styled(JackpotWidgetCollectingAmountDefaultBox)`\r\n color: ${({theme, themeType}) => themeType === JackpotThemeType.Light ? theme.colors.danger : theme.colors.brandSecondary};\r\n`;\r\n\r\nconst JackpotWidgetCollectingAmountSiBox = styled(JackpotWidgetCollectingAmountDefaultBox)`\r\n color: ${({theme}) => theme.colors.moneyColor };\r\n`;\r\n\r\nexport const JackpotWidgetCollectingAmountBox = styledByTheme(JackpotWidgetCollectingAmountDefaultBox)\r\n .forCasino777(JackpotWidgetCollectingAmountCasino777Box)\r\n .forSI(JackpotWidgetCollectingAmountSiBox).apply();\r\n","import styled, { keyframes, css } from \"styled-components\";\r\n\r\nconst animationProps = \"2s ease-in-out 0s normal infinite none running\";\r\n\r\n/**\r\n * The leftmost position of the sparkle (the center of the sparkle) in percentage\r\n */\r\nconst ShineLeftPosition = 20;\r\n/**\r\n * The rightmost position of the sparkle (the center of the sparkle) in percentage\r\n */\r\nconst ShineRightPosition = 80;\r\n\r\nconst BorderShineHeight = 2;\r\nconst BorderShineWidth = 30;\r\nfunction borderShineKeyframes(rtl?: boolean) {\r\n const startPos = (rtl ? ShineRightPosition : ShineLeftPosition) - (BorderShineWidth / 2);\r\n const endPos = (rtl ? ShineLeftPosition : ShineRightPosition) - (BorderShineWidth / 2);\r\n return keyframes`\r\n 0% {\r\n opacity: 0;\r\n left: ${startPos}%;\r\n }\r\n 20%, 30% {\r\n opacity: 0.5;\r\n left: ${startPos}%;\r\n }\r\n 50%, 60% {\r\n opacity: 1;\r\n left: ${endPos}%;\r\n }\r\n 80% {\r\n opacity: 0;\r\n left: ${endPos}%;\r\n }\r\n 100% {\r\n opacity: 0;\r\n left: ${startPos}%;\r\n }\r\n `;\r\n}\r\nexport const JackpotWidgetBorderShine = styled.div<{bottom?: boolean}>`\r\n position: absolute;\r\n width: ${BorderShineWidth}%;\r\n ${({bottom}) => bottom ? css`\r\n bottom: ${-(BorderShineHeight / 2)}px;\r\n ` : css`\r\n top: ${-(BorderShineHeight / 2)}px;\r\n `}\r\n height: ${BorderShineHeight}px;\r\n z-index: 10;\r\n background-color: transparent;\r\n background-image: linear-gradient(90deg, #00000000 0%, #FFFFFF 50%, #00000000 100%);\r\n\r\n animation: ${({bottom}) => borderShineKeyframes(bottom)} ${animationProps};\r\n`;\r\n\r\nconst RadialShineHeight = 22;\r\nconst RadialShineWidth = 20;\r\nfunction radialShineKeyframes(rtl?: boolean) {\r\n const startPos = (rtl ? ShineRightPosition : ShineLeftPosition) - (RadialShineWidth / 2);\r\n const endPos = (rtl ? ShineLeftPosition : ShineRightPosition) - (RadialShineWidth / 2);\r\n return keyframes`\r\n 0% {\r\n opacity: 0;\r\n left: ${startPos}%;\r\n }\r\n 20%, 30% {\r\n opacity: 0.1;\r\n left: ${startPos}%;\r\n }\r\n 50%, 60% {\r\n opacity: 1;\r\n left: ${endPos}%;\r\n }\r\n 80% {\r\n opacity: 0;\r\n left: ${endPos}%;\r\n }\r\n 100% {\r\n opacity: 0;\r\n left: ${startPos}%;\r\n }\r\n `;\r\n}\r\nexport const JackpotWidgetRadialShine = styled.div<{bottom?: boolean}>`\r\n position: absolute;\r\n width: ${RadialShineWidth}%;\r\n ${({bottom}) => bottom ? css`\r\n bottom: ${-(RadialShineHeight / 2)}px;\r\n ` : css`\r\n top: ${-(RadialShineHeight / 2)}px;\r\n `}\r\n height: ${RadialShineHeight}px;\r\n z-index: 10;\r\n background-color: transparent;\r\n background-image: radial-gradient(closest-side at 50% 50%, #FFFFFF 0%, #FFFFFF61 35%, #00000000 100%);\r\n\r\n animation: ${({bottom}) => radialShineKeyframes(bottom)} ${animationProps};\r\n`;\r\n","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {JACKPOT_STATE, JackpotInternalId, JackpotType} from '../../../common/const/jackpot_map_ids';\r\nimport {JackpotWidgetConfiguration} from '../../services/configurations/config-data-sections/jackpot-widget.configuration';\r\nimport {JackpotWidgetBox} from './boxes/jackpot-widget.box';\r\nimport {JackpotWidgetBgBox} from './boxes/bg/jackpot-widget-bg.box';\r\nimport {JackpotWidgetLogoBox} from './boxes/logo/jackpot-widget-logo.box';\r\nimport {JackpotWidgetAmountBox} from './boxes/amount/jackpot-widget-amount.box';\r\nimport {JackpotWidgetFooterBox} from './boxes/footer/jackpot-widget-footer.box';\r\nimport {JackpotWidgetClockLabelBox} from './boxes/footer/clock/label/jackpot-widget-clock-label.box';\r\nimport {JackpotWidgetClockComponent} from './jackpot-widget-clock.component';\r\nimport {JackpotWidgetAmountLabelBox} from './boxes/amount/label/jackpot-widget-amount-label.box';\r\nimport {JackpotWidgetCollectingLabelBox} from './boxes/footer/collecting/label/jackpot-widget-collecting-label';\r\nimport {JackpotWidgetCollectingAmountBox} from './boxes/footer/collecting/amount/jackpot-widget-collecting-amount';\r\nimport {JackpotWidgetBorderShine, JackpotWidgetRadialShine} from './boxes/shine/jackpot-widget-shine.box';\r\nimport {JackpotWidgetAspectRatioBox} from './boxes/aspect-ratio/jackpot-widget-aspect-ratio.box';\r\nimport {JackpotWidgetAmountContainer} from './boxes/amount/jackpot-widget-amount-container.box';\r\nimport {JackpotWidgetClockLabelSkeletonBox} from \"./skeleton/boxes/footer/jackpot-widget-clock-label-skeleton.box\";\r\nimport {JackpotWidgetCollectingLabelSkeletonBox} from \"./skeleton/boxes/footer/jackpot-widget-collecting-label-skeleton.box\";\r\nimport {JackpotWidgetFooterSkeletonBox} from \"./skeleton/boxes/footer/jackpot-widget-footer-container-skeleton.box\";\r\nimport {JackpotWidgetAmountSkeletonBox} from \"./skeleton/boxes/jackpot-widget-amount-skeleton.box\";\r\nimport {action, observable} from \"mobx\";\r\nimport { imagePreload } from '../../../common/utils/image-preload';\r\nimport {ResizeObserver, ResizeObserverEntry} from '@juggle/resize-observer';\r\nimport { IJackpotHandler } from '../../services/jackpots-with-state/jackpot-handler/jackpot-handler.interface';\r\nimport { IJackpotData } from '../../services/jackpots-with-state/jackpots-with-state.service.interface';\r\nimport {CyClass} from \"../../../common/cy-classes\";\r\n\r\n\r\nexport enum JACKPOT_WIDGET_LAYOUT {\r\n PORTRAIT,\r\n LANDSCAPE,\r\n LANDSCAPE_WIDE\r\n}\r\n\r\nexport interface IJackpotWidgetLayout {\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n}\r\n\r\nexport interface JackpotWidgetComponentProps {\r\n\t/**\r\n\t * We send the wrapper as prop because if the widget is not rendered, then we don't want to render the Wrapper either\r\n\t */\r\n WrapperBox?: React.ComponentType;\r\n\twidgetConfig?: JackpotWidgetConfiguration;\r\n layout?: JACKPOT_WIDGET_LAYOUT;\r\n seoCategory?: string;\r\n onClick?: () => void;\r\n}\r\n\r\n@observer\r\nexport class JackpotWidgetComponent extends OrbitComponent {\r\n\r\n\tprivate _onWidgetClick = () => {\r\n //Product want to check how many users click on the widgets even if it's not clickable\r\n this.services.analytics.sendAnalytics('Navigation', 'Jackpot_Widget', `${this.services.routing.currentRoute?.data?.arenaType}, ${this.props.widgetConfig?.jackpotType}`);\r\n\r\n if (this.props.onClick) {\r\n const listInfo = this.services.configuration.getGamesListByJackpotId(this.props.widgetConfig.jackpotId);\r\n this.services.analytics.sendAnalytics(this.props.seoCategory ?? \"List_Widget\", \"Widget_Clicked\", this.props.widgetConfig.jackpotType + (listInfo?.title? \"_\" + listInfo.title : \"\"));\r\n this.props.onClick();\r\n }\r\n }\r\n\r\n private _isWidgetClickable = () => {\r\n return !!this.props.onClick || this.props.widgetConfig.jackpotType === JackpotType.Party;\r\n }\r\n\r\n @observable\r\n private imagesReady = false;\r\n\r\n @action\r\n private _setImagesReady(readyState: boolean) {\r\n this.imagesReady = readyState;\r\n }\r\n\r\n private get _isJackpotHandlerReady(): boolean {\r\n const jackpotId = this.props.widgetConfig?.jackpotId ?? JackpotInternalId.Daily;\r\n const jackpotHandler = this.services.jackpotsWithState.currentJackpots[jackpotId];\r\n return !Check.isNullOrUndefined(jackpotHandler?.jackpotData);\r\n }\r\n\r\n private get _shouldRenderSkeleton() {\r\n return (!this.imagesReady || !this._isJackpotHandlerReady);\r\n }\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n\r\n const jackpotType = this.props.widgetConfig?.jackpotType ?? JackpotType.Daily;\r\n\r\n if (!this.services.theme.currentTheme.images.jackpotWidget.byType[jackpotType]) {\r\n // this can happen if in Orbit Admin metadata has jackpotType has unknown value for Orbit - for example \"HourlyCaptain8\"\r\n this.services.logger.warning(`Unknown JP type ${jackpotType} found!`)\r\n return;\r\n }\r\n\r\n Promise.all([\r\n imagePreload(this.services.theme.currentTheme.images.jackpotWidget.byType[jackpotType].logo.toString()),\r\n imagePreload(this.services.theme.currentTheme.images.jackpotWidget.byType[jackpotType].background.toString())\r\n ]).then(() => {\r\n this._setImagesReady(true);\r\n });\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.resizeObserverInstance) {\r\n this.resizeObserverInstance.disconnect();\r\n this.resizeObserverInstance = null;\r\n }\r\n }\r\n\r\n @observable\r\n private widgetWidth: number;\r\n private aspectRatioBox: HTMLDivElement | null;\r\n private resizeObserverInstance: ResizeObserver;\r\n private disposer: undefined | ((oldRefEl: HTMLDivElement) => void);\r\n\r\n @action\r\n private setWidgetWidth = (entries: ResizeObserverEntry[]) => {\r\n // We know we are only watching the aspect ratio box element so we take the first element in the array.\r\n // We are not using this.aspectRatioBox directly because from a typescript point of view that could be null\r\n // and from a react component lifecycle perspective it could be null as well\r\n let targetElement = entries[0].target;\r\n const elementRectangle = targetElement.getBoundingClientRect();\r\n this.widgetWidth = elementRectangle.width;\r\n };\r\n\r\n private _captureJackpotWidgetAspectRatioBoxRef = (refEl: HTMLDivElement | null) => {\r\n if (this.disposer) {\r\n this.disposer(this.aspectRatioBox);\r\n this.disposer = undefined;\r\n }\r\n this.aspectRatioBox = refEl;\r\n if (this.aspectRatioBox) {\r\n if (!this.resizeObserverInstance) {\r\n this.resizeObserverInstance = new ResizeObserver(this.setWidgetWidth);\r\n }\r\n this.resizeObserverInstance.observe(this.aspectRatioBox);\r\n this.disposer = (oldRefEl: HTMLDivElement) => {\r\n // At unmount, the resizeObserverInstance will be destroyed and the disposer will be called too late.\r\n // In that case, we don't do anything since the observer was disconnected at unmount\r\n if (this.resizeObserverInstance) {\r\n this.resizeObserverInstance.unobserve(oldRefEl);\r\n }\r\n }\r\n }\r\n };\r\n\r\n private _getCountDownTimerTranslationKey(jackpotState: JACKPOT_STATE) {\r\n let translationKey = '';\r\n switch (jackpotState) {\r\n case JACKPOT_STATE.Hot:\r\n translationKey = 'JACKPOT-WIDGET-DROPS-SOON';\r\n break;\r\n\r\n case JACKPOT_STATE.OffHours:\r\n translationKey = 'JACKPOT-WIDGET-STARTS-SOON';\r\n break;\r\n\r\n case JACKPOT_STATE.Regular:\r\n default:\r\n translationKey = 'JACKPOT-WIDGET-MUST-PAY';\r\n break;\r\n }\r\n\r\n return translationKey;\r\n }\r\n\r\n private _getJackpotWidgetLayout(): JACKPOT_WIDGET_LAYOUT {\r\n return this.props.layout || JACKPOT_WIDGET_LAYOUT.PORTRAIT;\r\n }\r\n\r\n render() {\r\n\t\tif (!this.props.widgetConfig || !this.props.widgetConfig.display) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst jackpotId = String(this.props.widgetConfig.jackpotId ?? JackpotInternalId.Daily);\r\n\t\tconst jackpotType: JackpotType = this.props.widgetConfig.jackpotType ?? JackpotType.Daily;\r\n\r\n\t\tconst jackpotHandler: IJackpotHandler = this.services.jackpotsWithState.currentJackpots[jackpotId];\r\n const jackpotData = (jackpotHandler?.jackpotData || {}) as IJackpotData;\r\n\r\n if(!this._shouldRenderSkeleton) {\r\n jackpotHandler.startGradual(jackpotData);\r\n }\r\n\r\n const {jackpotState, lastWinAmount} = jackpotData || {};\r\n\r\n\t\tconst WrapperBox = this.props.WrapperBox || React.Fragment;\r\n\r\n const layout = this._getJackpotWidgetLayout();\r\n\r\n const themeType = this.services.jackpotsWithState.getThemeType(jackpotType);\r\n\r\n let mustHitTimeFn: () => Date = jackpotData ? () => {\r\n return jackpotData.mustHitTime;\r\n } : () => new Date(0);\r\n\r\n return \r\n \r\n \r\n \r\n {jackpotState === JACKPOT_STATE.Hot ? <>\r\n \r\n \r\n \r\n \r\n : null}\r\n\r\n {(this._shouldRenderSkeleton) ?\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n :\r\n <>\r\n \r\n \r\n {jackpotState === JACKPOT_STATE.Cold &&\r\n \r\n {this.services.translation.translate('JACKPOT-WIDGET-LAST-WIN')}\r\n \r\n }\r\n\r\n \r\n {jackpotState === JACKPOT_STATE.Cold ?\r\n this.services.currency.formatMoney(lastWinAmount) :\r\n this.services.currency.formatMoney(jackpotHandler.jackpotAmount)}\r\n \r\n \r\n\r\n \r\n {jackpotState === JACKPOT_STATE.Cold ?\r\n <>\r\n \r\n {this.services.translation.translate('JACKPOT-WIDGET-NEXT-JACKPOT')}\r\n \r\n\r\n \r\n {this.services.currency.formatMoney(jackpotHandler.jackpotAmount)}\r\n \r\n :\r\n <>\r\n \r\n {this.services.translation.translate(this._getCountDownTimerTranslationKey(jackpotState))}\r\n \r\n\r\n \r\n }\r\n \r\n }\r\n \r\n \r\n \r\n ;\r\n\t}\r\n\r\n}\r\n","import styled from \"styled-components\";\r\nimport {JACKPOT_WIDGET_LAYOUT} from \"../../jackpot-widget.component\";\r\n\r\nexport interface IJackpotWidgetAspectRatioBoxProps {\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n};\r\n\r\nconst handlePaddingTop = (layout: JACKPOT_WIDGET_LAYOUT) => {\r\n switch (layout) {\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE:\r\n return \"58%\";\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE_WIDE:\r\n return \"25%\";\r\n case JACKPOT_WIDGET_LAYOUT.PORTRAIT:\r\n default:\r\n return \"123%\";\r\n }\r\n};\r\n\r\nexport const JackpotWidgetAspectRatioBox = styled.div`\r\n position: relative;\r\n padding-top: ${({layout}) => handlePaddingTop(layout)};\r\n transition: padding-top 0.5s ease-in-out;\r\n`;\r\n","import styled from \"styled-components\";\r\nimport {JACKPOT_WIDGET_LAYOUT} from \"../../jackpot-widget.component\";\r\n\r\nexport interface IJackpotWidgetAmountContainerProps {\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n}\r\n\r\nexport const JackpotWidgetAmountContainer = styled.div`\r\n width: ${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE_WIDE ? \"40%\" : \"initial\"};\r\n`;\r\n","import styled from \"styled-components\";\r\n\r\nexport const JackpotWidgetFooterElementSkeletonBox = styled.div`\r\n width: 20%;\r\n height: 2rem;\r\n \r\n animation: FooterElementSkeletonAnimation 1.5s linear infinite;\r\n \r\n @keyframes FooterElementSkeletonAnimation {\r\n 0% {\r\n background-color: #474747;\r\n }\r\n 100% {\r\n background-color: #333333;\r\n }\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {JackpotWidgetFooterElementSkeletonBox} from \"./jackpot-widget-footer-element-skeleton.box\";\r\n\r\nexport const JackpotWidgetClockLabelSkeletonBox = styled(JackpotWidgetFooterElementSkeletonBox)`\r\n margin-left: 50%;\r\n`;","import styled from \"styled-components\";\r\nimport {JackpotWidgetFooterElementSkeletonBox} from \"./jackpot-widget-footer-element-skeleton.box\";\r\n\r\nexport const JackpotWidgetCollectingLabelSkeletonBox = styled(JackpotWidgetFooterElementSkeletonBox)`\r\n margin-left: 5%;\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const JackpotWidgetFooterSkeletonBox = styled.div`\r\n display: flex;\r\n margin-bottom: 0.8rem;\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const JackpotWidgetAmountSkeletonBox = styled.div`\r\n margin-top: 35%;\r\n margin-left: 25%;\r\n\r\n width: 50%;\r\n height: 2.8rem;\r\n \r\n animation: AmountSkeletonAnimation 1.5s linear infinite;\r\n @keyframes AmountSkeletonAnimation {\r\n 0% {\r\n background-color: #474747;\r\n }\r\n 100% {\r\n background-color: #333333;\r\n }\r\n }\r\n`;","import {ServiceBase} from \"../ServiceBase\";\r\n\r\nexport enum AnimatedIconUnloadReason {\r\n CONTEXT_LOST,\r\n VIEWPORT_EXIT,\r\n REQUESTED,\r\n GAME_OPEN\r\n}\r\n\r\nexport interface IAnimatedIconRequestOptions {\r\n jsonUrl: string;\r\n wrapper: HTMLElement;\r\n size: {width: number; height: number};\r\n timings: {delay: number; interval: number;};\r\n onAnimationLoad?(): void;\r\n onAnimationUnload?(reason: AnimatedIconUnloadReason): void;\r\n onAnimationBeforeUnload?(reason: AnimatedIconUnloadReason): void;\r\n}\r\n\r\nexport type AnimatedIconObservableTarget = IAnimatedIconRequestOptions & {\r\n animationDisposer?(reason: AnimatedIconUnloadReason): void;\r\n inViewport?: boolean;\r\n loadingInProgress?: boolean;\r\n abortLoading?: boolean;\r\n};\r\n\r\n\r\nexport class AnimatedIconBaseService extends ServiceBase{\r\n protected attemptDisposeAnimation(observedTarget: AnimatedIconObservableTarget, reason: AnimatedIconUnloadReason) {\r\n if (observedTarget.animationDisposer) {\r\n if (observedTarget.onAnimationBeforeUnload) {\r\n observedTarget.onAnimationBeforeUnload(reason);\r\n }\r\n observedTarget.animationDisposer(reason);\r\n observedTarget.animationDisposer = undefined;\r\n if (observedTarget.onAnimationUnload) {\r\n observedTarget.onAnimationUnload(reason);\r\n }\r\n } if (observedTarget.loadingInProgress) {\r\n // we cannot actually abort loading the resources (json, png, atlas) because they are xhr calls\r\n // so we set this flag and after the xhr is done we do not start the animation and we reset the flag\r\n observedTarget.abortLoading = true;\r\n }\r\n }\r\n\r\n protected async loadAnimatedIcon(options: AnimatedIconObservableTarget, resourceName: string) {\r\n if (options.loadingInProgress) {\r\n throw new Error(\"Animated Icon Loading in progress already for this icon. Please be patient\");\r\n }\r\n try {\r\n options.loadingInProgress = true;\r\n let {app: pixiApp, dispose: disposePixiApp, PixiSpine, canvas} = await this.services.pixiApp.createPixiApp({\r\n width: options.size.width, height: options.size.height,\r\n onContextLost: () => {\r\n this.attemptDisposeAnimation(options, AnimatedIconUnloadReason.CONTEXT_LOST);\r\n }\r\n });\r\n canvas.style.display = \"block\";\r\n canvas.style.width = \"100%\";\r\n\r\n const {resources} = await this.services.pixiApp.loadResources(pixiApp, [{name: resourceName, jsonUrl: options.jsonUrl}]).catch((e: unknown) => {\r\n disposePixiApp();\r\n throw e;\r\n });\r\n\r\n let spineAnimation = new PixiSpine.Spine(resources[resourceName].spineData);\r\n\r\n // get the animations\r\n const availableAnimations = resources[resourceName].spineData.animations.map(a => a.name);\r\n\r\n // play animation\r\n const runAnimation = () => {\r\n // animated icons will have only one animation that we play in loop. There won't be complex timeline animations\r\n spineAnimation.state.setAnimation(0, availableAnimations[0], false);\r\n }\r\n let animationSchedule: any;\r\n\r\n spineAnimation.state.addListener({\r\n complete: (entry) => {\r\n // when animation completes, schedule the next iteration\r\n animationSchedule = setTimeout(runAnimation, options.timings.interval);\r\n }\r\n });\r\n\r\n runAnimation();\r\n\r\n const animationDisposer = () => {\r\n clearTimeout(animationSchedule);\r\n spineAnimation?.destroy();\r\n animationSchedule = undefined;\r\n spineAnimation = undefined;\r\n disposePixiApp();\r\n };\r\n\r\n if (options.abortLoading) {\r\n animationDisposer();\r\n options.abortLoading = false;\r\n } else {\r\n options.animationDisposer = animationDisposer;\r\n // add the animation to the scene and render...\r\n pixiApp.stage.addChild(spineAnimation);\r\n options.wrapper.appendChild(pixiApp.view);\r\n\r\n if (options.onAnimationLoad) {\r\n options.onAnimationLoad();\r\n }\r\n }\r\n options.loadingInProgress = false;\r\n\r\n } catch (e) {\r\n options.loadingInProgress = false;\r\n throw e;\r\n }\r\n }\r\n}","import styled from 'styled-components';\r\nimport { flexFixedSizeItem } from '../../../../themes/architecture/css-helpers/flex';\r\n\r\nexport const JackpotWidgetDefaultBox = styled.div`\r\n ${flexFixedSizeItem}\r\n margin: 1rem 1rem 3rem;\r\n align-self: stretch;\r\n max-width: 24rem;\r\n width: calc(100% / 6);\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n width: calc(100% / 5);\r\n margin: 1rem 1.5rem 0;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n width: calc(100% / 3);\r\n margin: 1rem 1.5rem 0;\r\n }\r\n`;\r\n","import {JackpotWidgetDefaultBox} from './jackpot-widget-wrapper.default.box';\r\n\r\nexport const JackpotWidgetWrapperBox = JackpotWidgetDefaultBox;\r\n","import styled from 'styled-components';\r\nimport { flexFixedSizeItem } from '../../../../themes/architecture/css-helpers/flex';\r\n\r\nexport const RedTigerWidgetDefaultBox = styled.div`\r\n ${flexFixedSizeItem}\r\n margin: 1rem 1rem 3rem;\r\n align-self: stretch;\r\n max-width: 24rem;\r\n width: calc(100% / 6);\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n margin: 1rem 1.5rem 0;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n width: calc(100% / 5);\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n width: calc(100% / 3);\r\n }\r\n`;\r\n","import {RedTigerWidgetDefaultBox} from './red-tiger-widget.default.box';\r\n\r\nexport const RedTigerWidgetBox = RedTigerWidgetDefaultBox;\r\n","import styled from 'styled-components';\r\n\r\n\r\nexport const RedTigerWidgetHitAreaDefaultBox = styled.div`\r\n cursor: pointer;\r\n width: 100%;\r\n height: 100%;\r\n`;\r\n","import styled from 'styled-components';\r\nimport { RedTigerWidgetHitAreaDefaultBox } from './red-tiger-widget-hit-area.default.box';\r\n\r\n\r\nexport const RedTigerWidgetHitAreaCasino777Box = styled(RedTigerWidgetHitAreaDefaultBox)`\r\n cursor: default;\r\n`;","import { styledByTheme } from './../../../../themes/architecture/styled-by-theme';\r\nimport { RedTigerWidgetHitAreaDefaultBox } from './red-tiger-widget-hit-area.default.box';\r\nimport { RedTigerWidgetHitAreaCasino777Box } from './red-tiger-widget-hit-area.casino777.box';\r\n\r\nexport const RedTigerWidgetHitAreaBox = styledByTheme(RedTigerWidgetHitAreaDefaultBox)\r\n .forCasino777(RedTigerWidgetHitAreaCasino777Box)\r\n .apply();","import styled from 'styled-components';\r\n\r\n\r\nexport const RedTigerWidgetFrameContainerDefaultBox = styled.iframe`\r\n pointer-events: none;\r\n width: 100%;\r\n height: 100%;\r\n border-radius: 10px;\r\n`;\r\n","import { styledByTheme } from './../../../../themes/architecture/styled-by-theme';\r\nimport { RedTigerWidgetFrameContainerDefaultBox } from './red-tiger-widget-frame-container.default.box';\r\n\r\nexport const RedTigerWidgetFrameContainerBox = styledByTheme(RedTigerWidgetFrameContainerDefaultBox)\r\n .apply();","import React from 'react';\r\nimport { OrbitComponent } from '../base-components/orbit-component/orbit-component';\r\nimport { RedTigerJackpotWidgetConfiguration } from '../../services/configurations/config-data-sections/red-tiger-jackpot-widget.configuration';\r\nimport { observer } from 'mobx-react';\r\nimport { RedTigerWidgetBox } from './boxes/widget/red-tiger-widget.box';\r\nimport { RedTigerWidgetHitAreaBox } from './boxes/hitArea/red-tiger-widget-hit-area.box';\r\nimport { RedTigerWidgetFrameContainerBox } from './boxes/frameContainer/red-tiger-widget-frame-container.box';\r\nimport { CyClass } from '../../../common/cy-classes';\r\n\r\ninterface RedTigerWidgedComponentProps {\r\n widgetConfig?: RedTigerJackpotWidgetConfiguration;\r\n}\r\n\r\n@observer\r\nexport class RedTigerWidgetComponent extends OrbitComponent {\r\n \r\n private _onWidgetClick = () => {\r\n this.services.redTiger.redirectToWidgetActionLink(this.props.widgetConfig.actionLink);\r\n }\r\n \r\n private _logMissingProps() {\r\n if (!this.props.widgetConfig.actionLink) {\r\n // actionLink is optional. For example on 777 we don't have it\r\n this.services.logger.info('Missing actionLink parameter for RedTigerWidgetComponent');\r\n }\r\n\r\n if (!this.props.widgetConfig.parameters?.skin) {\r\n this.services.logger.warning('Missing skin parameter for RedTigerWidgetComponent');\r\n }\r\n\r\n if (!this.props.widgetConfig.parameters?.jackpotId) {\r\n this.services.logger.warning('Missing jackpotId parameter for RedTigerWidgetComponent');\r\n }\r\n }\r\n\r\n render() {\r\n if(!this.props.widgetConfig?.display) {\r\n return null;\r\n }\r\n this._logMissingProps();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import styled from 'styled-components';\r\nimport { GeneralTitleDefaultBox } from './general-title.default.box';\r\n\r\nexport const GeneralTitleCasinoSIBox = styled(GeneralTitleDefaultBox)`\r\n flex-grow: 100;\r\n border-radius: 3px 0px 0px 3px;\r\n border-left: 5px solid ${props => props.theme.colors.brandPrimary};\r\n`;","import {GeneralTitleDefaultBox} from './general-title.default.box';\r\nimport {GeneralTitleCasino777Box} from './general-title.casino777.box';\r\nimport {GeneralTitleCasinoSIBox} from './general-title.si.box';\r\nimport {styledByTheme} from '../../themes/architecture/styled-by-theme';\r\n\r\nexport const GeneralTitleBox = styledByTheme(GeneralTitleDefaultBox)\r\n .forCasino777(GeneralTitleCasino777Box)\r\n .forSI(GeneralTitleCasinoSIBox)\r\n .apply();\r\n\r\n","import styled from 'styled-components';\r\nimport {GeneralTitleBox} from '../../../../basic-components/general-title/general-title.box';\r\nimport {JACKPOT_WIDGET, RED_TIGER_JACKPOT} from '../../constants';\r\n\r\nexport const ListTitleTextDefaultBox = styled(GeneralTitleBox)`\r\n letter-spacing: 0.2rem;\r\n display: flex;\r\n align-items: center;\r\n padding-top: 0.5rem;\r\n padding-bottom: 0.5rem;\r\n color: ${props => props.theme.components.gamesListTitle.colors.text.regular};\r\n\r\n .${JACKPOT_WIDGET} & {\r\n color: ${props => props.theme.components.gamesListTitle.colors.text.dailyJackpot};\r\n border-left: 2px solid ${props => props.theme.components.gamesListTitle.colors.text.dailyJackpot};\r\n }\r\n\r\n .${RED_TIGER_JACKPOT} & {\r\n color: ${props => props.theme.components.gamesListTitle.colors.text.redTigerJackpot};\r\n border-left: 2px solid #ff014f;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n padding-top: 0.6rem;\r\n padding-bottom: 0.6rem;\r\n padding-right: 0.1rem;\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\nimport {JACKPOT_WIDGET, RED_TIGER_JACKPOT} from '../../constants';\r\nimport {ListTitleTextDefaultBox} from './list-title-text.default.box';\r\n\r\nexport const ListTitleTextCasino777Box = styled(ListTitleTextDefaultBox)`\r\n letter-spacing: 0.1rem;\r\n\r\n .${JACKPOT_WIDGET} & {\r\n border-left: none;\r\n }\r\n\r\n .${RED_TIGER_JACKPOT} & {\r\n border-left: none;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n align-items: flex-start;\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\nimport {ListTitleTextDefaultBox} from \"./list-title-text.default.box\";\r\n\r\nexport const ListTitleTextCipBox = styled(ListTitleTextDefaultBox)`\r\n ${({theme}) => theme.font.presets.secondary};\r\n`;","import styled from \"styled-components\";\r\nimport {ListTitleTextDefaultBox} from \"./list-title-text.default.box\";\r\nimport {JACKPOT_WIDGET, RED_TIGER_JACKPOT} from \"../../constants\";\r\n\r\nexport const ListTitleTextCisBox = styled(ListTitleTextDefaultBox)`\r\n ${({theme}) => theme.font.presets.secondary};\r\n background: none;\r\n border-left: none;\r\n padding: 0 0;\r\n\r\n .${JACKPOT_WIDGET} & {\r\n color: ${props => props.theme.components.gamesListTitle.colors.text.regular};\r\n border-left: none\r\n }\r\n\r\n .${RED_TIGER_JACKPOT} & {\r\n color: ${props => props.theme.components.gamesListTitle.colors.text.regular};\r\n border-left: none\r\n }\r\n`;","import styled from 'styled-components';\r\nimport {ListTitleTextDefaultBox} from './list-title-text.default.box';\r\nimport { JACKPOT_WIDGET, RED_TIGER_JACKPOT } from '../../constants';\r\n\r\nexport const ListTitleTextSiBox = styled(ListTitleTextDefaultBox)`\r\n letter-spacing: 0.1rem;\r\n \r\n background-image: linear-gradient(to right, ${props => props.theme.colors.background} 0%, ${props => props.theme.colors.background} 70%, ${props => props.theme.colors.background}00 100%);\r\n background-color: transparent;\r\n\r\n .${JACKPOT_WIDGET} & {\r\n border-left: 5px solid ${props => props.theme.colors.brandPrimary};\r\n }\r\n\r\n .${RED_TIGER_JACKPOT} & {\r\n border-left: 5px solid ${props => props.theme.colors.brandPrimary};\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\nimport {ListTitleTextDefaultBox} from './list-title-text.default.box';\r\nimport {JACKPOT_WIDGET, RED_TIGER_JACKPOT} from \"../../constants\";\r\n\r\nexport const ListTitleTextMrGreenBox = styled(ListTitleTextDefaultBox)`\r\n background: none;\r\n border-left: 0;\r\n \r\n .${JACKPOT_WIDGET} & {\r\n border-left: 0;\r\n }\r\n \r\n .${RED_TIGER_JACKPOT} & {\r\n border-left: 0;\r\n }\r\n`;\r\n\r\n","import {styledByTheme} from '../../../../themes/architecture/styled-by-theme';\r\nimport {ListTitleTextDefaultBox} from './list-title-text.default.box';\r\nimport {ListTitleTextCasino777Box} from './list-title-text.casino777.box';\r\nimport {ListTitleTextCipBox} from \"./list-title-text.cip.box\";\r\nimport {ListTitleTextCisBox} from \"./list-title-text.cis.box\";\r\nimport {ListTitleTextSiBox} from \"./list-title-text.si.box\";\r\nimport {ListTitleTextMrGreenBox} from \"./list-title-text.mrgreen.box\";\r\n\r\nexport const ListTitleTextBox = styledByTheme(ListTitleTextDefaultBox)\r\n .forCip(ListTitleTextCipBox)\r\n .forWsopCip(ListTitleTextCipBox)\r\n .forCis(ListTitleTextCisBox)\r\n .forCasino777(ListTitleTextCasino777Box)\r\n .forSI(ListTitleTextSiBox)\r\n .forMrGreen(ListTitleTextMrGreenBox)\r\n .apply();","import styled from 'styled-components';\r\n\r\n\r\nexport const ListTitleDefaultBox = styled.div`\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-start;\r\n padding: 0.3rem 1.5rem;\r\n &:before {\r\n content: \"\";\r\n background-image: radial-gradient(50% 80% at top, rgba(0,0,0,0.5), transparent);\r\n opacity:0.5;\r\n background-repeat: no-repeat;\r\n background-position: 50% 0;\r\n background-size: contain;\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n height: 35rem;\r\n width: 100%;\r\n z-index: -1;\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n height: 25rem;\r\n }\r\n }\r\n`;","import styled from 'styled-components';\r\nimport {ListTitleDefaultBox} from './list-title.default.box';\r\n\r\nexport const ListTitleCasino777Box = styled(ListTitleDefaultBox)`\r\n &:before {\r\n content: none\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\nimport {ListTitleDefaultBox} from \"./list-title.default.box\";\r\n\r\nexport const ListTitleCipBox = styled(ListTitleDefaultBox)`\r\n &:before {\r\n display: none;\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\nimport {ListTitleDefaultBox} from \"./list-title.default.box\";\r\n\r\nexport const ListTitleCisBox = styled(ListTitleDefaultBox)`\r\n &:before {\r\n display: none;\r\n }\r\n \r\n border-top: 1.5px solid ${props => props.theme.colors.brandPrimary};\r\n background-color: ${props => props.theme.colors.background};\r\n`;\r\n","import {styledByTheme} from '../../../../themes/architecture/styled-by-theme';\r\nimport {ListTitleDefaultBox} from './list-title.default.box';\r\nimport {ListTitleCasino777Box} from './list-title.casino777.box';\r\nimport {ListTitleCipBox} from './list-title.cip.box';\r\nimport {ListTitleCisBox} from \"./list-title.cis.box\";\r\n\r\nexport const ListTitleBox = styledByTheme(ListTitleDefaultBox)\r\n .forCasino777(ListTitleCasino777Box)\r\n .forCip(ListTitleCipBox)\r\n .forWsopCip(ListTitleCipBox)\r\n .forCis(ListTitleCisBox)\r\n .apply();","import React from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {FlexGrowItemBox} from '../../themes/architecture/css-helpers/flex';\r\nimport {observer} from 'mobx-react';\r\nimport classNames from \"classnames\";\r\nimport {ListTitleBox} from './boxes/list-title/list-title.box';\r\n\r\nexport interface GameListTitleComponentProps {\r\n className?: string;\r\n title: React.ReactElement;\r\n}\r\n\r\n@observer\r\nexport class GameListTitleComponent extends OrbitComponent {\r\n\r\n render() {\r\n\r\n const cssClasses = classNames('cy-games-list-title', this.props.className);\r\n\r\n return (\r\n \r\n {this.props.title}\r\n {this.services.mediaQuery.mAndAbove ? : null}\r\n {this.props.children}\r\n \r\n );\r\n }\r\n}\r\n","import styled from 'styled-components';\r\n\r\nexport const SwiperButtonsDefaultBox = styled.div`\r\n display: flex;\r\n align-items: center;\r\n @media ${({theme}) => theme.mediaQuery.mAndAbove} {\r\n margin: 0 1rem;\r\n }\r\n`;\r\n\r\n\r\n\r\n","import styled from 'styled-components';\r\nimport {SwiperButtonsDefaultBox} from './swiper-buttons.default.box';\r\n\r\nexport const SwiperButtonsCasino777Box = styled(SwiperButtonsDefaultBox)`\r\n right:.8rem;\r\n`;","import {styledByTheme} from '../../../../../themes/architecture/styled-by-theme';\r\nimport {SwiperButtonsDefaultBox} from './swiper-buttons.default.box';\r\nimport {SwiperButtonsCasino777Box} from './swiper-buttons.casino777.box';\r\n\r\nexport const SwiperButtonsBox = styledByTheme(SwiperButtonsDefaultBox).forCasino777(SwiperButtonsCasino777Box).apply();","import styled, { css } from \"styled-components\";\r\n\r\nexport const SwiperButtonBox = styled.div<{isTouchDevice?: boolean}>`\r\n margin: 0 0.5rem;\r\n\r\n ${({isTouchDevice}) => isTouchDevice ? css`\r\n display: none;\r\n ` : null}\r\n`;\r\n","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {OrbitComponent} from '../../base-components/orbit-component/orbit-component';\r\nimport {SwiperButtonsBox} from './boxes/wrapper/swiper-buttons.box';\r\nimport {SwiperButtonBox} from './boxes/button/swiper-button.box';\r\nimport { Button } from '../../../basic-ui-components/button/base/button.component';\r\nimport {ISwipeLogicHandler} from \"../../../services/arenas/models/swiper-logic-handler/swiper-logic-handler.interface\";\r\nimport {CyClass} from \"../../../../common/cy-classes\";\r\n\r\n\r\nexport interface OrbitSwiperButtonsProps {\r\n analyticsAction: string;\r\n swiper: ISwipeLogicHandler;\r\n seeAllButtonUrl: string;\r\n seoCategory: string;\r\n}\r\n\r\n\r\n\r\n@observer\r\nexport class OrbitSwiperButtons extends OrbitComponent {\r\n\r\n\r\n private onSwiperButtonPrevClick = () => {\r\n this.props.swiper.movePrevious();\r\n };\r\n\r\n private onSwiperButtonNextClick = () => {\r\n this.props.swiper.moveNext();\r\n };\r\n\r\n private _renderMoveNextAndPreviousButtons() {\r\n\r\n if (!this.props.swiper.allowNext && !this.props.swiper.allowPrevious) {\r\n return null;\r\n }\r\n\r\n const isTouchDevice = this.services.device.feature.isTouch; // device has touch\r\n\r\n return (<>\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n );\r\n\r\n }\r\n\r\n private seeAllClickHandler = () => {\r\n this.services.analytics.sendAnalytics(this.props.seoCategory, this.props.analyticsAction, 'See_All');\r\n\r\n const url = this.props.seeAllButtonUrl;\r\n this.services.location.push(url);\r\n };\r\n\r\n private _renderSeeAllButton() {\r\n if(this.props.seeAllButtonUrl.length === 0 || this.services.miniOrbit.isEnabled) {\r\n return null;\r\n }\r\n\r\n return \r\n \r\n {this.services.translation.translate('SEE_ALL')}\r\n \r\n ;\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n \r\n {this._renderMoveNextAndPreviousButtons()}\r\n {this._renderSeeAllButton()}\r\n \r\n );\r\n }\r\n}\r\n\r\n\r\n","import {action, computed, observable} from 'mobx';\r\nimport { DomEventSubscription } from '../../../../../utils/event-listener-registration';\r\nimport {IServiceFactory} from '../../../service-factory.interface';\r\nimport {IGamesListViewModel} from \"../lists/games-list-view-model.interface\";\r\nimport {ISwipeLogicHandler} from \"./swiper-logic-handler.interface\";\r\n\r\nexport class SwipeLogicHandler implements ISwipeLogicHandler {\r\n private _resizeEventHandler: DomEventSubscription;\r\n\r\n constructor(private services: IServiceFactory,\r\n private readonly _gamesListViewModel: IGamesListViewModel) {\r\n this._isRTLLanguage = this.services.language.isRTLLanguage;\r\n }\r\n\r\n @observable.ref\r\n private _element: HTMLElement = null;\r\n\r\n @observable\r\n private _currentTranslateAmount: number = 0;\r\n\r\n @action.bound\r\n setElement(element: HTMLElement) {\r\n this._unsubscribe();\r\n if(element) {\r\n this._element = element;\r\n this._setScrollWidth(element.scrollWidth);\r\n this._currentTranslateAmount = this.services.window.getElementHorizontalTranslationAmount(this._element as Element);\r\n this._subscribe();\r\n } else {\r\n this.resetScrollPosition();\r\n this._element = null;\r\n }\r\n }\r\n\r\n @action.bound\r\n resetScrollPosition() {\r\n this._currentTranslateAmount = 0;\r\n if (this._element) {\r\n this._element['style'].transform = `translate3d(0px, 0, 0)`;\r\n }\r\n }\r\n\r\n updateScrollWidth() {\r\n if (this._element) {\r\n this._setScrollWidth(this._element.scrollWidth);\r\n }\r\n }\r\n\r\n private _subscribe() {\r\n this._resizeEventHandler = this.services.window.subscribeTo.resize(() => {\r\n this.updateScrollWidth();\r\n });\r\n\r\n if(this.services.device.isMobile && this._element) {\r\n this._element.addEventListener(\"scroll\", this._onMobileSwipe);\r\n }\r\n }\r\n\r\n private _unsubscribe() {\r\n if (this._resizeEventHandler) {\r\n this._resizeEventHandler.dispose();\r\n }\r\n\r\n if(this.services.device.isMobile && this._element) {\r\n this._element.removeEventListener(\"scroll\", this._onMobileSwipe);\r\n }\r\n }\r\n\r\n private readonly _isRTLLanguage : boolean;\r\n\r\n\r\n @computed\r\n get allowPrevious(): boolean {\r\n if (this._element) {\r\n return Math.abs(this._currentTranslateAmount) >= 1;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n @computed\r\n get allowNext(): boolean {\r\n if (this._element) {\r\n return Math.abs(this._currentTranslateAmount) < this._maximumTranslationAmount - 1;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n private get _width(): number {\r\n return this.services.window.getElementWidth(this._element);\r\n }\r\n\r\n\r\n @action.bound\r\n private _setScrollWidth(value: number): void {\r\n this._scrollWidth = value;\r\n }\r\n\r\n @observable\r\n private _scrollWidth = 0;\r\n\r\n\r\n @computed\r\n private get _maximumTranslationAmount(): number {\r\n if(this._element) {\r\n return this._scrollWidth - this._width;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n private _isSwiperOnTheMove = false;\r\n\r\n @action.bound\r\n private _slide(computeIncrement: (absoluteCurrentTranslationAmount: number) => number) {\r\n if(this._isSwiperOnTheMove) {\r\n return;\r\n }\r\n\r\n this._isSwiperOnTheMove = true;\r\n\r\n try {\r\n let currentTranslateAmount = this.services.window.getElementHorizontalTranslationAmount(this._element);\r\n let increment = computeIncrement(Math.abs(currentTranslateAmount));\r\n\r\n if(this._isRTLLanguage) {\r\n increment = -1 * increment;\r\n }\r\n\r\n let translateAmount = currentTranslateAmount + increment;\r\n\r\n this._element['style'].transform = `translate3d(${translateAmount}px, 0, 0)`;\r\n this._currentTranslateAmount = translateAmount;\r\n\r\n this._sendAnalytics();\r\n } finally {\r\n this._isSwiperOnTheMove = false;\r\n }\r\n }\r\n\r\n private _sendAnalytics() {\r\n this.services.analytics.sendAnalytics(this._gamesListViewModel.arenaName, this._gamesListViewModel.title.translationKey, 'Swipe');\r\n }\r\n\r\n\r\n moveNext(): void {\r\n if(this.allowNext) {\r\n this._slide((absoluteCurrentTranslationAmount) => -1 * Math.min(this._width, this._maximumTranslationAmount - absoluteCurrentTranslationAmount));\r\n }\r\n\r\n }\r\n\r\n movePrevious(): void {\r\n if(this.allowPrevious) {\r\n this._slide((absoluteCurrentTranslationAmount) => Math.min(this._width, absoluteCurrentTranslationAmount));\r\n }\r\n }\r\n\r\n private _mobileScrollingTimeout: any;\r\n private _onMobileSwipe = () => {\r\n //Clear the timeout on every scroll to prevent form the scroll(swipe) event to fire multiple times. (debounce)\r\n clearTimeout(this._mobileScrollingTimeout);\r\n // Set a timeout to fire after the scrolling as end\r\n this._mobileScrollingTimeout = setTimeout(() => {\r\n this._sendAnalytics();\r\n }, 100);\r\n };\r\n}\r\n","import React from 'react';\r\nimport {GamesListBaseModel} from \"./games-list-base.model\";\r\nimport {\r\n ApiListType,\r\n SwiperGamesListConfiguration\r\n} from \"../../../configurations/config-data-sections/arenas.configuration\";\r\nimport {IArenaToGamesListAdapter} from \"../arenas/arena-to-games-list-adapter.interface\";\r\nimport {EXCLUSIVES_LIST_ICON, JACKPOTS_ITEM} from \"../../../../themes/css-global-classes\";\r\nimport {TextTranslation} from \"../../../translation/text-translation\";\r\nimport {ListTitleIconBox} from \"../../../../components/game-list-title/boxes/list-title-icon/list-title-icon.box\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {JackpotWidgetComponent} from \"../../../../components/jackpot-widget/jackpot-widget.component\";\r\nimport {JackpotWidgetWrapperBox} from \"../../../../components/orbit-swiper/boxes/jackpot-widget-wrapper/jackpot-widget-wrapper.box\";\r\nimport {RedTigerWidgetComponent} from \"../../../../components/red-tiger-widget/red-tiger-widget.component\";\r\nimport {ISwiperListViewModel} from \"./swiper-list-view-model.interface\";\r\nimport {JACKPOT_WIDGET, RED_TIGER_JACKPOT} from \"../../../../components/game-list-title/constants\";\r\nimport {ListTitleTextBox} from \"../../../../components/game-list-title/boxes/list-title-text/list-title-text.box\";\r\nimport {GameListTitleComponent} from \"../../../../components/game-list-title/game-list-title.component\";\r\nimport classNames from \"classnames\";\r\nimport {OrbitSwiperButtons} from \"../../../../components/orbit-swiper/orbit-swiper-buttons/orbit-swiper-buttons\";\r\nimport {SwipeLogicHandler} from \"../swiper-logic-handler/swipe-logic-handler\";\r\nimport {ISwipeLogicHandler} from \"../swiper-logic-handler/swiper-logic-handler.interface\";\r\nimport { JackpotType } from '../../../../../common/const/jackpot_map_ids';\r\n\r\nexport abstract class SwiperListBaseModel extends GamesListBaseModel implements ISwiperListViewModel {\r\n\r\n constructor(protected readonly listConfiguration: SwiperGamesListConfiguration, arena: IArenaToGamesListAdapter) {\r\n super(arena);\r\n }\r\n \r\n get listId(): number {\r\n return this.listConfiguration.listId;\r\n }\r\n\r\n get apiListType(): ApiListType | undefined {\r\n return this.listConfiguration.apiListType;\r\n }\r\n\r\n get title(): TextTranslation {\r\n return this.services.translation.getTranslation(this.listConfiguration.title, this._getTitleTranslationParams());\r\n }\r\n\r\n get swipeLogicHandler() {\r\n return this._swipeLogicHandler;\r\n }\r\n\r\n get showGameTitleOnMultipleLines() {\r\n const widgetConfig = this.listConfiguration.jackpotWidget;\r\n\t\tif (!widgetConfig || !widgetConfig.display) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n return widgetConfig.jackpotType === JackpotType.HourlyCaptain8;\r\n }\r\n\r\n protected _swipeLogicHandler: ISwipeLogicHandler = new SwipeLogicHandler(this.services, this);\r\n\r\n protected _getTitleTranslationParams(): object | string | undefined {\r\n return this.listConfiguration.shouldInjectUsernameInTitle ? this.services.user.name : undefined;\r\n }\r\n\r\n protected get _numberOfGamesToBeIgnoredInAISorting(): number | undefined {\r\n return this.listConfiguration.ignoreNumberOfGamesInAISorting;\r\n }\r\n\r\n get listTypeId(): number | null {\r\n return null;\r\n }\r\n\r\n protected get _seeAllUrl(): string {\r\n const seeAllConfig = this.listConfiguration.seeAll || '';\r\n\r\n /**\r\n * We used to support SeeAll Button as an object, from 6.6.21 we've changed that to string, this is backward compatibility\r\n * Task https://dev.azure.com/888holdings/GamingNDL/_workitems/edit/1737512\r\n */\r\n if (Check.isObject(seeAllConfig)) {\r\n return (seeAllConfig as any).url || '';\r\n }\r\n\r\n return seeAllConfig;\r\n }\r\n\r\n protected get _isAISorted(): boolean {\r\n return this.listConfiguration.useAISortedList;\r\n }\r\n\r\n protected _shouldBeDisplayed(): boolean {\r\n return !this.services.gamesFilter.isFilterOn;\r\n }\r\n\r\n protected _getGameTypes(): number[] {\r\n const gameTypes = this.listConfiguration.gamesId || [];\r\n if (this.services.gamesFilter.isFilterOn) {\r\n return [];\r\n }\r\n\r\n return gameTypes;\r\n }\r\n\r\n\r\n protected _getNumberOfGamesSkeletons(): number {\r\n if (this.listConfiguration.jackpotWidget) {\r\n return 4;\r\n }\r\n\r\n if (this.listConfiguration.templateType === JACKPOTS_ITEM) {\r\n return 2;\r\n }\r\n\r\n return 6;\r\n }\r\n\r\n get numberOfGamesSkeletons(): number {\r\n return this._getNumberOfGamesSkeletons();\r\n }\r\n\r\n protected _reduceGameTypes(gameTypes: number[]): number[] {\r\n gameTypes = super._reduceGameTypes(gameTypes);\r\n return this._reduceGameTypesForJackpotsItemTemplateInHomePage(gameTypes);\r\n }\r\n\r\n private _reduceGameTypesForJackpotsItemTemplateInHomePage(gameTypes: number[]): number[] {\r\n if (!this.services.device.isMobile) {\r\n return gameTypes;\r\n }\r\n if (this.listConfiguration.templateType !== JACKPOTS_ITEM) {\r\n return gameTypes;\r\n }\r\n if (!this.services.location.isHomePage) {\r\n return gameTypes;\r\n }\r\n return gameTypes.slice(0, 6);\r\n }\r\n\r\n get forceInLayout(): boolean {\r\n return this.listConfiguration.forceListInLayout;\r\n }\r\n\r\n private get _isJackpotWidgetHost(): boolean {\r\n return Boolean(this.listConfiguration.jackpotWidget?.display);\r\n }\r\n\r\n private get _isRedTigerJackpotWidgetHost(): boolean {\r\n return Boolean(this.listConfiguration.redTigerWidget?.display);\r\n }\r\n\r\n get templateType(): string {\r\n return this.listConfiguration.templateType;\r\n }\r\n\r\n protected get _forceRoundIcons(): boolean {\r\n return this.listConfiguration.forceRoundIcons;\r\n }\r\n \r\n protected get _useSquareIcons(): boolean {\r\n return this.listConfiguration.useSquareIcons;\r\n }\r\n\r\n protected _renderJackpotWidget() {\r\n let onClickHandler = null;\r\n if(this.services.location.isHomePage) {\r\n onClickHandler = () => this.services.location.push('/jackpots/');\r\n }\r\n\r\n return ()\r\n }\r\n\r\n protected _renderRedTigerWidget() {\r\n return (\r\n \r\n );\r\n }\r\n\r\n renderSpecialWidgets(): React.ReactElement | null {\r\n return (\r\n <>\r\n {this._renderJackpotWidget()}\r\n {this._renderRedTigerWidget()}\r\n \r\n );\r\n }\r\n\r\n renderListHeader(): React.ReactElement {\r\n return (\r\n \r\n {this._renderSwiperButtons()}\r\n \r\n )\r\n }\r\n\r\n protected _renderSwiperButtons() {\r\n return ;\r\n }\r\n\r\n\r\n _getTitleCssClasses(): string[] {\r\n const cssClasses: string[] = [this.listConfiguration.titleIconClassName];\r\n if(this._isJackpotWidgetHost) {\r\n cssClasses.push(JACKPOT_WIDGET);\r\n }\r\n\r\n if(this._isRedTigerJackpotWidgetHost) {\r\n cssClasses.push(RED_TIGER_JACKPOT)\r\n }\r\n\r\n return cssClasses;\r\n }\r\n\r\n _renderHeaderIconAndText(): React.ReactElement {\r\n return (\r\n \r\n {this._renderHeaderIcon()}\r\n {this._renderHeaderText()}\r\n \r\n )\r\n }\r\n\r\n protected _renderHeaderIcon(): React.ReactElement | null {\r\n if (this._isJackpotWidgetHost || this.listConfiguration.titleIconClassName === EXCLUSIVES_LIST_ICON) {\r\n return ;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n protected _renderHeaderText(): string | React.ReactElement {\r\n return this.title.translation\r\n }\r\n\r\n renderListNavigation(): React.ReactElement | null {\r\n return null;\r\n }\r\n\r\n renderListFooter(): React.ReactElement | null {\r\n return null;\r\n }\r\n}\r\n","import {SwiperListBaseModel} from \"./swiper-list-base.model\";\r\n\r\nexport abstract class ApiListBaseModel extends SwiperListBaseModel {\r\n protected get _isAISorted(): boolean {\r\n return false;\r\n }\r\n}","import React from \"react\";\r\nimport {RecentlyPlayedComponent} from \"../../../../../components/recently-played/recently-played.component\";\r\nimport {ApiListBaseModel} from \"../api-list-base.model\";\r\n\r\nexport class RecentlyPlayedListModel extends ApiListBaseModel {\r\n\r\n protected _shouldBeDisplayed(): boolean {\r\n if(!this.services.user.isAuthorized || this.services.games.recentlyPlayedGames.isInitialized) {\r\n return super._shouldBeDisplayed() && this.gameTypes.length > 1;\r\n }\r\n return super._shouldBeDisplayed();\r\n }\r\n\r\n protected _getGameTypes(): number[] {\r\n return this.services.games.recentlyPlayedGames.gameTypes || [];\r\n }\r\n\r\n _renderList(listPosition: number): React.ReactElement | null {\r\n return ();\r\n }\r\n}","import React from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {OrbitSwiperComponent} from '../orbit-swiper/orbit-swiper.component';\r\nimport {observer} from 'mobx-react';\r\nimport {ISwiperListViewModel} from \"../../services/arenas/models/lists/swiper-list-view-model.interface\";\r\n\r\n\r\ninterface TopPicksComponentProps {\r\n viewModel: ISwiperListViewModel;\r\n listPosition: number;\r\n}\r\n\r\n@observer\r\nexport class TopPicksComponent extends OrbitComponent {\r\n\r\n render() {\r\n\r\n const viewModel = this.props.viewModel;\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\n\r\n","import React from \"react\";\r\nimport {TopPicksComponent} from \"../../../../../components/ai-list/top-picks.component\";\r\nimport {ApiListBaseModel} from \"../api-list-base.model\";\r\n\r\nexport class TopPicksListModel extends ApiListBaseModel {\r\n\r\n protected _shouldBeDisplayed(): boolean {\r\n if(!this.services.aiEngine.aiRecommendedGames.isInitialized) {\r\n return super._shouldBeDisplayed();\r\n }\r\n\r\n return super._shouldBeDisplayed() && this._getGameTypes().length > 0;\r\n }\r\n\r\n protected _getGameTypes(): number[] {\r\n return this.services.aiEngine.aiRecommendedGames?.gameTypes || [];\r\n }\r\n\r\n protected _getTitleTranslationParams() {\r\n return this.services.user.userData.firstName;\r\n }\r\n\r\n get aiEngine(): string {\r\n return this.services.aiEngine.aiRecommendedGames?.engine || '';\r\n }\r\n\r\n _renderList(listPosition: number): React.ReactElement | null {\r\n return ();\r\n }\r\n}","import React from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {OrbitSwiperComponent} from '../orbit-swiper/orbit-swiper.component';\r\nimport {observer} from 'mobx-react';\r\nimport {ISwiperListViewModel} from \"../../services/arenas/models/lists/swiper-list-view-model.interface\";\r\n\r\ninterface AiNewGamesListComponentProps {\r\n viewModel: ISwiperListViewModel;\r\n listPosition: number;\r\n}\r\n\r\n@observer\r\nexport class AiNewGamesListComponent extends OrbitComponent {\r\n render() {\r\n const viewModel = this.props.viewModel;\r\n return (\r\n \r\n )\r\n }\r\n\r\n}\r\n\r\n\r\n","import React from \"react\";\r\nimport {AiNewGamesListComponent} from \"../../../../../components/ai-new-games-list/ai-new-games-list.component\";\r\nimport {SwiperListBaseModel} from \"../swiper-list-base.model\";\r\nimport {SwiperGamesListConfiguration} from \"../../../../configurations/config-data-sections/arenas.configuration\";\r\nimport {IArenaToGamesListAdapter} from \"../../arenas/arena-to-games-list-adapter.interface\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\n\r\nexport class NewGamesListModel extends SwiperListBaseModel {\r\n constructor(protected readonly listConfiguration: SwiperGamesListConfiguration,\r\n arena: IArenaToGamesListAdapter) {\r\n super(listConfiguration, arena);\r\n }\r\n\r\n protected _shouldBeDisplayed(): boolean {\r\n if(Check.isNullOrUndefined(this.services.aiNewEngine.aiNewRecommendedGames)) {\r\n return super._shouldBeDisplayed();\r\n }\r\n\r\n return super._shouldBeDisplayed() && this.gameTypes.length > 0;\r\n }\r\n\r\n protected _getGameTypes(): number[] {\r\n return this.services.aiNewEngine.aiNewRecommendedGames?.gameTypes || [];\r\n }\r\n\r\n protected _getTitleTranslationParams() {\r\n return this.services.user.name;\r\n }\r\n\r\n get aiEngine(): string {\r\n return this.services.aiNewEngine.aiNewRecommendedGames?.engine || '';\r\n }\r\n\r\n _renderList(listPosition: number): React.ReactElement | null {\r\n return ;\r\n }\r\n}","import React from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {OrbitSwiperComponent} from '../orbit-swiper/orbit-swiper.component';\r\nimport {observer} from 'mobx-react';\r\nimport {CyClass} from \"../../../common/cy-classes\";\r\nimport {ISwiperListViewModel} from \"../../services/arenas/models/lists/swiper-list-view-model.interface\";\r\n\r\ninterface PlayersLikeYouComponentProps {\r\n viewModel: ISwiperListViewModel;\r\n listPosition: number;\r\n}\r\n\r\n@observer\r\nexport class PlayersLikeYouComponent extends OrbitComponent {\r\n\r\n render() {\r\n\r\n const viewModel = this.props.viewModel;\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\n","import React from \"react\";\r\nimport {LIST_TYPE_ID} from \"../../../../../../common/const/ai-trending-list-ids-map\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {PlayersLikeYouComponent} from \"../../../../../components/players-like-you/players-like-you.component\";\r\nimport {ApiListBaseModel} from \"../api-list-base.model\";\r\n\r\nconst NUMBER_OF_TRENDING_RECOMMENDATIONS = 10;\r\n\r\nexport class PlayersLikeYouListModel extends ApiListBaseModel {\r\n\r\n protected _shouldBeDisplayed(): boolean {\r\n if(Check.isNullOrUndefined(this._computeGameTypes())) {\r\n return super._shouldBeDisplayed();\r\n }\r\n\r\n return super._shouldBeDisplayed() && this.gameTypes.length > 0;\r\n }\r\n\r\n get listTypeId(): number {\r\n if(Check.isNullOrUndefined(this.services.abTestingFeatureDataProvider.playersLikeYouGamesListTypeId)) {\r\n return LIST_TYPE_ID.ACTIVE_USERS;\r\n }\r\n\r\n return parseInt(this.services.abTestingFeatureDataProvider.playersLikeYouGamesListTypeId);\r\n }\r\n\r\n protected _getTitleTranslationParams() {\r\n let topCount = NUMBER_OF_TRENDING_RECOMMENDATIONS;\r\n\r\n if(0 < this.gameTypes.length && this.gameTypes.length < topCount) {\r\n topCount = this.gameTypes.length;\r\n }\r\n\r\n return {\r\n topNumber: topCount,\r\n countryName: this.services.user.countryName || this.services.translation.translate(\"YOUR_COUNTRY\")\r\n }\r\n }\r\n\r\n protected _getGameTypes(): number[] {\r\n return this._computeGameTypes() || [];\r\n }\r\n\r\n protected get _useSquareIcons(): boolean {\r\n return true;\r\n }\r\n\r\n private _computeGameTypes(): number[] | null {\r\n if(this.listTypeId === LIST_TYPE_ID.ACTIVE_USERS) {\r\n return this.services.aiEngine.trendingRecommendedGamesForPlayerByActiveUsers;\r\n } else {\r\n return this.services.aiEngine.trendingRecommendedGamesForPlayerByBets\r\n }\r\n }\r\n\r\n get maxGamesToShowInList(): number {\r\n return NUMBER_OF_TRENDING_RECOMMENDATIONS;\r\n }\r\n\r\n _renderList(listPosition: number): React.ReactElement | null {\r\n return (\r\n \r\n );\r\n }\r\n}","import React from \"react\";\r\nimport {OrbitSwiperComponent} from \"../../../../../components/orbit-swiper/orbit-swiper.component\";\r\nimport {SwiperListBaseModel} from \"../swiper-list-base.model\";\r\n\r\nexport class StaticSwiperListModel extends SwiperListBaseModel {\r\n\r\n protected _shouldBeDisplayed(): boolean {\r\n return super._shouldBeDisplayed() && this.gameTypes.length > 0;\r\n }\r\n\r\n _renderList(listPosition: number): React.ReactElement | null {\r\n const listConfig = this.listConfiguration;\r\n\r\n\r\n return (\r\n \r\n );\r\n }\r\n}","import React from 'react';\r\nimport {SingleGameComponent} from '../../single-game/single-game.component';\r\nimport {observer} from 'mobx-react';\r\nimport {OrbitComponentWithState} from '../../base-components/orbit-component-with-state/orbit-component-with-state';\r\n\r\nexport interface GamesGridBatchComponentProps {\r\n batchIndex: number;\r\n gameTypes: number[];\r\n aiEngine: string;\r\n seoCategory: string;\r\n skipIntermediatePage: boolean;\r\n disableGameInfoHover: boolean;\r\n listTitleTranslationKey: string;\r\n templateType?: string;\r\n useSquareIcons?: boolean;\r\n}\r\n\r\nexport interface GamesGridBatchComponentState {\r\n isResolved: boolean;\r\n}\r\n\r\nconst NUMBER_OF_GAMES_IN_BATCH = 20;\r\n\r\n@observer\r\nexport class GamesGridBatchComponent extends OrbitComponentWithState {\r\n\r\n state = {\r\n isResolved: false\r\n };\r\n\r\n private _renderOneGame(gameType: number, gameIndex: number) {\r\n\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _intersectionObserver: IntersectionObserver | null;\r\n\r\n private _intersectionObserverCallback = (entries: IntersectionObserverEntry[]) => {\r\n if (entries[0].intersectionRatio > 0 || entries[0].isIntersecting) {\r\n this._destroyIntersectionObserver();\r\n this.setState({\r\n isResolved: true\r\n });\r\n }\r\n };\r\n\r\n private _createIntersectionObserver(element: HTMLElement) {\r\n\r\n this._destroyIntersectionObserver(); // just in case this is called twice for this component we want to discard the existing intersection observer and create a new one\r\n\r\n this._intersectionObserver = new IntersectionObserver(this._intersectionObserverCallback, {\r\n rootMargin: '400px',\r\n threshold: 0.1\r\n });\r\n\r\n this._intersectionObserver.observe(element);\r\n }\r\n\r\n\r\n componentWillUnmount() {\r\n super.componentWillUnmount();\r\n this._destroyIntersectionObserver();\r\n }\r\n\r\n private _destroyIntersectionObserver() {\r\n if (this._intersectionObserver) {\r\n this._intersectionObserver.disconnect();\r\n this._intersectionObserver = null;\r\n }\r\n }\r\n\r\n private _captureThresholdElement = (element: HTMLElement | null) => {\r\n if (element) {\r\n this._createIntersectionObserver(element)\r\n }\r\n };\r\n\r\n private _renderNextBatch() {\r\n const nextBatchGameTypes = this.props.gameTypes.slice(NUMBER_OF_GAMES_IN_BATCH);\r\n if(nextBatchGameTypes.length === 0) {\r\n return null;\r\n }\r\n\r\n const propsForNextBatch = {\r\n ...this.props,\r\n batchIndex: this.props.batchIndex + 1,\r\n gameTypes: nextBatchGameTypes\r\n };\r\n\r\n return ();\r\n }\r\n\r\n private _renderCurrentBatch() {\r\n const batchIndexOffset = this.props.batchIndex * NUMBER_OF_GAMES_IN_BATCH;\r\n const currentBatchGameTypes = this.props.gameTypes.slice(0, NUMBER_OF_GAMES_IN_BATCH);\r\n return (\r\n <>\r\n {currentBatchGameTypes.map((gameType, index) => this._renderOneGame(gameType, batchIndexOffset + index))}\r\n {this._renderNextBatch()}\r\n \r\n );\r\n }\r\n\r\n render() {\r\n\r\n if(this.props.batchIndex === 0 || this.state.isResolved) {\r\n return this._renderCurrentBatch();\r\n }\r\n\r\n return (\r\n
\r\n )\r\n }\r\n}\r\n","import styled from 'styled-components';\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\nimport {LOBBY_PAGE} from '../../../../themes/css-global-classes';\r\n\r\n\r\n//games-layout static-layout\r\nconst DefaultBox = styled.div`\r\n position: relative;\r\n overflow: hidden;\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: wrap;\r\n`;\r\n\r\nexport const PcBox = DefaultBox;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\r\n .${LOBBY_PAGE} & {\r\n padding: 0 1rem;\r\n }\r\n`;\r\n\r\nexport const GamesGridDefaultBox = styledByDevice(PcBox, MobileBox);","import styled from 'styled-components';\r\nimport {PcBox as BasePcBox, MobileBox as BaseMobileBox} from './games-grid.default.box';\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\n\r\nconst PcBox = styled(BasePcBox)`\r\n margin-top: 1.4rem;\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n margin-top: 1.8rem;\r\n }\r\n`;\r\n\r\n\r\nconst MobileBox = BaseMobileBox;\r\n\r\nexport const GamesGridCasino777Box = styledByDevice(PcBox, MobileBox);","import {GamesGridDefaultBox} from './games-grid.default.box';\r\nimport {GamesGridCasino777Box} from './games-grid.casino777.box';\r\nimport {styledByTheme} from '../../../../themes/architecture/styled-by-theme';\r\n\r\nexport const GamesGridBox = styledByTheme(GamesGridDefaultBox).forCasino777(GamesGridCasino777Box).apply();","import {NoGamesFoundMessageDefaultBox} from './no-games-found-message.default.box';\r\n\r\nexport const NoGamesFoundMessageBox = NoGamesFoundMessageDefaultBox;","import styled from 'styled-components';\r\n\r\nexport const NoGamesFoundMessageDefaultBox = styled.p`\r\n font-size: 1.2rem;\r\n margin: 15px 0;\r\n min-height: 300px;\r\n color: ${props => props.theme.colors.textLight};\r\n`;","import styled from \"styled-components\";\r\nimport {CGP_GAME_OPEN} from \"../../../themes/css-global-classes\";\r\n\r\nexport const GamesGridContainerBox = styled.div`\r\n .${CGP_GAME_OPEN} & {\r\n display: none;\r\n }\r\n`;","import React from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\nimport {GamesGridBatchComponent} from './games-grid-batch/games-grid-batch.component';\r\nimport {GamesGridBox} from './boxes/games-grid/games-grid.box';\r\nimport {NoGamesFoundMessageBox} from './boxes/no-games-found-message/no-games-found-message.box';\r\nimport classNames from 'classnames';\r\nimport {GRID_GAMES_LIST} from '../single-game/css-constants';\r\nimport {GamesGridContainerBox} from \"./boxes/games-grid-container.box\";\r\nimport {IGamesListViewModel} from \"../../services/arenas/models/lists/games-list-view-model.interface\";\r\n\r\nexport interface GamesGridComponentProps {\r\n viewModel: IGamesListViewModel;\r\n skipIntermediatePage: boolean;\r\n disableGameInfoHover: boolean;\r\n useSquareIcons?: boolean;\r\n}\r\n\r\n@observer\r\nexport class GamesGridComponent extends OrbitComponent {\r\n\r\n private _renderTitle() {\r\n\r\n if(!this.props.disableGameInfoHover && this.services.gamesFilter.isFilterOn) {\r\n return null;\r\n }\r\n return this.props.viewModel.renderListHeader();\r\n }\r\n\r\n private _renderGames(gameTypes: number[]) {\r\n return (\r\n\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private _renderNoGames() {\r\n if(this.services.gamesFilter.isFilterOn) {\r\n return (\r\n {this.services.translation.translate('YOUR_SEARCH_DID_NOT_MATCH_ANY_GAMES')}\r\n )\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n private _renderContent() {\r\n let gameTypes = this.props.viewModel.gameTypes;\r\n if(gameTypes.length === 0) {\r\n return this._renderNoGames();\r\n }\r\n return (\r\n <>\r\n {this._renderTitle()}\r\n {this._renderGames(gameTypes)}\r\n \r\n );\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n \r\n {this._renderContent()}\r\n \r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport {GamesListBaseModel} from \"../games-list-base.model\";\r\nimport {GamesGridComponent} from \"../../../../../components/games-grid/games-grid.component\";\r\nimport {ArenaGamesGridConfiguration} from \"../../../../configurations/config-data-sections/arenas.configuration\";\r\nimport {IArenaToGamesListAdapter} from \"../../arenas/arena-to-games-list-adapter.interface\";\r\nimport {TextTranslation} from \"../../../../translation/text-translation\";\r\nimport {GameListTitleComponent} from \"../../../../../components/game-list-title/game-list-title.component\";\r\nimport {ListTitleTextBox} from \"../../../../../components/game-list-title/boxes/list-title-text/list-title-text.box\";\r\n\r\nexport class GamesGridListModel extends GamesListBaseModel {\r\n constructor(protected readonly gridConfig: ArenaGamesGridConfiguration,\r\n arena: IArenaToGamesListAdapter) {\r\n super(arena)\r\n }\r\n\r\n protected _getGameTypes(): number[] {\r\n return this.gridConfig.gamesId || [];\r\n }\r\n\r\n protected get _isAISorted(): boolean {\r\n return this.gridConfig.useAISortedList;\r\n }\r\n\r\n\r\n protected _shouldBeDisplayed(): boolean {\r\n return true;\r\n //return this.gridConfig.display;\r\n }\r\n\r\n protected get _numberOfGamesToBeIgnoredInAISorting(): number | undefined {\r\n return undefined;\r\n }\r\n\r\n get listId(): number {\r\n return this.gridConfig.listId;\r\n }\r\n\r\n get title(): TextTranslation {\r\n return this.services.translation.getTranslation(this.gridConfig.title);\r\n }\r\n\r\n get maxGamesToShowInList(): number {\r\n return this._getGameTypes().length; // for grids we show all games\r\n }\r\n\r\n get forceInLayout(): boolean {\r\n return true;\r\n }\r\n\r\n get templateType(): string {\r\n return this.gridConfig.templateType;\r\n }\r\n\r\n protected get _forceRoundIcons(): boolean {\r\n return this.gridConfig.forceRoundIcons;\r\n }\r\n \r\n protected get _useSquareIcons(): boolean {\r\n return this.gridConfig.useSquareIcons;\r\n }\r\n\r\n private get _shouldSquareIconsBeUsed(): boolean {\r\n return this.shouldUseSquareIcons();\r\n }\r\n\r\n renderListHeader(): React.ReactElement {\r\n const title = (\r\n \r\n {this.title.translation}\r\n \r\n );\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n protected _renderList(listPosition: number): React.ReactElement | null {\r\n return (\r\n \r\n );\r\n }\r\n\r\n\r\n}","import {StaticSwiperListModel} from \"../static-swiper/static-swiper-list.model\";\r\n\r\nexport class LiveCasinoListModel extends StaticSwiperListModel {\r\n\r\n protected _applyGameTypesTransformations(gameTypes: number[]): number[] {\r\n gameTypes = super._applyGameTypesTransformations(gameTypes);\r\n return this.services.liveTableFeeds.moveGamesThatOpenSoonToTheEnd(gameTypes);\r\n }\r\n}","import React from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {OrbitSwiperComponent} from '../orbit-swiper/orbit-swiper.component';\r\nimport {observer} from 'mobx-react';\r\nimport {CyClass} from \"../../../common/cy-classes\";\r\nimport {ISwiperListViewModel} from \"../../services/arenas/models/lists/swiper-list-view-model.interface\";\r\n\r\ninterface BecauseYouPlayedComponentProps {\r\n viewModel: ISwiperListViewModel;\r\n listPosition: number;\r\n}\r\n\r\n@observer\r\nexport class BecauseYouPlayedComponent extends OrbitComponent {\r\n \r\n componentDidMount() {\r\n super.componentDidMount();\r\n\r\n this.reaction(() => this.services.runningGame.correlatedGamesForLastPlayedRealGame,\r\n (correlatedGames) => {\r\n this.props.viewModel.swipeLogicHandler.resetScrollPosition();\r\n }\r\n );\r\n }\r\n \r\n render() {\r\n const viewModel = this.props.viewModel;\r\n \r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { BecauseYouPlayedComponent } from \"../../../../../components/because-you-played/because-you-played.component\";\r\nimport { SwiperGamesListConfiguration } from \"../../../../configurations/config-data-sections/arenas.configuration\";\r\nimport { IArenaToGamesListAdapter } from \"../../arenas/arena-to-games-list-adapter.interface\";\r\nimport {ApiListBaseModel} from \"../api-list-base.model\";\r\n\r\nexport class BecauseYouPlayedPlayedListModel extends ApiListBaseModel {\r\n constructor(protected readonly listConfiguration: SwiperGamesListConfiguration, arena: IArenaToGamesListAdapter) {\r\n super(listConfiguration, arena);\r\n this.services.runningGame.listenForLastPlayedRealGame();\r\n }\r\n\r\n protected _shouldBeDisplayed(): boolean {\r\n return super._shouldBeDisplayed() && \r\n this.services.becauseYouPlayed.isEnabled &&\r\n this.gameTypes.length > 0;\r\n }\r\n\r\n protected _getTitleTranslationParams(): object | string | undefined {\r\n const lastPlayedGames = this.services.becauseYouPlayed.currentBecauseYouPlayedGames[0];\r\n if (lastPlayedGames) {\r\n return {\r\n gameName: lastPlayedGames.title\r\n }\r\n }\r\n\r\n return super._getTitleTranslationParams();\r\n }\r\n\r\n protected _getGameTypes(): number[] {\r\n return this.services.becauseYouPlayed.currentBecauseYouPlayedGames.map(gInfo => gInfo.gameType);\r\n }\r\n\r\n\r\n\r\n protected _renderList(listPosition: number): React.ReactElement> {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import {LiveStreamingListTitleDefaultBox} from \"./live-streaming-list-title.default.box\";\r\n\r\nexport const LiveStreamingListTitleBox = LiveStreamingListTitleDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const LiveStreamingListTitleDefaultBox = styled.div`\r\n color: ${({theme}) => theme.colors.textLight.toString()};\r\n`;\r\n","import {LiveStreamingTitleIconDefaultBox} from \"./live-streaming-title-icon.default.box\";\r\n\r\nexport const LiveStreamingTitleIconBox = LiveStreamingTitleIconDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const LiveStreamingTitleIconDefaultBox = styled.div`\r\n padding: 0 4px;\r\n margin-right: 1rem;\r\n border-radius: 2px;\r\n letter-spacing: 0;\r\n\r\n color: ${({theme}) => theme.colors.background.toString()};\r\n background: ${({theme}) => theme.colors.brandPrimary.toString()};\r\n\r\n animation: FlashingAnimation 2s ease infinite;\r\n\r\n @keyframes FlashingAnimation {\r\n 0% {\r\n opacity: 1;\r\n }\r\n 50% {\r\n opacity: 0.25;\r\n }\r\n 100% {\r\n opacity: 1;\r\n }\r\n }\r\n`;\r\n","import {IServiceFactory} from \"../../../service-factory.interface\";\r\nimport {action, observable} from \"mobx\";\r\nimport {ISwipeLogicHandlerMoveNextOptions, ISwipeLogicHandler} from \"./swiper-logic-handler.interface\";\r\nimport {NullableNumber} from \"../../../../../common/types/nullable-types\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {ISwiperListViewModel} from \"../lists/swiper-list-view-model.interface\";\r\n\r\nexport class LiveStreamSwipeLogicHandler implements ISwipeLogicHandler {\r\n\r\n private _element: HTMLElement = null;\r\n private _touchStartX = 0;\r\n private _swipeDirection = 0;\r\n private _touchDragThreshold = 25;\r\n private _swipeTransitionCss = \"transform 0.5s ease-in-out\";\r\n\r\n constructor(private readonly _services: IServiceFactory, private readonly _gamesListViewModel: ISwiperListViewModel) {\r\n }\r\n\r\n @observable allowNext: boolean = true;\r\n @observable allowPrevious: boolean = true;\r\n\r\n private _subscribe() {\r\n this._unsubscribe();\r\n this._element.addEventListener(\"transitionend\", this._handleTransitionEnd);\r\n this._element.addEventListener(\"touchstart\", this._handleTouchStart);\r\n this._element.addEventListener(\"touchend\", this._handleTouchEnd);\r\n }\r\n\r\n private _unsubscribe() {\r\n if (this._element) {\r\n this._element.removeEventListener(\"transitionend\", this._handleTransitionEnd);\r\n this._element.removeEventListener(\"touchstart\", this._handleTouchStart);\r\n this._element.removeEventListener(\"touchend\", this._handleTouchEnd);\r\n }\r\n }\r\n\r\n private _handleTouchStart = (event: TouchEvent) => {\r\n this._touchStartX = event.changedTouches[0].clientX;\r\n }\r\n\r\n private _handleTouchEnd = (event: TouchEvent) => {\r\n\r\n const dragDistance = Math.abs(event.changedTouches[0].clientX - this._touchStartX);\r\n\r\n if (dragDistance < this._touchDragThreshold) return;\r\n\r\n if (event.changedTouches[0].clientX < this._touchStartX) {\r\n this.moveNext();\r\n } else {\r\n this.movePrevious();\r\n }\r\n }\r\n\r\n private _handleTransitionEnd = (event: TransitionEvent) => {\r\n\r\n /** this._element is the swiper element and\r\n * if any element inside has any kind of transitions on their transform css property...\r\n * their \"transitionend\" events will also be catched here\r\n * So we check the event target because\r\n * we want to run this handler only for events that have this._element as target */\r\n if (event.propertyName === \"transform\" && event.target === this._element) {\r\n\r\n if (this._swipeDirection < 0) {\r\n\r\n this._element.append(this._element.firstElementChild);\r\n\r\n this._element.style.transition = \"none\";\r\n this._element.style.transform = \"translateX(0)\";\r\n }\r\n\r\n this._setIsNavigationAllowed(true);\r\n }\r\n };\r\n\r\n @action.bound\r\n private _setIsNavigationAllowed(allowed: boolean) {\r\n this.allowNext = allowed;\r\n this.allowPrevious = allowed;\r\n }\r\n\r\n setElement(element: HTMLElement): void {\r\n if (element) {\r\n this._element = element;\r\n this._element.style.overflow = \"initial\";\r\n this._subscribe();\r\n } else {\r\n this._element = null;\r\n this._unsubscribe();\r\n }\r\n }\r\n\r\n moveNext(options?: ISwipeLogicHandlerMoveNextOptions): void {\r\n\r\n if (!this.allowNext) return;\r\n\r\n options = {\r\n moveOnVideoFinished: false,\r\n ...options\r\n };\r\n\r\n this._reportSwipeToAnalytics(true, options.moveOnVideoFinished);\r\n\r\n this._swipeDirection = -1;\r\n this._element.style.transition = this._swipeTransitionCss;\r\n const translateAmount = (this._services.mediaQuery.xlAndAbove ? 33.33 : 100) * (this._services.language.isRTLLanguage ? 1 : -1);\r\n this._element.style.transform = \"translateX(\" + translateAmount + \"%)\";\r\n this._setIsNavigationAllowed(false);\r\n }\r\n\r\n movePrevious(): void {\r\n\r\n if (!this.allowPrevious) return;\r\n\r\n this._reportSwipeToAnalytics(false);\r\n\r\n this._swipeDirection = 1;\r\n\r\n this._element.style.transition = \"none\";\r\n this._element.prepend(this._element.lastElementChild);\r\n const translateAmount = (this._services.mediaQuery.xlAndAbove ? 33.33 : 100) * (this._services.language.isRTLLanguage ? 1 : -1);\r\n this._element.style.transform = \"translateX(\" + translateAmount + \"%)\";\r\n\r\n this._setIsNavigationAllowed(false);\r\n\r\n requestAnimationFrame(() => {\r\n this._element.style.transition = this._swipeTransitionCss;\r\n this._element.style.transform = \"translateX(0)\";\r\n });\r\n }\r\n\r\n resetScrollPosition(): void {\r\n this._element.style.transform = \"translateX(0)\";\r\n }\r\n\r\n private _currentGameIndex: NullableNumber = null;\r\n setCurrentGameIndex(gameIndex: number): void {\r\n this._currentGameIndex = gameIndex;\r\n }\r\n\r\n private _reportSwipeToAnalytics(swipeToLeft:boolean, isAutoSwipe:boolean=false): void {\r\n try {\r\n\r\n if(Check.isNullOrUndefined(this._currentGameIndex)) {\r\n return;\r\n }\r\n\r\n let nextGame;\r\n if(swipeToLeft === true){\r\n nextGame = (this._currentGameIndex + 1) % this._gamesListViewModel.gameTypes.length;\r\n }\r\n else {\r\n nextGame = (this._currentGameIndex>0) ? (this._currentGameIndex-1) : (this._gamesListViewModel.gameTypes.length-1);\r\n }\r\n\r\n let listType = this._gamesListViewModel.apiListType;\r\n let swipeFromGameId = this._gamesListViewModel.gameTypes[this._currentGameIndex];\r\n let label = 'SWIPE_' + this._currentGameIndex + (isAutoSwipe?'_AUTO':'_USER');\r\n\r\n this._services.analytics.sendAnalytics(listType ,'NEXT_GAME', label, swipeFromGameId, true);\r\n\r\n this._services.analytics.sendElasticInfoEvent({\r\n eventType:\"CGP_Game_Click\",\r\n category: this._gamesListViewModel.arenaName,\r\n action: 'SWIPE',\r\n label: listType,\r\n customData: {\r\n swipeFromGameId:swipeFromGameId,\r\n swipeFromGameIndex:this._currentGameIndex,\r\n swipeToGameId:this._gamesListViewModel.gameTypes[nextGame],\r\n isAutoSwipe:isAutoSwipe\r\n }\r\n }, true);\r\n }\r\n catch (err){\r\n console.log(\"SWIPE analytics report failed : \" + err);\r\n }\r\n }\r\n\r\n}\r\n","import styled from \"styled-components\";\r\nimport { CssRule } from \"../../../../themes/architecture/css-helpers/css-rule\";\r\n\r\ninterface LiveStreamingNavigationProps {\r\n isActive: boolean;\r\n}\r\n\r\nconst LiveStreamingNavigationCommonBox = styled.div`\r\n position: absolute;\r\n top: 35%;\r\n width: 3rem;\r\n height: 3rem;\r\n opacity: ${({isActive}) => isActive ? \"1\" : \"0.25\"};\r\n cursor: pointer;\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove} {\r\n /* On PC, one tile is a third of the swiper, but the ones not in center are scaled to 0.7 */\r\n /* So ... height is 100 * 0.7 */\r\n height: 70%;\r\n /* top is 100 * (1-0.7) / 2 */\r\n top: 15%;\r\n /* 23.331 is 33.33*0.7 */\r\n width: 23.331%;\r\n }\r\n`;\r\n\r\nexport const VideoListNavigationPrevButtonDefaultBox = styled(LiveStreamingNavigationCommonBox)`\r\n left: 1rem;\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove} {\r\n /* On PC, one tile is a third of the swiper, but the ones not in center are scaled to 0.7 */\r\n /* left is 33.33*(1-0.7)/2 */\r\n left: 5%;\r\n }\r\n`;\r\n\r\nexport const VideoListNavigationNextButtonDefaultBox = styled(LiveStreamingNavigationCommonBox)`\r\n right: 1rem;\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove} {\r\n /* On PC, one tile is a third of the swiper, but the ones not in center are scaled to 0.7 */\r\n /* right is 33.33*(1-0.7)/2 */\r\n right: 5%;\r\n }\r\n`;\r\n\r\nconst VideoCutCommonBox = styled.div`\r\n position: absolute;\r\n height: 80%;\r\n width: 2px;\r\n top: 10%;\r\n`;\r\n\r\nexport const VideoListLeftCutDefaultBox = styled(VideoCutCommonBox)`\r\n left: 8%;\r\n margin-left: -6px;\r\n\r\n ${CssRule.For.RTL.build()} & {\r\n left: unset;\r\n margin-left: 0px;\r\n right: 8%;\r\n margin-right: 6px;\r\n }\r\n`;\r\nexport const VideoListRightCutDefaultBox = styled(VideoCutCommonBox)`\r\n right: 8%;\r\n margin-right: 11px;\r\n\r\n ${CssRule.For.RTL.build()} & {\r\n right: unset;\r\n margin-right: 0px;\r\n left: 8%;\r\n margin-left: -11px;\r\n }\r\n`;\r\n","import {VideoListNavigationPrevButtonDefaultBox, VideoListNavigationNextButtonDefaultBox, VideoListLeftCutDefaultBox, VideoListRightCutDefaultBox} from \"./video-navigation.default.box\";\r\n\r\nexport const VideoListNavigationPrevButtonBox = VideoListNavigationPrevButtonDefaultBox;\r\nexport const VideoListNavigationNextButtonBox = VideoListNavigationNextButtonDefaultBox;\r\n\r\nexport const VideoListLeftCutBox = VideoListLeftCutDefaultBox;\r\nexport const VideoListRightCutBox = VideoListRightCutDefaultBox;\r\n","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {OrbitSwiperComponent} from '../orbit-swiper/orbit-swiper.component';\r\nimport {IVideoListViewModel} from \"../../services/arenas/models/lists/video-list/video-list-view-model.interface\";\r\n\r\n\r\ninterface VideoListComponentProps {\r\n viewModel: IVideoListViewModel;\r\n listPosition: number;\r\n}\r\n\r\n@observer\r\nexport class VideoListComponent extends OrbitComponent {\r\n\r\n // For static video list we need to know the final gametype(from UI perspective)\r\n // For the final gametype, once video finishes, we don't auto swipe to the next one(= first one).\r\n private _getLastGameType(): number {\r\n let gameTypes = this.props.viewModel.gameTypes;\r\n let index = this.services.mediaQuery.xlAndAbove ? 0 : (gameTypes.length - 1);\r\n return gameTypes[index];\r\n }\r\n\r\n private _onGameBringInCentralView = (gameIndex: number) => {\r\n this.props.viewModel.setCurrentGameIndex(gameIndex);\r\n }\r\n\r\n render() {\r\n const viewModel = this.props.viewModel;\r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import {SwiperListBaseModel} from \"../swiper-list-base.model\";\r\nimport {LiveStreamSwipeLogicHandler} from \"../../swiper-logic-handler/live-stream-swipe-logic-handler\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {computed} from \"mobx\";\r\nimport React from \"react\";\r\nimport {\r\n VideoListLeftCutBox, VideoListNavigationNextButtonBox,\r\n VideoListNavigationPrevButtonBox, VideoListRightCutBox\r\n} from \"../../../../../components/live-streaming-tile/video-common-components/video-navigation/video-navigation.box\";\r\nimport {VideoListComponent} from \"../../../../../components/video-list-component/video-list.component\";\r\nimport {IVideoListViewModel} from \"./video-list-view-model.interface\";\r\n\r\nexport abstract class DefaultVideoListModel extends SwiperListBaseModel implements IVideoListViewModel {\r\n protected _swipeLogicHandler: LiveStreamSwipeLogicHandler = new LiveStreamSwipeLogicHandler(this.services, this);\r\n\r\n protected get _isAISorted(): boolean {\r\n return false;\r\n }\r\n\r\n protected _getGameTypesOffsetFromLocalStorage(): number {\r\n let storedValue = this.services.localStorage.getItem(this._offsetStorageKey);\r\n\r\n return Check.isNullOrUndefined(storedValue) ? 0 : parseInt(storedValue);\r\n }\r\n\r\n protected _offsetStorageKey: string = 'orbit-video-list-gametype-offset' + this.listConfiguration.listId;\r\n\r\n /**\r\n * This must be static. Because the ListFactory.createSwiper will be called several times, and that will create a new instance of this class.\r\n * (For every live casino video list and every time the list changes and maybe when the ai changes the list sorting)\r\n * So if this is not \"static\" at every instance creation _gameTypesOffset will be initialized with \"undefined\"\r\n * and when calling _getGameTypes the cycling will run again for every new instance.\r\n * And we want to do this only once after page load\r\n */\r\n protected static _gameTypesOffsets: Record = {};\r\n\r\n protected _cycleGamesAndIncrementOffset(baseArray: number[]) {\r\n if(Check.isNullOrUndefined(DefaultVideoListModel._gameTypesOffsets[this._offsetStorageKey])) {\r\n DefaultVideoListModel._gameTypesOffsets[this._offsetStorageKey] = this._getGameTypesOffsetFromLocalStorage();\r\n let newOffset = (DefaultVideoListModel._gameTypesOffsets[this._offsetStorageKey] + 1) % (this.listConfiguration.gamesId.length);\r\n this.services.localStorage.setItem(this._offsetStorageKey, newOffset);\r\n }\r\n\r\n return baseArray.splice(DefaultVideoListModel._gameTypesOffsets[this._offsetStorageKey]).concat(baseArray);\r\n }\r\n\r\n @computed\r\n get gameTypes(): number[] {\r\n // gameTypes is a getter and in javascript I cannot call \"super.gameTypes\"\r\n let gTypes = this._applyGameTypesTransformations(this._getGameTypes());\r\n\r\n if (this.services.mediaQuery.xlAndAbove && gTypes.length > 2) {\r\n let lastGame = gTypes.pop();\r\n gTypes.unshift(lastGame);\r\n }\r\n return gTypes;\r\n }\r\n\r\n renderListNavigation(): React.ReactElement | null {\r\n\r\n const PrevIcon = this.services.theme.currentTheme.icons.leftArrowIcon;\r\n const NextIcon = this.services.theme.currentTheme.icons.rightArrowIcon;\r\n\r\n return (\r\n \r\n {this.services.mediaQuery.xlAndAbove ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : null}\r\n this.swipeLogicHandler.movePrevious()}>\r\n \r\n \r\n this.swipeLogicHandler.moveNext()}>\r\n \r\n \r\n {this.services.mediaQuery.xlAndAbove ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : null}\r\n \r\n );\r\n }\r\n\r\n\r\n\r\n _renderList(listPosition: number): React.ReactElement | null {\r\n return (\r\n \r\n );\r\n }\r\n\r\n setCurrentGameIndex(gameIndex: number): void {\r\n this._swipeLogicHandler.setCurrentGameIndex(gameIndex);\r\n }\r\n}\r\n","import React from \"react\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {LiveStreamingListTitleBox} from \"../../../../../components/live-streaming-tile/live-streaming-specific-components/live-streaming-list-title/live-streaming-list-title.box\";\r\nimport {LiveStreamingTitleIconBox} from \"../../../../../components/live-streaming-tile/live-streaming-specific-components/live-streaming-title-icon/live-streaming-title-icon.box\";\r\nimport {DefaultVideoListModel} from \"./default-video-list.model\";\r\nimport {LIVE_STREAMING_ITEM} from \"../../../../../themes/css-global-classes\";\r\n\r\nexport class LiveStreamingVideoListModel extends DefaultVideoListModel {\r\n\r\n get templateType(): string {\r\n return LIVE_STREAMING_ITEM;\r\n }\r\n\r\n private _isLiveStreamDisabled = () => {\r\n // live stream should be rendered on mobile only, excepting CIP8, if is enable from AB and\r\n // if user is authorized or if is not authorized only if is not disabled prelogin\r\n return this.services.miniOrbit.isEnabled ||\r\n !this.services.abTestingFeatureDataProvider.isVideoLiveStreamEnabled ||\r\n this.services.liveStreamPlaying.isDisabledPrelogin\r\n };\r\n\r\n protected _shouldBeDisplayed(): boolean {\r\n if(this._isLiveStreamDisabled()) {\r\n return false;\r\n }\r\n\r\n return super._shouldBeDisplayed() && this.gameTypes.length > 0;\r\n }\r\n\r\n get maxGamesToShowInList(): number {\r\n return 9;\r\n }\r\n\r\n protected _getGameTypes(): number[] {\r\n\r\n if(!Check.isNullOrUndefined(this.services.liveStreamPlaying.isSupported)\r\n && !this.services.liveStreamPlaying.isSupported) {\r\n return [];\r\n }\r\n\r\n let baseArray = [...this.listConfiguration.gamesId];\r\n let gameTypes = this._cycleGamesAndIncrementOffset(baseArray);\r\n\r\n gameTypes = gameTypes.filter((gt) => this.services.games.gamesMap[gt]?.hasVideoURL);\r\n\r\n if(this.services.liveTableFeeds.tablesData.length === 0) {\r\n return gameTypes;\r\n } else {\r\n return gameTypes.filter(gType => this.services.liveTableFeeds.openTablesIds.find(tableId => tableId === gType.toString()));\r\n }\r\n }\r\n\r\n get numberOfGamesSkeletons(): number {\r\n return this._getNumberOfGamesSkeletons();\r\n }\r\n\r\n protected _getNumberOfGamesSkeletons(): number {\r\n if(Check.isNullOrUndefined(this.services.liveStreamPlaying.isSupported) || this.services.liveTableFeeds.tablesData.length === 0) {\r\n return 1;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n protected _renderHeaderIcon(): React.ReactElement | null {\r\n return (\r\n LIVE\r\n );\r\n }\r\n\r\n protected _renderHeaderText(): string | React.ReactElement {\r\n return (\r\n \r\n {this.title.translation}\r\n \r\n );\r\n }\r\n\r\n}\r\n","import {DefaultVideoListModel} from \"./default-video-list.model\";\r\nimport {STATIC_VIDEO_ITEM} from \"../../../../../themes/css-global-classes\";\r\nimport {SwiperGamesListConfiguration} from \"../../../../configurations/config-data-sections/arenas.configuration\";\r\nimport {IArenaToGamesListAdapter} from \"../../arenas/arena-to-games-list-adapter.interface\";\r\n\r\nexport class StaticVideoListModel extends DefaultVideoListModel {\r\n\r\n constructor(listConfiguration: SwiperGamesListConfiguration, arena: IArenaToGamesListAdapter) {\r\n super(listConfiguration, arena);\r\n\r\n this.services.staticVideoPlaying.setSwiperHandler(this.swipeLogicHandler);\r\n }\r\n\r\n get templateType(): string {\r\n return STATIC_VIDEO_ITEM;\r\n }\r\n\r\n private _isStaticVideoListDisabled = () => {\r\n return (\r\n this.services.miniOrbit.isEnabled ||\r\n this.services.staticVideoPlaying.isDisabledPrelogin ||\r\n !this.services.abTestingFeatureDataProvider.isStaticVideoListEnabled\r\n );\r\n };\r\n\r\n protected _shouldBeDisplayed(): boolean {\r\n if(this._isStaticVideoListDisabled()) {\r\n return false;\r\n }\r\n\r\n return super._shouldBeDisplayed() && this.gameTypes.length > 0;\r\n }\r\n\r\n get maxGamesToShowInList(): number {\r\n return 4;\r\n }\r\n\r\n protected _getGameTypes(): number[] {\r\n\r\n let baseArray = [...this.listConfiguration.gamesId];\r\n let gameTypes = this._cycleGamesAndIncrementOffset(baseArray);\r\n\r\n gameTypes = gameTypes.filter((gt) => this.services.games.gamesMap[gt]?.hasVideoURL);\r\n\r\n return gameTypes;\r\n }\r\n\r\n get numberOfGamesSkeletons(): number {\r\n return this._getNumberOfGamesSkeletons();\r\n }\r\n\r\n protected _getNumberOfGamesSkeletons(): number {\r\n return 1;\r\n }\r\n}\r\n","import {\r\n ApiListType, ArenaGamesGridConfiguration,\r\n SwiperGamesListConfiguration\r\n} from \"../../../configurations/config-data-sections/arenas.configuration\";\r\nimport {IGamesListModel} from \"./games-list-model.interface\";\r\nimport {RecentlyPlayedListModel} from \"./recently-played/recently-played-list.model\";\r\nimport {TopPicksListModel} from \"./top-picks/top-picks-list.model\";\r\nimport {NewGamesListModel} from \"./new-games/new-games-list.model\";\r\nimport {PlayersLikeYouListModel} from \"./players-like-you/players-like-you-list.model\";\r\nimport {StaticSwiperListModel} from \"./static-swiper/static-swiper-list.model\";\r\nimport {IArenaToGamesListAdapter} from \"../arenas/arena-to-games-list-adapter.interface\";\r\nimport {GamesGridListModel} from \"./games-grid/games-grid-list.model\";\r\nimport {LiveCasinoListModel} from \"./live-casino/live-casino-list.model\";\r\nimport {LIVE_CASINO_ITEM} from \"../../../../themes/css-global-classes\";\r\nimport { BecauseYouPlayedPlayedListModel } from \"./because-you-played/because-you-played-list.model\";\r\nimport {LiveStreamingVideoListModel} from \"./video-list/live-streaming-video-list.model\";\r\nimport {StaticVideoListModel} from \"./video-list/static-video-list.model\";\r\n\r\n\r\nexport class ListFactory {\r\n\r\n constructor(private readonly arena: IArenaToGamesListAdapter) {\r\n }\r\n createSwiper(swiperConfig: SwiperGamesListConfiguration): IGamesListModel {\r\n\r\n\r\n if(swiperConfig.templateType === LIVE_CASINO_ITEM) {\r\n return new LiveCasinoListModel(swiperConfig, this.arena);\r\n }\r\n\r\n switch (swiperConfig.apiListType) {\r\n case ApiListType.RECENTLY_PLAYED:\r\n return new RecentlyPlayedListModel(swiperConfig, this.arena);\r\n case ApiListType.TOP_PICKS:\r\n return new TopPicksListModel(swiperConfig, this.arena);\r\n case ApiListType.NEW_GAMES:\r\n return new NewGamesListModel(swiperConfig, this.arena);\r\n case ApiListType.PLAYERS_LIKE_YOU:\r\n return new PlayersLikeYouListModel(swiperConfig, this.arena);\r\n case ApiListType.LIVE_CASINO_VIDEO: // maybe rename this to LIVE_STREAMING_VIDEO,but it'd also need admin updated\r\n return new LiveStreamingVideoListModel(swiperConfig, this.arena);\r\n case ApiListType.STATIC_VIDEO:\r\n return new StaticVideoListModel(swiperConfig, this.arena);\r\n case ApiListType.BECAUSE_YOU_PLAYED:\r\n return new BecauseYouPlayedPlayedListModel(swiperConfig, this.arena);\r\n\r\n default:\r\n return new StaticSwiperListModel(swiperConfig, this.arena);\r\n\r\n }\r\n }\r\n\r\n createGrid(gridConfig: ArenaGamesGridConfiguration) {\r\n return new GamesGridListModel(gridConfig, this.arena);\r\n }\r\n}\r\n","import {ArenaFiltersConfigurationMap, IArenaViewModel} from \"./arena-view-model.interface\";\r\nimport {\r\n ArenaGamesGridConfiguration,\r\n SwiperGamesListConfiguration\r\n} from \"../../../configurations/config-data-sections/arenas.configuration\";\r\nimport {action, computed, observable, reaction} from \"mobx\";\r\nimport {IArenaToGamesListAdapter} from \"./arena-to-games-list-adapter.interface\";\r\nimport {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {IGamesListModel} from \"../lists/games-list-model.interface\";\r\nimport React from \"react\";\r\nimport {ListFactory} from \"../lists/list-factory\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {ListsSortOrderStorage} from \"../lists-sort-order-storage\";\r\nimport {IGamesListRenderer} from \"../lists/games-list-renderer.interface\";\r\nimport {BannerComponent} from \"../../../../components/banner/banner.component\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {IGamesFilterStrategy} from \"../../../games-filter/strategies/games-filter-strategy.interface\";\r\n\r\nexport type BannerConfig = {position: number; templateID: string; componentID: string; fallbackComponent: string, bannerAdminPlaceholderId: string};\r\n\r\nexport abstract class ArenaBaseModel implements IArenaToGamesListAdapter, IArenaViewModel {\r\n constructor(public readonly arenaName: string,\r\n public readonly services: IServiceFactoryExtended,\r\n private readonly _postLoginListsSortOrderStorage: ListsSortOrderStorage) {\r\n\r\n this._listFactory = new ListFactory(this);\r\n\r\n reaction(() => [this.services.user.isAuthorized, this.services.routing.currentRoute],\r\n async () => {\r\n await this._updateAIEngineSwipersSortOrder();\r\n }, {\r\n fireImmediately: true\r\n });\r\n }\r\n\r\n private _listFactory: ListFactory;\r\n abstract get maxSwipersToShow(): number;\r\n abstract get maxGamesToShowInList(): number;\r\n protected abstract _getSwipersConfigurations(): SwiperGamesListConfiguration[];\r\n protected abstract _getGridsConfigurations(): ArenaGamesGridConfiguration[];\r\n protected abstract _getPromotionalBannerConfig(): BannerConfig | null;\r\n abstract renderArena(): React.ReactElement | null;\r\n abstract filterGamesByArenaType(gameInfos: GameInfo[]): GameInfo[];\r\n abstract get filtersConfigurationMap(): ArenaFiltersConfigurationMap;\r\n abstract getGamesFilteringStrategy(): IGamesFilterStrategy;\r\n\r\n protected get useAdvancedFilters(): boolean {\r\n return this.services.configuration.servicesConfigs.Filters.useAdvancedFilters;\r\n }\r\n\r\n protected get _isUsingExternalAIForSwipersSorting(): boolean {\r\n return false;\r\n }\r\n\r\n protected _getSwiperIdToPutOnTop(): number | null {\r\n return null;\r\n }\r\n\r\n get aiEngine(): string {\r\n return \"\";\r\n }\r\n\r\n @observable.ref\r\n private _aiEngineListsSortOrder: Record = null;\r\n @action.bound\r\n private _setAiEngineListsSortOrder(value: Record): void {\r\n this._aiEngineListsSortOrder = value;\r\n }\r\n private async _updateAIEngineSwipersSortOrder(): Promise {\r\n if(this._isUsingExternalAIForSwipersSorting) {\r\n return;\r\n }\r\n if(this._aiEngineListsSortOrder) {\r\n return;\r\n }\r\n\r\n if(!this.services.user.isAuthorized) {\r\n return;\r\n }\r\n\r\n if(this.services.routing.currentRoute.data?.arenaType === this.arenaName) {\r\n const listsIDs = this._getSwipersConfigurations().filter(sw => !Check.isNullOrUndefined(sw.listId))\r\n .map(sw => sw.listId.toString());\r\n //console.log('recomandations for: ' + this.arenaName);\r\n this._setAiEngineListsSortOrder(await this.services.aiEngine.getCasinoRecommendedDynamicListsForPlayer(listsIDs));\r\n }\r\n }\r\n\r\n private _movePreferredSwiperOnTop(swipers: IGamesListModel[]){\r\n const listId = this._getSwiperIdToPutOnTop();\r\n if(Check.isNullOrUndefined(listId)) {\r\n return swipers;\r\n }\r\n const listIndex = swipers.findIndex((list) => list.listId === listId);\r\n if(listIndex > 0){\r\n swipers.splice(0, 0, swipers.splice(listIndex, 1)[0]);\r\n }\r\n return swipers;\r\n }\r\n\r\n\r\n protected _sortSwipersByAI(originalSwipers: IGamesListModel[]): IGamesListModel[] {\r\n const scores = this._aiEngineListsSortOrder;\r\n if(!scores) {\r\n return originalSwipers;\r\n }\r\n\r\n const notForcedInLayoutSortedSwipers = originalSwipers.filter(s => !s.forceInLayout)\r\n .sort((s1, s2) => (scores[s2.listId] || 0) - (scores[s1.listId] || 0));\r\n\r\n let sortedSwipersConfigs: IGamesListModel[] = [];\r\n originalSwipers.forEach(gameList => {\r\n if(gameList.forceInLayout){\r\n sortedSwipersConfigs.push(gameList)\r\n } else{\r\n let mappedGameList = notForcedInLayoutSortedSwipers.shift();\r\n if(mappedGameList) {\r\n sortedSwipersConfigs.push(mappedGameList)\r\n }\r\n }\r\n });\r\n\r\n return sortedSwipersConfigs;\r\n }\r\n\r\n\r\n\r\n @computed\r\n public get allLists(): IGamesListModel[] {\r\n const result = this._createAllLists();\r\n this._sendGameListsAnalytics(result);\r\n return result;\r\n }\r\n\r\n @computed\r\n get allArenaGamesForFiltering(): GameInfo[] {\r\n let result: number[] = [];\r\n this._getGridsConfigurations().forEach(g => {\r\n result = [\r\n ...result,\r\n ...g.gamesId\r\n ]\r\n });\r\n\r\n return result.map(gameType => this.services.games.gamesMap[gameType]).filter(gameInfo => gameInfo);\r\n }\r\n\r\n get listsCount(): number {\r\n return this.allLists.length;\r\n }\r\n\r\n protected _createAllLists(): IGamesListModel[] {\r\n return this._appendGrids(\r\n this._limitTheNumberOfSwipers(\r\n this._saveSwipersPostLoginSortOrder(\r\n this._sortSwipersByPostLoginOrder(\r\n this._movePreferredSwiperOnTop(\r\n this._sortSwipersByAI(\r\n this._createSwipers()))))));\r\n }\r\n\r\n private _limitTheNumberOfSwipers(swipers: IGamesListModel[]): IGamesListModel[] {\r\n\r\n if(swipers.length <= this.maxSwipersToShow) {\r\n return swipers;\r\n }\r\n let result: IGamesListModel[] = [];\r\n\r\n let maxNumberOfSwipers = this.maxSwipersToShow;\r\n for(let i = 0; i < swipers.length; i++) {\r\n const list = swipers[i];\r\n if(maxNumberOfSwipers > 0 || list.forceInLayout) {\r\n result.push(list);\r\n }\r\n\r\n if(list.isVisible) {\r\n maxNumberOfSwipers--;\r\n }\r\n\r\n }\r\n\r\n return result;\r\n }\r\n\r\n renderList(listPosition: number): React.ReactElement | null {\r\n let position = listPosition;\r\n\r\n for(let list of this.allLists) {\r\n if(list.isVisible) {\r\n position--;\r\n }\r\n if(position === 0) {\r\n return this._renderListAndBanner(listPosition, list);\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n protected _renderListAndBanner(listPosition: number, list: IGamesListRenderer) {\r\n return (\r\n \r\n {list.render(listPosition)}\r\n {this._renderPromotionalBanner(listPosition)}\r\n \r\n )\r\n }\r\n\r\n getNextBatchSize(currentListPosition: number): number {\r\n if(currentListPosition > this.allLists.length) {\r\n return 0;\r\n }\r\n\r\n return 2;\r\n }\r\n\r\n protected _saveSwipersPostLoginSortOrder(swipers: IGamesListModel[]): IGamesListModel[] {\r\n if(this.services.user.isAuthorized) {\r\n this._postLoginListsSortOrderStorage.saveSortOrder(this.arenaName, swipers);\r\n }\r\n return swipers;\r\n }\r\n\r\n protected _sortSwipersByPostLoginOrder(swipers: IGamesListModel[]): IGamesListModel[] {\r\n if(this.services.user.isAuthorized) {\r\n return swipers;\r\n }\r\n\r\n return this._postLoginListsSortOrderStorage.sortLists(this.arenaName, swipers);\r\n }\r\n\r\n protected _createSwipers(): IGamesListModel[] {\r\n const configs = this._getSwipersConfigurations();\r\n const lists: IGamesListModel[] = [];\r\n\r\n configs.forEach((listConfig) => {\r\n lists.push(this._createSwiper(listConfig));\r\n });\r\n\r\n return lists;\r\n }\r\n\r\n protected _appendGrids(lists: IGamesListModel[]) {\r\n this._getGridsConfigurations().forEach(gridConfig => {\r\n lists.push(this._createGrid(gridConfig));\r\n });\r\n return lists;\r\n }\r\n\r\n protected _createGrid(gridConfig: ArenaGamesGridConfiguration) {\r\n return this._listFactory.createGrid(gridConfig);\r\n }\r\n\r\n protected _createSwiper(swiperConfig: SwiperGamesListConfiguration): IGamesListModel {\r\n return this._listFactory.createSwiper(swiperConfig);\r\n }\r\n\r\n protected _getBannerMinHeightInPixels(listPosition: number, bannerConfig: BannerConfig | null) {\r\n if(!bannerConfig) {\r\n return 0;\r\n }\r\n\r\n const shouldRenderBanner = listPosition === bannerConfig.position\r\n || (this.allLists.length < bannerConfig.position && listPosition === this.allLists.length);\r\n if(!shouldRenderBanner) {\r\n return 0;\r\n }\r\n\r\n if(this.services.mediaQuery.sAndBelow) {\r\n return 142;\r\n }\r\n\r\n return 223;\r\n }\r\n\r\n protected _renderPromotionalBanner(listPosition: number): React.ReactElement | null {\r\n const bannerConfig = this._getPromotionalBannerConfig();\r\n const bannerMinHeight = this._getBannerMinHeightInPixels(listPosition, bannerConfig);\r\n if(bannerMinHeight === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n protected _sendGameListsAnalytics(lists: IGamesListModel[]): IGamesListModel[] {\r\n if(!this.services.user.isAuthorized) {\r\n return lists;\r\n }\r\n\r\n if(!this._isUsingExternalAIForSwipersSorting) {\r\n return lists;\r\n }\r\n\r\n const analyticsObject = {\r\n category: 'AI_ListsDisplayed',\r\n action: lists.map(list => list.title).join(','),\r\n label: \"ML888\"\r\n };\r\n\r\n this.services.analytics.sendAnalytics(analyticsObject.category, analyticsObject.action, analyticsObject.label);\r\n\r\n return lists;\r\n }\r\n}","import styled, { css } from \"styled-components\";\r\n\r\ninterface HomepageHeaderArenaIconBoxProps {\r\n useSmallHeaderArenas: boolean;\r\n}\r\n\r\nexport const HomepageHeaderArenaIconDefaultBox = styled.div`\r\n display: flex;\r\n position: relative;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n width: 20%;\r\n ${props => props.useSmallHeaderArenas ? css`max-width: 290px` : \"\"};\r\n transition: transform 0.4s ease-in-out;\r\n\r\n &:hover {\r\n transform: scale(1.05);\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove} {\r\n &::after {\r\n content: \"\";\r\n position: absolute;\r\n bottom: 5px;\r\n left: 0;\r\n width: 100%;\r\n height: 15px;\r\n background-image: url(${props => props.theme.images.headerArenaIconDropShadow.toString()});\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n transform: translateY(100%);\r\n z-index: 0;\r\n }\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n flex-shrink: 0;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n width: 20%;\r\n ${props => props.useSmallHeaderArenas ? css`max-width: 210px` : \"\"};\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n width: ${props => !props.useSmallHeaderArenas ? \"45%\" : \"31%\"};\r\n ${props => props.useSmallHeaderArenas ? css`min-width: 100px;`: \"\"};\r\n }\r\n\r\n`;\r\n","import styled, { css } from \"styled-components\";\r\nimport {HomepageHeaderArenaIconDefaultBox} from \"./home-page-header-arena-icon.default.box\";\r\n\r\nexport const HomepageHeaderArenaIconSIBox = styled(HomepageHeaderArenaIconDefaultBox)`\r\n ${props => props.useSmallHeaderArenas ? css`max-width: 252px` : \"\"};\r\n margin-right: 1rem;\r\n margin-left: 1rem;\r\n &::after {\r\n display: none;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n ${props => props.useSmallHeaderArenas ? css`max-width: 210px` : \"\"};\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n ${props => props.useSmallHeaderArenas ? css`min-width: 100px;`: \"\"};\r\n }\r\n\r\n`;\r\n","import {HomepageHeaderArenaIconDefaultBox} from \"./home-page-header-arena-icon.default.box\";\r\nimport {HomepageHeaderArenaIconSIBox} from \"./home-page-header-arena-icon.si.box\";\r\nimport { styledByTheme } from \"../../../../themes/architecture/styled-by-theme\";\r\n\r\nexport const HomepageHeaderArenaIconBox = styledByTheme(HomepageHeaderArenaIconDefaultBox).forSI(HomepageHeaderArenaIconSIBox).apply();\r\n","import styled from \"styled-components\";\r\n\r\nexport const HomepageHeaderArenaTitleDefaultBox = styled.div`\r\n position: relative;\r\n font-size: 1.4rem;\r\n text-transform: uppercase;\r\n text-align: center;\r\n letter-spacing: 1px;\r\n color: ${props => props.theme.colors.textLight};\r\n margin: 0 auto;\r\n width: fit-content;\r\n z-index: 1;\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n font-size: 0.9rem;\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\nimport {HomepageHeaderArenaTitleDefaultBox} from \"./home-page-header-arena-title.default.box\";\r\n\r\nexport const HomepageHeaderArenaTitleSIBox = styled(HomepageHeaderArenaTitleDefaultBox)`\r\n position: unset;\r\n width: auto;\r\n color: ${({theme}) => theme.colors.brandPrimaryContrast};\r\n background-color: ${({theme}) => theme.colors.brandSecondaryContrast};\r\n border-bottom: 5px solid ${({theme}) => theme.colors.brandSecondaryLight};\r\n border-bottom-left-radius: 5px;\r\n border-bottom-right-radius: 5px;\r\n ${({theme}) => theme.font.presets.secondary};\r\n font-size: 2.9rem;\r\n line-height: 1.2;\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n font-size: 2rem;\r\n }\r\n`;\r\n","import {HomepageHeaderArenaTitleDefaultBox} from \"./home-page-header-arena-title.default.box\";\r\nimport {HomepageHeaderArenaTitleSIBox} from \"./home-page-header-arena-title.si.box\";\r\nimport { styledByTheme } from \"../../../../themes/architecture/styled-by-theme\";\r\n\r\nexport const HomepageHeaderArenaTitleBox = styledByTheme(HomepageHeaderArenaTitleDefaultBox)\r\n .forSI(HomepageHeaderArenaTitleSIBox)\r\n .apply();\r\n","import styled from \"styled-components\";\r\n\r\nconst DefaultBox = styled.div`\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n padding: 0 0.5rem;\r\n background: ${({theme}) => theme.components.header.colors.indicatorBadge.backgroundInGridLayout.toString()};\r\n color: ${({theme}) => theme.colors.textLight.toString()};\r\n border-radius: 2rem;\r\n transform: translate(100%, -50%);\r\n`;\r\n\r\nexport const HomepageHeaderArenaBadgeDefaultBox = DefaultBox;\r\n","import styled from \"styled-components\";\r\nimport { HomepageHeaderArenaBadgeDefaultBox } from \"./home-page-header-arena-badge.default.box\";\r\nimport { baseColors} from '../../../../themes/definitions/si/base-colors';\r\n\r\nexport const HomepageHeaderArenaBadgeSIBox = styled(HomepageHeaderArenaBadgeDefaultBox)`\r\n font-size: 1.8rem;\r\n background-color: ${baseColors.base03Dark};\r\n padding: 0 0.7rem;\r\n box-shadow: 0 0 1px 1px ${props => props.theme.colors.background};\r\n border-radius: 0.5rem;\r\n transform: translate(50%, 10px);\r\n z-index: 1;\r\n`;\r\n","import { styledByTheme } from \"../../../../themes/architecture/styled-by-theme\";\r\nimport { HomepageHeaderArenaBadgeDefaultBox } from \"./home-page-header-arena-badge.default.box\";\r\nimport { HomepageHeaderArenaBadgeSIBox } from \"./home-page-header-arena-badge.si.box\";\r\n\r\nexport const HomepageHeaderArenaBadgeBox = styledByTheme(HomepageHeaderArenaBadgeDefaultBox).forSI(HomepageHeaderArenaBadgeSIBox).apply();\r\n","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../themes/architecture/styled-by-device\";\r\n\r\ninterface HomepageHeaderArenaContainerBoxProps {\r\n useSmallHeaderArenas: boolean;\r\n}\r\n\r\nconst DefaultBox = styled.div`\r\n display: flex;\r\n margin-bottom: 4rem;\r\n justify-content: center;\r\n margin-top: ${(props) => props.useSmallHeaderArenas ? \"0\" : \"1rem\"};\r\n`;\r\n\r\nconst PCBox = styled(DefaultBox)``;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n overflow-x: scroll;\r\n overflow-y: hidden;\r\n\r\n overflow: -moz-scrollbars-none;\r\n -webkit-overflow-scrolling: touch;\r\n -ms-overflow-style: -ms-autohiding-scrollbar;\r\n\r\n &::-webkit-scrollbar {\r\n display: none;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n justify-content: flex-start;\r\n }\r\n`;\r\n\r\nexport const HomePageHeaderArenasContainerDefaultBox = styledByDevice(PCBox, MobileBox);\r\n","import {HomePageHeaderArenasContainerDefaultBox} from \"./home-page-header-arenas-container.default.box\";\r\n\r\nexport const HomePageHeaderArenasContainerBox = HomePageHeaderArenasContainerDefaultBox;\r\n","import {HomepageHeaderArenaLinkDefaultBox} from \"./home-page-header-arena-link.default.box\";\r\n\r\nexport const HomepageHeaderArenaLinkBox = HomepageHeaderArenaLinkDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const HomepageHeaderArenaLinkDefaultBox = styled.a`\r\n width: 100%;\r\n`;\r\n","import styled from \"styled-components\";\r\n\r\ninterface HomepageHeaderArenaSkeletonDefaultBoxProps {\r\n isLoading: boolean;\r\n}\r\n\r\nexport const HomepageHeaderArenaSkeletonDefaultBox = styled.div`\r\n\r\n display: ${({isLoading}) => isLoading ? \"block\" : \"none\"};\r\n\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n\r\n &::before {\r\n position: absolute;\r\n content: \"\";\r\n top: 1rem;\r\n left: 1rem;\r\n right: 1rem;\r\n bottom: 1rem;\r\n background: radial-gradient(rgba(255, 255, 255, 0.25), rgba(255, 255, 255, 0.1));\r\n border-radius: 33%;\r\n\r\n animation: LoadingAnimation linear 1s 5;\r\n }\r\n\r\n @keyframes LoadingAnimation {\r\n 0% {\r\n opacity: 1;\r\n }\r\n 50% {\r\n opacity: 0.5;\r\n }\r\n 100% {\r\n opacity: 1;\r\n }\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\nimport {HomepageHeaderArenaSkeletonDefaultBox} from \"./home-page-header-arena-skeleton.default.box\";\r\n\r\nexport const HomepageHeaderArenaSkeletonSIBox = styled(HomepageHeaderArenaSkeletonDefaultBox)`\r\n &::before {\r\n top: 0;\r\n left: 0;\r\n right: 0; \r\n bottom: 0;\r\n border-radius: 0;\r\n }\r\n`;","import {HomepageHeaderArenaSkeletonDefaultBox} from \"./home-page-header-arena-skeleton.default.box\";\r\nimport {styledByTheme} from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {HomepageHeaderArenaSkeletonSIBox} from \"./home-page-header-arena-skeleton.si.box\";\r\n\r\nexport const HomepageHeaderArenaSkeletonBox = styledByTheme(HomepageHeaderArenaSkeletonDefaultBox)\r\n .forSI(HomepageHeaderArenaSkeletonSIBox)\r\n .apply();\r\n","import React from \"react\";\r\nimport {Image, ImageProps} from \"../raw-components/image/image\";\r\nimport {OrbitComponentWithState} from \"../base-components/orbit-component-with-state/orbit-component-with-state\";\r\nimport {AspectRatioContainerComponent} from '../raw-components/aspect-ratio-container/aspect-ratio-container.component';\r\nimport {HomepageHeaderArenaSkeletonBox} from './boxes/home-page-header-arena-skeleton/home-page-header-arena-skeleton.box';\r\nimport { ByThemeRegistry } from \"../../themes/architecture/by-theme-registry\";\r\n\r\ninterface HomePageHeaderArenaIconComponentState {\r\n isLoading: boolean;\r\n}\r\n\r\nexport class HomePageHeaderArenaIconComponent extends OrbitComponentWithState {\r\n private aspectRatioSizes: ByThemeRegistry<{width: number; height: number;}> = new ByThemeRegistry({width: 295, height: 275});\r\n\r\n constructor(props: ImageProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: true\r\n };\r\n this.aspectRatioSizes.forSI({width: 252, height: 150});\r\n }\r\n\r\n private _handleDoneLoading() {\r\n this.setState({ isLoading: false });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n this._handleDoneLoading()} />\r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {Link} from '../raw-components/link/link';\r\nimport {CyClass} from \"../../../common/cy-classes\";\r\nimport {observer} from 'mobx-react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {HomePageHeaderArena} from '../../services/configurations/config-data-sections/home-page.configuration';\r\nimport {HomepageHeaderArenaIconBox} from './boxes/home-page-header-arena-icon/home-page-header-arena-icon.box';\r\nimport {HomepageHeaderArenaTitleBox} from './boxes/home-page-header-arena-title/home-page-header-arena-title.box';\r\nimport {HomepageHeaderArenaBadgeBox} from './boxes/home-page-header-arena-badge/home-page-header-arena-badge.box';\r\nimport {HomePageHeaderArenasContainerBox} from './boxes/home-page-header-arenas-container.box';\r\nimport {HomepageHeaderArenaLinkBox} from './boxes/home-page-header-arena-link/home-page-header-arena-link.box';\r\nimport {HomePageHeaderArenaIconComponent} from \"./home-page-header-arena-icon.component\";\r\nimport { SeoConfiguration } from '../../services/configurations/config-data-sections/seo.configuration';\r\n\r\nconst NEW_GAMES_TITLE = \"NEW_GAMES\";\r\n\r\ninterface HomePageHeaderArenasComponentProps {\r\n useSmallHeaderArenas: boolean;\r\n}\r\n\r\n@observer\r\nexport class HomePageHeaderArenasComponent extends OrbitComponent {\r\n\r\n private _getSeo(prop: keyof SeoConfiguration[\"categories\"][\"images\"], placeholder: string, dynamic: string) {\r\n\r\n let seoValue = '';\r\n let seoConfig = this.services.configuration.data.seo;\r\n\r\n if (seoConfig && seoConfig.categories && seoConfig.categories.images && seoConfig.categories.images[prop]) {\r\n seoValue = seoConfig.categories.images[prop];\r\n }\r\n\r\n return this.services.translation.translate(seoValue, {\r\n [placeholder]: this.services.translation.translate(dynamic)\r\n });\r\n }\r\n\r\n private _handleArenaAction = (action: string, index: number) => {\r\n try {\r\n const jsonAction = JSON.parse(action);\r\n\r\n if (jsonAction.action === 'game-real') {\r\n\r\n const gameInfo = this.services.games.gamesMap[jsonAction.id];\r\n\r\n gameInfo.open({\r\n isRealMode: true,\r\n gameIndex: index\r\n });\r\n }\r\n\r\n } catch (error) {\r\n this.services.logger.error(`Error in HomePageHeaderArenasComponent '_handleArenaAction', error: ${error}, value:${action}`)\r\n }\r\n };\r\n\r\n private _handleArenaRedirect = (link: string) => {\r\n /**\r\n * @desc added because of parallel actions [navigation + spinner]\r\n * F TO DO - This setTimeout was added by regev on 09/04/2018 in this commit 962fbdea53e3bc8828a215ed035fc0e9243b7a50. I should check if this really solves a performance issue.\r\n * we should keep this delay so that on mobile the user has time to see the image changing sizes upon touching, as a form of feedback\r\n */\r\n setTimeout(() => {\r\n this.services.location.push(link); // navigation is done this way, so we can have the trailing slash\r\n }, 500);\r\n };\r\n\r\n private _handleArenaClick(event: any, arena: HomePageHeaderArena, index: number): void {\r\n\r\n event.preventDefault();\r\n this.services.analytics.sendAnalytics('Game Grid', 'Home', `${arena.title}_${index}`);\r\n\r\n if (arena.action) {\r\n this._handleArenaAction(arena.action, index);\r\n } else if (arena.link) {\r\n this._handleArenaRedirect(arena.link);\r\n }\r\n }\r\n\r\n private _renderOneHeaderArena(arena: HomePageHeaderArena, index: number) {\r\n const hasNewGamesIndication = arena.title === NEW_GAMES_TITLE && this.services.homepage.newAddedGames > 0;\r\n const newGamesIndication = hasNewGamesIndication ?\r\n \r\n {this.services.homepage.newAddedGames > 10? '10+' : this.services.homepage.newAddedGames}\r\n \r\n : null;\r\n\r\n return (\r\n this._handleArenaClick(event, arena, index)}\r\n useSmallHeaderArenas={this.props.useSmallHeaderArenas }\r\n >\r\n {/*We need this href only for SEO*/}\r\n \r\n \r\n \r\n {this.services.translation.translate(arena.title)}\r\n {newGamesIndication}\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n render() {\r\n\r\n const headerArenas = this.services.homepage.headerArenas;\r\n\r\n if(headerArenas.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {headerArenas.map((arena, index) => this._renderOneHeaderArena(arena, index))}\r\n \r\n );\r\n }\r\n}\r\n","import styled, {css} from \"styled-components\";\r\nimport { IBannerContainerBoxProps } from \"../../cms-banner/banner-container/banner-container.default.box\";\r\n\r\nexport const HomepageTopBannerBackgroundBox = styled.div`\r\n width: 100%;\r\n position: absolute;\r\n background-image: url(\"${props => props.theme.images.homepageTopBannerPlaceholder.toString()}\");\r\n ${props => props.minHeight && css`\r\n min-height: calc(${props.minHeight} + 1px);\r\n `};\r\n`;\r\n","import styled from \"styled-components\";\r\n\r\nexport const HomepageTopBannerDividerBox = styled.div`\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n box-sizing: border-box;\r\n display: block;\r\n width: calc(100% - 14px);\r\n background-color: ${props => props.theme.colors.boxBorderLight};\r\n border-top: 3px solid ${props => props.theme.colors.boxBorder};\r\n margin: 4px 0 7px 7px;\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\n\r\nexport const FreeToPlayAnimatedIconDefaultBox = styled.div<{isHybridEmbedded: boolean}>`\r\n position: fixed;\r\n cursor: pointer;\r\n z-index: 4;\r\n bottom: ${props => props.isHybridEmbedded? 'calc(env(safe-area-inset-bottom) + 56px)' : '0px'};\r\n right: 0;\r\n`;\r\n","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../themes/architecture/styled-by-device\";\r\nimport {FreeToPlayAnimatedIconDefaultBox} from \"./free-to-play-animated-icon.default.box\";\r\n\r\nconst PCBox = styled(FreeToPlayAnimatedIconDefaultBox)`\r\n width: 190px;\r\n`;\r\n\r\nconst MobileBox = styled(FreeToPlayAnimatedIconDefaultBox)`\r\n width: 130px;\r\n`;\r\n\r\n\r\nexport const FreeToPlayAnimatedIconBox = styledByDevice(PCBox,MobileBox);","\r\nexport interface IUserGameOrientationService {\r\n readonly gameGroup: IUserGameOrientation;\r\n}\r\n\r\nexport enum GAME_ORIENTATION_IDS{\r\n SLOTS = 5003,\r\n BLACKJACK = 5001,\r\n ROULETTE = 5002,\r\n LIVE_BLACKJACK = 5009,\r\n LIVE_ROULETTE = 5010,\r\n LIVE_CASINO = 6003,\r\n CASINO_SKILL = 6001,\r\n CASINO_SOFT = 6002,\r\n CASINO_MIXT = 8001\r\n}\r\n\r\nexport interface IUserGameOrientation{\r\n groupId?: number;\r\n groupName: string;\r\n}","import {OrbitComponent} from \"../base-components/orbit-component/orbit-component\";\r\nimport * as React from \"react\";\r\nimport {FreeToPlayAnimatedIconBox} from \"./boxes/free-to-play-animated-icon.box\";\r\nimport { AnimatedIconObservableTarget, AnimatedIconUnloadReason, IAnimatedIconRequestOptions } from \"../../services/pixi-app/animated-icon-base-service.service\";\r\nimport { CHANNEL_ELEMENTS, CHANNEL_SOURCE } from \"../../../common/const/casinofied-analytics-consts\";\r\nimport { AreaType } from \"@sparkware/uc-sdk-core\";\r\nimport { observer } from \"mobx-react\";\r\nimport {CyClass} from \"../../../common/cy-classes\";\r\nimport {ISendElasticEventOptions} from \"../../services/analytics/analytics.service.interface\";\r\n\r\n@observer\r\nexport class FreeToPlayAnimatedIconComponent extends OrbitComponent {\r\n private iconRequestOptions = {\r\n jsonUrl: this.services.theme.currentTheme.images.f2p.freeToPlay.toString(),\r\n size: {\r\n width: 445,\r\n height: 364\r\n },\r\n timings: {\r\n delay: 2000,\r\n interval: 3000\r\n }\r\n };\r\n\r\n private iconObservableTarget: AnimatedIconObservableTarget | undefined;\r\n\r\n private _captureElementRefForIcon(element: HTMLElement | null) {\r\n // if element is null (the component was unmounted) or the element changed, then check if we have a currently running/loading animation and remove it\r\n if (!element || (this.iconObservableTarget && this.iconObservableTarget.wrapper !== element)) {\r\n // if the current animation is loading, cancel it\r\n if (this.iconObservableTarget && this.iconObservableTarget.loadingInProgress) {\r\n this.iconObservableTarget.abortLoading = true;\r\n }\r\n // if the current animation is already running, stop and dispose it\r\n if (this.iconObservableTarget && this.iconObservableTarget.animationDisposer) {\r\n this.iconObservableTarget.animationDisposer(AnimatedIconUnloadReason.REQUESTED);\r\n }\r\n }\r\n // if the element exists and is different from the previous one, then the animation must be started\r\n if (element && (!this.iconObservableTarget || this.iconObservableTarget.wrapper !== element)) {\r\n let requestOptions: Omit = this.iconRequestOptions;\r\n // update the reference\r\n this.iconObservableTarget = {\r\n ...requestOptions,\r\n wrapper: element\r\n };\r\n this.services.freeToPlay.loadFreeToPlayAnimation(this.iconObservableTarget);\r\n }\r\n // if element is null just update the reference so we know next time the capture is ran\r\n if (!element) {\r\n this.iconObservableTarget = undefined;\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n if (this.services.freeToPlay.isPromotionEligible) {\r\n this._sendAnalytics(\"SHOW\");\r\n }\r\n }\r\n\r\n render() {\r\n if (!this.services.freeToPlay.isPromotionEligible) {\r\n return null;\r\n }\r\n\r\n if (this.services.freeToPlay.isPromotionOpened) {\r\n return null;\r\n }\r\n\r\n return (\r\n this._openBonusWheel()}\r\n ref={this._captureElementRefForIcon.bind(this)}\r\n />\r\n );\r\n }\r\n\r\n private _openBonusWheel = async () => {\r\n this._sendAnalytics(\"CLICK\");\r\n await this.services.freeToPlay.showPromotion({\r\n channel: {\r\n area: AreaType.button,\r\n source: CHANNEL_SOURCE.casinoClient,\r\n element: CHANNEL_ELEMENTS.floatingIcon\r\n }}\r\n );\r\n }\r\n\r\n private _sendAnalytics(action: string) {\r\n try {\r\n let options: ISendElasticEventOptions = {\r\n action: action,\r\n category: \"Floating_icon\",\r\n eventType: \"bonus_widget\",\r\n appID: \"F2P\",\r\n customData: {\r\n location: this.services.location.isHomePage ? 'homepage' : this.services.location.currentUri.pathName.toString(),\r\n segmentation: this.services.user.playerRMSStatus\r\n }\r\n };\r\n this.services.analytics.sendElasticInfoEvent(options, true);\r\n }\r\n catch (err){\r\n console.log(\"Floating_icon \" + action + \" analytics report failed with error: \"+ err);\r\n }\r\n }\r\n}","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {CmsBannerComponent} from '../cms-banner/cms-banner.component';\r\nimport {DailyDealComponent} from \"../daily-deal/daily-deal.component\";\r\nimport {RoutedComponent} from '../base-components/routed-component/routed.component';\r\nimport {LayoutWrapperBox} from \"../../basic-components/layout-wrapper/layout-wrapper.box\";\r\nimport {MOVE_TOP} from \"../../themes/css-global-classes\";\r\nimport classNames from \"classnames\";\r\nimport {HomePageHeaderArenasComponent} from \"../home-page-header-arenas/home-page-header-arenas.component\";\r\nimport {HomepageTopBannerBackgroundBox} from \"./boxes/home-page-top-banner-background.box\";\r\nimport {HomepageTopBannerDividerBox} from './boxes/home-page-top-banner-divider-line';\r\nimport {CyClass} from '../../../common/cy-classes';\r\nimport {LinkToOfferComponent} from \"../link-to-offer/link-to-offer.component\";\r\nimport {ArenaGamesListsComponent} from \"../arena-games-lists/arena-games-lists.component\";\r\nimport {HOME_PAGE_ARENA} from \"../../services/arenas/arena-consts\";\r\nimport {FreeToPlayAnimatedIconComponent} from \"../free-to-play-animated-icon/free-to-play-animated-icon.component\";\r\nimport {BannerComponent} from \"../banner/banner.component\";\r\n\r\n@observer\r\nexport class HomePageComponent extends RoutedComponent<{}> {\r\n\r\n private _renderTopBanner() {\r\n const topBannerProps = this.services.homepage.getTopBannerProps();\r\n\r\n return (\r\n <>\r\n \r\n \r\n {this.services.homepage.useSmallHeaderArenas && !this.services.homepage.useAdminBanner? : null}\r\n \r\n );\r\n }\r\n\r\n private _renderHomePageArenaHeaders() {\r\n if(this.services.device.hybrid.isEmbedded) {\r\n return null;\r\n }\r\n\r\n return ;\r\n }\r\n\r\n private _renderDailyDealBox() {\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _renderSeoBanner() {\r\n if(this.services.device.hybrid.isEmbedded) {\r\n return null;\r\n }\r\n let bannerConfig = this.services.configuration.data.homePage.seoSection;\r\n if(!bannerConfig.display) {\r\n return null;\r\n }\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _renderLinkToOffer() {\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n render() {\r\n const className = classNames('cy-layout-wrapper-homepage', {\r\n [MOVE_TOP]: !this.services.homepage.useSmallHeaderArenas\r\n });\r\n\r\n return (\r\n <>\r\n {this._renderTopBanner()}\r\n \r\n {this._renderHomePageArenaHeaders()}\r\n \r\n {this._renderDailyDealBox()}\r\n \r\n {this._renderSeoBanner()}\r\n {this._renderLinkToOffer()}\r\n \r\n );\r\n }\r\n}","import React from \"react\";\r\nimport {ArenaBaseModel} from \"../arena-base.model\";\r\nimport {\r\n ArenaGamesGridConfiguration,\r\n SwiperGamesListConfiguration\r\n} from \"../../../../configurations/config-data-sections/arenas.configuration\";\r\nimport {IServiceFactoryExtended} from \"../../../../service-factory-extended.interface\";\r\nimport {IGamesListModel} from \"../../lists/games-list-model.interface\";\r\nimport {ListsSortOrderStorage} from \"../../lists-sort-order-storage\";\r\nimport {HomePageComponent} from \"../../../../../components/home-page/home-page.component\";\r\nimport {HOME_PAGE_ARENA, NEW_GAMES_ARENA_NAME} from \"../../../arena-consts\";\r\nimport {GAME_ORIENTATION_IDS} from \"../../../../user-game-orientation/user-game-orientation.service.interface\";\r\nimport { reaction } from \"mobx\";\r\nimport {GameInfo} from \"../../../../games/game-info\";\r\nimport {ArenaFiltersConfigurationMap} from \"../arena-view-model.interface\";\r\nimport {IGamesFilterStrategy} from \"../../../../games-filter/strategies/games-filter-strategy.interface\";\r\nimport {NoGamesFilterStrategy} from \"../../../../games-filter/strategies/no-filter/no-games-filter.strategy\";\r\n\r\nexport class HomePageArenaModel extends ArenaBaseModel {\r\n constructor(services: IServiceFactoryExtended, postLoginListsSortOrderStorage: ListsSortOrderStorage) {\r\n super(HOME_PAGE_ARENA, services, postLoginListsSortOrderStorage);\r\n\r\n reaction(\r\n () => this.services.routing.currentRoute,\r\n (currentRoute) => {\r\n if (currentRoute.routeDefinition.data?.arenaType === NEW_GAMES_ARENA_NAME) {\r\n this.services.homepage.resetNewAddedGames();\r\n }\r\n }, {\r\n fireImmediately: true\r\n }\r\n );\r\n }\r\n\r\n get maxSwipersToShow(): number {\r\n return 15;\r\n }\r\n\r\n get maxGamesToShowInList(): number {\r\n return 18\r\n }\r\n\r\n get aiEngine(): string {\r\n return \"\";\r\n }\r\n\r\n renderArena(): React.ReactElement | null {\r\n return ();\r\n }\r\n\r\n protected _getSwiperIdToPutOnTop(): number | null {\r\n //REQUIREMENT 1886942 - exclude live casino orientation players\r\n const gameGroupOrientation = this.services.userGameOrientation.gameGroup;\r\n if (gameGroupOrientation?.groupId && gameGroupOrientation?.groupId === GAME_ORIENTATION_IDS.LIVE_CASINO ) {\r\n return\r\n }\r\n\r\n\r\n return this.services.abTestingFeatureDataProvider.listOnTop;\r\n }\r\n\r\n protected _sortSwipersByAI(swipers: IGamesListModel[]): IGamesListModel[] {\r\n if(this._isUsingExternalAIForSwipersSorting) {\r\n return swipers;\r\n }\r\n\r\n return super._sortSwipersByAI(swipers);\r\n }\r\n\r\n protected _getSwipersConfigurations(): SwiperGamesListConfiguration[] {\r\n return this.services.configuration.data.homePage.gamesLists || [];\r\n }\r\n protected _getGridsConfigurations(): ArenaGamesGridConfiguration[] {\r\n return []\r\n }\r\n\r\n protected _getPromotionalBannerConfig() {\r\n const bannerConfig = this.services.configuration.data.homePage.promotionalBanner;\r\n if(!bannerConfig || this.services.miniOrbit.isEnabled) {\r\n return null;\r\n }\r\n\r\n return {\r\n position: bannerConfig.displayPlace + 1,\r\n templateID: bannerConfig.templateID,\r\n componentID: bannerConfig.componentID,\r\n fallbackComponent: bannerConfig.fallbackComponent,\r\n bannerAdminPlaceholderId: bannerConfig.bannerAdminPlaceholderId\r\n };\r\n }\r\n\r\n filterGamesByArenaType(gamesInfo: GameInfo[]): GameInfo[] {\r\n return gamesInfo;\r\n }\r\n\r\n get allArenaGamesForFiltering(): GameInfo[] {\r\n return [];\r\n }\r\n\r\n get filtersConfigurationMap(): ArenaFiltersConfigurationMap {\r\n return {};\r\n }\r\n\r\n getGamesFilteringStrategy(): IGamesFilterStrategy {\r\n return new NoGamesFilterStrategy(this.services);\r\n }\r\n}","import {ArenaPictureDefaultBox} from './arena-picture.default.box';\r\n\r\nexport const ArenaPictureBox = ArenaPictureDefaultBox;","import styled from 'styled-components';\r\nimport { Image } from '../../../../../../raw-components/image/image';\r\n\r\n//info-image default\r\nexport const ArenaPictureDefaultBox = styled(Image)`\r\n display: block;\r\n min-height: 20rem;\r\n\r\n width: 372px;\r\n height: 200px;\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n width: 282px;\r\n height: 175px;\r\n }\r\n`;\r\n\r\n","import {ArenaTitleDefaultBox} from './arena-title.default.box';\r\n\r\n\r\nexport const ArenaTitleBox = ArenaTitleDefaultBox;","import styled from 'styled-components';\r\n\r\n//info-title default\r\nexport const ArenaTitleDefaultBox = styled.div`\r\n font-size: 1.5rem;\r\n color: ${props => props.theme.colors.textLight};\r\n font-weight: 600;\r\n padding-top: 3rem;\r\n padding-left: 0.5rem;\r\n`;","import {ArenaDescriptionTextDefaultBox} from './arena-description-text.default.box';\r\n\r\nexport const ArenaDescriptionTextBox = ArenaDescriptionTextDefaultBox;","import styled from 'styled-components';\r\n\r\nexport const ArenaDescriptionTextDefaultBox = styled.div`\r\n font-size: 1.4rem;\r\n ${({theme}) => theme.font.presets.regular};\r\n color: ${props => props.theme.colors.textMiddleDark};\r\n font-weight: 300;\r\n line-height: normal;\r\n padding-top: 1rem;\r\n`;","import styled, {keyframes} from 'styled-components';\r\nimport {STICKY} from '../../../../../themes/css-global-classes';\r\n\r\nconst lobbyInfoKeyframes = keyframes`\r\n 0%{\r\n transform: translate(0, 13rem);\r\n }\r\n 25%{\r\n transform: translate(0, 15rem);\r\n }\r\n 50%{\r\n transform: translate(0, 18rem);\r\n }\r\n 100%{\r\n transform: translate(0, 22rem);\r\n }\r\n`;\r\n\r\nexport const LobbyGameInfoDefaultBox = styled.div`\r\n position: absolute;\r\n right: 0;\r\n top: 0;\r\n width: 375px;\r\n margin-right: 2.5rem;\r\n \r\n\r\n &.${STICKY} {\r\n position: fixed;\r\n animation: ${lobbyInfoKeyframes} 0.5s ease-in-out forwards;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n width: 285px;\r\n }\r\n\r\n`;\r\n","import {LobbyGameInfoDefaultBox} from './lobby-game-info.default.box';\r\n\r\nexport const LobbyGameInfoBox = LobbyGameInfoDefaultBox;","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport classNames from 'classnames';\r\nimport { OrbitComponentWithState } from '../../../../base-components/orbit-component-with-state/orbit-component-with-state';\r\nimport { AspectRatioContainerComponent } from '../../../../raw-components/aspect-ratio-container/aspect-ratio-container.component';\r\nimport {ArenaPictureBox} from './boxes/arena-picture/arena-picture.box';\r\nimport {ArenaTitleBox} from './boxes/arena-title/arena-title.box';\r\nimport {ArenaDescriptionTextBox} from './boxes/arena-description-text/arena-description-text.box';\r\nimport {LobbyGameInfoBox} from '../../boxes/lobby-game-info/lobby-game-info.box';\r\nimport {STICKY} from '../../../../../themes/css-global-classes';\r\n\r\nexport interface ArenaInfoPreviewComponentProps {\r\n isSticky?: boolean;\r\n arenaInfo: {\r\n previewImage: string;\r\n title: string;\r\n description: string;\r\n }\r\n}\r\n\r\nexport interface ArenaInfoPreviewComponentState {\r\n arenaPictureLoading: boolean;\r\n}\r\n\r\n@observer\r\nexport class ArenaInfoPreviewComponent extends OrbitComponentWithState {\r\n state: ArenaInfoPreviewComponentState = {\r\n arenaPictureLoading: false\r\n }\r\n\r\n render() {\r\n\r\n\r\n let title = this.services.translation.translate(this.props.arenaInfo.title);\r\n\r\n return (\r\n \r\n \r\n {\r\n this.setState({arenaPictureLoading: true});\r\n }}\r\n onSettled={() => {\r\n this.setState({arenaPictureLoading: false});\r\n }}\r\n />\r\n \r\n \r\n {title}\r\n \r\n \r\n {this.services.translation.translate(this.props.arenaInfo.description)}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {OrbitComponent} from '../../../../../base-components/orbit-component/orbit-component';\r\nimport {SectionTitleBox} from '../../../../common/boxes/section-title/section-title.box';\r\n\r\n\r\nexport interface PcGamePreviewTitleComponentProps {\r\n gameTitle: string;\r\n}\r\n\r\n@observer\r\nexport class PcGamePreviewTitleComponent extends OrbitComponent {\r\n\r\n //className={`game-title general-title game-preview`}\r\n render() {\r\n return (\r\n \r\n {this.props.gameTitle}\r\n \r\n );\r\n }\r\n}","import React from 'react';\r\nimport {OrbitComponent} from '../../../../base-components/orbit-component/orbit-component';\r\nimport {TrailerOrStripeImageComponent} from '../../../common/trailer-or-stripe-image/trailer-or-stripe-image.component';\r\nimport {GamePreviewInfoContainerComponent} from '../../../common/game-info-container/game-preview-info-container.component';\r\nimport {observer} from 'mobx-react';\r\nimport {PcGamePreviewTitleComponent} from './title/pc-game-preview-title.component';\r\nimport {LobbyGameInfoBox} from '../../boxes/lobby-game-info/lobby-game-info.box';\r\nimport classNames from 'classnames';\r\nimport {STICKY} from '../../../../../themes/css-global-classes';\r\nimport {GameInfo} from '../../../../../services/games/game-info';\r\n\r\n\r\nexport interface GameInfoPreviewComponentProps {\r\n isSticky?: boolean;\r\n gameInfo: GameInfo;\r\n}\r\n\r\n@observer\r\nexport class GameInfoPreviewComponent extends OrbitComponent {\r\n\r\n private _onMouseEnter = () => {\r\n this.services.lobbyGameInfoPreview.pinCurrentGamePreview();\r\n };\r\n\r\n private _onMouseLeave = () => {\r\n this.services.lobbyGameInfoPreview.unPinCurrentGamePreview();\r\n };\r\n\r\n\r\n render() {\r\n let gameInfo = this.props.gameInfo;\r\n return (\r\n \r\n \r\n }/>\r\n \r\n );\r\n }\r\n}\r\n\r\n\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../../base-components/orbit-component/orbit-component';\r\nimport {ArenaInfoPreviewComponent} from './parts/arena-info-preview/arena-info-preview.component';\r\nimport {GameInfoPreviewComponent} from './parts/game-info-preview/game-info-preview.component';\r\nimport {observer} from 'mobx-react';\r\nimport {IStickyHandler} from '../../sticky-handler/sticky-handler.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\n\r\n\r\nexport interface LobbyGamesInfoComponentProps {\r\n stickyHandler?: IStickyHandler;\r\n arenaInfo: {\r\n previewImage: string;\r\n title: string;\r\n description: string;\r\n }\r\n}\r\n\r\n@observer\r\nexport class PcGameInfoPreviewComponent extends OrbitComponent {\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n if(!this.services.device.isMobile) {\r\n this.services.lobbyGameInfoPreview.enableGamePreview();\r\n }\r\n\r\n }\r\n\r\n componentWillUnmount() {\r\n super.componentWillUnmount();\r\n if(!this.services.device.isMobile) {\r\n this.services.lobbyGameInfoPreview.disableGamePreview();\r\n }\r\n }\r\n\r\n\r\n render() {\r\n if (this.services.device.isMobile) {\r\n return null;\r\n }\r\n\r\n let enabledOnPC = this.services.configuration.data.generalSettings?.gamesPreviewConfig?.enabledOnPC;\r\n if(Check.isNullOrUndefined(enabledOnPC)) {\r\n enabledOnPC = true;\r\n }\r\n\r\n if(!enabledOnPC) {\r\n return null;\r\n }\r\n\r\n if (this.services.lobbyGameInfoPreview.currentPreviewedGame) {\r\n return ();\r\n } else {\r\n return ();\r\n }\r\n }\r\n\r\n}\r\n","export const ARENA_TYPES = {\r\n WIDE_ARENA: \"wide-arena\"\r\n};\r\n\r\n","import React from 'react';\r\nimport classNames from \"classnames\";\r\nimport {\r\n ArenaConfiguration,\r\n} from '../../../services/configurations/config-data-sections/arenas.configuration';\r\nimport {TopImageComponent} from '../../top-image/top-image.component';\r\nimport {LobbyHeaderComponent} from '../../lobby-header/lobby-header.component';\r\nimport {PcGameInfoPreviewComponent} from '../../lobby-game-info-preview/pc-game-info-preview/pc-game-info-preview.component';\r\nimport {observer} from 'mobx-react';\r\nimport {SeoBreadCrumbsComponent} from '../seo-bread-crumbs/seo-bread-crumbs.component';\r\nimport {IStickyHandler} from \"../../sticky-handler/sticky-handler.interface\";\r\nimport {ARENA_TYPES} from \"./casino-arena.template-types\";\r\nimport {LOBBY_PAGE} from '../../../themes/css-global-classes';\r\nimport {LobbyWrapperBox} from \"../../../basic-components/lobby-wrapper/lobby-wrapper.box\";\r\nimport {LobbyGridBox} from \"../../../basic-components/lobby-grid/lobby-grid.box\";\r\nimport {LinkToOfferComponent} from \"../../link-to-offer/link-to-offer.component\";\r\nimport {OrbitComponent} from \"../../base-components/orbit-component/orbit-component\";\r\nimport {ArenaGamesListsComponent} from \"../../arena-games-lists/arena-games-lists.component\";\r\nimport {DailyDealComponent} from \"../../daily-deal/daily-deal.component\";\r\nimport {FreeToPlayAnimatedIconComponent} from '../../free-to-play-animated-icon/free-to-play-animated-icon.component';\r\n\r\n\r\nexport interface LobbyArenaComponentProps {\r\n arenaName: string;\r\n}\r\n\r\n@observer\r\nexport class CasinoArenaComponent extends OrbitComponent {\r\n\r\n private _stickyHandler: IStickyHandler;\r\n\r\n private get stickyHandler(): IStickyHandler {\r\n if (!this._stickyHandler) {\r\n this._stickyHandler = this.services.stickyHandlerFactory.createStickyHandler();\r\n }\r\n return this._stickyHandler;\r\n }\r\n\r\n componentWillUnmount() {\r\n super.componentWillUnmount();\r\n this.services.dom.body.classList.remove(LOBBY_PAGE);\r\n this.stickyHandler.dispose();\r\n }\r\n\r\n private get config(): ArenaConfiguration {\r\n return this.services.arenas.getArenaConfig(this.props.arenaName);\r\n }\r\n\r\n\r\n private _renderLinkToOffer() {\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n\r\n\r\n render() {\r\n\r\n let sideBarInfo = {\r\n title: \"\",\r\n description: \"\",\r\n previewImage: \"\"\r\n };\r\n\r\n if (this.config.infoSideBar) {\r\n sideBarInfo = {\r\n title: this.config.infoSideBar.infoTitle,\r\n description: this.config.infoSideBar.infoText,\r\n previewImage: this.config.infoSideBar.infoImage\r\n };\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {\r\n (this.config.arenaType !== ARENA_TYPES.WIDE_ARENA) && \r\n }\r\n {this._renderLinkToOffer()}\r\n \r\n \r\n\r\n \r\n \r\n );\r\n }\r\n}","import {ArenaFiltersConfigurationMap} from \"./arenas/arena-view-model.interface\";\r\nimport {NullableUndefined} from \"../../../../common/types/nullable-types\";\r\n\r\nexport function filtersConfigurationToMap(filtersConfiguration: NullableUndefined): ArenaFiltersConfigurationMap {\r\n return (filtersConfiguration ?? []).toDictionary(filterId => filterId, \r\n (filterId, index) => {\r\n return {\r\n filterId: filterId,\r\n index: index\r\n }\r\n });\r\n }\r\n","import {GameInfo} from \"../../games/game-info\";\r\n\r\nexport enum ApplyGameFilterResult {\r\n IncludeGame,\r\n ExcludeGame,\r\n NotApplicable\r\n}\r\n\r\nexport interface IGameFilterEvaluator {\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult;\r\n}","import React from 'react';\r\nimport {DisposableObject} from \"../../../../utils/disposable-object\";\r\nimport {IGamesFilterStrategy} from \"./games-filter-strategy.interface\";\r\nimport {GameInfo} from \"../../games/game-info\";\r\nimport {computed, observable, runInAction} from \"mobx\";\r\nimport {IServiceFactoryExtended} from \"../../service-factory-extended.interface\";\r\nimport {Nullable} from \"../../../../common/types/nullable-types\";\r\nimport {GamesMap} from \"../../games/games.service.interface\";\r\nimport {IArenaGameFiltersCategory} from \"../arena-filters/categories/arena-game-filters-category.interface\";\r\nimport {IArenaGameFilter} from \"../arena-filters/filters/arena-game-filter.interface\";\r\nimport {ApplyGameFilterResult, IGameFilterEvaluator} from \"../evaluators/game-filter-evaluator.interface\";\r\nimport {IPcFilterIndicatorRenderingOptions} from \"../games-filter.service.interface\";\r\n\r\nexport abstract class GamesFilterStrategyBase extends DisposableObject implements IGamesFilterStrategy {\r\n\r\n constructor(protected readonly services: IServiceFactoryExtended) {\r\n super();\r\n\r\n this.addReaction(() => [this.services.location.currentUri, this.services.games.gamesMap], () => {\r\n //We use set timeout in order to avoid a circular dependency error.\r\n //Because this reaction is with fireImmediately=true it executes in this constructor, but this constructor is called from the GamesFilterService constructor\r\n //and the code inside this._filterGames is trying to access methods and properties from GamesFilterService and the Lazy class will throw an error in this case.\r\n setTimeout(() => {\r\n runInAction(() => {\r\n this.filteredGamesMap = this._filterGames();\r\n });\r\n });\r\n\r\n }, {\r\n fireImmediately: true\r\n });\r\n }\r\n\r\n protected abstract _createFiltersCategories(): IArenaGameFiltersCategory[];\r\n abstract renderMobileFiltersIndicator(): React.ReactElement;\r\n abstract renderPCFiltersIndicator(): Nullable;\r\n\r\n abstract showFiltersEditor(): void;\r\n protected abstract _createEvaluator(): IGameFilterEvaluator | null;\r\n\r\n @observable.ref\r\n filteredGamesMap: Record = {};\r\n\r\n private _filtersCategories: Nullable = null;\r\n protected get filtersCategories(): IArenaGameFiltersCategory[] {\r\n if(!this._filtersCategories) {\r\n this._filtersCategories = this._createFiltersCategories();\r\n }\r\n return this._filtersCategories;\r\n }\r\n\r\n\r\n @computed public get currentFilters(): IArenaGameFilter[] {\r\n const result: IArenaGameFilter[] = [];\r\n this.filtersCategories.forEach(category => {\r\n category.availableFilters.forEach(f => result.push(f));\r\n });\r\n\r\n return result;\r\n }\r\n\r\n get isFilteringAvailable(): boolean {\r\n return this.currentFilters.length > 0;\r\n }\r\n\r\n protected _filterGames(): GamesMap {\r\n\r\n const gamesMap = this.services.games.gamesMap;\r\n\r\n if(!this.currentFilters.some(f => f.isApplied)) {\r\n return gamesMap;\r\n }\r\n\r\n const evaluator = this._createEvaluator();\r\n\r\n const result: GamesMap = {};\r\n\r\n for(let game of Object.values(this.services.games.gamesMap)) {\r\n const filterResult = evaluator.applyFilter(game);\r\n if(ApplyGameFilterResult.IncludeGame === filterResult) {\r\n result[game.gameType] = game;\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n\r\n}","import styled from \"styled-components\";\r\n\r\nexport const ContainerBox = styled.div`\r\n position: relative; \r\n margin: 1rem;\r\n padding: 2em 2em 4rem 2rem;\r\n border-radius: 1rem;\r\n background-color: ${props => props.theme.colors.backgroundLight};\r\n color: ${props => props.theme.colors.text};\r\n user-select: none;\r\n \r\n /* The weird gradient */\r\n &:after { \r\n content: \" \";\r\n background: radial-gradient(to top, rgb(255 255 255 / 20%) 14%, transparent 75%, transparent);\r\n position: absolute;\r\n bottom: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 5rem;\r\n }\r\n \r\n /* The weird line at the bottom */\r\n &:before { \r\n content: \" \";\r\n background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 50%, rgba(0,212,255,0) 100%);\r\n position: absolute;\r\n bottom: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 1px;\r\n }\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const FilterByBox = styled.span`\r\n ${({theme}) => theme.font.size.large}\r\n margin-bottom: 2rem;\r\n display: block;\r\n`;","import styled, {css} from \"styled-components\";\r\n\r\ninterface IGroupFiltersListGroupTitleActivePreviewBoxProps {\r\n isVisible: boolean;\r\n}\r\n\r\nexport const PreviewBox = styled.span`\r\n\r\n @keyframes introAnimation {\r\n 0% {\r\n opacity: 0;\r\n max-height: 0;\r\n }\r\n 50% {\r\n opacity: 0;\r\n max-height: 20px;\r\n }\r\n 100% {\r\n opacity: 1;\r\n max-height: 20px;\r\n }\r\n }\r\n\r\n display: block;\r\n opacity: 0;\r\n font-size: 11px;\r\n color: ${props => props.theme.colors.brandPrimary};\r\n ${({theme}) => theme.font.presets.regular};\r\n text-transform: capitalize;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n width: 100%;\r\n max-height: 0;\r\n\r\n ${props => props.isVisible && css`\r\n animation: 0.1s introAnimation 0.2s ease-in forwards;\r\n `}\r\n`;","import styled, {css} from \"styled-components\";\r\n\r\nexport const OpenContainerBox = styled.div<{isOpen?: boolean}>`\r\n display: block;\r\n transition: all 0.2s ease-in;\r\n max-height: 0;\r\n overflow: hidden;\r\n \r\n ${({isOpen}) => isOpen && css`max-height: 100vh`};\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const FilterItemTitleBox = styled.span`\r\n margin-left: 2em;\r\n font-size: 1.5rem;\r\n ${({theme}) => theme.font.presets.medium};\r\n color: ${props => props.theme.colors.text};\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const ContainerBox = styled.div` \r\n padding: 2rem 0;\r\n cursor: pointer;\r\n border-bottom: 1px solid ${props => props.theme.colors.boxBorderLighter};\r\n \r\n &:first-of-type {\r\n padding-top: 0;\r\n }\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const TitleContainerBox = styled.div`\r\n`;","import styled, {css} from \"styled-components\";\r\n\r\nexport const TitleBox = styled.div<{isOpen: boolean}>`\r\n position: relative;\r\n font-size: 15px;\r\n ${({theme}) => theme.font.presets.bold};\r\n color: ${props => props.theme.colors.textLight};\r\n text-transform: uppercase;\r\n display: flex;\r\n align-items: center;\r\n\r\n /* Title V sign */\r\n &:after {\r\n content: \" \";\r\n display: inline-block;\r\n\r\n border: solid ${props => props.theme.colors.backgroundContrast};\r\n border-width: 0 2px 2px 0;\r\n\r\n padding: 3px;\r\n transform: rotate(45deg);\r\n\r\n position: absolute;\r\n right: 0;\r\n\r\n ${props => props.isOpen && css`\r\n transform: rotate(225deg);\r\n `}\r\n }\r\n`;","import styled from \"styled-components\";\r\n\r\n export const FilterItemBox = styled.div<{disabled: boolean}>`\r\n padding: 1.5rem;\r\n display: flex;\r\n align-items: center;\r\n cursor: ${props => props.disabled ? \"auto\" : \"pointer\"};\r\n opacity: ${props => props.disabled ? \"0.5\" : \"1\"};;\r\n`;","import styled, {css} from \"styled-components\";\r\n\r\nexport const InputBox = styled.input<{disabled: boolean}>`\r\n appearance: none;\r\n position: relative;\r\n height: 1.8rem;\r\n width: 1.8rem;\r\n cursor: ${props => props.disabled ? \"auto\" : \"pointer\"};\r\n \r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n background-color: ${props => props.theme.colors.background};\r\n border: 1px solid ${props => props.theme.colors.boxBorderContrast};\r\n border-radius: 0.5rem;\r\n \r\n &:checked {\r\n background-color: ${props => props.theme.colors.brandPrimary};\r\n \r\n &:after {\r\n content: '\\\\2713';\r\n display: block;\r\n height: 100%;\r\n font-size: 13px;\r\n line-height: 1.8rem;\r\n color: ${props => props.theme.colors.background};\r\n font-weight: bold; \r\n }\r\n \r\n & ~ .filter-title {\r\n color: ${props => props.theme.colors.brandPrimary}; \r\n }\r\n }\r\n \r\n ${props => props.type === 'radio' && css` border-radius: 10px; ` } \r\n`;","import React from 'react';\r\nimport {OrbitComponent} from \"../../../base-components/orbit-component/orbit-component\";\r\nimport {PreviewBox} from \"./boxes/preview.box\";\r\nimport {OpenContainerBox} from \"./boxes/open-container.box\";\r\nimport {FilterItemTitleBox} from \"./boxes/filter-item-title.box\";\r\nimport {ContainerBox} from './boxes/container.box';\r\nimport {TitleContainerBox} from './boxes/title-container.box';\r\nimport {TitleBox} from './boxes/title.box';\r\nimport {FilterItemBox} from './boxes/filter-Item.box';\r\nimport {InputBox} from './boxes/input.box';\r\nimport {IArenaGameFiltersCategoryEditorViewModel} from '../../../../services/games-filter/arena-filters/categories/arena-game-filters-category-editor-view-model.interface';\r\nimport {IArenaGameFilterEditorViewModel} from '../../../../services/games-filter/arena-filters/filters/arena-game-filter-editor-view-model.interface';\r\nimport {observer} from 'mobx-react';\r\n\r\ninterface IFilterCategoryComponentProps {\r\n category: IArenaGameFiltersCategoryEditorViewModel;\r\n onCategoryToggled: (category: IArenaGameFiltersCategoryEditorViewModel) => void;\r\n isOpen: boolean;\r\n}\r\n\r\n@observer\r\nexport class FilterCategoryComponent extends OrbitComponent {\r\n\r\n private _onFilterToggle = (filter: IArenaGameFilterEditorViewModel) => {\r\n if (filter.disabled) {\r\n return;\r\n }\r\n\r\n filter.toggleFilter();\r\n }\r\n\r\n _renderFilterList(category: IArenaGameFiltersCategoryEditorViewModel) {\r\n const filters = category.visibleFilters;\r\n const inputType = category.isMultiSelect ? 'checkbox' : 'radio';\r\n\r\n return <>\r\n {filters.map(filter => (\r\n this._onFilterToggle(filter)} disabled={filter.disabled}>\r\n \r\n \r\n {filter.text}\r\n {filter.gamesCount > 0 && ` (${filter.gamesCount})`}\r\n \r\n \r\n ))}\r\n ;\r\n }\r\n\r\n render() {\r\n const {category, isOpen} = this.props;\r\n const activeFiltersTexts = category.getAllAppliedFilters().map(f => f.text);\r\n const hasSubCategories = category.subCategories.length > 0;\r\n\r\n return (\r\n \r\n this.props.onCategoryToggled(category)}>\r\n \r\n {this.services.translation.translate(category.title)}\r\n {category.gamesCount && ` (${category.gamesCount})`}\r\n \r\n\r\n 0}>\r\n {activeFiltersTexts.join(', ')}\r\n \r\n \r\n\r\n \r\n {this._renderFilterList(category)}\r\n\r\n { hasSubCategories && <>\r\n { category.subCategories.map(subCat => this._renderFilterList(subCat)) }\r\n }\r\n \r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {OrbitComponentWithState} from '../../../base-components/orbit-component-with-state/orbit-component-with-state';\r\nimport {ContainerBox} from \"./boxes/container.box\";\r\nimport {FilterByBox} from \"./boxes/filter-by.box\";\r\nimport {FilterCategoryComponent} from '../filter-category/filter-category.component';\r\nimport {IAdvancedStrategyFiltersEditorViewModel} from '../../../../services/games-filter/strategies/advanced-filter/advanced-strategy-filters-editor-view-model.interface';\r\nimport {IArenaGameFiltersCategoryEditorViewModel} from '../../../../services/games-filter/arena-filters/categories/arena-game-filters-category-editor-view-model.interface';\r\nimport {observer} from 'mobx-react';\r\n\r\nexport interface IFilterCategoriesListComponentProps {\r\n filtersEditor: IAdvancedStrategyFiltersEditorViewModel;\r\n}\r\n\r\ninterface IFilterCategoriesListComponentState {\r\n openFilterCategory: IArenaGameFiltersCategoryEditorViewModel | null;\r\n}\r\n\r\n@observer\r\nexport class FilterCategoriesListComponent extends OrbitComponentWithState {\r\n\r\n state: IFilterCategoriesListComponentState = {\r\n openFilterCategory: null\r\n }\r\n\r\n _onCategoryToggled = (category: IArenaGameFiltersCategoryEditorViewModel) => {\r\n let openFilterCategoryState = this.state.openFilterCategory;\r\n\r\n // if user clicked on new category emulate close current category first\r\n if (openFilterCategoryState && category.id !== openFilterCategoryState.id) {\r\n openFilterCategoryState = null;\r\n }\r\n\r\n this.setState({openFilterCategory: openFilterCategoryState ? null : category});\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n \r\n Filter By\r\n\r\n {this.props.filtersEditor.visibleCategories.map(category => {\r\n const isOpen = this.state.openFilterCategory?.id === category.id;\r\n\r\n return \r\n })}\r\n \r\n )\r\n }\r\n}","import React from 'react';\r\nimport {OrbitComponent} from \"../../base-components/orbit-component/orbit-component\";\r\nimport {observer} from \"mobx-react\";\r\nimport {\r\n IAdvancedStrategyFiltersEditorViewModel\r\n} from \"../../../services/games-filter/strategies/advanced-filter/advanced-strategy-filters-editor-view-model.interface\";\r\nimport {Button} from \"../../../basic-ui-components/button/base/button.component\";\r\nimport {FilterCategoriesListComponent} from './filter-categories-list/filter-categories-list.component';\r\n\r\ninterface AdvancedGamesFilterComponentProps {\r\n filtersEditor: IAdvancedStrategyFiltersEditorViewModel;\r\n}\r\n\r\n@observer\r\nexport class AdvancedGamesFilterComponent extends OrbitComponent {\r\n\r\n private _onApply = async () => {\r\n await this.props.filtersEditor.applyFilters();\r\n this.services.drawer.right.back();\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n )\r\n }\r\n}","import React from 'react';\r\nimport {IDrawerContent} from \"../../../drawer/drawer.service.interface\";\r\nimport {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {\r\n AdvancedGamesFilterComponent\r\n} from \"../../../../components/filters/advanced-filtering/advanced-games-filter.component\";\r\nimport {AdvancedStrategyFiltersEditor} from \"./advanced-strategy-filters-editor\";\r\n\r\nexport class AdvancedGamesFilterDrawerRenderer implements IDrawerContent {\r\n\r\n constructor(private readonly services: IServiceFactoryExtended,\r\n private readonly filtersEditor: AdvancedStrategyFiltersEditor) {\r\n this.id = this.services.tools.getGuid();\r\n }\r\n\r\n readonly id: string;\r\n readonly isMinimized: boolean = false;\r\n readonly minOverlayZIndex: number | null = null;\r\n supportsCloseIntent: boolean = false;\r\n readonly title: string = '';\r\n\r\n onClose(): void {\r\n }\r\n\r\n onOverlayClicked(): void {\r\n }\r\n\r\n render(): React.ReactNode {\r\n return (\r\n \r\n );\r\n }\r\n}","import {ArenaGameFilterEditor} from \"../filters/arena-game-filter-editor\";\r\nimport {IArenaGameFiltersCategoryEditorViewModel} from \"./arena-game-filters-category-editor-view-model.interface\";\r\nimport {IArenaGameFiltersCategory} from \"./arena-game-filters-category.interface\";\r\nimport {computed} from \"mobx\";\r\nimport {NullableNumber} from \"../../../../../common/types/nullable-types\";\r\nimport {IArenaGameFilterEditorViewModel} from \"../filters/arena-game-filter-editor-view-model.interface\";\r\nimport {CategoryDefinitionId} from \"../../filters-categories-definitions/filter-category-definition.interface\";\r\n\r\nexport class ArenaGameFiltersCategoryEditor implements IArenaGameFiltersCategoryEditorViewModel {\r\n constructor(private readonly arenaGameFilterCategory: IArenaGameFiltersCategory) {\r\n this._filters = arenaGameFilterCategory.availableFilters.map(f => f.createEditor(this));\r\n }\r\n\r\n private _filters: ArenaGameFilterEditor[];\r\n @computed\r\n get visibleFilters(): ArenaGameFilterEditor[] {\r\n return this._filters.filter(f => f.shouldBeDisplayed);\r\n }\r\n\r\n get id(): CategoryDefinitionId {\r\n return this.arenaGameFilterCategory.id;\r\n }\r\n\r\n get title(): string {\r\n return this.arenaGameFilterCategory.title;\r\n }\r\n\r\n getAppliedFiltersIds(): string[] {\r\n let res = this._filters.filter(f => f.on).map(f => f.id);\r\n\r\n for (let i = 0; i < this.subCategories.length; i++) {\r\n const subCategoryFilterIds =this.subCategories[i].visibleFilters.filter(f => f.on).map(f => f.id);\r\n res = res.concat(subCategoryFilterIds);\r\n }\r\n\r\n return res;\r\n }\r\n\r\n get gamesCount(): NullableNumber {\r\n return this.arenaGameFilterCategory.gamesCount;\r\n }\r\n\r\n get isMultiSelect(): boolean {\r\n return this.arenaGameFilterCategory.isMultiSelect;\r\n }\r\n\r\n _subCategories: IArenaGameFiltersCategoryEditorViewModel[];\r\n get subCategories(): IArenaGameFiltersCategoryEditorViewModel[] {\r\n\r\n if (!this._subCategories) {\r\n this._subCategories = this.arenaGameFilterCategory.subCategories.map(subCat => new ArenaGameFiltersCategoryEditor(subCat));\r\n }\r\n\r\n return this._subCategories;\r\n }\r\n\r\n getAllAppliedFilters(): IArenaGameFilterEditorViewModel[] {\r\n const appliedFilters = [\r\n ...this.visibleFilters,\r\n ...this.subCategories.selectMany(subcategory => subcategory.visibleFilters)\r\n ].filter(f => f.on);\r\n return appliedFilters;\r\n }\r\n\r\n resetAll(): void {\r\n this._filters.forEach(filterEditor => {\r\n if (filterEditor.on) {\r\n filterEditor.on = false;\r\n }\r\n });\r\n }\r\n\r\n enableAll(enable: boolean): void {\r\n this._filters.forEach(filterEditor => {\r\n filterEditor.disabled = !enable;\r\n });\r\n }\r\n\r\n}","import {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {ArenaGameFiltersCategoryEditor} from \"../../arena-filters/categories/arena-game-filters-category-editor\";\r\nimport {IAdvancedStrategyFiltersEditorViewModel} from \"./advanced-strategy-filters-editor-view-model.interface\";\r\nimport {IArenaGameFiltersCategory} from \"../../arena-filters/categories/arena-game-filters-category.interface\";\r\n\r\nexport class AdvancedStrategyFiltersEditor implements IAdvancedStrategyFiltersEditorViewModel {\r\n constructor(private readonly filtersCategories: IArenaGameFiltersCategory[],\r\n private readonly services: IServiceFactoryExtended) {\r\n\r\n this._categories = this.filtersCategories.map(c => new ArenaGameFiltersCategoryEditor(c));\r\n }\r\n\r\n private _categories: ArenaGameFiltersCategoryEditor[];\r\n get visibleCategories(): ArenaGameFiltersCategoryEditor[] {\r\n return this._categories.filter(c => c.visibleFilters.length > 0);\r\n }\r\n\r\n private _getAppliedFiltersIds(): string[] {\r\n let result: string[] = [];\r\n\r\n this._categories.forEach(c => {\r\n result = [\r\n ...result,\r\n ...c.getAppliedFiltersIds()\r\n ];\r\n\r\n });\r\n return result;\r\n }\r\n\r\n async applyFilters(): Promise {\r\n await this.services.gamesFilter.applyFilters(this._getAppliedFiltersIds());\r\n }\r\n}","import {ApplyGameFilterResult, IGameFilterEvaluator} from \"./game-filter-evaluator.interface\";\r\nimport {GameInfo} from \"../../games/game-info\";\r\n\r\nexport class AndGameFiltersEvaluator implements IGameFilterEvaluator {\r\n constructor(...evaluators: IGameFilterEvaluator[]) {\r\n this._evaluators = evaluators;\r\n }\r\n\r\n private readonly _evaluators: IGameFilterEvaluator[];\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n let result = ApplyGameFilterResult.NotApplicable;\r\n for(let evaluator of this._evaluators) {\r\n const r = evaluator.applyFilter(gameInfo);\r\n if(r === ApplyGameFilterResult.ExcludeGame) {\r\n return r;\r\n } else if(r !== ApplyGameFilterResult.NotApplicable) {\r\n result = r;\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n\r\nexport function AND(...evaluators: IGameFilterEvaluator[]): IGameFilterEvaluator {\r\n return new AndGameFiltersEvaluator(...evaluators);\r\n}","import styled from \"styled-components\";\r\nimport {ACTIVE} from \"../../../../../themes/css-global-classes\";\r\n\r\nexport const FiltersMobileButtonDefaultBox = styled.a`\r\n position: relative;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 3.4rem;\r\n height: 3.4rem;\r\n border: 1px solid ${props => props.theme.colors.boxBorderContrast};\r\n border-radius: 50%;\r\n margin: 0 0.5rem;\r\n\r\n &.${ACTIVE} {\r\n &:after {\r\n content: \"\";\r\n position: absolute;\r\n top: -0.25rem;\r\n right: -0.25rem;\r\n width: 1rem;\r\n height: 1rem;\r\n background: ${props => props.theme.colors.danger};\r\n border-radius: 50%;\r\n }\r\n }\r\n \r\n`;","import styled from \"styled-components\";\r\nimport {FiltersMobileButtonDefaultBox} from \"./filters-mobile-button.default.box\";\r\nimport {ACTIVE} from \"../../../../../themes/css-global-classes\";\r\n\r\nexport const FiltersMobileButtonCasino777Box = styled(FiltersMobileButtonDefaultBox)`\r\n border: 2px solid ${props => props.theme.colors.boxBorderContrast};\r\n border-radius: 5px;\r\n \r\n &.${ACTIVE} {\r\n &:after {\r\n top: -0.5rem;\r\n right: -0.5rem;\r\n }\r\n }\r\n`;","import {FiltersMobileButtonDefaultBox} from \"./filters-mobile-button.default.box\";\r\nimport {styledByTheme} from \"../../../../../themes/architecture/styled-by-theme\";\r\nimport {FiltersMobileButtonCasino777Box} from \"./filters-mobile-button.casino777.box\";\r\n\r\nexport const FiltersMobileButtonBox = styledByTheme(FiltersMobileButtonDefaultBox).forCasino777(FiltersMobileButtonCasino777Box).apply();","import styled from \"styled-components\";\r\n\r\nexport const FiltersMobileIconDefaultBox = styled.i`\r\n position: absolute;\r\n width: 20px;\r\n height: 22px;\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-position: -446px -521px;\r\n background-repeat: no-repeat;\r\n`;","import styled from \"styled-components\";\r\nimport {FiltersMobileIconDefaultBox} from \"./filters-mobile-icon.default.box\";\r\n\r\nexport const FiltersMobileIconCasino777Box = styled(FiltersMobileIconDefaultBox)`\r\n background-position: -557px -550px;\r\n`;","import {FiltersMobileIconDefaultBox} from \"./filters-mobile-icon.default.box\";\r\nimport {styledByTheme} from \"../../../../../themes/architecture/styled-by-theme\";\r\nimport {FiltersMobileIconCasino777Box} from \"./filters-mobile-icon.casino777.box\";\r\n\r\nexport const FiltersMobileIconBox = styledByTheme(FiltersMobileIconDefaultBox).forCasino777(FiltersMobileIconCasino777Box).apply();","import {OrbitComponent} from \"../../../base-components/orbit-component/orbit-component\";\r\nimport {FiltersMobileButtonBox} from \"../../../filters/filters-games-list-mobile/boxes/menu-button/filters-mobile-button.box\";\r\nimport {FiltersMobileIconBox} from \"../../../filters/filters-games-list-mobile/boxes/menu-button/filters-mobile-icon.box\";\r\nimport {Link} from \"../../../raw-components/link/link\";\r\nimport React from \"react\";\r\nimport classNames from \"classnames\";\r\nimport {ACTIVE} from \"../../../../themes/css-global-classes\";\r\nimport {observer} from \"mobx-react\";\r\n\r\n@observer\r\nexport class FiltersMobileButtonComponent extends OrbitComponent<{}> {\r\n\r\n private _openPopup = () => {\r\n this.services.gamesFilter.showFiltersEditor();\r\n };\r\n\r\n render(){\r\n if(!this.services.gamesFilter.isFilteringAvailable) {\r\n return null;\r\n }\r\n\r\n if(this.services.arenas.shouldHideFiltersButtonMobile()) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n}","import styled from \"styled-components\";\r\n\r\nexport const IndicatorContainerBox = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n font-size: 1.5rem;\r\n font-family: ${props => props.theme.font.family.regular}; \r\n ${props => props.theme.font.presets.regular}\r\n \r\n`","import React from 'react';\r\nimport {OrbitComponent} from \"../../base-components/orbit-component/orbit-component\";\r\nimport {observer} from \"mobx-react\";\r\nimport {\r\n IAdvancedStrategyFiltersEditorViewModel\r\n} from \"../../../services/games-filter/strategies/advanced-filter/advanced-strategy-filters-editor-view-model.interface\";\r\nimport {\r\n IArenaGameFilterEditorViewModel\r\n} from \"../../../services/games-filter/arena-filters/filters/arena-game-filter-editor-view-model.interface\";\r\nimport {IndicatorContainerBox} from \"./boxes/indicator-container.box\";\r\nimport {PipeHorizontalSeparatorBox} from \"../../../basic-components/pipe-separator/pipe-horizontal-separator.box\";\r\nimport {BlankHorizontalSeparatorBox} from \"../../../basic-components/blank-separator/blank-horizontal-separator.box\";\r\nimport {FiltersMobileButtonComponent} from \"../../header/top-header-left/filters/filters-mobile-button.component\";\r\n\r\ninterface AdvancedGamesFilteringPcIndicatorComponentProps {\r\n filtersEditor: IAdvancedStrategyFiltersEditorViewModel;\r\n}\r\n@observer\r\nexport class AdvancedGamesFilteringPcIndicatorComponent extends OrbitComponent {\r\n\r\n\r\n private _onRemoveFilter = async (filter: IArenaGameFilterEditorViewModel) => {\r\n filter.on = false;\r\n await this.props.filtersEditor.applyFilters();\r\n }\r\n\r\n private _renderOneAppliedFilter(filter: IArenaGameFilterEditorViewModel) {\r\n return (\r\n \r\n \r\n this._onRemoveFilter(filter)} style={{cursor: 'pointer'}}>\r\n {filter.text}\r\n \r\n \r\n\r\n )\r\n }\r\n\r\n private _getAppliedFilters(): IArenaGameFilterEditorViewModel[] {\r\n const filters: IArenaGameFilterEditorViewModel[] = [];\r\n this.props.filtersEditor.visibleCategories.forEach(category => {\r\n category.getAllAppliedFilters().forEach(f => {\r\n if(f.on) {\r\n filters.push(f);\r\n }\r\n\r\n })\r\n });\r\n return filters;\r\n }\r\n\r\n private _renderAppliedFilters() {\r\n\r\n\r\n return (\r\n
\r\n {this._getAppliedFilters().map(filter => this._renderOneAppliedFilter(filter))}\r\n
\r\n )\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n\r\n {this._renderAppliedFilters()}\r\n\r\n \r\n );\r\n }\r\n}","import {IArenaGameFiltersCategory} from \"./arena-game-filters-category.interface\";\r\nimport {\r\n CategoryDefinitionId,\r\n IFilterCategoryDefinition\r\n} from \"../../filters-categories-definitions/filter-category-definition.interface\";\r\nimport {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {computed} from \"mobx\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {IArenaGameFilter} from \"../filters/arena-game-filter.interface\";\r\nimport {NullableNumber} from \"../../../../../common/types/nullable-types\";\r\n\r\nexport abstract class ArenaGameFiltersCategoryBase implements IArenaGameFiltersCategory {\r\n constructor(protected readonly categoryDefinition: IFilterCategoryDefinition,\r\n protected readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n abstract get availableFilters(): IArenaGameFilter[];\r\n abstract get gamesCount(): NullableNumber;\r\n protected abstract _createSubcategory(subcategory: IFilterCategoryDefinition): IArenaGameFiltersCategory;\r\n\r\n get id(): CategoryDefinitionId {\r\n return this.categoryDefinition.id;\r\n }\r\n\r\n get title(): string {\r\n return this.categoryDefinition.title;\r\n }\r\n\r\n get isMultiSelect(): boolean {\r\n return this.categoryDefinition.isMultiSelect;\r\n }\r\n\r\n get subCategories(): IArenaGameFiltersCategory[] {\r\n if (!this.categoryDefinition.subCategories) {\r\n return [];\r\n }\r\n\r\n return this.categoryDefinition.subCategories.map(subCat => this._createSubcategory(subCat));\r\n }\r\n\r\n @computed\r\n private get _appliedFilters(): IArenaGameFilter[] {\r\n return [\r\n ...this.availableFilters.filter(f => f.isApplied),\r\n ...this.subCategories.selectMany(subC => subC.availableFilters.filter(f => f.isApplied))\r\n ];\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n\r\n const appliedFilters = this._appliedFilters;\r\n\r\n if(appliedFilters.length === 0) {\r\n return ApplyGameFilterResult.NotApplicable;\r\n }\r\n\r\n return this.categoryDefinition.applyFilters(gameInfo, appliedFilters.map(arenaFilter => arenaFilter.filterDefinition));\r\n }\r\n\r\n isGameIncludedInThisCategory(gameInfo: GameInfo): boolean {\r\n return this.availableFilters.some(f => f.applyFilter(gameInfo) === ApplyGameFilterResult.IncludeGame);\r\n }\r\n\r\n\r\n}","import {action, observable, runInAction} from \"mobx\";\r\nimport {IArenaGameFilterEditorViewModel} from \"./arena-game-filter-editor-view-model.interface\";\r\nimport {IArenaGameFilter} from \"./arena-game-filter.interface\";\r\nimport {NullableNumber} from \"../../../../../common/types/nullable-types\";\r\n\r\nexport class ArenaGameFilterEditor implements IArenaGameFilterEditorViewModel {\r\n constructor(protected readonly arenaGameFilter: IArenaGameFilter) {\r\n this._on = arenaGameFilter.isApplied;\r\n }\r\n\r\n get id(): string {\r\n return this.arenaGameFilter.id;\r\n }\r\n\r\n get text(): string {\r\n return this.arenaGameFilter.text;\r\n }\r\n\r\n @observable.ref\r\n private _on: boolean = false;\r\n get on(): boolean {\r\n return this._on;\r\n }\r\n\r\n set on(value: boolean) {\r\n this._setOn(value);\r\n }\r\n\r\n protected _setOn(value: boolean): void {\r\n runInAction(() => this._on = value);\r\n }\r\n\r\n @observable.ref\r\n private _disabled: boolean = false;\r\n get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n\r\n set disabled(value: boolean) {\r\n runInAction(() => this._disabled = value);\r\n }\r\n\r\n @action.bound\r\n toggleFilter(): void {\r\n this.on = !this.on;\r\n }\r\n\r\n get shouldBeDisplayed(): boolean {\r\n return !this.arenaGameFilter.isAdhocFilter;\r\n }\r\n\r\n get gamesCount(): NullableNumber {\r\n return this.arenaGameFilter.gamesCount;\r\n }\r\n}","import {IArenaGameFilter} from \"./arena-game-filter.interface\";\r\nimport {IGameFilterDefinition} from \"../../filters-definitions/game-filter-definition.interface\";\r\nimport {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {computed} from \"mobx\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {NullableNumber} from \"../../../../../common/types/nullable-types\";\r\nimport {ArenaGameFilterEditor} from \"./arena-game-filter-editor\";\r\nimport {\r\n IArenaGameFiltersCategoryEditorViewModel\r\n} from \"../categories/arena-game-filters-category-editor-view-model.interface\";\r\n\r\nexport abstract class ArenaGameFilterBase implements IArenaGameFilter {\r\n constructor(public readonly filterDefinition: IGameFilterDefinition,\r\n protected readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n createEditor(categoryEditor: IArenaGameFiltersCategoryEditorViewModel): ArenaGameFilterEditor {\r\n return new ArenaGameFilterEditor(this);\r\n }\r\n\r\n readonly isAdhocFilter = false;\r\n\r\n get id(): string {\r\n return this.filterDefinition.id;\r\n }\r\n\r\n get text(): string {\r\n return this.filterDefinition.text;\r\n }\r\n\r\n @computed\r\n get isApplied(): boolean {\r\n return this.services.gamesFilter.isFilterApplied(this.filterDefinition.id);\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n return this.filterDefinition.applyFilter(gameInfo);\r\n }\r\n\r\n get gamesCount(): NullableNumber {\r\n return null;\r\n }\r\n}","import {NullableNumber} from \"../../../../../common/types/nullable-types\";\r\nimport {computed} from \"mobx\";\r\nimport {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {ArenaGameFilterBase} from \"./arena-game-filter-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\n\r\nexport class DynamicArenaGameFilter extends ArenaGameFilterBase {\r\n\r\n @computed\r\n get games(): GameInfo[] {\r\n const currentArenaGames = this.services.arenas.getCurrentArena().allArenaGamesForFiltering;\r\n return currentArenaGames.filter(gameInfo => this.filterDefinition.applyFilter(gameInfo) === ApplyGameFilterResult.IncludeGame)\r\n }\r\n\r\n get gamesCount(): NullableNumber {\r\n return this.games.length;\r\n }\r\n}","import {ArenaGameFiltersCategoryBase} from \"./arena-game-filters-category-base\";\r\nimport {computed} from \"mobx\";\r\nimport {DynamicArenaGameFilter} from \"../filters/dynamic-arena-game-filter\";\r\nimport {NullableNumber} from \"../../../../../common/types/nullable-types\";\r\nimport {IArenaGameFiltersCategory} from \"./arena-game-filters-category.interface\";\r\nimport {IFilterCategoryDefinition} from \"../../filters-categories-definitions/filter-category-definition.interface\";\r\nimport {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {IGameFilterDefinition} from \"../../filters-definitions/game-filter-definition.interface\";\r\n\r\ntype AvailableFilterEvaluator = (filter: DynamicArenaGameFilter) => boolean;\r\n\r\nexport class DynamicArenaGameFiltersCategory extends ArenaGameFiltersCategoryBase {\r\n constructor(categoryDefinition: IFilterCategoryDefinition,\r\n services: IServiceFactoryExtended,\r\n private readonly _availableFilterEvaluator?: AvailableFilterEvaluator) {\r\n super(categoryDefinition, services);\r\n }\r\n\r\n protected _createArenaGameFilter(filterDefinition: IGameFilterDefinition): DynamicArenaGameFilter {\r\n return new DynamicArenaGameFilter(filterDefinition, this.services);\r\n }\r\n\r\n /**\r\n * Restrict available filters to only those that have applicable games in the current arena\r\n */\r\n @computed\r\n get availableFilters(): DynamicArenaGameFilter[] {\r\n return this._getAvailableFilters();\r\n }\r\n\r\n protected _getAvailableFilters(): DynamicArenaGameFilter[]{\r\n const availableFilterEvaluator: AvailableFilterEvaluator = this._availableFilterEvaluator ?? ((filter: DynamicArenaGameFilter) => filter.gamesCount > 0);\r\n return this.categoryDefinition.availableFilters\r\n .map(f => this._createArenaGameFilter(f))\r\n .filter(availableFilterEvaluator);\r\n }\r\n\r\n @computed\r\n get gamesCount(): NullableNumber {\r\n const uniqueGameTypes = new Set();\r\n this.availableFilters.forEach(f => {\r\n f.games.forEach(game => uniqueGameTypes.add(game.gameType))\r\n });\r\n return uniqueGameTypes.size;\r\n }\r\n\r\n protected _createSubcategory(subcategory: IFilterCategoryDefinition): IArenaGameFiltersCategory {\r\n return new DynamicArenaGameFiltersCategory(subcategory,\r\n this.services,\r\n () => true); // for sub categories we always include all filters in the availableFilters\r\n }\r\n\r\n\r\n\r\n}","import {ApplyGameFilterResult, IGameFilterEvaluator} from \"./game-filter-evaluator.interface\";\r\nimport {GameInfo} from \"../../games/game-info\";\r\n\r\nclass OrGameFiltersEvaluator implements IGameFilterEvaluator {\r\n constructor(...evaluators: IGameFilterEvaluator[]) {\r\n this._evaluators = evaluators;\r\n }\r\n\r\n private readonly _evaluators: IGameFilterEvaluator[];\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n let result: ApplyGameFilterResult = ApplyGameFilterResult.NotApplicable;\r\n for(let evaluator of this._evaluators) {\r\n const r = evaluator.applyFilter(gameInfo);\r\n if(r === ApplyGameFilterResult.IncludeGame) {\r\n return r;\r\n } else if(r !== ApplyGameFilterResult.NotApplicable) {\r\n result = r;\r\n }\r\n }\r\n return result;\r\n }\r\n}\r\n\r\nexport function OR(...evaluators: IGameFilterEvaluator[]): OrGameFiltersEvaluator {\r\n return new OrGameFiltersEvaluator(...evaluators);\r\n}","import {CategoryDefinitionId, IFilterCategoryDefinition} from \"./filter-category-definition.interface\";\r\nimport {GameInfo} from \"../../games/game-info\";\r\nimport {IGameFilterDefinition} from \"../filters-definitions/game-filter-definition.interface\";\r\nimport {ApplyGameFilterResult, IGameFilterEvaluator} from \"../evaluators/game-filter-evaluator.interface\";\r\nimport {OR} from \"../evaluators/or-game-filters-evaluator\";\r\nimport {IServiceFactoryExtended} from \"../../service-factory-extended.interface\";\r\nimport {AND} from \"../evaluators/and-game-filters-evaluator\";\r\n\r\nexport abstract class FilterCategoryDefinitionBase implements IFilterCategoryDefinition {\r\n constructor(protected readonly services: IServiceFactoryExtended) {\r\n this.availableFilters = this._loadAvailableFilters();\r\n }\r\n\r\n abstract get id(): CategoryDefinitionId;\r\n abstract get title(): string;\r\n protected abstract _loadAvailableFilters(): IGameFilterDefinition[];\r\n\r\n readonly availableFilters: IGameFilterDefinition[];\r\n\r\n get subCategories(): IFilterCategoryDefinition[] {\r\n return [];\r\n }\r\n\r\n protected _getSubcategoriesFiltersEvaluators(appliedFilters: IGameFilterDefinition[]): IGameFilterEvaluator[] {\r\n const subcategoriesFiltersEvaluators: IGameFilterEvaluator[] = [];\r\n\r\n for(let subcategory of this.subCategories) {\r\n const appliedSubcategoryFilters = appliedFilters.filter(f => subcategory.hasFilter(f));\r\n if(appliedSubcategoryFilters.length > 0) {\r\n subcategoriesFiltersEvaluators.push({\r\n applyFilter: (gameInfo: GameInfo): ApplyGameFilterResult => {\r\n return subcategory.applyFilters(gameInfo, appliedSubcategoryFilters);\r\n }\r\n });\r\n }\r\n }\r\n return subcategoriesFiltersEvaluators;\r\n }\r\n\r\n protected _getAppliedFiltersForThisCategory(appliedFilters: IGameFilterDefinition[]): IGameFilterDefinition[] {\r\n return appliedFilters.filter(f => this.hasFilter(f));\r\n }\r\n\r\n applyFilters(gameInfo: GameInfo, appliedFilters: IGameFilterDefinition[]): ApplyGameFilterResult {\r\n\r\n const thisCategoryFilters = this._getAppliedFiltersForThisCategory(appliedFilters);\r\n const subcategoriesFiltersEvaluators = this._getSubcategoriesFiltersEvaluators(appliedFilters);\r\n\r\n return AND(\r\n OR(...thisCategoryFilters),\r\n OR(...subcategoriesFiltersEvaluators)\r\n ).applyFilter(gameInfo);\r\n }\r\n\r\n get isMultiSelect(): boolean {\r\n return true;\r\n }\r\n\r\n hasFilter(filter: IGameFilterDefinition): boolean {\r\n return this.availableFilters.some(f => f.id === filter.id);\r\n }\r\n}","import {IGameFilterDefinition} from \"./game-filter-definition.interface\";\r\nimport {GameInfo} from \"../../games/game-info\";\r\nimport {ApplyGameFilterResult} from \"../evaluators/game-filter-evaluator.interface\";\r\nimport {IServiceFactoryExtended} from \"../../service-factory-extended.interface\";\r\n\r\nexport abstract class GameFilterDefinitionBase implements IGameFilterDefinition {\r\n constructor(protected readonly services: IServiceFactoryExtended) {\r\n }\r\n abstract get id(): string;\r\n abstract get text(): string;\r\n abstract applyFilter(gameInfo: GameInfo): ApplyGameFilterResult;\r\n\r\n}","import {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {GameFilterDefinitionBase} from \"../game-filter-definition-base\";\r\n\r\nexport class HighVolatilityFilterDefinition extends GameFilterDefinitionBase {\r\n get id(): string {\r\n return 'high-volatility';\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('HIGH_VOLATILITY');\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if(gameInfo.hasHighVolatility) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n}","import {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {GameFilterDefinitionBase} from \"../game-filter-definition-base\";\r\n\r\nexport class LowVolatilityFilterDefinition extends GameFilterDefinitionBase {\r\n get id(): string {\r\n return 'low-volatility';\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('LOW_VOLATILITY');\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if(gameInfo.hasLowVolatility) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n}","import {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {GameFilterDefinitionBase} from \"../game-filter-definition-base\";\r\n\r\nexport class MediumVolatilityFilterDefinition extends GameFilterDefinitionBase {\r\n get id(): string {\r\n return 'medium-volatility';\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('MEDIUM_VOLATILITY');\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if (gameInfo.hasMediumVolatility) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n \r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n}","import {FilterCategoryDefinitionBase} from \"./filter-category-definition-base\";\r\nimport {IGameFilterDefinition} from \"../filters-definitions/game-filter-definition.interface\";\r\nimport {HighVolatilityFilterDefinition} from \"../filters-definitions/volatility/high-volatility.filter-definition\";\r\nimport {LowVolatilityFilterDefinition} from \"../filters-definitions/volatility/low-volatility.filter-definition\";\r\nimport {MediumVolatilityFilterDefinition} from \"../filters-definitions/volatility/medium-volatility.filter-definition\";\r\nimport {CategoryDefinitionId} from \"./filter-category-definition.interface\";\r\n\r\nexport class VolatilityFiltersCategoryDefinition extends FilterCategoryDefinitionBase {\r\n get id(): CategoryDefinitionId {\r\n return 'volatility';\r\n }\r\n\r\n get title(): string{\r\n return this.services.translation.translate('VOLATILITY');\r\n }\r\n protected _loadAvailableFilters(): IGameFilterDefinition[] {\r\n return [\r\n new LowVolatilityFilterDefinition(this.services),\r\n new MediumVolatilityFilterDefinition(this.services),\r\n new HighVolatilityFilterDefinition(this.services)\r\n ];\r\n }\r\n\r\n get isMultiSelect(): boolean {\r\n return false;\r\n }\r\n}","import {GameFilterDefinitionBase} from \"./game-filter-definition-base\";\r\nimport {GameInfo} from \"../../games/game-info\";\r\nimport {ApplyGameFilterResult} from \"../evaluators/game-filter-evaluator.interface\";\r\n\r\nexport abstract class GameFeatureFilterDefinitionBase extends GameFilterDefinitionBase {\r\n\r\n abstract get id(): string;\r\n abstract get text(): string;\r\n protected abstract _shouldIncludeGame(gameInfo: GameInfo): boolean;\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if(this._shouldIncludeGame(gameInfo)) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n \r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n\r\n\r\n}","import {GameFeatureFilterDefinitionBase} from \"../game-feature-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\n\r\nexport class OneToTwentyFiveFilterDefinition extends GameFeatureFilterDefinitionBase {\r\n\r\n get id(): string {\r\n return \"one-to-twenty-five\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('1-25_LINES');\r\n }\r\n\r\n protected _shouldIncludeGame(gameInfo: GameInfo): boolean {\r\n return Check.isNumber(gameInfo.numberOfLines) && gameInfo.numberOfLines >= 1 && gameInfo.numberOfLines <= 24;\r\n }\r\n}","import {GameInfo} from \"../../../games/game-info\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {GameFeatureFilterDefinitionBase} from \"../game-feature-filter-definition-base\";\r\n\r\nexport class TwentyFivePlusFilterDefinition extends GameFeatureFilterDefinitionBase {\r\n get id(): string {\r\n return \"twenty-five-plus\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('25+_LINES');\r\n }\r\n\r\n protected _shouldIncludeGame(gameInfo: GameInfo): boolean {\r\n return Check.isNumber(gameInfo.numberOfLines) && gameInfo.numberOfLines >= 25;\r\n }\r\n}","import {GameFeatureFilterDefinitionBase} from \"../game-feature-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\n\r\nexport class NewGameFilterDefinition extends GameFeatureFilterDefinitionBase {\r\n get id(): string {\r\n return \"new\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('NEW');\r\n }\r\n\r\n protected _shouldIncludeGame(gameInfo: GameInfo): boolean {\r\n return gameInfo.isNewGame;\r\n }\r\n\r\n}","import {GameFeatureFilterDefinitionBase} from \"../game-feature-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\n\r\nexport class LowStakeFilterDefinition extends GameFeatureFilterDefinitionBase {\r\n get id(): string {\r\n return \"lowStakes\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('LOW_STAKES');\r\n }\r\n\r\n protected _shouldIncludeGame(gameInfo: GameInfo): boolean {\r\n return gameInfo.hasLowStakes;\r\n }\r\n}","import {GameFeatureFilterDefinitionBase} from \"../game-feature-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\n\r\nexport class BonusGameFilterDefinition extends GameFeatureFilterDefinitionBase {\r\n get id(): string {\r\n return \"bonus\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('BONUS');\r\n }\r\n\r\n protected _shouldIncludeGame(gameInfo: GameInfo): boolean {\r\n return gameInfo.hasBonusGames;\r\n }\r\n}","import {GameFeatureFilterDefinitionBase} from \"../game-feature-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\n\r\nexport class FreeSpinsFilterDefinition extends GameFeatureFilterDefinitionBase {\r\n get id(): string {\r\n return \"freeSpins\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('FREE_SPINS');\r\n }\r\n\r\n protected _shouldIncludeGame(gameInfo: GameInfo): boolean {\r\n return gameInfo.hasFreeSpins;\r\n }\r\n}","import {IGameFilterDefinition} from \"../filters-definitions/game-filter-definition.interface\";\r\nimport {\r\n OneToTwentyFiveFilterDefinition\r\n} from \"../filters-definitions/game-features/one-to-twenty-five.filter-definition\";\r\nimport {\r\n TwentyFivePlusFilterDefinition\r\n} from \"../filters-definitions/game-features/twenty-five-plus.filter-definition\";\r\nimport {NewGameFilterDefinition} from \"../filters-definitions/game-features/new-game.filter-definition\";\r\nimport {LowStakeFilterDefinition} from \"../filters-definitions/game-features/low-stake.filter-definition\";\r\nimport {BonusGameFilterDefinition} from \"../filters-definitions/game-features/bonus-game.filter-definition\";\r\nimport {FreeSpinsFilterDefinition} from \"../filters-definitions/game-features/free-spins.filter-definition\";\r\nimport {FilterCategoryDefinitionBase} from \"./filter-category-definition-base\";\r\nimport {CategoryDefinitionId} from \"./filter-category-definition.interface\";\r\n\r\nexport class GameFeaturesFiltersCategoryDefinition extends FilterCategoryDefinitionBase {\r\n get title(): string {\r\n return this.services.translation.translate('Game Features');\r\n }\r\n\r\n get id(): CategoryDefinitionId {\r\n return 'features';\r\n }\r\n\r\n protected _loadAvailableFilters(): IGameFilterDefinition[] {\r\n return [\r\n new OneToTwentyFiveFilterDefinition(this.services),\r\n new TwentyFivePlusFilterDefinition(this.services),\r\n //new JackpotFilterDefinition(this.services),\r\n new NewGameFilterDefinition(this.services),\r\n new LowStakeFilterDefinition(this.services),\r\n new BonusGameFilterDefinition(this.services),\r\n new FreeSpinsFilterDefinition(this.services),\r\n ];\r\n }\r\n}","import {GameFeatureFilterDefinitionBase} from \"../game-feature-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\n\r\nexport class HasJackpotFilterDefinition extends GameFeatureFilterDefinitionBase {\r\n get id(): string {\r\n return \"has-jackpot\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('YES');\r\n }\r\n\r\n protected _shouldIncludeGame(gameInfo: GameInfo): boolean {\r\n return gameInfo.hasJackpot;\r\n }\r\n}","import {GameFeatureFilterDefinitionBase} from \"../game-feature-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\n\r\nexport class HasNoJackpotFilterDefinition extends GameFeatureFilterDefinitionBase {\r\n get id(): string {\r\n return \"has-no-jackpot\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('NO');\r\n }\r\n\r\n protected _shouldIncludeGame(gameInfo: GameInfo): boolean {\r\n return !gameInfo.hasJackpot;\r\n }\r\n}","import {GameFeatureFilterDefinitionBase} from \"../game-feature-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\n\r\nexport class HasDailyJackpotFilterDefinition extends GameFeatureFilterDefinitionBase {\r\n get id(): string {\r\n return \"has-daily-jackpot\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('THE_DAILY_JACKPOT');\r\n }\r\n\r\n protected _shouldIncludeGame(gameInfo: GameInfo): boolean {\r\n return gameInfo.hasDailyJackpot;\r\n }\r\n}","import {GameFeatureFilterDefinitionBase} from \"../game-feature-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\n\r\nexport class HasTwilightJackpotFilterDefinition extends GameFeatureFilterDefinitionBase {\r\n get id(): string {\r\n return \"has-twilight-jackpot\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('TWILIGHT_JACKPOT');\r\n }\r\n\r\n protected _shouldIncludeGame(gameInfo: GameInfo): boolean {\r\n return gameInfo.hasTwilightJackpot;\r\n }\r\n}","import {GameFeatureFilterDefinitionBase} from \"../game-feature-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\n\r\nexport class HasCaptain8JackpotFilterDefinition extends GameFeatureFilterDefinitionBase {\r\n get id(): string {\r\n return \"has-captain8-jackpot\";\r\n }\r\n\r\n get text(): string {\r\n return 'Captain8 Jackpot';\r\n }\r\n\r\n protected _shouldIncludeGame(gameInfo: GameInfo): boolean {\r\n return gameInfo.hasCaptain8tJackpot;\r\n }\r\n}","import {IGameFilterDefinition} from \"../filters-definitions/game-filter-definition.interface\";\r\nimport {HasDailyJackpotFilterDefinition} from \"../filters-definitions/jackpot/has-dailight-jackpot.filter-definition\";\r\nimport {HasTwilightJackpotFilterDefinition} from \"../filters-definitions/jackpot/has-twilight-jackpot.filter-definition\";\r\nimport {HasCaptain8JackpotFilterDefinition} from \"../filters-definitions/jackpot/has-captain8-jackpot.filter-definition\";\r\nimport {FilterCategoryDefinitionBase} from \"./filter-category-definition-base\";\r\nimport {CategoryDefinitionId} from \"./filter-category-definition.interface\";\r\n\r\nexport class JackpotTypesFiltersCategoryDefinition extends FilterCategoryDefinitionBase {\r\n\r\n get id(): CategoryDefinitionId {\r\n return 'jackpotTypes';\r\n }\r\n\r\n get title(): string {\r\n return this.services.translation.translate('OTHER');\r\n }\r\n\r\n protected _loadAvailableFilters(): IGameFilterDefinition[] {\r\n return [\r\n new HasDailyJackpotFilterDefinition(this.services),\r\n new HasTwilightJackpotFilterDefinition(this.services),\r\n new HasCaptain8JackpotFilterDefinition(this.services)\r\n ];\r\n }\r\n\r\n get isMultiSelect() {\r\n return true;\r\n }\r\n}\r\n","import {IGameFilterDefinition} from \"../filters-definitions/game-filter-definition.interface\";\r\nimport {FilterCategoryDefinitionBase} from \"./filter-category-definition-base\";\r\nimport {HasJackpotFilterDefinition} from \"../filters-definitions/jackpot/has-jackpot.filter-definition\";\r\nimport {HasNoJackpotFilterDefinition} from \"../filters-definitions/jackpot/has-no-jackpot.filter-definition\";\r\nimport {JackpotTypesFiltersCategoryDefinition} from \"./jackpot-types.filters-category-definition\";\r\nimport {CategoryDefinitionId, IFilterCategoryDefinition} from \"./filter-category-definition.interface\";\r\n\r\nexport class HasJackpotFiltersCategoryDefinition extends FilterCategoryDefinitionBase {\r\n\r\n get id(): CategoryDefinitionId {\r\n return 'hasJackpot';\r\n }\r\n\r\n get title(): string{\r\n return this.services.translation.translate('JACKPOT');\r\n }\r\n\r\n protected _loadAvailableFilters(): IGameFilterDefinition[] {\r\n return [\r\n new HasJackpotFilterDefinition(this.services),\r\n new HasNoJackpotFilterDefinition(this.services)\r\n ];\r\n }\r\n \r\n get subCategories(): IFilterCategoryDefinition[] {\r\n return [new JackpotTypesFiltersCategoryDefinition(this.services)];\r\n }\r\n\r\n\r\n get isMultiSelect(): boolean {\r\n return false;\r\n }\r\n}\r\n","import {IGameFilterDefinition} from '../game-filter-definition.interface';\r\nimport {GameInfo} from '../../../games/game-info';\r\nimport {removeSpaces} from \"../../../../../utils/string-helpers\";\r\nimport {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\n\r\nexport class VendorFilterDefinition implements IGameFilterDefinition {\r\n constructor(public readonly id: string,\r\n private readonly _vendorName: string,\r\n private readonly _text?: string) {\r\n this._vendorNameWithoutSpaces = removeSpaces(this._vendorName.toLowerCase());\r\n }\r\n get text(): string {\r\n if(this._text) {\r\n return this._text;\r\n }\r\n return this._vendorName;\r\n }\r\n\r\n private readonly _vendorNameWithoutSpaces;\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if(removeSpaces(gameInfo.vendorName.toLowerCase()) === this._vendorNameWithoutSpaces) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n\r\n}\r\n","import {IGameFilterDefinition} from \"../filters-definitions/game-filter-definition.interface\";\r\nimport {VendorFilterDefinition} from \"../filters-definitions/vendor/vendor.filter-definition\";\r\nimport {FilterCategoryDefinitionBase} from \"./filter-category-definition-base\";\r\nimport {CategoryDefinitionId} from \"./filter-category-definition.interface\";\r\n\r\nexport class GameVendorFiltersCategoryDefinition extends FilterCategoryDefinitionBase {\r\n\r\n get id(): CategoryDefinitionId {\r\n return 'vendors';\r\n }\r\n\r\n get title(): string{\r\n return this.services.translation.translate('Games Studio');\r\n }\r\n\r\n protected _loadAvailableFilters(): IGameFilterDefinition[] {\r\n return [\r\n new VendorFilterDefinition('vendor_888','888', this.services.translation.translate('EXCLUSIVE')),\r\n new VendorFilterDefinition('vendor_netent', 'NetEnt', \"NETENT\"),\r\n new VendorFilterDefinition('vendor_playngo', 'play n go', `Play'n GO`),\r\n new VendorFilterDefinition('vendor_redtiger', 'Red Tiger'),\r\n new VendorFilterDefinition('vendor_quickspin', 'Quickspin'),\r\n new VendorFilterDefinition('vendor_yggdrasil', 'Yggdrasil'),\r\n new VendorFilterDefinition('vendor_merkur', 'Merkur'),\r\n new VendorFilterDefinition('vendor_gamomat', 'Gamomat'),\r\n new VendorFilterDefinition('vendor_egt', 'EGT'),\r\n new VendorFilterDefinition('vendor_mga', 'MGA'),\r\n new VendorFilterDefinition('vendor_playtech','PlayTech', 'PLAYTECH'),\r\n new VendorFilterDefinition('vendor_pragmatic', 'Pragmatic'),\r\n new VendorFilterDefinition('vendor_blueprint', 'Blueprint'),\r\n new VendorFilterDefinition('vendor_evolution', 'Evolution'),\r\n new VendorFilterDefinition('vendor_light_and_wonder', 'LNW'),\r\n new VendorFilterDefinition('vendor_igt', 'IGT'),\r\n new VendorFilterDefinition('vendor_h5', 'H5'),\r\n new VendorFilterDefinition('vendor_everi', 'Everi')\r\n ];\r\n }\r\n\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import {GameFilterDefinitionBase} from \"./game-filter-definition-base\";\r\nimport {GameInfo} from \"../../games/game-info\";\r\nimport {ApplyGameFilterResult} from \"../evaluators/game-filter-evaluator.interface\";\r\nimport {NullableString} from \"../../../../common/types/nullable-types\";\r\n\r\nexport abstract class GameGroupFilterDefinitionBase extends GameFilterDefinitionBase {\r\n\r\n\r\n protected abstract get gameGroupsIdsToFilterFor(): number[];\r\n\r\n protected get textToSearchInSubgroupName(): NullableString {\r\n return null;\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if(this.gameGroupsIdsToFilterFor.includes(gameInfo.gameGroupId)) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n\r\n if(this.textToSearchInSubgroupName) {\r\n const subgroupName = gameInfo.subGroupName?.toLowerCase();\r\n if(subgroupName && subgroupName.indexOf(this.textToSearchInSubgroupName) !== -1) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n }\r\n\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n}","import {GameGroupFilterDefinitionBase} from \"../game-group-filter-definition-base\";\r\nimport {NullableString} from \"../../../../../common/types/nullable-types\";\r\nimport {GAME_GROUP} from \"../../../../../common/const/game_groups_consts\";\r\n\r\nexport class BaccaratFilterDefinition extends GameGroupFilterDefinitionBase {\r\n get id(): string {\r\n return \"baccarat\";\r\n }\r\n\r\n protected get textToSearchInSubgroupName(): NullableString {\r\n return \"baccarat\";\r\n }\r\n\r\n protected get gameGroupsIdsToFilterFor(): number[] {\r\n return [GAME_GROUP.BACCARAT];\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('BACCARAT');\r\n }\r\n\r\n}","import {GameGroupFilterDefinitionBase} from \"../game-group-filter-definition-base\";\r\nimport {NullableString} from \"../../../../../common/types/nullable-types\";\r\nimport {GAME_GROUP} from \"../../../../../common/const/game_groups_consts\";\r\n\r\nexport class BlackjackFilterDefinition extends GameGroupFilterDefinitionBase {\r\n\r\n get id(): string {\r\n return \"blackjack\";\r\n }\r\n\r\n protected get gameGroupsIdsToFilterFor(): number[] {\r\n return [GAME_GROUP.BLACKJACK];\r\n }\r\n\r\n protected get textToSearchInSubgroupName(): NullableString {\r\n return \"blackjack\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('BLACKJACK');\r\n }\r\n\r\n}","import {GameGroupFilterDefinitionBase} from \"../game-group-filter-definition-base\";\r\nimport {GAME_GROUP} from \"../../../../../common/const/game_groups_consts\";\r\n\r\nexport class CrapsFilterDefinition extends GameGroupFilterDefinitionBase {\r\n get id(): string {\r\n return \"craps\";\r\n }\r\n\r\n protected get gameGroupsIdsToFilterFor(): number[] {\r\n return [GAME_GROUP.CRAPS];\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('CRAPS')\r\n }\r\n}\r\n","import {GameGroupFilterDefinitionBase} from \"../game-group-filter-definition-base\";\r\nimport {GAME_GROUP} from \"../../../../../common/const/game_groups_consts\";\r\n\r\nexport class KenoFilterDefinition extends GameGroupFilterDefinitionBase {\r\n get id(): string {\r\n return \"keno\";\r\n }\r\n\r\n protected get gameGroupsIdsToFilterFor(): number[] {\r\n return [GAME_GROUP.KENO];\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('KENO');\r\n }\r\n}","import {GameFilterDefinitionBase} from \"../game-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\n\r\nexport class LiveEliteLungeFilterDefinition extends GameFilterDefinitionBase {\r\n get id(): string {\r\n return \"live-elite-lounge\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('EXCLUSIVE');\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if(gameInfo.isEliteLounge) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n\r\n}","import {GameFilterDefinitionBase} from \"../game-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\n\r\nexport class LiveEliteLoungeOrExclusiveFilterDefinition extends GameFilterDefinitionBase {\r\n get id(): string {\r\n return \"live-elite-lounge-or-exclusive\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('EXCLUSIVE');\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if(gameInfo.isEliteLounge || gameInfo.isExclusiveGame) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n\r\n\r\n}","import {GameFilterDefinitionBase} from \"../game-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\n\r\nexport class LiveGameShowsFilterDefinition extends GameFilterDefinitionBase {\r\n get id(): string {\r\n return \"live-game-shows\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('GAME_SHOWS');\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if(Check.isNullOrUndefined(gameInfo.subGroupName)){\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n\r\n if(gameInfo.subGroupName.toLowerCase().indexOf('shows') !== -1) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n\r\n}","import {GameGroupFilterDefinitionBase} from \"../game-group-filter-definition-base\";\r\nimport {GAME_GROUP} from \"../../../../../common/const/game_groups_consts\";\r\nimport {NullableString} from \"../../../../../common/types/nullable-types\";\r\n\r\nexport class PokerFilterDefinition extends GameGroupFilterDefinitionBase {\r\n\r\n get id(): string {\r\n return \"poker\";\r\n }\r\n\r\n protected get gameGroupsIdsToFilterFor(): number[] {\r\n return [GAME_GROUP.VIDEO_POKER, GAME_GROUP.CARRIBEAN_POKER, GAME_GROUP.POKER, GAME_GROUP.PAI_GOW_POKER, GAME_GROUP.POWER_VIDEO_POKER, GAME_GROUP.POKER_TEMPLATE_GAMES];\r\n }\r\n\r\n protected get textToSearchInSubgroupName(): NullableString {\r\n return \"poker\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('POKER');\r\n }\r\n\r\n\r\n}","import {GameGroupFilterDefinitionBase} from \"../game-group-filter-definition-base\";\r\nimport {GAME_GROUP} from \"../../../../../common/const/game_groups_consts\";\r\nimport {NullableString} from \"../../../../../common/types/nullable-types\";\r\n\r\nexport class RouletteFilterDefinition extends GameGroupFilterDefinitionBase {\r\n get id(): string {\r\n return \"roulette\";\r\n }\r\n\r\n protected get gameGroupsIdsToFilterFor(): number[] {\r\n return [GAME_GROUP.ROULETTE, GAME_GROUP.ROULETTE_LIKE];\r\n }\r\n\r\n protected get textToSearchInSubgroupName(): NullableString {\r\n return \"roulette\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('ROULETTE');\r\n }\r\n\r\n\r\n}","import {GameGroupFilterDefinitionBase} from \"../game-group-filter-definition-base\";\r\nimport {GAME_GROUP} from \"../../../../../common/const/game_groups_consts\";\r\n\r\nexport class ScratchcardsFilterDefinition extends GameGroupFilterDefinitionBase {\r\n get id(): string {\r\n return \"scratchCards\";\r\n }\r\n\r\n protected get gameGroupsIdsToFilterFor(): number[] {\r\n return [GAME_GROUP.SCRATCH_CARD];\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('SCRATCHCARDS');\r\n }\r\n\r\n}","import {GameGroupFilterDefinitionBase} from \"../game-group-filter-definition-base\";\r\nimport {GAME_GROUP} from \"../../../../../common/const/game_groups_consts\";\r\n\r\nexport class SlotsFilterDefinition extends GameGroupFilterDefinitionBase {\r\n\r\n get id(): string {\r\n return \"slots\";\r\n }\r\n\r\n protected get gameGroupsIdsToFilterFor(): number[] {\r\n return [GAME_GROUP.VIDEO_SLOT, GAME_GROUP.SLOT];\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('SLOT_GAMES');\r\n }\r\n\r\n}","import {IGameFilterDefinition} from \"../filters-definitions/game-filter-definition.interface\";\r\nimport {BaccaratFilterDefinition} from \"../filters-definitions/game-group/baccarat.filter-definition\";\r\nimport {BlackjackFilterDefinition} from \"../filters-definitions/game-group/blackjack.filter-definition\";\r\nimport {CrapsFilterDefinition} from \"../filters-definitions/game-group/craps.filter-definition\";\r\nimport {KenoFilterDefinition} from \"../filters-definitions/game-group/keno.filter-definition\";\r\nimport {LiveEliteLungeFilterDefinition} from \"../filters-definitions/game-group/live-elite-lunge.filter-definition\";\r\nimport {\r\n LiveEliteLoungeOrExclusiveFilterDefinition\r\n} from \"../filters-definitions/game-group/live-elite-lounge-or-exclusive.filter-definition\";\r\nimport {LiveGameShowsFilterDefinition} from \"../filters-definitions/game-group/live-game-shows.filter-definition\";\r\nimport {PokerFilterDefinition} from \"../filters-definitions/game-group/poker.filter-definition\";\r\nimport {RouletteFilterDefinition} from \"../filters-definitions/game-group/roulette.filter-definition\";\r\nimport {ScratchcardsFilterDefinition} from \"../filters-definitions/game-group/scratchcards.filter-definition\";\r\nimport {SlotsFilterDefinition} from \"../filters-definitions/game-group/slots.filter-definition\";\r\nimport {FilterCategoryDefinitionBase} from \"./filter-category-definition-base\";\r\nimport {CategoryDefinitionId} from \"./filter-category-definition.interface\";\r\n\r\nexport class GameGroupFiltersCategoryDefinition extends FilterCategoryDefinitionBase {\r\n\r\n get id(): CategoryDefinitionId {\r\n return 'gameGroups';\r\n }\r\n\r\n get title(): string{\r\n return this.services.translation.translate('Game Type');\r\n }\r\n\r\n protected _loadAvailableFilters(): IGameFilterDefinition[] {\r\n return [\r\n new SlotsFilterDefinition(this.services),\r\n new RouletteFilterDefinition(this.services),\r\n new BlackjackFilterDefinition(this.services),\r\n new PokerFilterDefinition(this.services),\r\n new ScratchcardsFilterDefinition(this.services),\r\n new BaccaratFilterDefinition(this.services),\r\n new CrapsFilterDefinition(this.services),\r\n new KenoFilterDefinition(this.services),\r\n new LiveEliteLungeFilterDefinition(this.services),\r\n new LiveEliteLoungeOrExclusiveFilterDefinition(this.services),\r\n new LiveGameShowsFilterDefinition(this.services)\r\n ];\r\n }\r\n\r\n\r\n /*\r\n private _dynamicLoadFiltersDefinitions(): IGameFilterDefinition[] {\r\n const filtersDefinitionsModulesFactory = require.context('../../filters-definitions/game-group/', true, /^.*\\.(filter-definition)\\.ts$/);\r\n const modulesIds = filtersDefinitionsModulesFactory.keys();\r\n debugger;\r\n return modulesIds.map(moduleId => filtersDefinitionsModulesFactory(moduleId))\r\n .map(module => {\r\n const FilterDefinitionConstructor: FilterDefinitionConstructor = module.default;\r\n return new FilterDefinitionConstructor(this.services);\r\n });\r\n }\r\n */\r\n\r\n\r\n\r\n /*\r\n readonly availableFilters: IGameFilterDefinition[] = [\r\n\r\n new GameGroupFilter('roulette', 'Roulette'),\r\n new GameGroupFilter('blackjack', 'Blackjack'),\r\n new GameGroupFilter('baccarat', 'Baccarat'),\r\n new GameGroupFilter('videoPoker', 'VideoPoker'), //!!!\r\n new GameGroupFilter('keno','Keno'),\r\n new GameGroupFilter('craps', 'Craps'),\r\n new GameGroupFilter('slots', ['Slot','VideoSlot']),\r\n new CustomFilter('poker', (game) => game.gameGroup.toLowerCase().indexOf('poker') !== -1),\r\n new SubgroupNameFilter('live-poker', 'poker'),\r\n new SubgroupNameFilter('live-blackjack', 'blackjack'),\r\n new SubgroupNameFilter('live-roulette', 'roulette'),\r\n new SubgroupNameFilter('live-baccarat', 'baccarat'),\r\n new SubgroupNameFilter('live-game-shows','shows'),\r\n new CustomFilter('live-elite-lounge', (game) => game.isEliteLounge),\r\n new CustomFilter('live-elite-lounge-or-exclusive', (game) => game.isEliteLounge || game.isExclusiveGame),\r\n new AllRouletteFilter(),\r\n new AllBlackjackFilter(),\r\n new AllBaccaratFilter(),\r\n new AllPokerFilter(),\r\n new GameGroupFilter('scratchCards', 'Scratch Card')\r\n\r\n ]\r\n */\r\n}","import {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {GameFilterDefinitionBase} from \"../game-filter-definition-base\";\r\nimport {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\n\r\nexport class GameThemeFilterDefinition extends GameFilterDefinitionBase {\r\n constructor(protected readonly services: IServiceFactoryExtended, public themeId: number, public themeName: string) {\r\n super(services);\r\n }\r\n\r\n get id(): string {\r\n return `theme-${this.themeId}`;\r\n }\r\n\r\n get text(): string {\r\n return this.themeName;\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if (gameInfo.hasTheme(this.themeId)) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n}","import {FilterCategoryDefinitionBase} from \"./filter-category-definition-base\";\r\nimport {IGameFilterDefinition} from \"../filters-definitions/game-filter-definition.interface\";\r\nimport {GameThemeFilterDefinition} from \"../filters-definitions/theme/game-theme.filter-definition\";\r\nimport {CategoryDefinitionId} from \"./filter-category-definition.interface\";\r\n\r\nexport class GameThemeFiltersCategoryDefinition extends FilterCategoryDefinitionBase {\r\n\r\n get id(): CategoryDefinitionId {\r\n return 'themes';\r\n }\r\n\r\n get title(): string{\r\n return this.services.translation.translate('THEME');\r\n }\r\n\r\n protected _loadAvailableFilters(): IGameFilterDefinition[] {\r\n const allThemes = this.services.sdk.getGamesThemes();\r\n const filters = Object.keys(allThemes).map(id => {\r\n const themeId = Number(id);\r\n const themeName = allThemes[themeId];\r\n return new GameThemeFilterDefinition(this.services, themeId, themeName);\r\n });\r\n return filters;\r\n }\r\n}","import {IFilterCategoryDefinitionFactory} from \"./filter-category-definition-factory.interface\";\r\nimport {CategoryDefinitionId, IFilterCategoryDefinition} from \"./filter-category-definition.interface\";\r\nimport {VolatilityFiltersCategoryDefinition} from \"./volatility.filters-category-definition\";\r\nimport {GameFeaturesFiltersCategoryDefinition} from \"./game-features.filters-category-definition\";\r\nimport {HasJackpotFiltersCategoryDefinition} from \"./has-jackpot.filters-category-definition\";\r\nimport {GameVendorFiltersCategoryDefinition} from \"./game-vendor.filters-category-definition\";\r\nimport {GameGroupFiltersCategoryDefinition} from \"./game-group.filters-category-definition\";\r\nimport {IServiceFactoryExtended} from \"../../service-factory-extended.interface\";\r\nimport {JackpotTypesFiltersCategoryDefinition} from \"./jackpot-types.filters-category-definition\";\r\nimport {GameThemeFiltersCategoryDefinition} from \"./game-theme.filters-category-definition\";\r\n\r\nexport class FilterCategoryDefinitionFactory implements IFilterCategoryDefinitionFactory {\r\n constructor(protected readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n createCategoryDefinition(categoryDefinitionId: CategoryDefinitionId): IFilterCategoryDefinition | null {\r\n switch (categoryDefinitionId) {\r\n case \"volatility\": return new VolatilityFiltersCategoryDefinition(this.services);\r\n case \"features\": return new GameFeaturesFiltersCategoryDefinition(this.services);\r\n case \"hasJackpot\" : return new HasJackpotFiltersCategoryDefinition(this.services);\r\n case \"themes\" : return new GameThemeFiltersCategoryDefinition(this.services);\r\n case \"vendors\" : return new GameVendorFiltersCategoryDefinition(this.services);\r\n case \"gameGroups\" : return new GameGroupFiltersCategoryDefinition(this.services);\r\n case \"jackpotTypes\": return new JackpotTypesFiltersCategoryDefinition(this.services);\r\n\r\n default:\r\n throw new Error(`Does not know how to instantiate ${categoryDefinitionId}`);\r\n }\r\n }\r\n\r\n}\r\n","import React from 'react';\r\nimport {GamesFilterStrategyBase} from \"../games-filter-strategy-base\";\r\nimport {AdvancedGamesFilterDrawerRenderer} from \"./advanced-games-filter-drawer-renderer\";\r\nimport {AdvancedStrategyFiltersEditor} from \"./advanced-strategy-filters-editor\";\r\nimport {IArenaGameFiltersCategory} from \"../../arena-filters/categories/arena-game-filters-category.interface\";\r\nimport {IGameFilterEvaluator} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {AND} from \"../../evaluators/and-game-filters-evaluator\";\r\nimport {\r\n FiltersMobileButtonComponent\r\n} from \"../../../../components/header/top-header-left/filters/filters-mobile-button.component\";\r\nimport {Nullable} from \"../../../../../common/types/nullable-types\";\r\nimport {\r\n IPcFilterIndicatorRenderingOptions,\r\n PcFilterIndicatorRenderingLocation\r\n} from \"../../games-filter.service.interface\";\r\nimport {\r\n AdvancedGamesFilteringPcIndicatorComponent\r\n} from \"../../../../components/filters/advanced-filtering/advanced-games-filtering-pc-indicator.component\";\r\nimport {DynamicArenaGameFiltersCategory} from \"../../arena-filters/categories/dynamic-arena-game-filters-category\";\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {FilterCategoryDefinitionFactory} from '../../filters-categories-definitions/filter-category-definition-factory';\r\n\r\nexport class AdvancedGamesFilterStrategy extends GamesFilterStrategyBase {\r\n\r\n private _factory = new FilterCategoryDefinitionFactory(this.services);\r\n\r\n protected _createFiltersCategories(): IArenaGameFiltersCategory[] {\r\n const arenaName = this.services.routing.currentRoute.data?.arenaType;\r\n if (!arenaName) {\r\n return [];\r\n }\r\n\r\n const categories = this.services.configuration.data.arenas[arenaName].advancedFilters?.categories;\r\n if (!Check.isArray(categories)) {\r\n return [];\r\n }\r\n \r\n const filters: IArenaGameFiltersCategory[] = [];\r\n categories.forEach(category => {\r\n if (!category?.id) return;\r\n\r\n const filterCategoryDef = this._factory.createCategoryDefinition(category.id);\r\n if (!filterCategoryDef) return;\r\n filters.push(new DynamicArenaGameFiltersCategory(filterCategoryDef, this.services));\r\n });\r\n\r\n return filters;\r\n }\r\n\r\n protected _createEvaluator(): IGameFilterEvaluator | null {\r\n return AND(...this.filtersCategories);\r\n }\r\n\r\n private _createFiltersEditor() {\r\n return new AdvancedStrategyFiltersEditor(this.filtersCategories, this.services);\r\n }\r\n\r\n\r\n renderMobileFiltersIndicator(): React.ReactElement {\r\n if(this.services.mediaQuery.lAndBelow) {\r\n return ();\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n renderPCFiltersIndicator(): Nullable {\r\n if(this.services.mediaQuery.lAndBelow) {\r\n return null;\r\n } else {\r\n return {\r\n location: PcFilterIndicatorRenderingLocation.NextToArenaTitle,\r\n reactElement: ()\r\n };\r\n }\r\n }\r\n\r\n showFiltersEditor(): void {\r\n this.services.drawer.right.push(new AdvancedGamesFilterDrawerRenderer(this.services, this._createFiltersEditor()));\r\n }\r\n\r\n}","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../themes/architecture/styled-by-device\";\r\nimport {ACTIVE} from \"../../../../../themes/css-global-classes\";\r\nimport {CssRule} from \"../../../../../themes/architecture/css-helpers/css-rule\";\r\n\r\nexport const FilterLinkIconDefaultPCBox = styled.span`\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-repeat: no-repeat;\r\n background-position: -364px -553px;\r\n width: 20px;\r\n height: 21px;\r\n margin-right: 10px;\r\n cursor: pointer;\r\n \r\n .${ACTIVE} &{\r\n background-position: -396px -553px;\r\n }\r\n`;\r\n\r\nexport const FilterLinkIconDefaultMobileBox = styled.span`\r\n position: relative;\r\n background: ${props => props.theme.colors.backgroundLight};\r\n border-radius: 50%;\r\n padding: 50px;\r\n \r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n padding: 40px;\r\n }\r\n \r\n ${CssRule.For.mobile.landscape.build()} & {\r\n grid-template-columns: repeat(5, 130px);\r\n }\r\n\r\n &:before {\r\n content: \"\";\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n width: 30px;\r\n height: 30px;\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-repeat: no-repeat;\r\n background-position: -204px -358px;\r\n transform: translate(-50%, -50%);\r\n }\r\n \r\n \r\n .${ACTIVE} &{\r\n background: ${props => `linear-gradient(${props.theme.colors.brandSecondaryDark}, ${props.theme.colors.brandSecondaryLight}, ${props.theme.colors.brandPrimaryDark})`};\r\n\r\n &:before {\r\n background-position: -95px -358px;\r\n }\r\n \r\n :after {\r\n content: \"\";\r\n position: absolute;\r\n left: 0;\r\n bottom: 0;\r\n width: 30px;\r\n height: 30px;\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-repeat: no-repeat;\r\n background-position: -544px -516px;\r\n border-radius: 50%;\r\n }\r\n }\r\n`;\r\n\r\nexport const FilterLinkIconDefaultBox = styledByDevice(FilterLinkIconDefaultPCBox, FilterLinkIconDefaultMobileBox);\r\n","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../themes/architecture/styled-by-device\";\r\nimport {ACTIVE} from \"../../../../../themes/css-global-classes\";\r\n\r\nconst PCBox = styled.span`\r\n\r\n background-color:${props => props.theme.colors.brandSecondary};\r\n border-radius: 5px;\r\n border:1px solid ${props => props.theme.colors.boxBorderContrast};\r\n width:18px;\r\n height: 18px;\r\n margin-right: 5px;\r\n \r\n .${ACTIVE} &{\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-position: -457px -526px;\r\n background-color: transparent;\r\n border:none;\r\n }\r\n`;\r\nconst MobileBox = styled.span` \r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-position: -246px -292px;\r\n width: 90px;\r\n height: 90px;\r\n\r\n .${ACTIVE} &{\r\n background-position: -245px -157px;\r\n }\r\n`;\r\n\r\nexport const FilterLinkIconCasino777Box = styledByDevice(PCBox, MobileBox);","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../themes/architecture/styled-by-device\";\r\nimport {ACTIVE} from \"../../../../../themes/css-global-classes\";\r\nimport {FilterLinkIconDefaultPCBox, FilterLinkIconDefaultMobileBox} from \"./filter-link-icon.default.box\";\r\n\r\nconst MobileSIBox = styled(FilterLinkIconDefaultMobileBox)`\r\n &:before {\r\n background-position: -1005px -643px;\r\n }\r\n \r\n .${ACTIVE} &{\r\n background: transparent linear-gradient(180deg, ${props => props.theme.colors.brandSecondaryDark} 0%, #731A11 100%) 0% 0% no-repeat padding-box;\r\n\r\n &:before {\r\n background-position: -1005px -643px;\r\n } \r\n }\r\n`;\r\n\r\nexport const FilterLinkIconSIBox = styledByDevice(FilterLinkIconDefaultPCBox, MobileSIBox);","import {FilterLinkIconDefaultBox} from \"./filter-link-icon.default.box\";\r\nimport {styledByTheme} from \"../../../../../themes/architecture/styled-by-theme\";\r\nimport {FilterLinkIconCasino777Box} from \"./filter-link-icon.casino777.box\";\r\nimport {FilterLinkIconSIBox} from \"./filter-link-icon.si.box\";\r\n\r\nexport const FilterLinkIconBox = styledByTheme(FilterLinkIconDefaultBox)\r\n .forCasino777(FilterLinkIconCasino777Box)\r\n .forSI(FilterLinkIconSIBox)\r\n .apply();","import styled from \"styled-components\";\r\nimport {ACTIVE} from \"../../../../themes/css-global-classes\";\r\n\r\n\r\nexport const FilterLinkDefaultBox = styled.a`\r\n display: flex;\r\n padding:1rem;\r\n color: ${props => props.theme.colors.textMiddleDark};\r\n\r\n &:hover {\r\n color: ${props => props.theme.colors.textHover};\r\n }\r\n\r\n \r\n &.${ACTIVE}{\r\n color: ${props => props.theme.colors.brandPrimary};\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n flex-direction: column;\r\n font-size: 1.4rem;\r\n align-items: center;\r\n text-align: center;\r\n padding: 0;\r\n\r\n &.${ACTIVE}{\r\n color: ${props => props.theme.colors.textLight};\r\n }\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndAbove} {\r\n flex-direction: row;\r\n line-height: 2rem;\r\n font-size: 1.3rem;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n\r\n ::after{\r\n content: \"\";\r\n background: ${props => props.theme.colors.boxBorderContrast};\r\n height: 20px;\r\n width: 1px;\r\n margin-left: 4rem;\r\n margin-right: 1rem;\r\n }\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\nimport {FilterLinkDefaultBox} from \"./filter-link.default.box\";\r\nimport {ACTIVE} from \"../../../../themes/css-global-classes\";\r\n\r\nexport const FilterLinkCasino777Box = styled(FilterLinkDefaultBox)`\r\n &.${ACTIVE}{\r\n color: ${props => props.theme.colors.backgroundActive};\r\n }\r\n`","import styled from \"styled-components\";\r\nimport {FilterLinkDefaultBox} from \"./filter-link.default.box\";\r\n\r\nexport const FilterLinkSIBox = styled(FilterLinkDefaultBox)`\r\n @media ${({theme}) => theme.mediaQuery.lAndAbove} {\r\n ::after{\r\n background: ${props => props.theme.colors.textMiddleDark};\r\n }\r\n }\r\n`;\r\n","import {FilterLinkDefaultBox} from \"./filter-link.default.box\";\r\nimport {styledByTheme} from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {FilterLinkCasino777Box} from \"./filter-link.casino777.box\";\r\nimport {FilterLinkSIBox} from \"./filter-link.si.box\";\r\n\r\nexport const FilterLinkBox = styledByTheme(FilterLinkDefaultBox)\r\n .forCasino777(FilterLinkCasino777Box)\r\n .forSI(FilterLinkSIBox)\r\n .apply();\r\n","import React from 'react';\r\nimport {Link} from '../../raw-components/link/link';\r\nimport {FilterLinkIconBox} from \"./boxes/icon/filter-link-icon.box\";\r\nimport {ACTIVE} from \"../../../themes/css-global-classes\";\r\nimport classNames from \"classnames\";\r\nimport {observer} from \"mobx-react\";\r\nimport {FilterLinkBox} from \"./boxes/filter-link.box\";\r\nimport {OrbitComponent} from \"../../base-components/orbit-component/orbit-component\";\r\nimport {\r\n IArenaGameFilterEditorViewModel\r\n} from \"../../../services/games-filter/arena-filters/filters/arena-game-filter-editor-view-model.interface\";\r\n\r\nexport interface FilterLinkComponentProps {\r\n filter: IArenaGameFilterEditorViewModel,\r\n onChange: (filter: IArenaGameFilterEditorViewModel) => void;\r\n}\r\n\r\n@observer\r\nexport class FilterLinkComponent extends OrbitComponent {\r\n\r\n private _onFilterClick = () => {\r\n this.props.onChange(this.props.filter);\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n \r\n {this.props.filter.text}\r\n \r\n );\r\n }\r\n}\r\n","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../themes/architecture/styled-by-device\";\r\nimport {CssRule} from \"../../../themes/architecture/css-helpers/css-rule\";\r\n\r\nconst CommonStyles = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n margin: 0;\r\n`;\r\n\r\nconst PCBox = CommonStyles;\r\n\r\nconst MobileBox = styled(CommonStyles)`\r\n margin: 10px auto;\r\n display: grid;\r\n grid-template-columns: repeat(3, 130px);\r\n grid-gap: 10px;\r\n justify-content: center;\r\n \r\n ${CssRule.For.mobile.landscape.build()} & {\r\n grid-template-columns: repeat(5, 130px);\r\n }\r\n \r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n grid-template-columns: repeat(3, 100px);\r\n \r\n ${CssRule.For.mobile.landscape.build()} & {\r\n grid-template-columns: repeat(5, 100px);\r\n }\r\n }\r\n`;\r\n\r\n\r\nexport const FiltersGamesListDefaultBox = styledByDevice(PCBox, MobileBox);","import {FiltersGamesListDefaultBox} from \"./filters-games-list.default.box\";\r\n\r\nexport const FiltersGamesListBox = FiltersGamesListDefaultBox;","import React from 'react';\r\nimport {OrbitComponent} from '../../base-components/orbit-component/orbit-component';\r\nimport {FilterLinkComponent} from '../filter-link/filter-link.component';\r\nimport {FiltersGamesListBox} from \"./filters-games-list.box\";\r\nimport {\r\n IArenaGameFilterEditorViewModel\r\n} from \"../../../services/games-filter/arena-filters/filters/arena-game-filter-editor-view-model.interface\";\r\n\r\nexport interface FilterLinkListComponentProps {\r\n filters: IArenaGameFilterEditorViewModel[];\r\n onToggle: (filter: IArenaGameFilterEditorViewModel) => void\r\n}\r\nexport class FilterLinkListComponent extends OrbitComponent {\r\n\r\n private _toggleHandler = (filter: IArenaGameFilterEditorViewModel) => {\r\n this.props.onToggle(filter);\r\n };\r\n\r\n private _renderOneFilter(filter: IArenaGameFilterEditorViewModel) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this.props.filters.map(filter => this._renderOneFilter(filter))}\r\n \r\n );\r\n }\r\n}\r\n","import styled from \"styled-components\";\r\n\r\nexport const FiltersGamesMobilePopupBox = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n background: ${props => props.theme.colors.background};\r\n z-index: 1;\r\n`;","import {FiltersMobileButtonsDefaultBox} from \"./filters-mobile-buttons.default.box\";\r\n\r\nexport const FiltersMobileButtonsBox = FiltersMobileButtonsDefaultBox;","import styled from \"styled-components\";\r\n\r\nexport const FiltersMobileButtonsDefaultBox = styled.div`\r\n padding-bottom: 3rem;\r\n margin-top: auto;\r\n`;","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {FilterLinkListComponent} from '../filter-link-list/filter-link-list.component';\r\nimport {FiltersGamesMobilePopupBox} from \"./boxes/popup/filters-games-mobile-popup.box\";\r\nimport {FiltersMobileButtonsBox} from \"./boxes/popup/menu/filters-mobile-buttons.box\";\r\nimport {IModalDialogHandler} from \"../../../services/dialog/dialog.service.interface\";\r\nimport { ModalDialogActionsComponent } from '../../modal-dialog/modal-dialog-actions.component';\r\nimport {OrbitComponent} from \"../../base-components/orbit-component/orbit-component\";\r\nimport {\r\n IArenaGameFilterEditorViewModel\r\n} from \"../../../services/games-filter/arena-filters/filters/arena-game-filter-editor-view-model.interface\";\r\nimport {\r\n ISimpleStrategyFiltersEditorViewModel\r\n} from \"../../../services/games-filter/strategies/simple-games-filter/simple-strategy-filters-editor-view-model.interface\";\r\n\r\n\r\nexport interface FiltersGamesListMobileComponentProps {\r\n dialogHandler: IModalDialogHandler;\r\n filtersEditor: ISimpleStrategyFiltersEditorViewModel;\r\n}\r\n\r\n@observer\r\nexport class FiltersGamesListMobileComponent extends OrbitComponent {\r\n\r\n\r\n private _closePopup = () => {\r\n this.props.dialogHandler.close();\r\n };\r\n\r\n private _applyFilters = async () => {\r\n await this.props.filtersEditor.applyFilters();\r\n const checkedFiltersIds = this.props.filtersEditor.visibleFilters.filter(f => f.on).map(f => f.id);\r\n this.services.analytics.sendAnalytics(\"Navigation\", this.services.routing.currentRoute.data.arenaType, checkedFiltersIds.join(','));\r\n\r\n this._closePopup();\r\n };\r\n\r\n private _clearFilters = async () => {\r\n this.props.filtersEditor.visibleFilters.forEach(f => {\r\n f.on = false;\r\n });\r\n\r\n await this._applyFilters();\r\n\r\n };\r\n\r\n private _renderPopupButtons() {\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _onToggleFilter = (filter: IArenaGameFilterEditorViewModel) => {\r\n filter.toggleFilter();\r\n }\r\n\r\n render() {\r\n\r\n if (this.props.filtersEditor.visibleFilters.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n {this._renderPopupButtons()}\r\n \r\n )\r\n }\r\n}\r\n\r\n","import {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {ArenaGameFilterEditor} from \"../../arena-filters/filters/arena-game-filter-editor\";\r\nimport {ISimpleStrategyFiltersEditorViewModel} from \"./simple-strategy-filters-editor-view-model.interface\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {IArenaGameFiltersCategory} from \"../../arena-filters/categories/arena-game-filters-category.interface\";\r\n\r\nexport class SimpleStrategyFiltersEditor implements ISimpleStrategyFiltersEditorViewModel {\r\n constructor(private readonly filtersCategories: IArenaGameFiltersCategory[],\r\n private readonly services: IServiceFactoryExtended) {\r\n this._filters = this._createFiltersEditor();\r\n }\r\n\r\n private readonly _filters: ArenaGameFilterEditor[];\r\n\r\n get visibleFilters(): ArenaGameFilterEditor[] {\r\n return this._filters.filter(f => f.shouldBeDisplayed);\r\n }\r\n\r\n private _createFiltersEditor(): ArenaGameFilterEditor[] {\r\n const result: ArenaGameFilterEditor[] = [];\r\n\r\n this.filtersCategories.forEach(c => {\r\n c.availableFilters.forEach(f => {\r\n result.push(new ArenaGameFilterEditor(f));\r\n });\r\n });\r\n\r\n return this._sortFilters(result);\r\n }\r\n\r\n private _sortFilters(filters: ArenaGameFilterEditor[]): ArenaGameFilterEditor[] {\r\n\r\n //sorting the filters by the order in which they were defined in config.json\r\n const filtersConfigurations = this.services.arenas.getCurrentArena().filtersConfigurationMap;\r\n\r\n if(Check.isEmpty(filtersConfigurations)) {\r\n return filters;\r\n }\r\n\r\n return filters.sort((f1, f2) => filtersConfigurations[f1.id]?.index - filtersConfigurations[f2.id]?.index);\r\n }\r\n\r\n async applyFilters(): Promise {\r\n await this.services.gamesFilter.applyFilters(this._filters.filter(f => f.on).map(f => f.id));\r\n }\r\n\r\n}","import {GameInfo} from '../../../games/game-info';\r\nimport {IArenaGameFiltersCategory} from \"../../arena-filters/categories/arena-game-filters-category.interface\";\r\nimport {computed} from \"mobx\";\r\nimport {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {GameFilterDefinitionBase} from \"../game-filter-definition-base\";\r\nimport {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\n\r\n/**\r\n * This class is used to apply a filter that does something like this:\r\n * Show all games that doesn't fall in any of the other available games filters categories for the current arena\r\n */\r\n\r\nexport class OtherFilterDefinition extends GameFilterDefinitionBase {\r\n constructor(services: IServiceFactoryExtended, private readonly allOthersCategories: IArenaGameFiltersCategory[]) {\r\n super(services);\r\n }\r\n\r\n get id(): string {\r\n return 'other';\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('OTHER');\r\n }\r\n\r\n\r\n @computed\r\n get currentArenaCategories(): IArenaGameFiltersCategory[] {\r\n return this.allOthersCategories.filter(c => c.availableFilters.length > 0);\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n const categoriesInCurrentArena = this.currentArenaCategories;\r\n for(let category of categoriesInCurrentArena) {\r\n if(category.isGameIncludedInThisCategory(gameInfo)) {\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n }\r\n\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n\r\n}\r\n","import {IArenaGameFiltersCategory} from \"../arena-filters/categories/arena-game-filters-category.interface\";\r\nimport {CategoryDefinitionId, IFilterCategoryDefinition} from \"./filter-category-definition.interface\";\r\nimport {IGameFilterDefinition} from \"../filters-definitions/game-filter-definition.interface\";\r\nimport {OtherFilterDefinition} from \"../filters-definitions/other/other.filter-definition\";\r\nimport {IServiceFactoryExtended} from \"../../service-factory-extended.interface\";\r\nimport {GameInfo} from \"../../games/game-info\";\r\nimport {ApplyGameFilterResult} from \"../evaluators/game-filter-evaluator.interface\";\r\n\r\nexport class OtherFiltersCategoryDefinition implements IFilterCategoryDefinition {\r\n\r\n constructor(otherAvailableCategories: IArenaGameFiltersCategory[],\r\n private readonly services: IServiceFactoryExtended) {\r\n this.availableFilters = [\r\n new OtherFilterDefinition(services, otherAvailableCategories)\r\n ];\r\n }\r\n\r\n readonly id: CategoryDefinitionId = null;\r\n\r\n applyFilters(gameInfo: GameInfo, filters: IGameFilterDefinition[]): ApplyGameFilterResult {\r\n return this.availableFilters[0].applyFilter(gameInfo);\r\n }\r\n\r\n get title(): string {\r\n return this.services.translation.translate('OTHER');\r\n }\r\n\r\n readonly availableFilters: IGameFilterDefinition[];\r\n\r\n get isMultiSelect(): boolean {\r\n return false;\r\n }\r\n\r\n get subCategories(): IFilterCategoryDefinition[] {\r\n return [];\r\n }\r\n\r\n hasFilter(filter: IGameFilterDefinition): boolean {\r\n return this.availableFilters.some(f => f.id === filter.id);\r\n }\r\n}","import {ArenaGameFilterBase} from \"./arena-game-filter-base\";\r\n\r\nexport class StaticArenaGameFilter extends ArenaGameFilterBase{\r\n\r\n}\r\n","import {Check} from \"@sparkware/app-utils\";\r\nimport {StaticArenaGameFilter} from \"../filters/static-arena-game-filter\";\r\nimport {ArenaGameFiltersCategoryBase} from \"./arena-game-filters-category-base\";\r\nimport {computed} from \"mobx\";\r\nimport {IArenaGameFilter} from \"../filters/arena-game-filter.interface\";\r\nimport {NullableNumber} from \"../../../../../common/types/nullable-types\";\r\nimport {IFilterCategoryDefinition} from \"../../filters-categories-definitions/filter-category-definition.interface\";\r\nimport {IArenaGameFiltersCategory} from \"./arena-game-filters-category.interface\";\r\n\r\nexport class StaticArenaGameFiltersCategory extends ArenaGameFiltersCategoryBase {\r\n\r\n /**\r\n * Restrict available filters to only those that are defined in config.json for current arena\r\n */\r\n @computed\r\n get availableFilters(): IArenaGameFilter[] {\r\n return this._createFiltersForCurrentArena();\r\n }\r\n private _createFiltersForCurrentArena(): IArenaGameFilter[] {\r\n\r\n const currentArenaFiltersConfigurations = this.services.arenas.getCurrentArena().filtersConfigurationMap;\r\n if(Check.isEmpty(currentArenaFiltersConfigurations)) {\r\n return [];\r\n }\r\n\r\n return this.categoryDefinition.availableFilters\r\n .filter(f => currentArenaFiltersConfigurations[f.id])\r\n .map(f => new StaticArenaGameFilter(f, this.services));\r\n }\r\n\r\n get gamesCount(): NullableNumber {\r\n return null;\r\n }\r\n\r\n protected _createSubcategory(subcategory: IFilterCategoryDefinition): IArenaGameFiltersCategory {\r\n return new StaticArenaGameFiltersCategory(subcategory, this.services);\r\n }\r\n}","import {FiltersGameListPcDefaultBox} from \"./filters-game-list-pc.default.box\";\r\n\r\nexport const FiltersGameListPcBox = FiltersGameListPcDefaultBox;","import styled from \"styled-components\";\r\n\r\nexport const FiltersGameListPcDefaultBox = styled.div`\r\n width:100%;\r\n padding-left: 4rem;\r\n padding-right: 4rem;\r\n padding-top: 1rem;\r\n`;","import React from 'react';\r\nimport {OrbitComponent} from '../../base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\nimport {FilterLinkListComponent} from '../filter-link-list/filter-link-list.component';\r\nimport {FiltersGameListPcBox} from \"./boxes/filters-game-list-pc.box\";\r\nimport {\r\n IArenaGameFilterEditorViewModel\r\n} from \"../../../services/games-filter/arena-filters/filters/arena-game-filter-editor-view-model.interface\";\r\nimport {\r\n ISimpleStrategyFiltersEditorViewModel\r\n} from \"../../../services/games-filter/strategies/simple-games-filter/simple-strategy-filters-editor-view-model.interface\";\r\n\r\n\r\ninterface FiltersGamesListPcComponentProps {\r\n filtersEditor: ISimpleStrategyFiltersEditorViewModel;\r\n}\r\n@observer\r\nexport class FiltersGamesListPcComponent extends OrbitComponent {\r\n\r\n\r\n private _toggleFilter = async (filter: IArenaGameFilterEditorViewModel) => {\r\n filter.toggleFilter();\r\n await this.props.filtersEditor.applyFilters();\r\n this.services.analytics.sendAnalytics(\"Navigation\", this.services.routing.currentRoute.data.arenaType, filter.id);\r\n };\r\n\r\n render() {\r\n\r\n if(this.props.filtersEditor.visibleFilters.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import {IArenaGameFilter} from \"./arena-game-filter.interface\";\r\nimport {IGameFilterDefinition} from \"../../filters-definitions/game-filter-definition.interface\";\r\nimport {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {NullableNumber} from \"../../../../../common/types/nullable-types\";\r\nimport {\r\n IArenaGameFiltersCategoryEditorViewModel\r\n} from \"../categories/arena-game-filters-category-editor-view-model.interface\";\r\nimport {ArenaGameFilterEditor} from \"./arena-game-filter-editor\";\r\n\r\nexport class AdhocArenaGameFilter implements IArenaGameFilter {\r\n constructor(public readonly filterDefinition: IGameFilterDefinition,\r\n private readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n readonly isAdhocFilter = true;\r\n\r\n get id(): string {\r\n return this.filterDefinition.id;\r\n }\r\n\r\n get text(): string {\r\n return this.filterDefinition.text;\r\n }\r\n\r\n get isApplied(): boolean {\r\n return this.services.gamesFilter.isFilterApplied(this.id);\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n return this.filterDefinition.applyFilter(gameInfo);\r\n }\r\n \r\n readonly gamesCount: NullableNumber = null;\r\n\r\n createEditor(categoryEditor: IArenaGameFiltersCategoryEditorViewModel): ArenaGameFilterEditor {\r\n return new ArenaGameFilterEditor(this);\r\n }\r\n}","import {IGameFilterDefinition} from '../game-filter-definition.interface';\r\nimport {GameInfo} from '../../../games/game-info';\r\nimport {removeSpaces} from \"../../../../../utils/string-helpers\";\r\nimport {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\n\r\nexport class CompanyFilterDefinitions implements IGameFilterDefinition {\r\n constructor(public readonly id: string,\r\n private readonly _companyName: string) {\r\n\r\n }\r\n\r\n get text(): string {\r\n return this._companyName;\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if(removeSpaces(gameInfo.companyName.toLowerCase()) === removeSpaces(this._companyName.toLowerCase())) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n\r\n}\r\n","import {IArenaGameFiltersCategory} from \"./arena-game-filters-category.interface\";\r\nimport {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {Nullable, NullableNumber} from \"../../../../../common/types/nullable-types\";\r\nimport {AdhocArenaGameFilter} from \"../filters/adhoc-arena-game-filter\";\r\nimport {VendorFilterDefinition} from \"../../filters-definitions/vendor/vendor.filter-definition\";\r\nimport {CompanyFilterDefinitions} from \"../../filters-definitions/company/company.filter-definitions\";\r\nimport {computed} from \"mobx\";\r\nimport {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {AND} from \"../../evaluators/and-game-filters-evaluator\";\r\nimport {CategoryDefinitionId} from \"../../filters-categories-definitions/filter-category-definition.interface\";\r\n\r\nexport class AdhocArenaGamesFiltersCategory implements IArenaGameFiltersCategory {\r\n constructor(private readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n readonly isApplicableForCurrentArena: boolean = true;\r\n readonly id: CategoryDefinitionId = 'adHoc';\r\n readonly title: string = 'Ad hoc filters';\r\n readonly gamesCount: NullableNumber = null;\r\n\r\n readonly subCategories: IArenaGameFiltersCategory[] = [];\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n\r\n if(this.availableFilters.length === 0) {\r\n return ApplyGameFilterResult.NotApplicable;\r\n }\r\n\r\n return AND(...this.availableFilters).applyFilter(gameInfo);\r\n }\r\n\r\n\r\n isGameIncludedInThisCategory(gameInfo: GameInfo): boolean {\r\n return this.applyFilter(gameInfo) === ApplyGameFilterResult.IncludeGame;\r\n }\r\n\r\n @computed\r\n get availableFilters(): AdhocArenaGameFilter[] {\r\n return this._createDynamicFilters()\r\n }\r\n\r\n private _createDynamicFilters(): AdhocArenaGameFilter[] {\r\n const result: AdhocArenaGameFilter[] = [];\r\n\r\n\r\n\r\n const currentArenaFiltersConfigurations = this.services.arenas.getCurrentArena().filtersConfigurationMap;\r\n\r\n for(let appliedFilterId of this.services.gamesFilter.currentAppliedFiltersIds) {\r\n if(!currentArenaFiltersConfigurations[appliedFilterId]) {\r\n const dynamicFilterDefinition = this._createDynamicFilterById(appliedFilterId);\r\n if(dynamicFilterDefinition) {\r\n result.push(new AdhocArenaGameFilter(dynamicFilterDefinition, this.services));\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private _createDynamicFilterById(filterId: string): Nullable {\r\n const parts = filterId.split('_');\r\n if(parts.length < 2) {\r\n return null;\r\n }\r\n\r\n switch (parts[0]) {\r\n case 'vendor':\r\n return new AdhocArenaGameFilter(new VendorFilterDefinition(filterId, parts[1]), this.services);\r\n case 'company':\r\n return new AdhocArenaGameFilter(new CompanyFilterDefinitions(filterId, parts[1]), this.services);\r\n default:\r\n return null;\r\n\r\n }\r\n }\r\n\r\n get isMultiSelect(): boolean {\r\n return false;\r\n }\r\n}","import React from 'react';\r\nimport {\r\n FiltersGamesListMobileComponent\r\n} from \"../../../../components/filters/filters-games-list-mobile/filters-games-list-mobile.component\";\r\nimport {SimpleStrategyFiltersEditor} from \"./simple-strategy-filters-editor\";\r\nimport {GamesFilterStrategyBase} from \"../games-filter-strategy-base\";\r\nimport {OtherFiltersCategoryDefinition} from \"../../filters-categories-definitions/other.filters-category-definition\";\r\nimport {StaticArenaGameFiltersCategory} from \"../../arena-filters/categories/static-arena-game-filters-category\";\r\nimport {IArenaGameFiltersCategory} from \"../../arena-filters/categories/arena-game-filters-category.interface\";\r\nimport {Lazy} from \"../../../../../utils/Lazy\";\r\nimport {IGameFilterEvaluator} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {OR} from \"../../evaluators/or-game-filters-evaluator\";\r\nimport {AND} from \"../../evaluators/and-game-filters-evaluator\";\r\nimport {\r\n FiltersMobileButtonComponent\r\n} from \"../../../../components/header/top-header-left/filters/filters-mobile-button.component\";\r\nimport {\r\n IPcFilterIndicatorRenderingOptions,\r\n PcFilterIndicatorRenderingLocation\r\n} from \"../../games-filter.service.interface\";\r\nimport {\r\n FiltersGamesListPcComponent\r\n} from \"../../../../components/filters/filters-games-list-pc/filters-games-list-pc.component\";\r\nimport {Nullable} from \"../../../../../common/types/nullable-types\";\r\nimport {FilterCategoryDefinitionFactory} from '../../filters-categories-definitions/filter-category-definition-factory';\r\nimport {AdhocArenaGamesFiltersCategory} from \"../../arena-filters/categories/adhoc-arena-games-filters-category\";\r\n\r\nexport class SimpleGamesFilterStrategy extends GamesFilterStrategyBase {\r\n\r\n private _factory = new FilterCategoryDefinitionFactory(this.services);\r\n\r\n private _vendorCategory = new Lazy(() => new StaticArenaGameFiltersCategory(this._factory.createCategoryDefinition(\"vendors\"), this.services));\r\n private _groupCategory = new Lazy(() => new StaticArenaGameFiltersCategory(this._factory.createCategoryDefinition(\"gameGroups\"), this.services));\r\n private _featuresCategory = new Lazy(() => new StaticArenaGameFiltersCategory(this._factory.createCategoryDefinition(\"features\"), this.services));\r\n private _othersCategory = new Lazy(() => new StaticArenaGameFiltersCategory(new OtherFiltersCategoryDefinition([this._vendorCategory.value, this._groupCategory.value, this._featuresCategory.value], this.services), this.services));\r\n private _adhocCategory = new Lazy(() => new AdhocArenaGamesFiltersCategory(this.services));\r\n\r\n protected _createFiltersCategories(): IArenaGameFiltersCategory[] {\r\n return [\r\n this._vendorCategory.value,\r\n this._groupCategory.value,\r\n this._featuresCategory.value,\r\n this._othersCategory.value,\r\n this._adhocCategory.value\r\n ];\r\n }\r\n\r\n protected _createEvaluator(): IGameFilterEvaluator | null {\r\n return OR(AND(this._vendorCategory.value,\r\n this._groupCategory.value,\r\n this._featuresCategory.value,\r\n this._adhocCategory.value),\r\n this._othersCategory.value);\r\n }\r\n\r\n private _createFiltersEditor(): SimpleStrategyFiltersEditor {\r\n return new SimpleStrategyFiltersEditor(this.filtersCategories, this.services);\r\n }\r\n\r\n showFiltersEditor(): void {\r\n this.services.dialog.showModal((dialogHandler) => , {\r\n title: this.services.translation.translate('FILTER'),\r\n mobileCenterHeader: true,\r\n applyMaxHeight: true\r\n });\r\n }\r\n\r\n renderMobileFiltersIndicator(): React.ReactElement {\r\n if(this.services.mediaQuery.lAndBelow) {\r\n return ();\r\n } else {\r\n return null;\r\n }\r\n\r\n }\r\n\r\n renderPCFiltersIndicator(): Nullable {\r\n if(this.services.mediaQuery.lAndBelow) {\r\n return null;\r\n } else {\r\n return {\r\n location: PcFilterIndicatorRenderingLocation.BelowArenaTitle,\r\n reactElement: ()\r\n };\r\n }\r\n }\r\n\r\n\r\n}","import React from \"react\";\r\nimport {ArenaBaseModel} from \"../arena-base.model\";\r\nimport {\r\n ArenaConfiguration, ArenaGamesGridConfiguration,\r\n SwiperGamesListConfiguration\r\n} from \"../../../../configurations/config-data-sections/arenas.configuration\";\r\nimport {CasinoArenaComponent} from \"../../../../../components/arena-host/casino-arena/casino-arena.component\";\r\nimport {GameInfo} from \"../../../../games/game-info\";\r\nimport {\r\n CASINO_GAMES_ARENA_NAME,\r\n EXCLUSIVE_ARENA_NAME,\r\n JACKPOTS_ARENA_NAME,\r\n SLOTS_ARENA_NAME\r\n} from \"../../../arena-consts\";\r\nimport {computed} from \"mobx\";\r\nimport {ArenaFiltersConfigurationMap} from \"../arena-view-model.interface\";\r\nimport {filtersConfigurationToMap} from \"../../filters-configuration-to-map\";\r\nimport {IGamesFilterStrategy} from \"../../../../games-filter/strategies/games-filter-strategy.interface\";\r\nimport {\r\n AdvancedGamesFilterStrategy\r\n} from \"../../../../games-filter/strategies/advanced-filter/advanced-games-filter.strategy\";\r\nimport {\r\n SimpleGamesFilterStrategy\r\n} from \"../../../../games-filter/strategies/simple-games-filter/simple-games-filter.strategy\";\r\n\r\nexport class CasinoLobbyArenaModel extends ArenaBaseModel {\r\n\r\n get maxSwipersToShow(): number {\r\n return 20;\r\n }\r\n\r\n get maxGamesToShowInList(): number {\r\n return 30;\r\n }\r\n\r\n private get config(): ArenaConfiguration {\r\n return this.services.configuration.data.arenas[this.arenaName]\r\n }\r\n\r\n protected _getSwipersConfigurations(): SwiperGamesListConfiguration[] {\r\n return this.config.swiperGamesList || [];\r\n }\r\n\r\n protected _getGridsConfigurations(): ArenaGamesGridConfiguration[] {\r\n return this.config.allGamesGrid || [];\r\n }\r\n\r\n renderArena(): React.ReactElement | null {\r\n return ;\r\n }\r\n\r\n protected _getPromotionalBannerConfig() {\r\n const bannerConfig = this.config.promotionalBanner;\r\n if(!bannerConfig) {\r\n return null;\r\n }\r\n\r\n if(this.services.device.hybrid.isEmbedded) {\r\n return null;\r\n }\r\n\r\n return {\r\n position: 2,\r\n templateID: bannerConfig.templateID,\r\n componentID: bannerConfig.componentID,\r\n fallbackComponent: bannerConfig.fallbackComponent,\r\n bannerAdminPlaceholderId: bannerConfig.bannerAdminPlaceholderId\r\n }\r\n }\r\n\r\n filterGamesByArenaType(gamesInfo: GameInfo[]): GameInfo[] {\r\n switch (this.arenaName) {\r\n case SLOTS_ARENA_NAME:\r\n case JACKPOTS_ARENA_NAME:\r\n return gamesInfo.filter(g => g.isVideoSlot);\r\n case EXCLUSIVE_ARENA_NAME:\r\n return gamesInfo.filter(g => g.isVideoSlot || g.isCasinoGame);\r\n case CASINO_GAMES_ARENA_NAME:\r\n return gamesInfo.filter(g => g.isCasinoGame);\r\n\r\n default:\r\n return gamesInfo.filter(g => !g.isLiveCasino);\r\n }\r\n }\r\n\r\n @computed\r\n get filtersConfigurationMap(): ArenaFiltersConfigurationMap {\r\n return filtersConfigurationToMap(this.config.filters);\r\n }\r\n\r\n getGamesFilteringStrategy(): IGamesFilterStrategy {\r\n if (this.useAdvancedFilters) {\r\n return new AdvancedGamesFilterStrategy(this.services);\r\n }\r\n return new SimpleGamesFilterStrategy(this.services);\r\n }\r\n}\r\n","import React from \"react\";\r\nimport {ArenaFiltersConfigurationMap, IArenaViewModel} from \"../arena-view-model.interface\";\r\nimport {GameInfo} from \"../../../../games/game-info\";\r\nimport {IGamesFilterStrategy} from \"../../../../games-filter/strategies/games-filter-strategy.interface\";\r\nimport {NoGamesFilterStrategy} from \"../../../../games-filter/strategies/no-filter/no-games-filter.strategy\";\r\nimport {IServiceFactoryExtended} from \"../../../../service-factory-extended.interface\";\r\n\r\nexport class VoidArenaModel implements IArenaViewModel {\r\n constructor(private readonly services: IServiceFactoryExtended) {\r\n }\r\n get arenaName(): string {\r\n return 'voidArena';\r\n }\r\n\r\n get listsCount(): number {\r\n return 0;\r\n }\r\n\r\n renderArena(): React.ReactElement | null {\r\n return null;\r\n }\r\n\r\n renderList(listPosition: number): React.ReactElement | null {\r\n return null;\r\n }\r\n\r\n getNextBatchSize(currentListPosition: number): number {\r\n return 0;\r\n }\r\n\r\n filterGamesByArenaType(gamesInfo: GameInfo[]): GameInfo[] {\r\n return [];\r\n }\r\n\r\n readonly allArenaGamesForFiltering: GameInfo[] = [];\r\n\r\n readonly filtersConfigurationMap: ArenaFiltersConfigurationMap = {};\r\n getGamesFilteringStrategy(): IGamesFilterStrategy {\r\n return new NoGamesFilterStrategy(this.services);\r\n }\r\n}","import {IServiceFactoryExtended} from \"../../service-factory-extended.interface\";\r\nimport {IGamesListModel} from \"./lists/games-list-model.interface\";\r\n\r\nconst POST_LOGIN_LISTS_ORDER_KEY = \"cgp-post-login-lists-order\";\r\n\r\ninterface IPostLoginListsOrder {\r\n lists: Record;\r\n}\r\n\r\nexport class ListsSortOrderStorage {\r\n constructor(private readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n private _createEmptyListsOrder(): IPostLoginListsOrder {\r\n return {\r\n lists: {}\r\n };\r\n }\r\n\r\n private _listsSavedOrder: IPostLoginListsOrder = null;\r\n private _getSavedListsOrder(): IPostLoginListsOrder {\r\n if(!this._listsSavedOrder) {\r\n this._listsSavedOrder = this.services.localStorage.getJson(POST_LOGIN_LISTS_ORDER_KEY) || this._createEmptyListsOrder();\r\n }\r\n return this._listsSavedOrder;\r\n }\r\n\r\n saveSortOrder(arenaName: string, lists: IGamesListModel[]): void {\r\n const listsOrder = this._getSavedListsOrder();\r\n listsOrder.lists[arenaName] = lists.map(list => list.title.translationKey);\r\n this.services.localStorage.setJson(POST_LOGIN_LISTS_ORDER_KEY, listsOrder);\r\n }\r\n\r\n sortLists(arenaName: string, lists: IGamesListModel[]): IGamesListModel[] {\r\n const arenaListsOrder = this._getSavedListsOrder().lists[arenaName] || [];\r\n if(arenaListsOrder.length === 0) {\r\n return lists;\r\n }\r\n\r\n const listsOrderMap = arenaListsOrder.reduce>((map, listTitle, index) => {\r\n map[listTitle] = index;\r\n return map;\r\n }, {});\r\n\r\n\r\n return lists.sort((l1, l2) => (listsOrderMap[l1.title.translationKey] || 0) - (listsOrderMap[l2.title.translationKey] || 0));\r\n\r\n }\r\n}","import styled from \"styled-components\";\r\n\r\nexport const LiveCasinoFilterButtonIconDefaultBox = styled.div<{isActiveTab?: boolean}>`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n height: 5em;\r\n width: 100%;\r\n color: ${({theme, isActiveTab}) => isActiveTab ? theme.colors.brandPrimary : theme.colors.textLight};\r\n transform: scale(${({isActiveTab}) => isActiveTab ? 1 : 0.8});\r\n transition: transform 0.25s ease;\r\n\r\n :hover {\r\n transform: scale(1);\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {LiveCasinoFilterButtonIconDefaultBox} from \"./live-casino-filter-button-icon.default.box\";\r\n\r\nexport const LiveCasinoFilterIconSIBox = styled(LiveCasinoFilterButtonIconDefaultBox)`\r\n color: ${({theme}) => theme.colors.textLight};\r\n`;","import {styledByTheme} from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport {LiveCasinoFilterButtonIconDefaultBox} from \"./live-casino-filter-button-icon.default.box\";\r\nimport {LiveCasinoFilterIconSIBox} from \"./live-casino-filter-button-icon.si.box\";\r\n\r\nexport const LiveCasinoFilterButtonIconBox = styledByTheme(LiveCasinoFilterButtonIconDefaultBox)\r\n .forSI(LiveCasinoFilterIconSIBox)\r\n .apply();","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../../themes/architecture/styled-by-device\";\r\nimport {ACTIVE} from \"../../../../../../themes/css-global-classes\";\r\n\r\nconst DefaultBox = styled.div`\r\n margin-top: 1em;\r\n color: ${props => props.theme.components.newLiveCasino.colors.filterButtonLabel};\r\n font-size: 1.2em;\r\n text-align: center;\r\n text-transform: uppercase;\r\n letter-spacing: 1px;\r\n transition: color 0.25s ease;\r\n\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n \r\n &.${ACTIVE} {\r\n color: ${props => props.theme.colors.textLight};\r\n }\r\n`;\r\n\r\nconst PCBox = DefaultBox;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n line-height: 1;\r\n`;\r\n\r\nexport const LiveCasinoFilterButtonLabelDefaultBox = styledByDevice(PCBox,MobileBox);","import styled from \"styled-components\";\r\nimport {LiveCasinoFilterButtonLabelDefaultBox} from \"./live-casino-filter-button-label.default.box\";\r\nimport {ACTIVE} from \"../../../../../../themes/css-global-classes\";\r\n\r\nexport const LiveCasinoFilterButtonLabelCasino777Box = styled(LiveCasinoFilterButtonLabelDefaultBox)`\r\n font-size: 1.6em;\r\n &.${ACTIVE} {\r\n color: ${({theme}) => theme.components.newLiveCasino.colors.filterButtonLabel};\r\n ${({theme}) => theme.font.presets.bold};\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\nimport {LiveCasinoFilterButtonLabelDefaultBox} from \"./live-casino-filter-button-label.default.box\";\r\nimport {ACTIVE} from \"../../../../../../themes/css-global-classes\";\r\nimport {baseColors} from \"../../../../../../themes/definitions/si/base-colors\";\r\n\r\nexport const LiveCasinoFilterButtonLabelSIBox = styled(LiveCasinoFilterButtonLabelDefaultBox)`\r\n &.${ACTIVE} {\r\n color: ${baseColors.base04};\r\n }\r\n`;\r\n","import {styledByTheme} from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport {LiveCasinoFilterButtonLabelDefaultBox} from \"./live-casino-filter-button-label.default.box\";\r\nimport {LiveCasinoFilterButtonLabelCasino777Box} from \"./live-casino-filter-button-label.casino777.box\";\r\nimport {LiveCasinoFilterButtonLabelSIBox} from \"./live-casino-filter-button-label.si.box\";\r\n\r\nexport const LiveCasinoFilterButtonLabelBox = styledByTheme(LiveCasinoFilterButtonLabelDefaultBox)\r\n .forCasino777(LiveCasinoFilterButtonLabelCasino777Box)\r\n .forSI(LiveCasinoFilterButtonLabelSIBox)\r\n .apply();\r\n","import styled from \"styled-components\";\r\nimport {Link} from \"../../../../../raw-components/link/link\";\r\nimport { CssRule } from \"../../../../../../themes/architecture/css-helpers/css-rule\";\r\n\r\nexport const LiveCasinoArenaNavbarButtonDefaultBox = styled(Link)`\r\n display: flex;\r\n margin: 0 0.25em;\r\n padding: 1em 1em 0 1em;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n min-width: 88px;\r\n\r\n &:hover {\r\n cursor: pointer;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n margin: 0;\r\n padding: 1em;\r\n border-right: 1px solid ${props => props.theme.colors.boxBorderDark};\r\n background-color: ${props => props.theme.components.newLiveCasino.colors.filterButtonBackground};\r\n\r\n &:last-child {\r\n border: none;\r\n }\r\n\r\n ${CssRule.For.mobile.landscape.build()} &, ${CssRule.For.ipad.build()} & {\r\n flex: 1;\r\n }\r\n\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\nimport { hexToRgba } from \"../../../../../../themes/hex-to-rgba\";\r\nimport { LiveCasinoArenaNavbarButtonDefaultBox } from \"./live-casino-arena-navbar-button.default.box\";\r\n\r\nexport const LiveCasinoArenaNavbarButtonCasino777Box = styled(LiveCasinoArenaNavbarButtonDefaultBox)`\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n &:first-child {\r\n border-left: none;\r\n border-right: 1px solid ${({theme}) => hexToRgba(theme.colors.brandSecondary, 0.6)};\r\n }\r\n &:last-child {\r\n border-left: 1px solid ${props => hexToRgba(props.theme.colors.brandSecondaryDark, 0.6)};\r\n border-right: none;\r\n }\r\n\r\n border-left: 1px solid ${props => hexToRgba(props.theme.colors.brandSecondaryDark, 0.6)};\r\n border-right: 1px solid ${({theme}) => hexToRgba(theme.colors.brandSecondary, 0.6)};\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\nimport {ACTIVE} from \"../../../../../../themes/css-global-classes\";\r\nimport {LiveCasinoArenaNavbarButtonDefaultBox} from \"./live-casino-arena-navbar-button.default.box\";\r\n\r\nexport const LiveCasinoArenaNavbarButtonSIBox = styled(LiveCasinoArenaNavbarButtonDefaultBox)`\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n &.${ACTIVE} {\r\n background-color: ${({theme}) => theme.colors.iconBackgroundActive};\r\n }\r\n }\r\n`;\r\n","import {styledByTheme} from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport {LiveCasinoArenaNavbarButtonDefaultBox} from \"./live-casino-arena-navbar-button.default.box\";\r\nimport {LiveCasinoArenaNavbarButtonCasino777Box} from \"./live-casino-arena-navbar-button.casino777.box\";\r\nimport {LiveCasinoArenaNavbarButtonSIBox} from \"./live-casino-arena-navbar-button.si.box\";\r\n\r\nexport const LiveCasinoArenaNavbarButtonBox = styledByTheme(LiveCasinoArenaNavbarButtonDefaultBox)\r\n .forCasino777(LiveCasinoArenaNavbarButtonCasino777Box)\r\n .forSI(LiveCasinoArenaNavbarButtonSIBox)\r\n .apply();\r\n","import React, {RefObject} from \"react\";\r\nimport classNames from \"classnames\";\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {observer} from \"mobx-react\";\r\nimport {LiveCasinoFilterButtonIconBox} from \"./boxes/live-casino-filter-button-icon/live-casino-filter-button-icon.box\";\r\nimport {LiveCasinoFilterButtonLabelBox} from \"./boxes/live-casino-filter-button-label/live-casino-filter-button-label.box\";\r\nimport {ACTIVE} from \"../../../../themes/css-global-classes\";\r\nimport {LiveCasinoArenaNavbarButtonBox} from \"./boxes/live-casino-arena-navbar-button/live-casino-arena-navbar-button.box\";\r\nimport {Link} from \"../../../raw-components/link/link\";\r\n\r\nexport interface LiveCasinoArenaNavbarButtonProps {\r\n label: string;\r\n filter: string;\r\n isActiveTab: boolean;\r\n seoPage: string;\r\n buttonLabelRef: RefObject;\r\n onClick: () => void;\r\n};\r\n\r\n@observer\r\nexport class LiveCasinoArenaNavbarButton extends OrbitComponent {\r\n private buttonIconMap = new Map([\r\n [\"roulette\", this.services.theme.currentTheme.icons.rouletteIcon],\r\n [\"poker-games\", this.services.theme.currentTheme.icons.pokerIcon],\r\n [\"blackjack\", this.services.theme.currentTheme.icons.blackjackIcon],\r\n [\"baccarat\", this.services.theme.currentTheme.icons.baccaratIcon],\r\n [\"elite-lounge\", this.services.theme.currentTheme.icons.eliteLoungeIcon],\r\n [\"game-shows\", this.services.theme.currentTheme.icons.gameShowsIcon],\r\n [\"new-games\", this.services.theme.currentTheme.icons.newGamesIcon],\r\n [\"top-evo-games\", this.services.theme.currentTheme.icons.topGamesIcon],\r\n [\"exclusive\", this.services.theme.currentTheme.icons.tripleEightExclusiveIcon]\r\n ]);\r\n private _getButtonIcon() {\r\n const iconKey = this.props.label.toLowerCase().trim().replace(/(_|\\s)/g, \"-\");\r\n return this.buttonIconMap.has(iconKey) ? this.buttonIconMap.get(iconKey)! : this.services.theme.currentTheme.icons.topGamesIcon;\r\n }\r\n\r\n onFilterClicked(isActive: boolean) {\r\n if (!isActive) {\r\n this.services.analytics.sendAnalytics('Navigation', 'Live Tab', this.props.label);\r\n this.props && this.props.onClick();\r\n }\r\n }\r\n\r\n render() {\r\n let IconComponent = this._getButtonIcon();\r\n return this.onFilterClicked(this.props.isActiveTab)}\r\n >\r\n \r\n \r\n \r\n \r\n {this.services.translation.translate(this.props.label)}\r\n \r\n ;\r\n }\r\n}\r\n","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {NewLiveCasinoConfiguration} from '../../../services/configurations/config-data-sections/arenas.configuration';\r\nimport {TopImageComponent} from '../../top-image/top-image.component';\r\nimport {SeoBreadCrumbsComponent} from '../seo-bread-crumbs/seo-bread-crumbs.component';\r\nimport {LiveCasinoArenaNavbar} from \"./live-casino-arena-navbar/live-casino-arena-navbar.component\";\r\nimport {LiveCasinoArenaGrid} from \"./live-casino-arena-grid/live-casino-arena-grid.component\";\r\nimport {OrbitComponentWithState} from '../../base-components/orbit-component-with-state/orbit-component-with-state';\r\nimport {IStickyHandler} from \"../../sticky-handler/sticky-handler.interface\";\r\nimport {LiveCasinoArenaNavbarButton} from \"./live-casino-arena-navbar/live-casino-arena-navbar-button.component\";\r\nimport { LIVE_CASINO_PAGE_WRAPPER } from '../../../themes/css-global-classes';\r\nimport {LinkToOfferComponent} from \"../../link-to-offer/link-to-offer.component\";\r\nimport {DailyDealComponent} from \"../../daily-deal/daily-deal.component\";\r\nimport {FreeToPlayAnimatedIconComponent} from '../../free-to-play-animated-icon/free-to-play-animated-icon.component';\r\n\r\nexport interface NewLiveCasinoArenaComponentProps {\r\n configs: NewLiveCasinoConfiguration;\r\n arenaName: string;\r\n}\r\n\r\nexport interface INewLiveCasinoArenaComponentState {\r\n}\r\n\r\nconst SEO_CATEGORY = 'LIVE_CASINO_NEW';\r\n\r\n@observer\r\nexport class NewLiveCasinoArenaComponent extends OrbitComponentWithState {\r\n\r\n private _stickyHandler: IStickyHandler;\r\n private _topImageRef = React.createRef();\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n this.reaction(() => this.services.user.isAuthorized,\r\n () => this.services.liveTableFeeds.updateAiRecommendedLiveGames(),\r\n { fireImmediately: true }\r\n );\r\n }\r\n\r\n private get stickyHandler(): IStickyHandler {\r\n if(!this._stickyHandler && this._topImageRef?.current) {\r\n this._stickyHandler = this.services.stickyHandlerFactory.createStickyHandler();\r\n } else {\r\n return this.services.stickyHandlerFactory.createStickyHandler();\r\n }\r\n\r\n return this._stickyHandler;\r\n }\r\n\r\n private _renderLiveCasinoArenaNavbar(){\r\n if (this.props?.configs?.arenas?.length) {\r\n const categories = this.props.configs.arenas.filter(config => config.display);\r\n return \r\n }\r\n }\r\n\r\n private _renderLinkToOffer() {\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n\r\n \r\n\r\n {this._renderLiveCasinoArenaNavbar()}\r\n\r\n \r\n\r\n \r\n\r\n {this._renderLinkToOffer()}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import {ArenaFiltersConfigurationMap, IArenaViewModel} from \"../arena-view-model.interface\";\r\nimport {IServiceFactoryExtended} from \"../../../../service-factory-extended.interface\";\r\nimport React from \"react\";\r\nimport {OrbitSuspense} from \"../../../../../components/base-components/orbit-suspense/orbit-suspense\";\r\nimport {NewLiveCasinoArenaComponent} from \"../../../../../components/arena-host/new-live-casino-arena/new-live-casino-arena.component\";\r\nimport {GameInfo} from \"../../../../games/game-info\";\r\nimport {filtersConfigurationToMap} from \"../../filters-configuration-to-map\";\r\nimport {ArenaConfiguration} from \"../../../../configurations/config-data-sections/arenas.configuration\";\r\nimport {IGamesFilterStrategy} from \"../../../../games-filter/strategies/games-filter-strategy.interface\";\r\nimport {\r\n SimpleGamesFilterStrategy\r\n} from \"../../../../games-filter/strategies/simple-games-filter/simple-games-filter.strategy\";\r\n\r\nexport class NewLiveCasinoArenaModel implements IArenaViewModel {\r\n constructor(public readonly arenaName: string,\r\n private readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n get listsCount(): number {\r\n return 0;\r\n }\r\n\r\n renderList(listPosition: number): React.ReactElement | null {\r\n return null;\r\n }\r\n\r\n getNextBatchSize(currentListPosition: number): number {\r\n return 0;\r\n }\r\n\r\n get configs(): ArenaConfiguration {\r\n return this.services.configuration.data.arenas[this.arenaName];\r\n }\r\n\r\n renderArena(): React.ReactElement | null {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n filterGamesByArenaType(gamesInfo: GameInfo[]): GameInfo[] {\r\n return gamesInfo.filter(g => g.isLiveCasino);\r\n }\r\n\r\n get allArenaGamesForFiltering(): GameInfo[] {\r\n return [];\r\n }\r\n\r\n\r\n get filtersConfigurationMap(): ArenaFiltersConfigurationMap {\r\n return filtersConfigurationToMap(this.configs.filters);\r\n }\r\n\r\n getGamesFilteringStrategy(): IGamesFilterStrategy {\r\n return new SimpleGamesFilterStrategy(this.services);\r\n }\r\n\r\n}","import React from \"react\";\r\nimport {OrbitSuspense} from \"../../../../../components/base-components/orbit-suspense/orbit-suspense\";\r\nimport {IServiceFactoryExtended} from \"../../../../service-factory-extended.interface\";\r\nimport {ArenaFiltersConfigurationMap, IArenaViewModel} from \"../arena-view-model.interface\";\r\nimport {GameInfo} from \"../../../../games/game-info\";\r\nimport {filtersConfigurationToMap} from \"../../filters-configuration-to-map\";\r\nimport {ArenaConfiguration} from \"../../../../configurations/config-data-sections/arenas.configuration\";\r\nimport {IGamesFilterStrategy} from \"../../../../games-filter/strategies/games-filter-strategy.interface\";\r\nimport {NoGamesFilterStrategy} from \"../../../../games-filter/strategies/no-filter/no-games-filter.strategy\";\r\nconst LiveCasinoArenaComponent = React.lazy(\r\n () => import(\"../../../../../components/arena-host/live-casino-arena/live-casino-arena.component\").then(({LiveCasinoArenaComponent}) => ({default: LiveCasinoArenaComponent}))\r\n);\r\n\r\nexport class LiveCasinoArenaModel implements IArenaViewModel {\r\n constructor(public readonly arenaName: string, private readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n get listsCount(): number {\r\n return 0;\r\n }\r\n\r\n renderList(listPosition: number): React.ReactElement | null {\r\n return null;\r\n }\r\n\r\n getNextBatchSize(currentListPosition: number): number {\r\n return 0;\r\n }\r\n\r\n get configs(): ArenaConfiguration {\r\n return this.services.configuration.data.arenas[this.arenaName];\r\n }\r\n\r\n renderArena() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n filterGamesByArenaType(gamesInfo: GameInfo[]): GameInfo[] {\r\n return gamesInfo.filter(g => g.isLiveCasino);\r\n }\r\n\r\n get allArenaGamesForFiltering(): GameInfo[] {\r\n return [];\r\n }\r\n\r\n get filtersConfigurationMap(): ArenaFiltersConfigurationMap {\r\n return filtersConfigurationToMap(this.configs.filters);\r\n }\r\n\r\n getGamesFilteringStrategy(): IGamesFilterStrategy {\r\n return new NoGamesFilterStrategy(this.services);\r\n }\r\n}","import {ServiceBase} from '../ServiceBase';\r\nimport {IArenasService} from './arenas.service.interface';\r\nimport {HOME_PAGE_ARENA, LIVE_CASINO_ARENA_NAME, NEW_LIVE_CASINO_ARENA_NAME} from './arena-consts';\r\nimport {\r\n ArenaConfiguration,\r\n ArenasConfiguration\r\n} from \"../configurations/config-data-sections/arenas.configuration\";\r\nimport {observable} from \"mobx\";\r\nimport {IServiceFactoryExtended} from \"../service-factory-extended.interface\";\r\nimport {IArenaViewModel} from \"./models/arenas/arena-view-model.interface\";\r\nimport {HomePageArenaModel} from \"./models/arenas/home-page/home-page-arena.model\";\r\nimport {CasinoLobbyArenaModel} from \"./models/arenas/casino-lobby/casino-lobby-arena.model\";\r\nimport {VoidArenaModel} from \"./models/arenas/void-arena/void-arena.model\";\r\nimport {ListsSortOrderStorage} from \"./models/lists-sort-order-storage\";\r\nimport {NewLiveCasinoArenaModel} from \"./models/arenas/new-live-casino/new-live-casino-arena.model\";\r\nimport {LiveCasinoArenaModel} from \"./models/arenas/live-casino/live-casino-arena.model\";\r\n\r\n\r\nexport class ArenasService extends ServiceBase implements IArenasService {\r\n\r\n @observable.ref\r\n private _arenasConfigs: ArenasConfiguration = {};\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n this._postLoginListsSortOrderStorage = new ListsSortOrderStorage(services);\r\n this._loadArenas();\r\n }\r\n\r\n private _arenas: Record = {};\r\n private readonly _postLoginListsSortOrderStorage: ListsSortOrderStorage;\r\n\r\n private _loadArenas(): void {\r\n this._arenas[HOME_PAGE_ARENA] = this._createArena(HOME_PAGE_ARENA);\r\n const arenasConfigs = this.services.configuration.data.arenas;\r\n for(let arenaName in arenasConfigs) {\r\n this._arenas[arenaName] = this._createArena(arenaName);\r\n }\r\n }\r\n\r\n getArena(arenaName: string): IArenaViewModel {\r\n return this._arenas[arenaName] || new VoidArenaModel(this.services);\r\n }\r\n\r\n private _createArena(arenaName: string): IArenaViewModel | null {\r\n switch (arenaName) {\r\n case HOME_PAGE_ARENA:\r\n return new HomePageArenaModel(this.services, this._postLoginListsSortOrderStorage);\r\n case NEW_LIVE_CASINO_ARENA_NAME:\r\n return new NewLiveCasinoArenaModel(arenaName, this.services);\r\n case LIVE_CASINO_ARENA_NAME:\r\n return new LiveCasinoArenaModel(arenaName, this.services);\r\n default:\r\n return new CasinoLobbyArenaModel(arenaName, this.services, this._postLoginListsSortOrderStorage);\r\n }\r\n }\r\n\r\n getCurrentArena(): IArenaViewModel {\r\n const arenaName = this.services.routing.currentRoute.data?.arenaType;\r\n if(!arenaName) {\r\n return new VoidArenaModel(this.services);\r\n }\r\n return this.getArena(arenaName)\r\n\r\n }\r\n\r\n getArenaConfig(arenaType: string): ArenaConfiguration {\r\n return this.services.configuration.data.arenas[arenaType];\r\n }\r\n\r\n shouldHideFiltersButtonMobile(): boolean {\r\n const arenasWithoutFilterButton: string[] = [NEW_LIVE_CASINO_ARENA_NAME];\r\n const currentRoute = this.services.routing.currentRoute;\r\n return arenasWithoutFilterButton.includes(currentRoute?.data?.arenaType);\r\n }\r\n}\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../../base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\nimport {Link} from \"../../raw-components/link/link\";\r\n\r\nexport interface BreadcrumbsItemComponentProps {\r\n readonly title: string;\r\n position: number;\r\n readonly url?: string;\r\n onClick?: () => void;\r\n\r\n}\r\n\r\n@observer\r\nexport class BreadcrumbsItemComponent extends OrbitComponent {\r\n\r\n render() {\r\n let noLinkClass = this.props.onClick ? '' : 'no-link';\r\n return (\r\n <>\r\n \r\n \r\n \r\n {this.props.title}\r\n \r\n \r\n \r\n \r\n {this.props.onClick ? {' > '} : null}\r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {IBreadcrumb} from './breadcrumb.interface';\r\nimport {BreadcrumbsItemComponent} from '../../../components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component';\r\n\r\nexport class NonNavigatableBreadcrumb implements IBreadcrumb {\r\n constructor(private _title: string) {\r\n }\r\n\r\n render(position: number) {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {IBreadcrumb} from './breadcrumb.interface';\r\nimport {IServiceFactoryExtended} from '../../service-factory-extended.interface';\r\nimport {BreadcrumbsItemComponent} from '../../../components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component';\r\n\r\n\r\nexport class NavigatableBreadcrumb implements IBreadcrumb {\r\n constructor(private _title: string, private _url: string, private services: IServiceFactoryExtended) {\r\n\r\n }\r\n\r\n private _navigate = () => {\r\n this.services.location.push(this._url);\r\n };\r\n\r\n render(position: number) {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\n\r\n","import {NonNavigatableBreadcrumb} from './breadcrumbs/non-navigatable-breadcrumb';\r\nimport {NavigatableBreadcrumb} from './breadcrumbs/navigatable-breadcrumb';\r\nimport {IBreadcrumb} from './breadcrumbs/breadcrumb.interface';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {UriPath} from \"../location/uri-path/uri-path\";\r\n\r\nexport class SiteMapNode {\r\n constructor(private _title: string, private _url: string, children: any[]) {\r\n this._loadChildren(children);\r\n this._urlParts = new UriPath(_url).toArray();\r\n }\r\n\r\n private readonly _urlParts: string[];\r\n\r\n private _loadChildren(children: any[]): void {\r\n this._children = (children || []).map(ch => new SiteMapNode(ch.title, ch.url, ch.children));\r\n }\r\n\r\n\r\n private _children: SiteMapNode[] = [];\r\n get children(): SiteMapNode[] {\r\n return this._children;\r\n }\r\n\r\n createBreadcrumbs(requestedUrlParts: string[], services: IServiceFactoryExtended): IBreadcrumb[] {\r\n\r\n for(let i = 0; i < this._urlParts.length; i++) {\r\n if(this._urlParts[i] !== requestedUrlParts[i]) {\r\n return [];\r\n }\r\n }\r\n\r\n if(this._urlParts.length === requestedUrlParts.length) {\r\n return [new NonNavigatableBreadcrumb(this._title)] //it means this is the last breadcrumb\r\n } else {\r\n let breadcrumb = new NavigatableBreadcrumb(this._title, this._url, services);\r\n\r\n return [breadcrumb, ...this._createChildrenBreadcrumbs(requestedUrlParts, services)];\r\n }\r\n }\r\n\r\n private _createChildrenBreadcrumbs(requestedUrlParts: string[], services: IServiceFactoryExtended): IBreadcrumb[] {\r\n for(let i = 0; i < this.children.length; i++) {\r\n let childBreadcrumbs = this.children[i].createBreadcrumbs(requestedUrlParts, services);\r\n if(childBreadcrumbs.length > 0) {\r\n return childBreadcrumbs;\r\n }\r\n }\r\n return [];\r\n }\r\n\r\n toFlatSiteMap(): {[key: string]: SiteMapNode} {\r\n let result = {};\r\n result[this._url] = this;\r\n\r\n this.children.forEach(child => {\r\n result = Object.assign(result, child.toFlatSiteMap());\r\n });\r\n\r\n return result;\r\n\r\n }\r\n}\r\n","import {ISiteMapService} from './sitemap.service.interface';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {SiteMapNode} from './sitemap-node';\r\nimport {action, observable} from 'mobx';\r\nimport {IBreadcrumb} from './breadcrumbs/breadcrumb.interface';\r\nimport {UriPath} from '../location/uri-path/uri-path';\r\n\r\nexport class SiteMapService extends ServiceBase implements ISiteMapService {\r\n\r\n private _root: SiteMapNode;\r\n private _flatSiteMapByUrl: {[key: string]: SiteMapNode};\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n try {\r\n this._initSiteMap();\r\n }catch (e) {\r\n this.services.logger.error(`Failed to load sitemap ${e} `);\r\n }\r\n\r\n this.reaction(\r\n () => this.services.location.currentUri,\r\n (uri) => {\r\n this._setBreadcrumbs(this._createBreadCrumbs(uri.pathName));\r\n },\r\n {\r\n fireImmediately: true\r\n });\r\n }\r\n\r\n private _initSiteMap() {\r\n let siteMap = this.services.configuration.startupConfiguration.b2c.sitemap;\r\n this._root = new SiteMapNode(siteMap.title, siteMap.url, siteMap.children);\r\n this._flatSiteMapByUrl = this._root.toFlatSiteMap();\r\n }\r\n\r\n @observable.ref\r\n breadcrumbs: IBreadcrumb[] = [];\r\n\r\n @action.bound\r\n private _setBreadcrumbs(breadcrumbs: IBreadcrumb[]) {\r\n this.breadcrumbs = breadcrumbs;\r\n }\r\n\r\n\r\n private _createBreadCrumbs(uriPath: UriPath): IBreadcrumb[] {\r\n if(!uriPath) {\r\n return [];\r\n }\r\n\r\n if(uriPath.isEmpty) {\r\n return [];\r\n }\r\n\r\n let uriParts = uriPath.toArray();\r\n if(uriParts[0] !== '/') {\r\n uriParts = ['/', ...uriParts];\r\n }\r\n\r\n let breadcrumbs = this._root.createBreadcrumbs(uriParts, this.services);\r\n if(breadcrumbs.length < uriParts.length) {\r\n this.services.logger.warning(`URL ${uriPath} was not found in the sitemap`);\r\n return [];\r\n }\r\n\r\n if(breadcrumbs.length <= 1) {\r\n return [];\r\n }\r\n\r\n return breadcrumbs;\r\n }\r\n\r\n isUrlInSiteMap(url: string): boolean {\r\n if(this._flatSiteMapByUrl[url]) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n\r\n\r\n}\r\n","import {ServiceBase} from '../ServiceBase';\r\nimport {IMarketingService} from './marketing.service.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {encodeUriRecursive} from '../../../utils/url-utils';\r\nimport {MarketingParams} from \"../../../common/interfaces/marketing-params.interface\";\r\n\r\n\r\nconst TEST_DATA_KEY = 'testdata';\r\n\r\nexport class MarketingService extends ServiceBase implements IMarketingService {\r\n\r\n private get _sCut(): any {\r\n return this.services.window.getGlobalProperty('sCut');\r\n }\r\n\r\n private get _sCutQueryParams(): string | null {\r\n let sCut = this._sCut;\r\n if(sCut) {\r\n return sCut.toString();\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n appendSCutToUrl(url: string): string {\r\n if(!url) {\r\n return url;\r\n }\r\n\r\n if(!this._sCutQueryParams) {\r\n return url;\r\n }\r\n\r\n let urlParts = url.split('?');\r\n let queryParams = (urlParts[1] || '').trim();\r\n if(queryParams) {\r\n if(queryParams.endsWith('&')) {\r\n return urlParts[0] + '?' + queryParams + this._sCutQueryParams;\r\n } else {\r\n return urlParts[0] + '?' + queryParams + '&' + this._sCutQueryParams;\r\n }\r\n } else {\r\n return urlParts[0] + '?' + this._sCutQueryParams;\r\n }\r\n }\r\n\r\n private _getDlp(): string {\r\n return this.services.location.currentUri.getUrlWithoutSearchAndHash();\r\n }\r\n\r\n private _convertParameterToNumber(parameterName: string, parameterValue): number {\r\n let dlAsNumber = parseInt((parameterValue || '').trim());\r\n if(Check.isNumber(dlAsNumber)) {\r\n return dlAsNumber;\r\n } else {\r\n this.services.logger.error(`Cannot convert marketing parameter ${parameterName} to number because its value is ${parameterValue}`);\r\n return 999999;\r\n }\r\n }\r\n\r\n getMarketingData(marketingParams?: MarketingParams): any {\r\n let sCut = this._sCut;\r\n if(!Check.isObject(sCut)) {\r\n return {};\r\n }\r\n\r\n if(!sCut[\"all\"]) {\r\n this.services.logger.warning(`sCut.all function doesn't exists`);\r\n return {};\r\n }\r\n\r\n let sCutData = sCut[\"all\"]();\r\n\r\n if(!sCutData) {\r\n this.services.logger.warning(`sCut.all() returned ${sCutData}`);\r\n return {};\r\n }\r\n\r\n marketingParams = marketingParams || {};\r\n\r\n let additionalParams: any = {...sCutData};\r\n delete additionalParams[TEST_DATA_KEY];\r\n if(!additionalParams.wtc && marketingParams.wtc) {\r\n additionalParams.wtc = marketingParams.wtc;\r\n }\r\n\r\n\r\n let testData: any = {};\r\n\r\n try {\r\n testData = sCutData[TEST_DATA_KEY] ? JSON.parse(sCutData[TEST_DATA_KEY]) : {}\r\n } catch (err) {\r\n this.services.logger.error('Failed to parse sCut TestData');\r\n return {};\r\n }\r\n\r\n if(!testData.dl && marketingParams.dl) {\r\n testData.dl = marketingParams.dl;\r\n }\r\n\r\n if(testData.dl) {\r\n //We try to convert the dl to number to see if it is a valid number\r\n //but we must send it as a string because membership code will throw error on GetFunnelData if it will be number\r\n testData.dl = (this._convertParameterToNumber('dl', testData.dl)).toString();\r\n }\r\n\r\n testData.dlp = this._getDlp();\r\n\r\n if(additionalParams.dlp) {\r\n additionalParams.dlp = testData.dlp;\r\n }\r\n\r\n return encodeUriRecursive({\r\n sr: sCutData.sr,\r\n TestData: testData,\r\n AdditionalParams: additionalParams\r\n });\r\n }\r\n\r\n\r\n\r\n}\r\n","import {LanguageSwitcherItemConfiguration} from '../../../app-bootstrap/config-interfaces/b2c-startup.configurations';\r\nimport {IServiceFactoryExtended} from '../../service-factory-extended.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {ILanguageSwitcherItem} from './language-switcher-item.interface';\r\n\r\nexport class LanguageSwitcherItem implements ILanguageSwitcherItem {\r\n constructor(private _config: LanguageSwitcherItemConfiguration, private services: IServiceFactoryExtended) {\r\n }\r\n\r\n get title(): string {\r\n return this._config.title;\r\n }\r\n\r\n get url(): string {\r\n return this._config.url;\r\n }\r\n\r\n get isCurrent(): boolean {\r\n return false;\r\n }\r\n\r\n makeCurrent(): void {\r\n this.services.analytics.sendAnalytics('Navigation', 'Language', this.title);\r\n this._executeOnClickJs();\r\n let url = this._config.url;\r\n\r\n if(this.services.device.hybrid.isEmbedded) {\r\n this.services.window.openSelf(url);\r\n } else {\r\n this._createCookie().then(() => {\r\n this.services.user.logout();\r\n setTimeout(() => {\r\n if(this._config.sendFunnelParameters) {\r\n url = this.services.marketing.appendSCutToUrl(url);\r\n }\r\n this.services.window.openSelf(url);\r\n }, 200);\r\n })\r\n }\r\n }\r\n\r\n private _createCookie(): Promise {\r\n if(this.services.user.isAuthorized) {\r\n return this.services.user.getAutoLoginToken()\r\n .then(token => {\r\n this.services.cookies.createDomainCookie('orbit_autologin_token', token);\r\n }).catch(() => {\r\n this.services.logger.error('Failed to get autologin token in order to switch language');\r\n });\r\n } else {\r\n return Promise.resolve();\r\n }\r\n }\r\n\r\n private _executeOnClickJs(): void {\r\n try {\r\n\r\n\r\n if (!this._config.onClickJs) {\r\n return;\r\n }\r\n\r\n if (!Check.isString(this._config.onClickJs)) {\r\n this.services.logger.error(`onClickJs is not a string for language switcher item ${this.title}`);\r\n return;\r\n }\r\n\r\n if (this._config.onClickJs.length > 50) {\r\n this.services.logger.error(`Too long callback method for language switcher item ${this.title} click event: ${this._config.onClickJs.substring(0, 50)} ...`);\r\n return;\r\n }\r\n\r\n // eslint-disable-next-line\r\n let func = new Function(this._config.onClickJs);\r\n func();\r\n }\r\n catch (err) {\r\n this.services.logger.error(`Failed to execute onClickJs for language swithcer item ${this.title}; onClickJs: ${this._config.onClickJs}`, err);\r\n }\r\n }\r\n}\r\n\r\n\r\n","import {IServiceFactoryExtended} from '../../service-factory-extended.interface';\r\nimport {ILanguageSwitcherItem} from './language-switcher-item.interface';\r\n\r\nexport class LanguageSwitcherSection {\r\n constructor(private _services: IServiceFactoryExtended, private _title: string, private _fallbackTitleKey: string, private _items: ILanguageSwitcherItem[]) {\r\n\r\n }\r\n\r\n get title(): string {\r\n if(this._title) {\r\n return this._title;\r\n }\r\n\r\n return this._services.translation.translate(this._fallbackTitleKey);\r\n }\r\n\r\n get items(): ILanguageSwitcherItem[] {\r\n return this._items;\r\n }\r\n}\r\n","import {ILanguageSwitcherItem} from './language-switcher-item.interface';\r\n\r\nexport class SelectedLanguageSwitcherItem implements ILanguageSwitcherItem {\r\n constructor(private _title: string) {\r\n\r\n }\r\n get isCurrent(): boolean {\r\n return true;\r\n }\r\n get title(): string {\r\n return this._title;\r\n }\r\n\r\n get url(): string {\r\n return '';\r\n }\r\n\r\n makeCurrent(): void {\r\n }\r\n\r\n}\r\n","import {ServiceBase} from '../ServiceBase';\r\nimport {ILanguageData, ILanguageService} from './language.service.interface';\r\nimport {action, observable} from 'mobx';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {TranslatedText} from './translated-text';\r\n\r\nimport {LanguageSwitcherStructure} from './language-switcher/language-switcher-structure';\r\nimport {LanguageSwitcherItem} from './language-switcher/language-switcher-item';\r\nimport {LanguageSwitcherSection} from './language-switcher/language-switcher-section';\r\nimport {SelectedLanguageSwitcherItem} from './language-switcher/selected-language-switcher-item';\r\nimport {ILanguageSwitcherItem} from './language-switcher/language-switcher-item.interface';\r\nimport {\r\n LanguageSwitcherConfiguration,\r\n LanguageSwitcherItemConfiguration, LanguageSwitcherSectionConfiguration\r\n} from '../../app-bootstrap/config-interfaces/b2c-startup.configurations';\r\n\r\nexport class LanguageService extends ServiceBase implements ILanguageService {\r\n constructor(private _defaultLanguageData: ILanguageData, services: IServiceFactoryExtended) {\r\n super(services);\r\n\r\n this._loadLanguageData();\r\n\r\n if (this._isLanguageSwitcherEnabled) {\r\n this._setLanguageSwitcher(this.services.configuration.startupConfiguration.b2c.languageSwitcher);\r\n } else {\r\n this._setLanguageSwitcher(null);\r\n }\r\n\r\n\r\n this.reaction(() => this.services.location.currentUri,\r\n (uri) => {\r\n this._updateLanguageSwitcher(uri.pathName.toString());\r\n }, {\r\n fireImmediately: this.languageSwitcher.isEmpty\r\n });\r\n }\r\n\r\n private get _isLanguageSwitcherEnabled(): boolean {\r\n return Boolean(this.services.configuration.data.languageSwitcher?.display)\r\n }\r\n\r\n\r\n private _lastUrlWithoutTheFragmentQueriedForLanguageSwitcher = '';\r\n\r\n public get isRTLLanguage(): boolean {\r\n return this.services.dom.getElementsByTagName('html')[0].classList.contains('cgp-rtl');\r\n }\r\n\r\n get currentLanguage(): string {\r\n return this.services.configuration.startupConfiguration.b2c.language.iso3;\r\n }\r\n\r\n get currentLanguageIso2(): string {\r\n return this.services.configuration.startupConfiguration.b2c.language.iso2;\r\n }\r\n\r\n\r\n private _getDefaultTexts(): TranslatedText {\r\n return this._defaultLanguageData.text || {};\r\n }\r\n\r\n\r\n private _loadLanguageData(): void {\r\n let textOverrides = this.services.configuration.startupConfiguration.orbit.lang?.text;\r\n let translatedTexts = {...this._getDefaultTexts(), ...textOverrides};\r\n\r\n this._setTranslatedTexts(translatedTexts);\r\n }\r\n\r\n\r\n\r\n @observable.ref\r\n translatedTexts: TranslatedText = {};\r\n\r\n @action.bound\r\n private _setTranslatedTexts(data: TranslatedText) : void {\r\n this.translatedTexts = data;\r\n }\r\n\r\n @observable.ref\r\n languageSwitcher: LanguageSwitcherStructure;\r\n\r\n @action.bound\r\n private _setLanguageSwitcher(langSwitcherConfig: LanguageSwitcherConfiguration): void {\r\n let languagesSection = this._extractLangSwitcherSection(langSwitcherConfig && langSwitcherConfig.languages, langSwitcherConfig && langSwitcherConfig.languageSettings, 'CHOOSE_LANG');\r\n\r\n let countriesSection = this._extractLangSwitcherSection(langSwitcherConfig && langSwitcherConfig.countries, langSwitcherConfig && langSwitcherConfig.countrySettings, 'CHOOSE_COUNTRY')\r\n\r\n this.languageSwitcher = {\r\n languagesSection: languagesSection,\r\n countriesSection: countriesSection,\r\n isEmpty: languagesSection.items.length === 0 && countriesSection.items.length === 0\r\n };\r\n }\r\n\r\n private _extractLangSwitcherSection(itemsConfig: LanguageSwitcherItemConfiguration[], sectionConfig: LanguageSwitcherSectionConfiguration, fallbackTitleKey: string): LanguageSwitcherSection {\r\n itemsConfig = itemsConfig || [];\r\n sectionConfig = sectionConfig || {title: '', current: ''};\r\n\r\n let items: ILanguageSwitcherItem[] = [];\r\n\r\n if(sectionConfig.current && itemsConfig.length > 0) {\r\n items.push(new SelectedLanguageSwitcherItem(sectionConfig.current));\r\n }\r\n\r\n itemsConfig.forEach(cfg => {\r\n items.push(new LanguageSwitcherItem(cfg, this.services));\r\n });\r\n\r\n return new LanguageSwitcherSection(this.services,\r\n sectionConfig.title,\r\n fallbackTitleKey,\r\n items);\r\n\r\n }\r\n\r\n _updateLanguageSwitcher(url: string) {\r\n if (this.languageSwitcher.isEmpty) {\r\n return;\r\n }\r\n\r\n if(this._lastUrlWithoutTheFragmentQueriedForLanguageSwitcher !== url && !this.services.device.hybrid.isEmbedded) {\r\n this._lastUrlWithoutTheFragmentQueriedForLanguageSwitcher = url;\r\n\r\n this.services.cmsApi\r\n .getLanguageSwitcherConfiguration(url)\r\n .then(config => {\r\n if (config) { this._setLanguageSwitcher(config); }\r\n });\r\n }\r\n }\r\n}\r\n","import { Check } from \"@sparkware/app-utils\";\r\nimport { SideMenuLinkConfiguration, CustomElementLink, InternalLink, ExternalLink } from \"../config-data-sections/side-menu.configuration\";\r\n\r\nexport function isCustomLink(config: SideMenuLinkConfiguration): config is CustomElementLink {\r\n return (!Check.isNullOrUndefined((config as any).isCustomElement) && (config as any).isCustomElement === true);\r\n}\r\n\r\nexport function isInternalLink(config: SideMenuLinkConfiguration): config is InternalLink {\r\n if (isCustomLink(config)) {\r\n return false;\r\n }\r\n return (Check.isNullOrUndefined(config.isExternalLink) || config.isExternalLink === false);\r\n}\r\n\r\nexport function isExternalLink(config: SideMenuLinkConfiguration): config is ExternalLink {\r\n if (isCustomLink(config)) {\r\n return false;\r\n }\r\n return (!Check.isNullOrUndefined(config.isExternalLink) && config.isExternalLink === true);\r\n}\r\n\r\n","import {ISideMenuService, SideMenuLinkAction} from './side-menu.service.interface';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IServiceFactoryExtended} from \"../service-factory-extended.interface\";\r\nimport {InternalLink, ExternalLink, SideMenuLinkConfiguration} from \"../configurations/config-data-sections/side-menu.configuration\";\r\nimport {action, observable} from \"mobx\";\r\nimport { isExternalLink, isInternalLink } from '../configurations/helpers/side-menu-typeguards.helpers';\r\nimport {IOverlayConsumer} from \"../overlay/overlay-consumer.interface\";\r\n\r\nexport class SideMenuService extends ServiceBase implements ISideMenuService, IOverlayConsumer {\r\n @observable.ref isMobileMenuOpen: boolean = false;\r\n\r\n @action.bound\r\n private _setIsMobileMenuOpen(shouldOpen: boolean) {\r\n this.isMobileMenuOpen = shouldOpen;\r\n }\r\n\r\n constructor(serviceFactory: IServiceFactoryExtended) {\r\n super(serviceFactory);\r\n this.reaction(\r\n () => this.services.overlay.isOpen,\r\n (isOpen) => {\r\n if (!isOpen) {\r\n this.closeMobileMenu();\r\n }\r\n }\r\n );\r\n this.services.overlay.registerConsumer(this);\r\n }\r\n\r\n get needsOverlay(): boolean {\r\n return this.isMobileMenuOpen;\r\n }\r\n\r\n onOverlayClicked() {\r\n this.closeMobileMenu();\r\n }\r\n\r\n getOverlayZIndex(): number | undefined {\r\n return this.zIndex - 1;\r\n }\r\n\r\n get zIndex(): number {\r\n return 120;\r\n }\r\n\r\n getLinkAction(config: SideMenuLinkConfiguration): SideMenuLinkAction {\r\n return this._linkAction(config);\r\n }\r\n\r\n openMobileMenu(): void {\r\n if (!this.isMobileMenuOpen) {\r\n this.services.userMenu.closeMenu();\r\n this.services.sdk.closeRunningGame();\r\n this._setIsMobileMenuOpen(true);\r\n }\r\n }\r\n\r\n closeMobileMenu(): void {\r\n if (this.isMobileMenuOpen) {\r\n this.services.gameSearch.closeSearchResult();\r\n this.closeMobileLanguageSwitcher();\r\n this._setIsMobileMenuOpen(false);\r\n }\r\n }\r\n\r\n openHelp(): void {\r\n this.services.externalLinks.openHelpPage();\r\n this.services.userMenu.closeMenu();\r\n this.services.analytics.sendAnalytics('Navigation', 'Header', 'Help');\r\n }\r\n\r\n private _linkAction(config: SideMenuLinkConfiguration): SideMenuLinkAction {\r\n return event => {\r\n event.preventDefault();\r\n this.services.analytics.sendAnalytics('Navigation', 'NavBar', config.text);\r\n\r\n if (this.services.menuFlow.hasCustomFlow(config)) {\r\n const flowResult = this.services.menuFlow.executeCustomFlow(config);\r\n if (flowResult && !flowResult.continue) {\r\n return;\r\n }\r\n }\r\n\r\n this.closeMobileMenu();\r\n this.services.userMenu.closeMenu();\r\n this.services.overlay.closeOverlay();\r\n\r\n if (isExternalLink(config)) {\r\n this._externalLink(config);\r\n } else if (isInternalLink(config)) {\r\n this._internalLink(config);\r\n }\r\n };\r\n }\r\n\r\n private _internalLink(config: InternalLink) {\r\n const link = this.proceedLink(config.link);\r\n switch (config.tabState) {\r\n case '_blank':\r\n this.services.sdk.openInNewWindow(this.services.marketing.appendSCutToUrl(link));\r\n break;\r\n case '_self':\r\n default:\r\n this.services.location.push(link.toLowerCase());\r\n break;\r\n }\r\n }\r\n\r\n private _externalLink(config: ExternalLink) {\r\n const link = this.proceedLink(config.link);\r\n const linkParams = {\r\n source: ('externalLinkSource' in config) ? config.externalLinkSource : link,\r\n view: config.target,\r\n options: config.options,\r\n sourceLink: null,\r\n };\r\n if (config.useDirectLink) {\r\n if (config.noConcatScut) {\r\n linkParams.sourceLink = link;\r\n } else {\r\n linkParams.sourceLink = this.services.marketing.appendSCutToUrl(link);\r\n }\r\n }\r\n\r\n this.services.externalLinks.openExternalBrand(linkParams, {dl: config.dl}, config.useCallbackURL);\r\n }\r\n\r\n private proceedLink(link:string): string {\r\n //add all replaces for the link here\r\n return link?.replace('{cid}', this.services.user.cid);\r\n }\r\n\r\n @observable.ref\r\n isMobileLanguageSwitcher: boolean = false;\r\n\r\n @action.bound\r\n openMobileLanguageSwitcher(): void {\r\n this.isMobileLanguageSwitcher = true;\r\n }\r\n\r\n @action.bound\r\n closeMobileLanguageSwitcher(): void {\r\n this.isMobileLanguageSwitcher = false;\r\n }\r\n}\r\n","import {GameInfo, OpenGameParameters} from '../games/game-info';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {SuggestedLinkConfiguration} from '../configurations/config-data-sections/game-search-box.configuration';\r\n\r\nexport interface ISearchSuggestion {\r\n readonly key: string;\r\n readonly text: string;\r\n readonly linkIconClass: string;\r\n readonly type: string;\r\n readonly gameInfo: GameInfo;\r\n executeAction(): void;\r\n}\r\n\r\nexport const SUGGESTED_CATEGORIES = \"Suggested_Categories\";\r\n\r\nexport function isSuggestedCategory(searchSuggestion: ISearchSuggestion): boolean {\r\n return searchSuggestion?.type === SUGGESTED_CATEGORIES;\r\n}\r\n\r\nexport class GameSuggestion implements ISearchSuggestion {\r\n constructor(private services: IServiceFactoryExtended, private _gameInfo: GameInfo, private _analyticsLabel: string, private _index?: number, private _aiSortingType?: string) {\r\n\r\n }\r\n\r\n get gameInfo(): GameInfo {\r\n return this._gameInfo;\r\n }\r\n\r\n get type(): string {\r\n return this._analyticsLabel;\r\n }\r\n\r\n get key(): string {\r\n return this._gameInfo.gameType + '_' + this._gameInfo.title;\r\n }\r\n\r\n get text(): string {\r\n return this._gameInfo.title;\r\n }\r\n\r\n get linkIconClass(): string {\r\n return this._gameInfo.gameCategory;\r\n }\r\n\r\n executeAction(): void {\r\n\r\n const openGameParams: OpenGameParameters = {\r\n isRealMode: true,\r\n pageName: 'Search',\r\n gameIndex: this._index,\r\n listTitle: this.type,\r\n aiSortingType: this._aiSortingType,\r\n showIntermediatePage: this.services.cmsSegmentation.isCstatus === false //Show intermediate page only for user with cStatus == false, TASK 1832892\r\n };\r\n\r\n this._gameInfo.open(openGameParams);\r\n }\r\n\r\n}\r\n\r\n\r\nexport class SearchLinkSuggestion implements ISearchSuggestion {\r\n constructor(private _linkConfig: SuggestedLinkConfiguration, private services: IServiceFactoryExtended, private _analyticsAction: string) {\r\n\r\n }\r\n\r\n get gameInfo(): GameInfo {\r\n return null;\r\n }\r\n\r\n get type(): string {\r\n return this._analyticsAction;\r\n }\r\n\r\n get key(): string {\r\n return this._linkConfig.text;\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate(this._linkConfig.text);\r\n }\r\n\r\n get linkIconClass(): string {\r\n return 'link';\r\n }\r\n\r\n executeAction() {\r\n this.services.analytics.sendAnalytics('Search', this.type, this.text);\r\n if(this._linkConfig.link) {\r\n this.services.location.push(this._linkConfig.link);\r\n } else {\r\n this.services.externalLinks.openLink({\r\n source: this._linkConfig.externalLinkSource\r\n });\r\n }\r\n }\r\n}\r\n\r\n\r\nexport class GameSearchResult {\r\n constructor(private _games: ISearchSuggestion[], private _suggestedCategories: ISearchSuggestion[], private _suggestedGames: ISearchSuggestion[]) {}\r\n\r\n get suggestedGames(): ISearchSuggestion[] {\r\n return this._suggestedGames;\r\n }\r\n\r\n get games(): ISearchSuggestion[] {\r\n return this._games;\r\n }\r\n\r\n get suggestedCategories(): ISearchSuggestion[] {\r\n return this._suggestedCategories;\r\n }\r\n}\r\n","import {MarketingParams} from \"../../../common/interfaces/marketing-params.interface\";\r\nimport {IOpenMyAccountOptions} from \"./handlers/my-account/my-account.external-link-handler.interface\";\r\n\r\nexport type ExternalLinkViewMode = 'window' | 'iframe' | 'redirect' | 'second_web_view';\r\n\r\nexport interface OpenLinkParams {\r\n source?: string;\r\n sourceLink?: string;\r\n options?: any;\r\n view?: ExternalLinkViewMode;\r\n resolveByCallback?: boolean;\r\n addCloseOption?: boolean;\r\n priorityLevel?: string;\r\n}\r\n\r\nexport interface OpenContactUsOptions{\r\n view: ExternalLinkViewMode;\r\n}\r\n\r\nexport enum OpenMembershipResponse {\r\n unknown = 0,\r\n play = 1,\r\n deposit = 2,\r\n close = 3\r\n}\r\n\r\n\r\nexport interface OpenRichPageOptions {\r\n campaignId: string;\r\n}\r\n\r\n\r\nexport interface IExternalLinksService {\r\n openExternalBrand(params: OpenLinkParams, marketingParams?: MarketingParams, useCallbackURL?: boolean): Promise;\r\n openLink(params: OpenLinkParams, marketingParams?: MarketingParams, useCallbackURL?: boolean): Promise;\r\n openMyAccount(options?: IOpenMyAccountOptions): Promise;\r\n openMembership(marketingParams?: MarketingParams, resolveByCallback?: boolean): Promise;\r\n openUploadDocument(marketingParams?: MarketingParams, resolveByCallback?: boolean): Promise;\r\n openContactUs(options?: OpenContactUsOptions, marketingParams?: MarketingParams, resolveByCallback?: boolean): Promise;\r\n openHelpPage(): Promise;\r\n openDownloadApp(): Promise;\r\n openResponsibleGamblingLink(view?:number):void;\r\n openOldChat(): Promise;\r\n openPendingPlayApplication(token: string): Promise;\r\n openSafeToPlay(): Promise;\r\n openRichPage(options: OpenRichPageOptions): Promise;\r\n openSport(): Promise;\r\n openInternalUrl(url: string): Promise;\r\n openExternalUrl(url: string): Promise;\r\n}\r\n","import {SearchTitleDefaultBox} from \"./search-title.default.box\";\r\n\r\nexport const SearchTitleBox = SearchTitleDefaultBox;","import styled from \"styled-components\";\r\n\r\nexport const SearchTitleDefaultBox = styled.div`\r\n margin: 1rem 0;\r\n font-size: 1.4rem;\r\n text-transform: uppercase;\r\n letter-spacing: 1px;\r\n color: ${props => props.theme.colors.text};\r\n`;","import React from 'react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {SearchTitleBox} from \"./boxes/search-title-box/search-title.box\";\r\nimport {CyClass} from '../../../../../common/cy-classes';\r\n\r\nexport interface SearchBoxTitleComponentProps {\r\n title: string;\r\n}\r\n\r\nexport class SearchBoxTitleComponent extends OrbitComponent {\r\n render() {\r\n return (\r\n \r\n {this.services.translation.translate(this.props.title)}\r\n \r\n )\r\n }\r\n}\r\n","import styled from \"styled-components\";\r\n\r\nexport const SearchGamesListBox = styled.div`\r\n width: 100%;\r\n display: flex;\r\n flex-wrap: wrap;\r\n`;\r\n","import {SearchLinkDefaultBox} from \"./search-link.default.box\";\r\n\r\nexport const SearchLinkBox = SearchLinkDefaultBox;","import styled from \"styled-components\";\r\nimport {Link} from \"../../../../../raw-components/link/link\";\r\n\r\nexport const SearchLinkDefaultBox = styled(Link)`\r\n display: flex;\r\n align-items: center;\r\n padding: 0.5rem;\r\n ${({theme}) => theme.font.presets.regular};\r\n font-weight: 400;\r\n font-size: 1.5rem;\r\n white-space: pre;\r\n color: ${props => props.theme.colors.text};\r\n\r\n &:hover {\r\n color: ${props => props.theme.colors.textHover};\r\n background-color: ${props => props.theme.colors.backgroundHover};\r\n }\r\n\r\n &:before {\r\n content: \"\";\r\n width: 25px;\r\n height: 25px;\r\n margin: 0 0.5rem 0 0;\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n transform: scale(0.8);\r\n }\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {SearchLinkBox} from \"../../../search-result-item/boxes/search-links/search-link.box\";\r\n\r\nexport const SearchNoGamesFoundDefaultBox = styled(SearchLinkBox)`\r\n font-size: 1.4rem;\r\n cursor: default;\r\n &:before {\r\n content: \"\";\r\n width: 0;\r\n height: 0;\r\n margin: 0 \r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {SearchNoGamesFoundDefaultBox} from \"./search-no-games-found.default.box\";\r\n\r\nexport const SearchNoGamesFoundCasino777Box = styled(SearchNoGamesFoundDefaultBox)`\r\n font-size: 1.6rem;\r\n`;","import {SearchNoGamesFoundDefaultBox} from \"./search-no-games-found.default.box\";\r\nimport {styledByTheme} from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport {SearchNoGamesFoundCasino777Box} from \"./search-no-games-found.casino777.box\";\r\n\r\nexport const SearchNoGamesFoundBox = styledByTheme(SearchNoGamesFoundDefaultBox)\r\n .forCasino777(SearchNoGamesFoundCasino777Box)\r\n .apply();","import styled from \"styled-components\";\r\n\r\nexport const SearchGameItemBox = styled.div`\r\n width: calc(100% / 3);\r\n padding-right: 3px;\r\n display: flex;\r\n flex-direction: column;\r\n cursor: pointer;\r\n`;\r\n","import {SearchMatchBoxDefault} from \"./search-match.default.box\";\r\n\r\nexport const SearchMatchBox = SearchMatchBoxDefault;","import styled from \"styled-components\";\r\n\r\nexport const SearchMatchBoxDefault = styled.span`\r\n font-weight: bold;\r\n color: ${props => props.theme.colors.brandPrimary}\r\n`;","import React from 'react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\nimport {SearchMatchBox} from \"./boxes/search-match.box\";\r\nimport {removeSpecialCharacters} from \"../../../../../utils/string-helpers\";\r\n\r\nexport interface SearchListItemComponentProps {\r\n gameName : string;\r\n}\r\n\r\n@observer\r\nexport class HighlightSearchListItemComponent extends OrbitComponent {\r\n render() {\r\n let searchText = removeSpecialCharacters(this.services.gameSearch.currentSearchText).toLowerCase();\r\n const gameName = this.props.gameName\r\n if(!searchText) {\r\n return gameName;\r\n }\r\n\r\n let index = removeSpecialCharacters(gameName).toLowerCase().indexOf(searchText);\r\n if(index < 0) {\r\n return gameName ;\r\n }\r\n\r\n const beforeHighlightText = gameName.substring(0, index);\r\n let highlightText = gameName.substring(index, index + searchText.length);\r\n // Found how many special characters we have in this string\r\n const numberOfSpecialCharacters = highlightText.length - removeSpecialCharacters(highlightText).length;\r\n highlightText = gameName.substring(index, index + searchText.length + numberOfSpecialCharacters);\r\n\r\n const afterHighlightText = gameName.substring(index + searchText.length + numberOfSpecialCharacters);\r\n\r\n return (\r\n <>\r\n {beforeHighlightText}{highlightText}{afterHighlightText}\r\n \r\n )\r\n }\r\n}\r\n","import styled from \"styled-components\";\r\n\r\nexport const SearchTextWrapperBox = styled.div`\r\n text-align: center;\r\n margin-bottom: 0.5rem;\r\n`;\r\n","import React from 'react';\r\nimport { OrbitComponent } from '../../../base-components/orbit-component/orbit-component';\r\nimport { observer } from 'mobx-react';\r\nimport { SearchGameItemBox } from './boxes/search-game-item/search-game-item.box';\r\nimport { ISearchSuggestion } from '../../../../services/game-search/game-search-result';\r\nimport { GameImageComponent } from '../../../single-game/common/parts/game-image/game-image.component';\r\nimport { HighlightSearchListItemComponent } from '../highlight-search-list-item/highlight-search-list-item.component';\r\nimport { SearchTextWrapperBox } from './boxes/search-text-wrapper/search-text-wrapper.box';\r\n\r\n\r\nexport interface SearchGameItemComponentProps {\r\n searchSuggestion: ISearchSuggestion;\r\n}\r\n \r\n\r\n@observer\r\nexport class SearchGameItemComponent extends OrbitComponent {\r\n\r\n private _onClickHandler = () => {\r\n this.services.gameSearch.closeSearchResult();\r\n this.services.userMenu.closeMenu();\r\n this.services.sideMenu.closeMobileMenu();\r\n this.props.searchSuggestion.executeAction();\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport { OrbitComponent } from '../../../base-components/orbit-component/orbit-component';\r\nimport { SearchBoxTitleComponent } from '../search-box-title/search-box-title.component';\r\nimport { ISearchSuggestion } from '../../../../services/game-search/game-search-result';\r\nimport { observer } from 'mobx-react';\r\nimport { CyClass } from '../../../../../common/cy-classes';\r\nimport { SearchGameItemComponent } from '../search-game-item/search-game-item.component';\r\nimport { SearchGamesListBox } from '../found-games/boxes/search-games-list/search-games-list.box';\r\n\r\nexport interface SuggestedGamesComponentProps {\r\n items: ISearchSuggestion[];\r\n}\r\n\r\n@observer\r\nexport class SuggestedGamesComponent extends OrbitComponent {\r\n\r\n private _renderGame(suggestedCategory: ISearchSuggestion) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n private _renderGames() {\r\n return (\r\n \r\n { this.props.items.map(suggestedCategory => this._renderGame(suggestedCategory)) }\r\n \r\n );\r\n }\r\n\r\n render() {\r\n if (this.props.items.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n {this._renderGames()}\r\n \r\n )\r\n }\r\n}\r\n","import styled from \"styled-components\";\r\n\r\nexport const MoreGamesBox = styled.div<{shouldDisplay: boolean}>`\r\n display: ${props => props.shouldDisplay ? \"block\" : \"none\"};\r\n width: 100%;\r\n padding: 3px 1rem;\r\n`;\r\n","import React from 'react';\r\nimport { OrbitComponent } from '../../../base-components/orbit-component/orbit-component';\r\nimport { SearchBoxTitleComponent } from '../search-box-title/search-box-title.component';\r\nimport { ISearchSuggestion } from '../../../../services/game-search/game-search-result';\r\nimport { observer } from 'mobx-react';\r\nimport { SearchGamesListBox } from \"./boxes/search-games-list/search-games-list.box\";\r\nimport { SearchNoGamesFoundBox } from \"./boxes/search-no-game-found/search-no-games-found.box\";\r\nimport { CyClass } from \"../../../../../common/cy-classes\";\r\nimport { SearchGameItemComponent } from '../search-game-item/search-game-item.component';\r\nimport { SuggestedGamesComponent } from '../suggested-games/suggested-games.component';\r\nimport { Button } from '../../../../basic-ui-components/button/base/button.component';\r\nimport { MoreGamesBox } from './boxes/more-games/more-games.box';\r\n\r\nexport interface IFoundGamesComponentProps {\r\n loadedGamesCount: number;\r\n onLoadMore: () => void;\r\n}\r\n\r\n@observer\r\nexport class FoundGamesComponent extends OrbitComponent {\r\n\r\n private _renderGame(suggestedGame: ISearchSuggestion) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _hasMoreItems = () => this.props.loadedGamesCount < this.services.gameSearch.searchResult.games.length;\r\n\r\n private _renderMoreGames() {\r\n if (this.services.device.os.isPC) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n {this.services.translation.translate(\"MORE\")}\r\n \r\n \r\n );\r\n }\r\n\r\n private _renderFoundGames() {\r\n const gamesToRender = Math.min(this.props.loadedGamesCount, this.services.gameSearch.searchResult.games.length);\r\n return (\r\n \r\n {this.services.gameSearch.searchResult.games.slice(0, gamesToRender).map(suggestedGame => this._renderGame(suggestedGame))}\r\n {this._renderMoreGames()}\r\n \r\n );\r\n }\r\n\r\n private _renderNoSearchResultMessage() {\r\n return (\r\n <>\r\n \r\n {this.services.translation.translate('NO_SEARCH_RESULTS')}\r\n \r\n\r\n \r\n \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n { this.services.gameSearch.searchResult?.games?.length > 0 ?\r\n this._renderFoundGames() :\r\n this._renderNoSearchResultMessage()\r\n }\r\n
\r\n );\r\n }\r\n}\r\n","import {SearchResultItemDefaultBox} from \"./search-result-item.default.box\";\r\n\r\nexport const SearchResultItemBox = SearchResultItemDefaultBox;","import styled from \"styled-components\";\r\n\r\nexport const SearchResultItemDefaultBox = styled.li`\r\n list-style-type: none;\r\n \r\n &:hover {\r\n background-color: ${props => props.theme.colors.background};\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {SearchLinkBox} from \"../search-link.box\";\r\n\r\nexport const SlotsSearchLinkDefaultBox = styled(SearchLinkBox)`\r\n &:before {\r\n background-position: -96px -447px;\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {SearchLinkBox} from \"../search-link.box\";\r\n\r\nexport const SlotsSearchLinkCasino777Box = styled(SearchLinkBox)`\r\n &:before {\r\n background-position: -200px -525px;\r\n }\r\n`;","import {SlotsSearchLinkDefaultBox} from \"./slots-search-link.default.box\";\r\nimport {styledByTheme} from \"../../../../../../../themes/architecture/styled-by-theme\";\r\nimport {SlotsSearchLinkCasino777Box} from \"./slots-search-link.casino777.box\";\r\n\r\nexport const SlotsSearchLinkBox = styledByTheme(SlotsSearchLinkDefaultBox)\r\n .forCasino777(SlotsSearchLinkCasino777Box)\r\n .apply();","import {SearchLinkBox} from \"../search-link.box\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const LiveSearchLinkDefaultBox = styled(SearchLinkBox)`\r\n &:before {\r\n background-position: -290px -448px;\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {SearchLinkBox} from \"../search-link.box\";\r\n\r\nexport const LiveSearchLinkCasino777Box = styled(SearchLinkBox)`\r\n &:before {\r\n background-position: -268px -523px;\r\n }\r\n`;","import {LiveSearchLinkDefaultBox} from \"./live-search-link.default.box\";\r\nimport {styledByTheme} from \"../../../../../../../themes/architecture/styled-by-theme\";\r\nimport {LiveSearchLinkCasino777Box} from \"./live-search-link.casino777.box\";\r\n\r\nexport const LiveSearchLinkBox = styledByTheme(LiveSearchLinkDefaultBox)\r\n .forCasino777(LiveSearchLinkCasino777Box)\r\n .apply();","import {SearchLinkBox} from \"../search-link.box\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const CardAndTableSearchLinkDefaultBox = styled(SearchLinkBox)`\r\n &:before {\r\n background-position: -241px -447px;\r\n }\r\n`;","import {SearchLinkBox} from \"../search-link.box\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const CardAndTableSearchLinkCasino777Box = styled(SearchLinkBox)`\r\n &:before {\r\n background-position: -233px -523px;\r\n }\r\n`;","import {CardAndTableSearchLinkDefaultBox} from \"./card-and-table-search.default.box\";\r\nimport {styledByTheme} from \"../../../../../../../themes/architecture/styled-by-theme\";\r\nimport {CardAndTableSearchLinkCasino777Box} from \"./card-and-table-search-link.casino777.box\";\r\n\r\nexport const CardAndTableSearchLinkBox = styledByTheme(CardAndTableSearchLinkDefaultBox)\r\n .forCasino777(CardAndTableSearchLinkCasino777Box)\r\n .apply();","import {SearchLinkBox} from \"../search-link.box\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const RegularSearchLinkDefaultBox = styled(SearchLinkBox)`\r\n &:before {\r\n background-position: -112px -630px;\r\n }\r\n`;","import {SearchLinkBox} from \"../search-link.box\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const RegularSearchLinkCasino777Box = styled(SearchLinkBox)`\r\n &:before {\r\n background-position: -460px -434px;\r\n }\r\n`;","import {RegularSearchLinkDefaultBox} from \"./regular-search-link.default.box\";\r\nimport {styledByTheme} from \"../../../../../../../themes/architecture/styled-by-theme\";\r\nimport {RegularSearchLinkCasino777Box} from \"./regular-search-link.casino777.box\";\r\n\r\nexport const RegularSearchLinkBox = styledByTheme(RegularSearchLinkDefaultBox)\r\n .forCasino777(RegularSearchLinkCasino777Box)\r\n .apply();","import React from 'react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {ISearchSuggestion} from '../../../../services/game-search/game-search-result';\r\nimport {HighlightSearchListItemComponent} from '../highlight-search-list-item/highlight-search-list-item.component';\r\nimport {observer} from 'mobx-react';\r\nimport {SearchResultItemBox} from \"./boxes/search-result-item-box/search-result-item.box\";\r\nimport {SlotsSearchLinkBox} from \"./boxes/search-links/slots-search-link/slots-search-link.box\";\r\nimport {LiveSearchLinkBox} from \"./boxes/search-links/live-search-link/live-search-link.box\";\r\nimport {CardAndTableSearchLinkBox} from \"./boxes/search-links/card-and-table-search-link/card-and-table-search-link.box\";\r\nimport {RegularSearchLinkBox} from \"./boxes/search-links/regular-search-link/regular-search-link.box\";\r\nimport {GAMES_CATEGORIES} from \"../../../../services/games/games-categories.enum\";\r\n\r\nexport interface SearchResultItemComponentProps {\r\n searchSuggestion: ISearchSuggestion\r\n}\r\n\r\n@observer\r\nexport class SearchResultItemComponent extends OrbitComponent {\r\n\r\n private _onClickHandler = () => {\r\n this.services.gameSearch.closeSearchResult();\r\n this.services.userMenu.closeMenu();\r\n this.services.sideMenu.closeMobileMenu();\r\n this.props.searchSuggestion.executeAction();\r\n this.services.analytics.sendAnalytics('Search', this.props.searchSuggestion.type, this.props.searchSuggestion.text);\r\n };\r\n\r\n _renderSearchLinkBox(iconStyle: string) {\r\n switch(iconStyle) {\r\n case GAMES_CATEGORIES.SLOTS:\r\n return (\r\n \r\n \r\n \r\n );\r\n case GAMES_CATEGORIES.LIVE:\r\n return (\r\n \r\n \r\n \r\n );\r\n case GAMES_CATEGORIES.CARD_AND_TABLE:\r\n return (\r\n \r\n \r\n \r\n );\r\n\r\n default:\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this._renderSearchLinkBox(this.props.searchSuggestion.linkIconClass)}\r\n \r\n );\r\n }\r\n}\r\n","import {SearchLinksListDefaultBox} from \"./search-links-list.default.box\";\r\n\r\nexport const SearchLinksListBox = SearchLinksListDefaultBox;","import styled from \"styled-components\";\r\n\r\nexport const SearchLinksListDefaultBox = styled.ul`\r\n margin: 0 0 2rem 0;\r\n padding: 0;\r\n border-left: 2px solid ${props => props.theme.colors.boxBorderLight};\r\n`;","import React from 'react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {SearchBoxTitleComponent} from '../search-box-title/search-box-title.component';\r\nimport {ISearchSuggestion} from '../../../../services/game-search/game-search-result';\r\nimport {observer} from 'mobx-react';\r\nimport {SearchResultItemComponent} from '../search-result-item/search-result-item.component';\r\nimport {SearchLinksListBox} from \"./boxes/search-links-list/search-links-list.box\";\r\n\r\nexport interface SuggestedCategoriesComponentProps {\r\n title: string;\r\n className: string;\r\n items: ISearchSuggestion[];\r\n}\r\n\r\n@observer\r\nexport class SuggestedLinksComponent extends OrbitComponent{\r\n\r\n private _renderSuggestedCategory(suggestedCategory: ISearchSuggestion) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n private _renderSuggestedCategories() {\r\n return this.props.items.map(suggestedCategory => this._renderSuggestedCategory(suggestedCategory))\r\n\r\n}\r\n\r\n render() {\r\n if(this.props.items.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {this._renderSuggestedCategories()}\r\n \r\n \r\n )\r\n }\r\n\r\n}\r\n","import { ISearchFormResultsProps } from './search-form-results.box.props';\r\nimport styled, { css } from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../themes/architecture/styled-by-device\";\r\n\r\nconst DefaultBox = styled.div`\r\n flex: 1;\r\n margin-left: 2rem;\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n position: relative;\r\n margin-right: 1rem;\r\n ${props => props.isHybridAndroid ? css`padding-bottom: 500px;` : \"\"}\r\n`;\r\n\r\nconst PCBox = styled(DefaultBox)`\r\n position: absolute;\r\n width: 45rem;\r\n margin: 5rem 0 0 0;\r\n padding: 1rem 1rem 1rem 5rem;\r\n background: ${props => props.theme.colors.backgroundMiddleDark};\r\n border: 1px solid ${props => props.theme.colors.boxBorderLight};\r\n border-radius: 2rem;\r\n max-height: calc(100vh - 55px);\r\n overflow-y: auto;\r\n\r\n &::-webkit-scrollbar {\r\n width: 5px;\r\n }\r\n\r\n &::-webkit-scrollbar-track {\r\n background: rgba(255, 255, 255, 0.1);\r\n }\r\n\r\n &::-webkit-scrollbar-thumb {\r\n background: rgba(255, 255, 255, 0.5);\r\n }\r\n\r\n &::-webkit-scrollbar-thumb:hover {\r\n background: rgba(255, 255, 255, 0.8);\r\n }\r\n`;\r\n\r\nexport const SearchFormResultsDefaultBox = styledByDevice(PCBox, MobileBox);","import styled, { css } from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../themes/architecture/styled-by-device\";\r\nimport { ISearchFormResultsProps } from \"./search-form-results.box.props\";\r\n\r\nconst DefaultBox = styled.div`\r\n flex: 1;\r\n background-size: 4px 4px;\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n padding: 1rem;\r\n margin: 1rem 0;\r\n background: linear-gradient(-45deg,rgba(252,246,213,0.8) 33.33%,rgba(25,50,47,0.1) 33.33%,rgba(25,50,47,0.2) 50%,rgba(252,246,213,0.8) 50%,rgba(252,246,213,0.8) 83.33%,rgba(25,50,47,0.1) 83.33%,rgba(25,50,47,0.1) 100%);\r\n ${props => props.isHybridAndroid ? css`padding-bottom: 500px;` : \"\"}\r\n`;\r\n\r\nconst PCBox = styled(DefaultBox)`\r\n position: absolute;\r\n width: 45rem;\r\n margin: 5rem 0 0 0;\r\n padding: 1rem 1rem 1rem 5rem;\r\n border-radius: 5px;\r\n background: ${props => props.theme.colors.background};\r\n border: 1px solid ${props => props.theme.colors.boxBorderLight};\r\n`;\r\n\r\nexport const SearchFormResultsCasino777Box = styledByDevice(PCBox, MobileBox);","import {SearchFormResultsDefaultBox} from \"./search-form-results.default.box\";\r\nimport {styledByTheme} from \"../../../../../themes/architecture/styled-by-theme\";\r\nimport {SearchFormResultsCasino777Box} from \"./search-form-results.casino777.box\";\r\n\r\nexport const SearchFormResultsBox = styledByTheme(SearchFormResultsDefaultBox)\r\n .forCasino777(SearchFormResultsCasino777Box)\r\n .apply();","import styled from \"styled-components\";\r\n\r\nexport const SearchFormResultsWrapperDefaultBox = styled.div`\r\n\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const SearchFormResultsWrapperCasino777Box = styled.div`\r\n background: ${props => props.theme.colors.brandSecondary};\r\n padding: 1rem;\r\n`;","import {styledByTheme} from \"../../../../../themes/architecture/styled-by-theme\";\r\nimport {SearchFormResultsWrapperDefaultBox} from \"./search-form-results-wrapper.default.box\";\r\nimport {SearchFormResultsWrapperCasino777Box} from \"./search-form-results-wrapper.casino777.box\";\r\n\r\nexport const SearchFormResultsWrapperBox = styledByTheme(SearchFormResultsWrapperDefaultBox)\r\n.forCasino777(SearchFormResultsWrapperCasino777Box)\r\n.apply();","import React from 'react';\r\nimport { OrbitComponentWithState } from '../../base-components/orbit-component-with-state/orbit-component-with-state';\r\nimport { observer } from 'mobx-react';\r\nimport { FoundGamesComponent } from \"./found-games/found-games.component\";\r\nimport { SuggestedLinksComponent } from \"./suggested-links/suggested-links.component\";\r\nimport { SearchFormResultsBox } from \"./boxes/search-form-results-box/search-form-results.box\";\r\nimport { SearchFormResultsWrapperBox } from \"./boxes/search-form-results-wrapper-box/search-form-results-wrapper.box\";\r\nimport { SuggestedGamesComponent } from './suggested-games/suggested-games.component';\r\n\r\n\r\nexport interface ISearchResultComponentState {\r\n loadedGames: number;\r\n}\r\n\r\nconst LOAD_BATCH_SIZE = 12;\r\n\r\nconst defaultState: ISearchResultComponentState = {\r\n loadedGames: LOAD_BATCH_SIZE\r\n}\r\n\r\n@observer\r\nexport class SearchResultComponent extends OrbitComponentWithState<{}, ISearchResultComponentState> {\r\n\r\n state = {...defaultState};\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n this.reaction(() => this.services.gameSearch.currentSearchText, () => {\r\n this._resetState();\r\n })\r\n }\r\n\r\n private _onLoadMore = () => {\r\n this.services.analytics.sendAnalytics('Search', 'Entry', 'Show_More');\r\n const moreItems = Math.min(this.state.loadedGames + LOAD_BATCH_SIZE, this.services.gameSearch.searchResult.games.length);\r\n this.setState({\r\n loadedGames: moreItems\r\n });\r\n }\r\n\r\n private _resetState() {\r\n this.setState({...defaultState});\r\n }\r\n\r\n _renderSearchResults() {\r\n if (this.services.gameSearch.isSearchInProgress) {\r\n return (\r\n <>\r\n \r\n {this.services.miniOrbit.isEnabled ? null : }\r\n \r\n );\r\n } else {\r\n return (\r\n <>\r\n \r\n {this.services.miniOrbit.isEnabled ? null : }\r\n \r\n );\r\n }\r\n }\r\n\r\n render() {\r\n if (!this.services.gameSearch.isSearchBoxOpened) {\r\n return null;\r\n }\r\n\r\n const isHybridAndroid = this.services.device.hybrid.isHybrid && !this.services.device.os.isIOS;\r\n\r\n return (\r\n \r\n \r\n {this._renderSearchResults()}\r\n \r\n \r\n );\r\n }\r\n}\r\n","import styled, {css} from \"styled-components\";\r\nimport {ISearchClearIconBoxProps} from \"./search-clear-icon.box\";\r\n\r\nexport const SearchClearIconDefaultBox = styled.i`\r\n position: absolute;\r\n right: 2rem;\r\n width: 3rem;\r\n height: 3rem;\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-repeat: no-repeat;\r\n background-position: -857px -643px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n z-index: 2;\r\n \r\n ${props => !props.visible && css`\r\n display: none;\r\n `}\r\n`;","import styled from \"styled-components\";\r\nimport {SearchClearIconDefaultBox} from \"./search-clear-icon.default.box\";\r\n\r\nexport const SearchClearIconCasino777Box = styled(SearchClearIconDefaultBox)`\r\n background-position: -585px -519px;\r\n`;","import {SearchClearIconDefaultBox} from \"./search-clear-icon.default.box\";\r\nimport {styledByTheme} from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport {SearchClearIconCasino777Box} from \"./search-clear-icon.casino777.box\";\r\n\r\nexport interface ISearchClearIconBoxProps {\r\n visible: boolean;\r\n}\r\n\r\nexport const SearchClearIconBox = styledByTheme(SearchClearIconDefaultBox)\r\n .forCasino777(SearchClearIconCasino777Box)\r\n .apply();","import styled from \"styled-components\";\r\n\r\nexport const SearchInputMobileDefaultBox = styled.ul`\r\n position: relative;\r\n margin: 1rem 0 0 0;\r\n`;","import styled from \"styled-components\";\r\nimport {SearchInputMobileDefaultBox} from \"./search-input-mobile.default.box\";\r\n\r\nexport const SearchInputMobileCasino777Box = styled(SearchInputMobileDefaultBox)`\r\n padding: 1rem;\r\n background: linear-gradient(-45deg, rgba(252,246,213,0.8) 33.33%, rgba(25,50,47,0.1) 33.33%, rgba(25,50,47,0.2) 50%, rgba(252,246,213,0.8) 50%, rgba(252,246,213,0.8) 83.33%, rgba(25,50,47,0.1) 83.33%, rgba(25,50,47,0.1) 100%);\r\n background-size: 4px 4px;\r\n border-radius: 5px;\r\n box-shadow: 2px 3px 1rem rgba(25,50,48,0.2);\r\n`;","import {SearchInputMobileDefaultBox} from \"./search-input-mobile.default.box\";\r\nimport {styledByTheme} from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport {SearchInputMobileCasino777Box} from \"./search-input-mobile.casino777.box\";\r\n\r\nexport const SearchInputMobileBox = styledByTheme(SearchInputMobileDefaultBox)\r\n .forCasino777(SearchInputMobileCasino777Box)\r\n .apply();","import styled from \"styled-components\";\r\n\r\nexport const SearchBoxMobileIconDefaultBox = styled.i`\r\n display: block;\r\n position: absolute;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n left: 1rem;\r\n width: 3rem;\r\n height: 3rem;\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-repeat: no-repeat;\r\n background-position: -138px -626px;\r\n z-index: 2;\r\n`;","import styled from \"styled-components\";\r\nimport {SearchBoxMobileIconDefaultBox} from \"./search-box-mobile-icon.default.box\";\r\n\r\nexport const SearchBoxMobileIconCasino777Box= styled(SearchBoxMobileIconDefaultBox)`\r\n left: 2rem;\r\n background-position: -488px -581px;\r\n`;\r\n","import {SearchBoxMobileIconDefaultBox} from \"./search-box-mobile-icon.default.box\";\r\nimport {styledByTheme} from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport {SearchBoxMobileIconCasino777Box} from \"./search-box-mobile-icon.casino777.box\";\r\n\r\nexport const SearchBoxMobileIconBox = styledByTheme(SearchBoxMobileIconDefaultBox)\r\n .forCasino777(SearchBoxMobileIconCasino777Box)\r\n .apply();","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../../themes/architecture/styled-by-device\";\r\n\r\nconst SearchInputArenaMutual = styled.input`\r\n height: initial;\r\n margin: auto 0;\r\n color: ${props => props.theme.colors.textLight};\r\n background: ${props => props.theme.colors.backgroundLight};\r\n\r\n &:focus {\r\n background: ${props => props.theme.colors.backgroundLight};\r\n }\r\n`;\r\n\r\nexport const SearchInputArenaDefaultPCBox = styled(SearchInputArenaMutual)`\r\n position: relative;\r\n width: 32rem;\r\n padding: 1rem 2rem 1rem 5rem;\r\n font-size: 1.4rem;\r\n font-weight: 700;\r\n line-height: 1;\r\n border-radius: 2rem;\r\n border: 2px solid transparent;\r\n transition: width 0.2s ease;\r\n\r\n &:focus {\r\n width: 45rem;\r\n transition: width 0.2s ease;\r\n }\r\n &::placeholder {\r\n color: ${props => props.theme.colors.textMiddleDark};\r\n }\r\n`;\r\nexport const SearchInputArenaDefaultMobileBox = styled(SearchInputArenaMutual)`\r\n display: flex;\r\n width: 100%;\r\n padding: 1.5rem 5.5rem;\r\n ${({theme}) => theme.font.presets.regular};\r\n font-size: 1.6rem;\r\n font-weight: 300;\r\n border: none;\r\n\r\n &::placeholder {\r\n color: ${props => props.theme.colors.textLight};\r\n }\r\n\r\n &:focus {\r\n border: none;\r\n box-shadow: none;\r\n }\r\n`;\r\n\r\nexport const SearchInputAreaDefaultBox = styledByDevice(SearchInputArenaDefaultPCBox,SearchInputArenaDefaultMobileBox);","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../../themes/architecture/styled-by-device\";\r\n\r\nconst SearchInputAreaMutual = styled.input`\r\n color: ${props => props.theme.colors.textMiddleDark};\r\n height: initial;\r\n margin: 0;\r\n background: ${props => props.theme.colors.background};\r\n\r\n &:focus {\r\n box-shadow: none;\r\n outline: none;\r\n }\r\n\r\n &::placeholder {\r\n color: ${props => props.theme.colors.textMiddleDark};\r\n }\r\n`;\r\n\r\nconst SearchInputAreaCasino777PCBox = styled(SearchInputAreaMutual)`\r\n width: 32rem;\r\n padding: 1rem 2rem 1rem 5rem;\r\n font-size: 1.4rem;\r\n font-weight: 700;\r\n line-height: 1;\r\n border: 2px solid ${props => props.theme.colors.textMiddleDark};\r\n transition: width 0.2s ease;\r\n border-radius: 5px;\r\n\r\n &:focus {\r\n border: 2px solid ${props => props.theme.colors.textMiddleDark};\r\n }\r\n`;\r\nconst SearchInputAreaCasino777MobileBox = styled(SearchInputAreaMutual)`\r\n display: flex;\r\n width: 100%;\r\n padding: 1.5rem 5.5rem;\r\n ${({theme}) => theme.font.presets.regular};\r\n font-size: 1.6rem;\r\n font-weight: 400;\r\n border: none;\r\n`;\r\n\r\nexport const SearchInputAreaCasino777Box = styledByDevice(SearchInputAreaCasino777PCBox,SearchInputAreaCasino777MobileBox);","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../../themes/architecture/styled-by-device\";\r\nimport {SearchInputArenaDefaultMobileBox, SearchInputArenaDefaultPCBox} from \"./search-input-area.default.box\";\r\n\r\nconst SearchInputArenaHarrahsPCBox = styled(SearchInputArenaDefaultPCBox)`\r\n border: 2px solid ${props => props.theme.colors.boxBorderDark};\r\n`;\r\n\r\nexport const SearchInputArenaHarrahsBox = styledByDevice(SearchInputArenaHarrahsPCBox, SearchInputArenaDefaultMobileBox);","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../../themes/architecture/styled-by-device\";\r\n\r\nconst SearchInputMutual = styled.input`\r\n height: initial;\r\n display: flex;\r\n margin: auto 0;\r\n background: ${props => props.theme.colors.background};\r\n ${({theme}) => theme.font.presets.regular};\r\n font-weight: 300;\r\n color: ${props => props.theme.colors.textLight};\r\n\r\n &:focus {\r\n outline: none;\r\n box-shadow: none;\r\n }\r\n`;\r\n\r\nconst SearchInputAreaPCBox = styled(SearchInputMutual)`\r\n position: relative;\r\n width: 0;\r\n padding: 1rem 1.85rem;\r\n\r\n border-radius: 4rem;\r\n line-height: 1;\r\n font-size: 1.4rem;\r\n border: 1px solid ${props => props.theme.colors.textMiddleDark};\r\n transition: width 0.5s ease, padding 0.5s ease;\r\n cursor: pointer;\r\n\r\n &::placeholder{\r\n color: ${props => props.theme.colors.textMiddleDark};\r\n }\r\n\r\n &:focus {\r\n transition: width 0.5s ease, padding 0.5s ease;\r\n width: 25rem;\r\n padding-left: 5rem;\r\n }\r\n\r\n`;\r\n\r\n\r\nconst SearchInputAreaMobileBox = styled(SearchInputMutual)`\r\n position: relative;\r\n width: 100%;\r\n font-size: 1.6rem;\r\n border: none;\r\n transition: width 0.5s ease;\r\n padding: 1.5rem 5.5rem;\r\n\r\n &::placeholder{\r\n color: ${props => props.theme.colors.textLight};\r\n }\r\n\r\n`;\r\n\r\nexport const SearchInputAreaCasino888Box = styledByDevice(SearchInputAreaPCBox, SearchInputAreaMobileBox);","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../../themes/architecture/styled-by-device\";\r\nimport {SearchInputArenaDefaultMobileBox, SearchInputArenaDefaultPCBox} from \"./search-input-area.default.box\";\r\n\r\nconst SearchInputAreaBallysDoverPCBox = styled(SearchInputArenaDefaultPCBox)`\r\n border: 2px solid ${props => props.theme.colors.backgroundLight};\r\n`;\r\n\r\nexport const SearchInputAreaBallysDoverBox = styledByDevice(SearchInputAreaBallysDoverPCBox, SearchInputArenaDefaultMobileBox);\r\n","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../../themes/architecture/styled-by-device\";\r\nimport {SearchInputArenaDefaultMobileBox, SearchInputArenaDefaultPCBox} from \"./search-input-area.default.box\";\r\n\r\nconst SearchInputAreaDelawareParkPCBox = styled(SearchInputArenaDefaultPCBox)`\r\n border: 2px solid ${props => props.theme.colors.backgroundLight};\r\n`;\r\n\r\nexport const SearchInputAreaDelawareParkBox = styledByDevice(SearchInputAreaDelawareParkPCBox, SearchInputArenaDefaultMobileBox);\r\n","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../../themes/architecture/styled-by-device\";\r\nimport {SearchInputArenaDefaultMobileBox, SearchInputArenaDefaultPCBox} from \"./search-input-area.default.box\";\r\n\r\nconst SearchInputAreaHarringtonPCBox = styled(SearchInputArenaDefaultPCBox)`\r\n border: 2px solid ${props => props.theme.colors.backgroundLight};\r\n`;\r\n\r\nexport const SearchInputAreaHarringtonBox = styledByDevice(SearchInputAreaHarringtonPCBox, SearchInputArenaDefaultMobileBox);\r\n","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../../themes/architecture/styled-by-device\";\r\nimport {SearchInputArenaDefaultMobileBox, SearchInputArenaDefaultPCBox} from \"./search-input-area.default.box\";\r\n\r\nconst SearchInputArenaSIPCBox = styled(SearchInputArenaDefaultPCBox)`\r\n border: 1.7px solid ${props => props.theme.colors.textMiddleDark};\r\n background-color: ${props => props.theme.colors.backgroundDark};\r\n`;\r\n\r\nexport const SearchInputArenaSIBox = styledByDevice(SearchInputArenaSIPCBox, SearchInputArenaDefaultMobileBox);","import {styledByTheme} from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport {SearchInputAreaDefaultBox} from \"./search-input-area.default.box\";\r\nimport {SearchInputAreaCasino777Box} from \"./search-input-area.casino777.box\";\r\nimport {SearchInputArenaHarrahsBox} from \"./search-input-area.harrahs.box\";\r\nimport {SearchInputAreaCasino888Box} from \"./search-input-area.casino888.box\";\r\nimport {SearchInputAreaBallysDoverBox} from \"./search-input-area.ballysdover.box\";\r\nimport {SearchInputAreaDelawareParkBox} from \"./search-input-area.delawarepark.box\";\r\nimport {SearchInputAreaHarringtonBox} from \"./search-input-area.harrington.box\";\r\nimport {SearchInputArenaSIBox} from \"./search-input-arena.si.box\";\r\n\r\n\r\nexport const SearchInputAreaBox = styledByTheme(SearchInputAreaDefaultBox)\r\n .forCasino888(SearchInputAreaCasino888Box)\r\n .forCasino777(SearchInputAreaCasino777Box)\r\n .forHarrahs(SearchInputArenaHarrahsBox)\r\n .forBallysDover(SearchInputAreaBallysDoverBox)\r\n .forDelawarePark(SearchInputAreaDelawareParkBox)\r\n .forHarrington(SearchInputAreaHarringtonBox)\r\n .forSI(SearchInputArenaSIBox)\r\n .apply();\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\nimport {SearchInputAreaBox} from \"./boxes/search-input-area-box/search-input-area.box\";\r\nimport {CyClass} from '../../../../../common/cy-classes';\r\n\r\n@observer\r\nexport class SearchInputArea extends OrbitComponent<{}> {\r\n\r\n private _onChangeHandlder = (event: React.ChangeEvent) => {\r\n this.services.gameSearch.search(event.target.value);\r\n };\r\n\r\n private _onClickHandler = () => {\r\n this.services.gameSearch.openSearchResult();\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {SearchClearIconBox} from \"./boxes/search-clear-icon/search-clear-icon.box\";\r\nimport {SearchInputMobileBox} from \"./boxes/search-input-mobile/search-input-mobile.box\";\r\nimport {SearchBoxMobileIconBox} from \"./boxes/search-box-mobile-icon/search-box-mobile-icon.box\";\r\nimport {SearchInputArea} from \"../search-input-area/search-input-area\";\r\nimport {CyClass} from \"../../../../../common/cy-classes\";\r\n\r\ninterface SearchInputMobileComponentProps {\r\n isSearchOpenAlways?: boolean;\r\n}\r\n\r\n@observer\r\nexport class SearchInputMobileComponent extends OrbitComponent {\r\n private _onResetSearchTextHandler = () => {\r\n this.services.gameSearch.search('');\r\n this.services.gameSearch.searchInputRef?.current?.focus();\r\n };\r\n\r\n private get _showResetSearchIcon(): boolean {\r\n return (this.services.gameSearch.currentSearchText || '').length > 0;\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import {SearchInputFormDefaultBox} from \"./search-input-form.default.box\";\r\n\r\nexport const SearchInputFormBox = SearchInputFormDefaultBox;","import styled from \"styled-components\";\r\n\r\nexport const SearchInputFormDefaultBox = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const SearchPCIconBoxDefault = styled.i`\r\n display: block;\r\n position: absolute;\r\n top: 50%;\r\n left: 0.35rem;\r\n transform: translateY(-50%);\r\n width: 30px;\r\n height: 30px;\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-position: -138px -626px;\r\n z-index: 2;\r\n pointer-events: none;\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow}, ${({theme}) => theme.mediaQuery.lowHeight} {\r\n left: 0.15rem;\r\n transform: scale(0.9) translateY(-55%);\r\n }\r\n\r\n`;","import styled from \"styled-components\";\r\nimport {SearchPCIconBoxDefault} from \"./search-pc-icon.default.box\";\r\nimport {SearchInputFormBox} from \"../search-input-form/search-input-form.box\";\r\n\r\nexport const SearchPCIconCasino777Box = styled(SearchPCIconBoxDefault)`\r\n background-position: -453px -581px;\r\n\r\n ${SearchInputFormBox}:hover & {\r\n background-position: -488px -581px;\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {SearchPCIconBoxDefault} from \"./search-pc-icon.default.box\";\r\nimport {SearchInputFormBox} from \"../search-input-form/search-input-form.box\";\r\n\r\nexport const SearchPCIconHarrahsBox = styled(SearchPCIconBoxDefault)`\r\n opacity: 0.5;\r\n \r\n ${SearchInputFormBox}:hover & {\r\n opacity: 1\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {SearchPCIconBoxDefault} from \"./search-pc-icon.default.box\";\r\nimport {SearchInputFormBox} from \"../search-input-form/search-input-form.box\";\r\n\r\nexport const SearchPCIconWSOPBox = styled(SearchPCIconBoxDefault)`\r\n opacity: 0.5;\r\n \r\n ${SearchInputFormBox}:hover & {\r\n opacity: 1\r\n }\r\n`;","import {SearchPCIconBoxDefault} from \"./search-pc-icon.default.box\";\r\nimport {styledByTheme} from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport {SearchPCIconCasino777Box} from \"./search-pc-icon.casino777.box\";\r\nimport {SearchPCIconHarrahsBox} from \"./search-pc-icon.harrahs.box\";\r\nimport {SearchPCIconWSOPBox} from \"./search-pc-icon.wsop.box\";\r\n\r\nexport const SearchPCIconBox = styledByTheme(SearchPCIconBoxDefault)\r\n .forCasino777(SearchPCIconCasino777Box)\r\n .forHarrahs(SearchPCIconHarrahsBox)\r\n .forWsop(SearchPCIconWSOPBox)\r\n .apply();","import {OrbitComponent} from \"../../../base-components/orbit-component/orbit-component\";\r\nimport React from \"react\";\r\nimport {SearchInputArea} from \"../search-input-area/search-input-area\";\r\nimport {SearchInputFormBox} from \"./boxes/search-input-form/search-input-form.box\";\r\nimport {SearchPCIconBox} from \"./boxes/search-pc-icon/search-pc-icon.box\";\r\nimport {observer} from \"mobx-react\";\r\n\r\n@observer\r\nexport class SearchInputPCComponent extends OrbitComponent<{}> {\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}","import styled, {css} from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../themes/architecture/styled-by-device\";\r\n\r\ninterface GameSearchDefaultBoxProps {\r\n open: boolean;\r\n}\r\n\r\nconst GameSearchMobileDefaultBox = styled.div`\r\n ${({open}) => open && css`\r\n flex: 1;\r\n `}\r\n`;\r\n\r\nconst GameSearchPCDefaultBox = styled.div`\r\n position: relative;\r\n display: flex;\r\n`;\r\n\r\n\r\nexport const GameSearchBox: any = styledByDevice(GameSearchPCDefaultBox, GameSearchMobileDefaultBox);","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {SearchResultComponent} from './search-result/search-result.component';\r\nimport {SearchInputMobileComponent} from \"./search-input/search-input-mobile/search-input-mobile.component\";\r\nimport {SearchInputPCComponent} from \"./search-input/search-input-pc/search-input-pc.component\";\r\nimport {GameSearchBox} from \"./boxes/game-search-box/game-search.box\";\r\nimport {CyClass} from '../../../common/cy-classes';\r\nimport classNames from 'classnames';\r\n\r\nexport interface IGameSearchComponentProps {\r\n className?: string;\r\n}\r\n\r\n@observer\r\nexport class GameSearchComponent extends OrbitComponent {\r\n _renderSearchInput() {\r\n return this.services.device.isMobile ? : ;\r\n }\r\n\r\n private _onUpdate = () => {\r\n this.services.gameSearch.searchResultComponentRef.current?.scrollTo(0, 0);\r\n }\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n this.services.gameSearch.searchInputRef?.current.addEventListener(\"input\", this._onUpdate);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.services.gameSearch.searchInputRef?.current.removeEventListener(\"input\", this._onUpdate);\r\n super.componentWillUnmount();\r\n }\r\n \r\n render() {\r\n return (\r\n \r\n {this._renderSearchInput()}\r\n \r\n \r\n );\r\n }\r\n\r\n}\r\n","import React, {createRef} from \"react\";\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IGameSearchService} from './game-search.service.interface';\r\nimport {DomEventSubscription} from '../../../utils/event-listener-registration';\r\nimport {action, computed, observable} from 'mobx';\r\nimport {\r\n SearchLinkSuggestion,\r\n GameSearchResult,\r\n GameSuggestion,\r\n ISearchSuggestion,\r\n SUGGESTED_CATEGORIES\r\n} from './game-search-result';\r\nimport {SuggestedLinkConfiguration} from '../configurations/config-data-sections/game-search-box.configuration';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {GameInfo, gameInfoComparerByTitle} from '../games/game-info';\r\nimport {IModalDialogHandler} from \"../dialog/dialog.service.interface\";\r\nimport {GameSearchComponent} from \"../../components/game-search/game-search.component\";\r\nimport {removeSpecialCharacters} from \"../../../utils/string-helpers\";\r\nimport { LIST_TYPE_ID } from \"../../../common/const/ai-trending-list-ids-map\";\r\nimport {IOverlayConsumer} from \"../overlay/overlay-consumer.interface\";\r\n\r\nexport class GameSearchService extends ServiceBase implements IGameSearchService, IOverlayConsumer {\r\n\r\n private _closeMobileSideMenuOnSearchClose: boolean = false;\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n\r\n this.services.overlay.registerConsumer(this);\r\n\r\n this.reaction(() => this.services.games.gamesMap,\r\n () => {\r\n this._resetGamesSearchListCache();\r\n this.search(this.currentSearchText);\r\n }, {\r\n fireImmediately: true\r\n });\r\n\r\n this.reaction(() => {\r\n return {\r\n trendingRecommendedGamesForPlayerByBets: this.services.aiEngine.trendingRecommendedGamesForPlayerByBets,\r\n aiRecommendedGames: this.services.aiEngine.aiRecommendedGames\r\n }\r\n },\r\n () => {\r\n if(!this.isSearchInProgress) {\r\n this._setDefaultSearchResult();\r\n }\r\n });\r\n }\r\n private _miniOrbitSearchBoxDialogHandler: IModalDialogHandler | null = null;\r\n\r\n private _searchInputRef: React.RefObject = createRef();\r\n private _searchComponentRef: React.RefObject = createRef();\r\n private _searchResultComponentRef: React.RefObject = createRef();\r\n\r\n private _gamesSearchListCache: GameInfo[] | null = null;\r\n private get gamesSearchList(): GameInfo[] {\r\n if(!this._gamesSearchListCache) {\r\n this._gamesSearchListCache = this._buildGamesSearchList()\r\n }\r\n\r\n return this._gamesSearchListCache;\r\n }\r\n\r\n _resetGamesSearchListCache() {\r\n this._gamesSearchListCache = null;\r\n }\r\n\r\n private _buildGamesSearchList(): GameInfo[] {\r\n return Object.values(this.services.games.gamesMap).sort(gameInfoComparerByTitle);\r\n }\r\n\r\n private _openMiniOrbitSearchDialog(): void {\r\n this.services.dialog.showModal((dialogHandler) => {\r\n this._miniOrbitSearchBoxDialogHandler = dialogHandler;\r\n return ();\r\n }, {\r\n title: ' ',\r\n onClosed: () => this.closeSearchResult(),\r\n forceFullscreenTablet: true\r\n });\r\n }\r\n\r\n get needsOverlay(): boolean {\r\n return this.isSearchBoxOpened;\r\n }\r\n\r\n getOverlayZIndex(): number | undefined {\r\n return undefined;\r\n }\r\n\r\n onOverlayClicked() {\r\n this.closeSearchResult();\r\n }\r\n\r\n private _openFullOrbitSearchResult() {\r\n this._disposeDocumentClickSubscription();\r\n /*\r\n * Handle search result close on document click\r\n * Wonder why we use setTimeout? From React 17 the events are bound to react-dom root element instead of window.document\r\n * Read more here: https://github.com/facebook/react/issues/20636\r\n */\r\n setTimeout(() => {\r\n this._documentClickSubscription = this.services.dom.subscribeTo.click(this._handleClickOutsideSearchComponent);\r\n });\r\n\r\n }\r\n\r\n get searchInputRef() {\r\n return this._searchInputRef;\r\n }\r\n\r\n get searchComponentRef() {\r\n return this._searchComponentRef;\r\n }\r\n\r\n get searchResultComponentRef() {\r\n return this._searchResultComponentRef;\r\n }\r\n\r\n openSearchResult(): void {\r\n if(this.isSearchBoxOpened) { //No need to open it if is already opened\r\n return;\r\n }\r\n\r\n if(this.services.miniOrbit.isEnabled) {\r\n this._openMiniOrbitSearchDialog();\r\n } else {\r\n this._openFullOrbitSearchResult();\r\n }\r\n\r\n this._setIsSearchBoxOpened(true);\r\n\r\n this.searchInputRef?.current?.focus();\r\n\r\n if(this.services.device.isMobile){\r\n this._closeMobileSideMenuOnSearchClose = !this.services.sideMenu.isMobileMenuOpen;\r\n if(!this.services.sideMenu.isMobileMenuOpen) {\r\n this.services.sideMenu.openMobileMenu();\r\n }\r\n }\r\n\r\n this.services.analytics.sendAnalytics('Navigation', this.services.routing.currentRoute?.data?.arenaType || 'Header', 'Search_Open');\r\n }\r\n\r\n\r\n private _documentClickSubscription: DomEventSubscription | null = null;\r\n\r\n private _disposeDocumentClickSubscription() {\r\n if(this._documentClickSubscription) {\r\n this._documentClickSubscription.dispose();\r\n this._documentClickSubscription = null;\r\n }\r\n }\r\n\r\n\r\n private _closeMiniOrbitSearchDialog = () => {\r\n if(this._miniOrbitSearchBoxDialogHandler) {\r\n this._miniOrbitSearchBoxDialogHandler.close();\r\n this._miniOrbitSearchBoxDialogHandler = null;\r\n }\r\n };\r\n\r\n\r\n private _closeFullOrbitSearchResult = () => {\r\n this._disposeDocumentClickSubscription();\r\n };\r\n\r\n private _handleClickOutsideSearchComponent = (event) => {\r\n if (this._searchComponentRef.current && !this._searchComponentRef.current.contains(event.target)) {\r\n this.closeSearchResult();\r\n }\r\n }\r\n\r\n closeSearchResult = () => {\r\n if(!this.isSearchBoxOpened) { //if is already closed don't close it again\r\n return;\r\n }\r\n if(this.services.miniOrbit.isEnabled) {\r\n this._closeMiniOrbitSearchDialog();\r\n } else {\r\n this._closeFullOrbitSearchResult();\r\n }\r\n\r\n if(this._closeMobileSideMenuOnSearchClose){\r\n this._closeMobileSideMenuOnSearchClose = false;\r\n this.services.sideMenu.closeMobileMenu();\r\n }\r\n\r\n this._setIsSearchBoxOpened(false);\r\n\r\n //Will called when search box close or when game is selected (And closing the results as well)\r\n if(this.isSearchInProgress)\r\n this.services.analytics.sendAnalytics('Search', 'Entry', this.currentSearchText);\r\n\r\n this._setCurrentSearchText('');\r\n this._setDefaultSearchResult();\r\n };\r\n\r\n private _getGameSuggestion() {\r\n const gamesSuggestions: GameSuggestion[] = [];\r\n let aiSortingTypeForAnalytics:string = \"byactiveusers\";\r\n let aiGames = this.services.aiEngine.trendingRecommendedGamesForPlayerByActiveUsers;\r\n\r\n if(!(aiGames?.length > 0)) {\r\n aiSortingTypeForAnalytics = 'config';\r\n aiGames = this.services.configuration.data.search.suggestedGames;\r\n }\r\n\r\n aiGames.forEach(gameType => {\r\n const gameInfo = this.services.games.gamesMap[gameType];\r\n\r\n if(!Check.isNullOrUndefined(gameInfo)){\r\n gamesSuggestions.push(new GameSuggestion(this.services, gameInfo, `Suggested_Games_${aiSortingTypeForAnalytics}`, gamesSuggestions.length, aiSortingTypeForAnalytics))\r\n }\r\n });\r\n\r\n return gamesSuggestions.slice(0, 6);\r\n }\r\n\r\n private _setDefaultSearchResult() {\r\n const quickLinks = this.services.configuration.data.search.quickLinks\r\n .map(quickLinkConfig => new SearchLinkSuggestion(quickLinkConfig, this.services, 'Quick_Links'));\r\n\r\n this._setSearchResult(new GameSearchResult([], quickLinks, this._getGameSuggestion()));\r\n }\r\n\r\n @computed get isSearchInProgress(): boolean {\r\n return this.currentSearchText.length >= 2;\r\n }\r\n\r\n @observable isSearchBoxOpened: boolean = false;\r\n @action.bound\r\n private _setIsSearchBoxOpened(value: boolean) {\r\n this.isSearchBoxOpened = value;\r\n }\r\n\r\n @observable currentSearchText: string = '';\r\n @action.bound\r\n private _setCurrentSearchText(value: string): void {\r\n this.currentSearchText = value;\r\n }\r\n\r\n search(text: string): void {\r\n text = text || '';\r\n\r\n if(!this.isSearchBoxOpened && text.length > 0) {\r\n this.openSearchResult();\r\n }\r\n\r\n this._setCurrentSearchText(text);\r\n\r\n if(this.isSearchInProgress) { //we only search if there are at least 2 characters typed in the search box\r\n let regEx = new RegExp(removeSpecialCharacters(text), 'gi');\r\n this._setSearchResult(this._getSearchResult(regEx));\r\n } else {\r\n this._setDefaultSearchResult();\r\n }\r\n }\r\n\r\n\r\n private _getSearchResult(regEx: RegExp): GameSearchResult {\r\n let games = this._searchForGames(regEx);\r\n let suggestedCategories: ISearchSuggestion[];\r\n if(games.length === 0) {\r\n suggestedCategories = this._getDefaultSuggestedCategories();\r\n } else {\r\n suggestedCategories = this._searchForSuggestedCategories(regEx);\r\n }\r\n\r\n return new GameSearchResult(games, suggestedCategories, this._getGameSuggestion());\r\n }\r\n\r\n @observable.ref\r\n searchResult: GameSearchResult;\r\n\r\n @action.bound\r\n private _setSearchResult(value: GameSearchResult) {\r\n this.searchResult = value;\r\n }\r\n\r\n private _searchForGames(regEx: RegExp): ISearchSuggestion[] {\r\n\r\n const result: GameInfo[] = [];\r\n const gameTypeToGameInfoObj = {};\r\n\r\n this.gamesSearchList.forEach((gameInfo) => {\r\n if (removeSpecialCharacters(gameInfo.title).match(regEx)) {\r\n result.push(gameInfo);\r\n gameTypeToGameInfoObj[gameInfo.gameType] = gameInfo;\r\n }\r\n });\r\n\r\n const sortedResultGameTypes = this.services.aiEngine.sortGamesByAI(result.map(gameInfo => gameInfo.gameType), LIST_TYPE_ID.ACTIVE_USERS);\r\n return sortedResultGameTypes.map((gameType, index) => new GameSuggestion(this.services, gameTypeToGameInfoObj[gameType], `Search_Results`, index, 'byactiveusers'));\r\n }\r\n\r\n\r\n private _searchForSuggestedCategories(regEx: RegExp): ISearchSuggestion[] {\r\n let suggestedCategoriesOptions = this.services.configuration.data.search.suggestedCategories.suggestedCategoriesOptions;\r\n if(!suggestedCategoriesOptions) {\r\n return this._getDefaultSuggestedCategories();\r\n }\r\n\r\n for(let i = 0; i < suggestedCategoriesOptions.length; i++) {\r\n let option = suggestedCategoriesOptions[i];\r\n let result: ISearchSuggestion[] = [];\r\n if(option.search.match(regEx) && option.categories && option.categories.length > 0) {\r\n result = option.categories.map(categoryConfig => this._createSuggestedCategory(categoryConfig))\r\n // TODO: Remove this after updating the Check signatures. Let type inference do the magic\r\n .filter((categorySuggestion): categorySuggestion is ISearchSuggestion => !Check.isNullOrUndefined(categorySuggestion));\r\n }\r\n\r\n if(result.length > 0) {\r\n return result;\r\n }\r\n }\r\n\r\n return this._getDefaultSuggestedCategories();\r\n }\r\n\r\n private _getDefaultSuggestedCategories(): ISearchSuggestion[] {\r\n return this.services.configuration.data.search.suggestedCategories.defaultSuggestedCategories\r\n .map(suggestedCategory => this._createSuggestedCategory(suggestedCategory))\r\n // TODO: Remove this after updating the Check signatures. Let type inference do the magic\r\n .filter((suggestion): suggestion is ISearchSuggestion => !Check.isNullOrUndefined(suggestion));\r\n }\r\n\r\n _createSuggestedCategory(categoryConfig: SuggestedLinkConfiguration): ISearchSuggestion | null {\r\n if(categoryConfig.gameID) {\r\n let gameInfo = this.services.games.gamesMap[categoryConfig.gameID];\r\n if(!gameInfo) {\r\n this.services.logger.error(`Game type ${categoryConfig.gameID} is in the search suggested categories but this game is not configured to be in this site!`);\r\n return null;\r\n }\r\n return new GameSuggestion(this.services, gameInfo, SUGGESTED_CATEGORIES);\r\n }\r\n return new SearchLinkSuggestion(categoryConfig, this.services, SUGGESTED_CATEGORIES);\r\n }\r\n}\r\n","import {ServiceBase} from \"../../ServiceBase\";\r\nimport {\r\n ExternalLinkViewMode,\r\n IExternalLinksService,\r\n OpenContactUsOptions,\r\n OpenLinkParams, OpenMembershipResponse,\r\n OpenRichPageOptions\r\n} from \"../external-links.service.interface\";\r\nimport {IServiceFactoryExtended} from \"../../service-factory-extended.interface\";\r\nimport {OnPlayerActionParams} from \"../../sdk/sdk-events\";\r\nimport {CHANNEL_ELEMENTS, CHANNEL_SOURCE} from \"../../../../common/const/casinofied-analytics-consts\";\r\nimport {AreaType} from \"@sparkware/uc-sdk-core\";\r\nimport {MarketingParams} from \"../../../../common/interfaces/marketing-params.interface\";\r\nimport Device from \"../../../../sdk/src/utils/device/device\";\r\nimport {SdkOpenExternalLinkParams} from \"../../sdk/sdk.service.interface\";\r\nimport {GNWP_SOURCES} from \"../../../../sdk/src/components/external_links/external_links_consts\";\r\nimport {PRIORITY_LEVEL} from \"../../../../sdk/src/services/overlay_manager/overlay_manager_levels\";\r\nimport {IOpenMyAccountOptions} from \"../handlers/my-account/my-account.external-link-handler.interface\";\r\n\r\nexport class ExternalLinksLegacyStrategy extends ServiceBase implements IExternalLinksService {\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n\r\n this.services.sdk.events.onPlayerAction(this._onPlayerActionHandler.bind(this));\r\n }\r\n\r\n\r\n private _onPlayerActionHandler(params: OnPlayerActionParams) {\r\n if(params.actionName === 'deposit') {\r\n this.services.cashier.openCashier({\r\n ...params.options,\r\n channel: {\r\n source: CHANNEL_SOURCE.registration,\r\n area: AreaType.StraightToCashier,\r\n element: CHANNEL_ELEMENTS.depositButton\r\n }\r\n });\r\n }\r\n }\r\n\r\n openLink(params: OpenLinkParams, marketingParams?: MarketingParams, useCallbackURL: boolean = false): Promise {\r\n let marketingData = this.services.marketing.getMarketingData(marketingParams);\r\n const isHybrid = Device.hybrid.isHybrid;\r\n\r\n\r\n const sdkOpenParams: SdkOpenExternalLinkParams = {\r\n view: params.view,\r\n source: params.source,\r\n sourceLink: params.sourceLink,\r\n addCloseOption: params.addCloseOption,\r\n priorityLevel: params.priorityLevel,\r\n marketing: marketingData,\r\n options: {\r\n ...params.options,\r\n showRegister: !this.services.cmsSegmentation.isCisOrCip && this.services.configuration.data.generalSettings.showRegisterButton\r\n }\r\n };\r\n\r\n if(params.source === 'cashier') {\r\n return this.services.cashier.openCashier({\r\n ...sdkOpenParams.options,\r\n channel: {\r\n source: CHANNEL_SOURCE.casinoClient,\r\n area: AreaType.NavigationMenu,\r\n element: CHANNEL_ELEMENTS.depositButton\r\n }\r\n\r\n }, sdkOpenParams.marketing, useCallbackURL);\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n if(params.resolveByCallback && !isHybrid) {\r\n sdkOpenParams.actionCallback = (result: any) => resolve(result);\r\n }\r\n\r\n this.services.sdk.openExternalLink(sdkOpenParams, useCallbackURL).then(()=> {\r\n // In case there is an actionCallback this promise will be resolved by a call from inside sdk.openExternalLink\r\n if(!sdkOpenParams.actionCallback) {\r\n resolve();\r\n }\r\n }).catch((err)=> {\r\n reject(err);\r\n });\r\n });\r\n }\r\n\r\n openResponsibleGamblingLink(view?:number):void{\r\n this.services.sdk.openResponsibleGamingLink(view);\r\n }\r\n\r\n\r\n async openMyAccount(options?: IOpenMyAccountOptions, marketingParams?: MarketingParams): Promise {\r\n await this.openLink({\r\n source: 'my_account',\r\n options: options,\r\n resolveByCallback: false\r\n }, marketingParams);\r\n }\r\n\r\n async openContactUs(options?: OpenContactUsOptions, marketingParams?: MarketingParams, resolveByCallback: boolean = false): Promise {\r\n await this.openLink({\r\n source: 'contact_us',\r\n view: options?.view,\r\n resolveByCallback: resolveByCallback\r\n }, marketingParams);\r\n }\r\n\r\n async openOldChat(): Promise {\r\n await this.openLink({\r\n source: 'live_chat',\r\n view: 'window'\r\n });\r\n }\r\n\r\n async openHelpPage(): Promise {\r\n await this.openLink({\r\n source: 'help',\r\n view: 'window',\r\n resolveByCallback: false\r\n });\r\n }\r\n\r\n async openDownloadApp(): Promise {\r\n await this.openLink({\r\n sourceLink: this.services.sdk.getDownloadAppLink(),\r\n view: 'redirect',\r\n resolveByCallback: false\r\n });\r\n }\r\n\r\n async openUploadDocument(marketingParams?: MarketingParams, resolveByCallback: boolean = false): Promise {\r\n await this.openLink({\r\n source: 'upload_document',\r\n resolveByCallback: resolveByCallback\r\n }, marketingParams);\r\n }\r\n\r\n async openMembership(marketingParams?: MarketingParams, resolveByCallback: boolean = false): Promise {\r\n let response = await this.openLink({\r\n source: 'membership',\r\n resolveByCallback: resolveByCallback\r\n }, marketingParams);\r\n\r\n response = (response || {}).actionName;\r\n\r\n\r\n switch(response) {\r\n case 'play':\r\n return OpenMembershipResponse.play;\r\n case 'deposit':\r\n return OpenMembershipResponse.deposit;\r\n case 'close':\r\n return OpenMembershipResponse.close;\r\n default:\r\n this.services.logger.error(`Unknown response '${response}' received from openMembership`);\r\n return OpenMembershipResponse.unknown;\r\n }\r\n }\r\n\r\n async openPendingPlayApplication(token: string): Promise {\r\n await this.openLink({\r\n source: GNWP_SOURCES.PENDING_PLAY,\r\n options: {\r\n token: token\r\n }\r\n });\r\n }\r\n\r\n async openSafeToPlay(): Promise {\r\n const url = this.services.sdk.getSkin().getSafeToPlayURL();\r\n if(url) {\r\n await this.openLink({\r\n sourceLink: url,\r\n view: 'window'\r\n });\r\n }\r\n }\r\n\r\n async openRichPage(options: OpenRichPageOptions): Promise {\r\n if(!options.campaignId) {\r\n throw new Error('Rich campaignId parameter was not provided');\r\n }\r\n\r\n const url = this.services.configuration.servicesConfigs.Integration.rich?.richPageUrl;\r\n if(!url) {\r\n throw new Error('Rich page url was not configured');\r\n }\r\n\r\n await this.services.location.redirect(url.replace('{campaignid}', options.campaignId));\r\n }\r\n\r\n async openSport(): Promise {\r\n await this.openLink({\r\n source: GNWP_SOURCES.SPORT\r\n });\r\n }\r\n\r\n async openInternalUrl(url: string): Promise {\r\n if(!url) {\r\n throw new Error('openInternalUrl failed! No url provided');\r\n }\r\n\r\n await this.services.location.push(url);\r\n\r\n }\r\n async openExternalUrl(url: string): Promise {\r\n if(!url) {\r\n throw new Error('openExternalUrl failed! No url provided');\r\n }\r\n\r\n let view: ExternalLinkViewMode = this.services.device.os.isMobileOS ? 'iframe' : 'window';\r\n\r\n await this.openLink({\r\n sourceLink: url,\r\n addCloseOption: true,\r\n view: view,\r\n priorityLevel: PRIORITY_LEVEL.INTERNAL_OVER_EXTERNAL_LINK\r\n });\r\n }\r\n\r\n openExternalBrand(params: OpenLinkParams, marketingParams?: MarketingParams, useCallbackURL: boolean = false): Promise {\r\n if (params.sourceLink) {\r\n const externalBrandLink = this.services.stateOfResidenceIdentifier.prepareUrlForExternalBrand(params.sourceLink);\r\n return this.openLink({...params, sourceLink: externalBrandLink}, marketingParams, useCallbackURL);\r\n } else {\r\n return this.openLink(params, marketingParams, useCallbackURL);\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","import {ExternalLinksLegacyStrategy} from \"./external-links-legacy.strategy\";\r\nimport {MarketingParams} from \"../../../../common/interfaces/marketing-params.interface\";\r\nimport {IExternalLinksHandlersFactory} from \"../handlers-factory/external-links-handlers-factory.interface\";\r\nimport {IOpenMyAccountOptions} from \"../handlers/my-account/my-account.external-link-handler.interface\";\r\n\r\nconst UseModernStrategy = {\r\n forMyAccount: true\r\n}\r\n\r\nexport class ExternalLinksModernStrategy extends ExternalLinksLegacyStrategy {\r\n\r\n private get _handlers(): IExternalLinksHandlersFactory {\r\n return this.services.regulation.current.externalLinks;\r\n }\r\n\r\n\r\n openMyAccount(options?: IOpenMyAccountOptions, marketingParams?: MarketingParams): Promise {\r\n if(UseModernStrategy.forMyAccount) {\r\n return this._handlers.myAccount.openMyAccount(options);\r\n }\r\n\r\n return super.openMyAccount(options);\r\n }\r\n\r\n\r\n}","import {ServiceBase} from '../ServiceBase';\r\nimport {\r\n IExternalLinksService,\r\n OpenContactUsOptions,\r\n OpenLinkParams,\r\n OpenMembershipResponse,\r\n OpenRichPageOptions\r\n} from './external-links.service.interface';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {MarketingParams} from \"../../../common/interfaces/marketing-params.interface\";\r\nimport {ExternalLinksLegacyStrategy} from \"./strategies/external-links-legacy.strategy\";\r\nimport {ExternalLinksModernStrategy} from \"./strategies/external-links-modern.strategy\";\r\nimport {IOpenMyAccountOptions} from \"./handlers/my-account/my-account.external-link-handler.interface\";\r\n\r\nconst useModernStrategy = true;\r\n\r\nexport class ExternalLinksService extends ServiceBase implements IExternalLinksService {\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n if(useModernStrategy) {\r\n this._strategy = new ExternalLinksModernStrategy(services);\r\n } else {\r\n this._strategy = new ExternalLinksLegacyStrategy(services);\r\n }\r\n }\r\n\r\n private readonly _strategy: IExternalLinksService;\r\n\r\n openLink(params: OpenLinkParams, marketingParams?: MarketingParams, useCallbackURL: boolean = false): Promise {\r\n return this._strategy.openLink(params, marketingParams, useCallbackURL);\r\n }\r\n\r\n openResponsibleGamblingLink(view?:number):void{\r\n this._strategy.openResponsibleGamblingLink(view);\r\n }\r\n\r\n\r\n async openMyAccount(options?: IOpenMyAccountOptions): Promise {\r\n return this._strategy.openMyAccount(options);\r\n }\r\n\r\n async openContactUs(options?: OpenContactUsOptions, marketingParams?: MarketingParams, resolveByCallback: boolean = false): Promise {\r\n return this._strategy.openContactUs(options, marketingParams, resolveByCallback);\r\n }\r\n\r\n async openOldChat(): Promise {\r\n return this._strategy.openOldChat();\r\n }\r\n\r\n async openHelpPage(): Promise {\r\n return this._strategy.openHelpPage();\r\n }\r\n\r\n async openDownloadApp(): Promise {\r\n return this._strategy.openDownloadApp();\r\n }\r\n\r\n async openUploadDocument(marketingParams?: MarketingParams, resolveByCallback: boolean = false): Promise {\r\n return this._strategy.openUploadDocument(marketingParams, resolveByCallback);\r\n }\r\n\r\n async openMembership(marketingParams?: MarketingParams, resolveByCallback: boolean = false): Promise {\r\n return this._strategy.openMembership(marketingParams, resolveByCallback);\r\n }\r\n\r\n async openPendingPlayApplication(token: string): Promise {\r\n return this._strategy.openPendingPlayApplication(token);\r\n }\r\n\r\n async openSafeToPlay(): Promise {\r\n return this._strategy.openSafeToPlay();\r\n }\r\n\r\n openRichPage(options: OpenRichPageOptions): Promise {\r\n return this._strategy.openRichPage(options);\r\n }\r\n\r\n openSport(): Promise {\r\n return this._strategy.openSport();\r\n }\r\n\r\n openInternalUrl(url: string): Promise {\r\n return this._strategy.openInternalUrl(url);\r\n }\r\n openExternalUrl(url: string): Promise {\r\n return this._strategy.openExternalUrl(url);\r\n }\r\n\r\n openExternalBrand(params: OpenLinkParams, marketingParams?: MarketingParams, useCallbackURL?: boolean): Promise {\r\n return this._strategy.openExternalBrand(params, marketingParams, useCallbackURL);\r\n }\r\n}\r\n","import {ServiceBase} from '../../ServiceBase';\r\nimport {CmsBannerId} from '../cms-banners/cm-banner-id/cms-banner-id';\r\nimport {BannerData, CmsPageData, CmsSegmentsData, ICmsApiService} from './cms-api.service.interface';\r\nimport {LanguageSwitcherConfiguration} from '../../../app-bootstrap/config-interfaces/b2c-startup.configurations';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {UriParams} from \"../../location/uri-params/uri-params\";\r\n\r\n\r\nexport class CmsApiService extends ServiceBase implements ICmsApiService {\r\n\r\n private get _apiOrigin(): string {\r\n return this.services.launcher.getCMSOrigin() || this.services.location.currentUri.origin\r\n }\r\n\r\n private get _publicationID(): number {\r\n return this.services.configuration.cmsPublicationId;\r\n }\r\n\r\n async getBanners(bannersIds: CmsBannerId[]): Promise {\r\n try {\r\n if(!bannersIds?.length){\r\n return [];\r\n }\r\n\r\n if(!this.services.user.isAuthorized) {\r\n await this.services.sdk.waitForAnonymousAbTestingData();\r\n }\r\n\r\n let data;\r\n const options = {\r\n headers: this._getBannersRequestOptions()\r\n };\r\n\r\n if(this.services.configuration.servicesConfigs.Skin.isSiteInfraAWS) {\r\n data = await this.services.http.get(this._getBannersRequestUrl + this._getBannersRequestParamsGET(bannersIds), options);\r\n } else {\r\n options['body'] = this._getBannersRequestParamsPOST(bannersIds);\r\n data = await this.services.http.post(this._getBannersRequestUrl, options);\r\n }\r\n\r\n\r\n return data || [];\r\n } catch (err) {\r\n let bannersDescriptions = bannersIds.reduce((acc, curr) => acc + '\\n' + curr.toString(), '');\r\n this.services.logger.error('Failed read the following banners from CMS API: ' + bannersDescriptions + 'error message: ' ,err);\r\n return [];\r\n }\r\n }\r\n\r\n async getFallbackBanners(fileNames: string[]): Promise<{[key: string]: string}> {\r\n try {\r\n return await this._readFallbackBanners(fileNames);\r\n } catch (err) {\r\n let files = fileNames.reduce((acc, curr) => acc + '\\n' + curr, '');\r\n this.services.logger.error('Failed to read fallback banners for ' + files);\r\n return {};\r\n }\r\n }\r\n\r\n private _readFallbackBanners(fileNames: string[]): Promise<{[key: string]: string}> {\r\n\r\n\r\n let result = {};\r\n\r\n fileNames = fileNames || [];\r\n if(fileNames.length === 0) {\r\n return Promise.resolve(result);\r\n }\r\n\r\n\r\n let configuredFallbackUrl: string = this._getFallbackUrlFromConfig();\r\n if (!configuredFallbackUrl) {\r\n return Promise.resolve(result);\r\n }\r\n\r\n let promises: Promise[] = [];\r\n for (let i = 0; i < fileNames.length; i++ ) {\r\n let fileName = fileNames[i];\r\n let computedFallbackUrl = configuredFallbackUrl.replace('{fileName}', fileName);\r\n let promise = this.services.http.get(computedFallbackUrl).then(content => {\r\n result[fileName] = content;\r\n\r\n }).catch(err => {\r\n this.services.logger.error(`Failed to load fallback CMS banner! fallbackUrl: ${computedFallbackUrl}`, err);\r\n });\r\n\r\n promises.push(promise);\r\n }\r\n\r\n return Promise.all(promises).then(() => result);\r\n }\r\n\r\n\r\n getPageContent(url: string, customQueryParams?: UriParams): Promise {\r\n let options = {\r\n headers: this._getPagesRequestOptions()\r\n };\r\n\r\n if(this.services.miniOrbit.isEnabled) {\r\n url = url.replace(this.services.miniOrbit.currentMiniOrbitConfig.basePath, '/').replace('//', '/');\r\n }\r\n\r\n let uriParams = new UriParams('');\r\n\r\n uriParams.addParam('publicationid', this._publicationID.toString());\r\n uriParams.addParam('url', this._addSlashesInTheSides(url));\r\n\r\n if(customQueryParams) {\r\n customQueryParams.getAllParams().forEach(p => {\r\n if(!uriParams.hasParam(p.originalName)) {\r\n uriParams.addParam(p.originalName, p.value)\r\n }\r\n });\r\n }\r\n\r\n let cmsPageContentApiUrl = this._apiOrigin + '/api/pagecontent' + uriParams.toString();\r\n\r\n return this.services.http.get(cmsPageContentApiUrl, options);\r\n }\r\n\r\n private _404PageContent: CmsPageData | null = null;\r\n async get404PageContent() {\r\n if(this._404PageContent) {\r\n return this._404PageContent;\r\n }\r\n\r\n try {\r\n let data = await this.services.http.get(this._apiOrigin + '/api/pagecontent?publicationid=' + this._publicationID + '&url=error404.aspx');\r\n this._404PageContent = {\r\n title: null,\r\n location: null,\r\n content: data && data.content\r\n };\r\n\r\n return this._404PageContent;\r\n } catch (err) {\r\n this.services.logger.error(`Failed to get 404 page content!`, err);\r\n return {\r\n title: null,\r\n location: null,\r\n content: '
Something went wrong. Please try again.
'\r\n };\r\n }\r\n }\r\n\r\n private _getFallbackUrlFromConfig(): string {\r\n let configData = this.services.configuration.data;\r\n return configData && configData.generalSettings && configData.generalSettings.fallbackCMSComponentsPath;\r\n\r\n }\r\n\r\n\r\n private get _getBannersRequestUrl() {\r\n return this._apiOrigin + '/api/content/';\r\n }\r\n\r\n private _getBannersRequestParamsPOST(bannersIds: CmsBannerId[]): BodyInit {\r\n\r\n let params = this.services.http.createUrlSearchParams();\r\n params.append('publicationid', this._publicationID.toString());\r\n params.append('PagePlaceHoldersXML', 'PagePlaceholders_ValidKeyPagePlaceholders_ValidValue');\r\n\r\n for(let i = 0; i < bannersIds.length; i++) {\r\n let bannerId = bannersIds[i];\r\n\r\n params.append(`components[${i}][templateId]`, bannerId.templateID);\r\n params.append(`components[${i}][componentId]`, bannerId.componentID);\r\n\r\n\r\n }\r\n\r\n return params;\r\n }\r\n\r\n private _getBannersRequestParamsGET(bannersIds: CmsBannerId[]): string {\r\n\r\n const publicationid = this._publicationID.toString();\r\n const PagePlaceHoldersXML = encodeURIComponent('PagePlaceholders_ValidKeyPagePlaceholders_ValidValue');\r\n\r\n let queryParams = `?publicationId=${publicationid}&PagePlaceHoldersXML=${PagePlaceHoldersXML}&`;\r\n\r\n let componentsParams = [];\r\n for(let i = 0; i < bannersIds.length; i++) {\r\n let bannerId = bannersIds[i];\r\n\r\n componentsParams.push(`templateId=${bannerId.templateID}`);\r\n componentsParams.push(`componentId=${bannerId.componentID}`);\r\n }\r\n\r\n return queryParams + componentsParams.join('&');\r\n }\r\n\r\n private _getBannersRequestOptions(): HeadersInit {\r\n\r\n let headers = this.services.http.createHeaders();\r\n headers.append('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\r\n return this.addXXContext(headers);\r\n }\r\n\r\n private _getPagesRequestOptions(): HeadersInit {\r\n\r\n let headers = this.services.http.createHeaders();\r\n return this.addXXContext(headers);\r\n }\r\n\r\n private _getSegmentesRequestOptions(): HeadersInit {\r\n let headers = this.services.http.createHeaders();\r\n return this.addXXContext(headers);\r\n }\r\n\r\n private addXXContext(headers: Headers): HeadersInit {\r\n let userSignature = this.services.sdk.getCmsUserSignature();\r\n if(!Check.isEmpty(userSignature)) {\r\n headers.append('XX.Context', userSignature && userSignature.message);\r\n headers.append('XX.Context.Signature', userSignature && userSignature.signature);\r\n }\r\n return headers;\r\n }\r\n\r\n async getSegments(): Promise {\r\n try {\r\n let options = {\r\n headers: this._getSegmentesRequestOptions()\r\n };\r\n return await this.services.http.get(`${this._apiOrigin}/api/segments`, options);\r\n }catch (err) {\r\n this.services.logger.error(`Failed to read segments from CMS API!`, err);\r\n return {};\r\n }\r\n }\r\n\r\n async getLanguageSwitcherConfiguration(url: string): Promise {\r\n try {\r\n return await this.services.http.get(`${this._apiOrigin}/api/languageswitcher?publicationid=${this._publicationID}&url=${this._addSlashesInTheSides(url)}`);\r\n } catch (err) {\r\n this.services.logger.error(`Failed to get language switcher configuration for page ${url}`, err);\r\n return null;\r\n }\r\n }\r\n\r\n private _isRouteToHtmlFile(pathName: string): boolean {\r\n return pathName.endsWith('.htm')\r\n || pathName.endsWith('.html');\r\n }\r\n\r\n\r\n private _addSlashesInTheSides(pathName) {\r\n if(pathName && pathName[0] !== '/') {\r\n pathName = '/' + pathName;\r\n }\r\n\r\n //we append the trailing slash if the path doesn't ends with slash and also the path doesn't ends with .html or .htm\r\n //we don't append the trailing slash for paths like /path/file.htm or /path/file.html\r\n if(pathName && !this._isRouteToHtmlFile(pathName) && pathName[pathName.length - 1] !== '/') {\r\n pathName = pathName + '/';\r\n }\r\n\r\n if(pathName) {\r\n return pathName;\r\n }\r\n\r\n return '/';\r\n }\r\n\r\n}\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../../base-components/orbit-component/orbit-component';\r\nimport {CmsContentDecorator} from '../../../services/cms/cms-content-decorator/cms-content-decorator';\r\nimport {observer} from 'mobx-react';\r\nimport {CmsBannerId} from '../../../services/cms/cms-banners/cm-banner-id/cms-banner-id';\r\n\r\nexport interface BannerContentComponentProps {\r\n html: string;\r\n bannerId: CmsBannerId;\r\n}\r\n\r\n@observer\r\nexport class BannerContentComponent extends OrbitComponent {\r\n\r\n componentWillUnmount() {\r\n super.componentWillUnmount();\r\n this._disposeBannerContentDecorator();\r\n }\r\n\r\n componentDidUpdate() {\r\n this._redecorateBannerContent();\r\n }\r\n\r\n private _disposeBannerContentDecorator() {\r\n if(this._bannerContentDecorator) {\r\n this._bannerContentDecorator.dispose();\r\n this._bannerContentDecorator = null;\r\n }\r\n }\r\n\r\n private _redecorateBannerContent() {\r\n this._disposeBannerContentDecorator();\r\n if(this._bannerContentElementRef) {\r\n this._bannerContentElementRef.innerHTML = this.props.html;\r\n this._bannerContentDecorator = new CmsContentDecorator(this._bannerContentElementRef, this.services);\r\n }\r\n }\r\n\r\n private _bannerContentDecorator: CmsContentDecorator | null = null;\r\n\r\n private _bannerContentElementRef: HTMLSpanElement | null = null;\r\n\r\n private _captureBannerContentElementRef = (element: HTMLSpanElement | null) => {\r\n this._bannerContentElementRef = element;\r\n this._redecorateBannerContent();\r\n };\r\n\r\n render() {\r\n return ();\r\n }\r\n}\r\n","import React from 'react';\r\nimport {BannerRenderProps, IBannerDefinition} from './banner-definition.interface';\r\nimport {BannerContentComponent} from '../../../../components/cms-banner/banner-content/banner-content.component';\r\nimport {CmsBannerId} from '../cm-banner-id/cms-banner-id';\r\n\r\n\r\nexport class BannerDefinition implements IBannerDefinition {\r\n constructor(public _html: string, private _bannerId: CmsBannerId) {\r\n }\r\n\r\n render(props: BannerRenderProps): React.ReactNode {\r\n return ();\r\n }\r\n}\r\n","import {ServiceBase} from '../../ServiceBase';\r\nimport {ICmsBannersService} from './cms-banners.service.interface';\r\nimport {action, observable} from 'mobx';\r\nimport {IBannerDefinition} from './banner-definition/banner-definition.interface';\r\nimport {IServiceFactoryExtended} from '../../service-factory-extended.interface';\r\nimport {CmsBannerId} from './cm-banner-id/cms-banner-id';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {BannerDefinition} from './banner-definition/banner-definition';\r\n\r\nimport {EmptyBannerDefinition} from './banner-definition/empty-banner-definition';\r\nimport {BannerData} from '../cms-api/cms-api.service.interface';\r\n\r\ntype ReadBannersResponse = Array<{id: CmsBannerId, definition: IBannerDefinition}>;\r\n\r\nexport class CmsBannersService extends ServiceBase implements ICmsBannersService {\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n\r\n this.reaction(\r\n () => this.services.user.isAuthorized,\r\n (isAuthorized) => {\r\n this._reloadBannersContent();\r\n }\r\n );\r\n }\r\n\r\n\r\n private _currentUsedBannersIds: {[key: string]: CmsBannerId} = {};\r\n\r\n @observable\r\n bannersMap: {[key: string]: IBannerDefinition} = {};\r\n\r\n async loadBanner(bannerId: CmsBannerId): Promise {\r\n if(!this.bannersMap[bannerId.key]) {\r\n let banners = await this._readBanners([bannerId]);\r\n this._setBanners(banners);\r\n }\r\n const hasBannerContent = Check.isObject(this.bannersMap[bannerId.key]);\r\n return hasBannerContent;\r\n }\r\n\r\n private _reloadBannersContent() {\r\n this._readBanners(Object.values(this._currentUsedBannersIds))\r\n .then(banners => {\r\n this._setBanners(banners);\r\n });\r\n }\r\n\r\n @action.bound\r\n private _setBanners(banners: ReadBannersResponse) {\r\n banners.forEach(newBanner => {\r\n this.bannersMap[newBanner.id.key] = newBanner.definition;\r\n this._currentUsedBannersIds[newBanner.id.key] = newBanner.id;\r\n });\r\n }\r\n\r\n private async _readBanners(bannersIds: CmsBannerId[]): Promise {\r\n\r\n let bannersIdsCollection = new BannersIdCollection(bannersIds);\r\n\r\n let cmsResponseData = await this.services.cmsApi.getBanners(bannersIds);\r\n //create definitions for bannersMap that we received some content\r\n let bannersWithContent = this._extractBannersWithContent(bannersIdsCollection, cmsResponseData);\r\n\r\n //for banners that we didn't receive any content try to load a default content and then merge the results\r\n let bannersIdsWithoutContent = bannersIdsCollection.exclude(bannersWithContent.map(bannerInfo => bannerInfo.id));\r\n\r\n let fallbackBanners = await this._readFallbackBanners(bannersIdsWithoutContent);\r\n\r\n return [...bannersWithContent, ...fallbackBanners];\r\n\r\n /*.catch((err) => {\r\n let msg = bannersIds.reduce((acc, curr) => acc + '\\n' + curr.toString(), '');\r\n this.services.logger.error(`Failed to load CMS banners for ${msg}`, err);\r\n return this._readFallbackBanners(bannersIds);\r\n });\r\n */\r\n }\r\n\r\n private _extractBannersWithContent(requestedBannersIdsCollection: BannersIdCollection, cmsResponseData: BannerData[]): ReadBannersResponse {\r\n if(!Check.isArray(cmsResponseData)) {\r\n return [];\r\n }\r\n\r\n return cmsResponseData\r\n .filter(bannerData => !Check.isEmpty(bannerData.Content))\r\n .map(bannerData => {\r\n let bannerId = requestedBannersIdsCollection.getOriginalBannerId(bannerData.ComponentId, bannerData.TemplateId);\r\n return {\r\n id: bannerId,\r\n definition: new BannerDefinition(bannerData.Content, bannerId)\r\n };\r\n });\r\n }\r\n\r\n private async _readFallbackBanners(bannersIds: CmsBannerId[]): Promise {\r\n if(bannersIds.length === 0) {\r\n return Promise.resolve([]);\r\n }\r\n // for bannersMap that have fallback file we try to read the default banner content and then merge with those without fallback file\r\n let bannersIdsWithFallbackFile = bannersIds.filter(id => !Check.isEmpty(id.fallbackFileName));\r\n let bannersIdsGroupedByFallbackFile = this._groupBannersIdsByFallbackFile(bannersIdsWithFallbackFile);\r\n let fileNames = Object.keys(bannersIdsGroupedByFallbackFile);\r\n\r\n\r\n let fallbackData = await this.services.cmsApi.getFallbackBanners(fileNames);\r\n\r\n let result: ReadBannersResponse = [];\r\n fileNames.forEach(file => {\r\n let bannerContent = fallbackData[file];\r\n if(bannerContent) {\r\n result = result.concat(this._createBannersDefinitionsWithContent(bannersIdsGroupedByFallbackFile[file], bannerContent));\r\n }\r\n });\r\n\r\n return result;\r\n }\r\n\r\n\r\n private _groupBannersIdsByFallbackFile(bannersIds: CmsBannerId[]): {[key: string]: CmsBannerId[]} {\r\n let result = {};\r\n bannersIds.forEach(bannerId => {\r\n if(!result[bannerId.fallbackFileName]) {\r\n result[bannerId.fallbackFileName] = [];\r\n }\r\n\r\n result[bannerId.fallbackFileName].push(bannerId);\r\n });\r\n\r\n return result;\r\n }\r\n\r\n private _createBannersDefinitionsWithContent(bannersIds: CmsBannerId[], bannerContent: string): ReadBannersResponse {\r\n return bannersIds.map(id => {\r\n let definition: IBannerDefinition;\r\n if(Check.isEmpty(bannerContent)) {\r\n definition = new EmptyBannerDefinition();\r\n } else {\r\n definition = new BannerDefinition(bannerContent, id);\r\n }\r\n\r\n return {id: id, definition: definition};\r\n });\r\n }\r\n}\r\n\r\n\r\nclass BannersIdCollection {\r\n\r\n private _originalBannersMap = {};\r\n\r\n constructor(private _originalBannersIds: CmsBannerId[]) {\r\n this._originalBannersIds.forEach(bannerId => {\r\n this._originalBannersMap[bannerId.key] = bannerId;\r\n });\r\n }\r\n\r\n getOriginalBannerId(componentId: number, templateId: number): CmsBannerId {\r\n for(let i = 0; i < this._originalBannersIds.length; i++) {\r\n let bannerId = this._originalBannersIds[i];\r\n if(bannerId.isMatch(componentId, templateId)) {\r\n return bannerId;\r\n }\r\n }\r\n \r\n throw new Error(`Cant't find original banner id for componentId=${componentId} and templateId=${templateId}`);\r\n }\r\n\r\n exclude(bannersIdsToExclude: CmsBannerId[]): CmsBannerId[] {\r\n let bannersIdsToExcludeMap = {};\r\n bannersIdsToExclude.forEach(bannerId => bannersIdsToExcludeMap[bannerId.key] = bannerId);\r\n\r\n return this._originalBannersIds.filter(bannerId => !bannersIdsToExcludeMap[bannerId.key]);\r\n }\r\n}\r\n","import {ServiceBase} from '../../ServiceBase';\r\nimport {ICmsPagesService} from './cms-pages.service.interface';\r\nimport {\r\n ICmsPageDefinition,\r\n ICmsPageDefinitionHeadTags,\r\n IInjectedHeadTag\r\n} from './page-definition/cms-page-definition.interface';\r\nimport {action, observable} from 'mobx';\r\nimport {IServiceFactoryExtended} from '../../service-factory-extended.interface';\r\nimport {CmsPageData} from '../cms-api/cms-api.service.interface';\r\nimport {Uri} from '../../location/uri/uri';\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {UriPath} from \"../../location/uri-path/uri-path\";\r\nimport {UriParams} from \"../../location/uri-params/uri-params\";\r\n\r\nexport const LOAD_CONTENT_FROM_DIV_PAGE_DELAY = 250;\r\n\r\nexport class CmsPagesService extends ServiceBase implements ICmsPagesService {\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n\r\n this.reaction(\r\n () => this.services.location.currentUri,\r\n (uri) => this._loadCmsPage(uri),\r\n { fireImmediately: true }\r\n );\r\n\r\n this.reaction(\r\n () => this.services.user.isAuthorized,\r\n () => this._reloadCurrentPageContent(),\r\n { fireImmediately: true }\r\n );\r\n }\r\n\r\n private _currentUri: Uri | null = null;\r\n private _isFirstLoad = true;\r\n\r\n @observable.ref\r\n currentPage: ICmsPageDefinition | null = null;\r\n injectedPageMetaTags: IInjectedHeadTag[] = [];\r\n\r\n @action.bound\r\n private _setCurrentPage(pageDefinition: ICmsPageDefinition | null) {\r\n this.currentPage = pageDefinition;\r\n }\r\n\r\n private setCurrentPageMetaTags(headerTags: ICmsPageDefinitionHeadTags[]){\r\n\r\n const prepareElementSelector = (elementType:string, attributes = {}) => {\r\n const attributesQuery = Object.keys(attributes).reduce((query, attributeName) => {\r\n if(!Check.isString(attributes[attributeName]) || attributeName === 'tag')\r\n return query;\r\n\r\n return query + `[${attributeName}=\"${attributes[attributeName]}\"]`;\r\n }, '');\r\n\r\n return elementType + attributesQuery;\r\n }\r\n\r\n const setElementAttributes = (element, attributes = {}) => {\r\n Object.keys(attributes).forEach(attributeName => {\r\n if(attributeName !== 'tag')\r\n element.setAttribute(attributeName, attributes[attributeName]);\r\n });\r\n }\r\n\r\n const addMetaTags = (headerTags: ICmsPageDefinitionHeadTags[]) => {\r\n headerTags.forEach(headerTag => {\r\n const {tag, content, href, ...rest} = headerTag;\r\n try {\r\n if(tag){\r\n let metaTag = this.services.dom.querySelector(prepareElementSelector(tag, rest)) as HTMLElement;\r\n const injectedPageMetaTagPreviousElement = metaTag;\r\n\r\n if(!metaTag){\r\n metaTag = this.services.dom.createElement(tag);\r\n this.services.dom.head.appendChild(metaTag);\r\n }\r\n\r\n this.injectedPageMetaTags.push({element: metaTag, previous: injectedPageMetaTagPreviousElement ? (injectedPageMetaTagPreviousElement.cloneNode() as HTMLElement) : undefined});\r\n setElementAttributes(metaTag, headerTag);\r\n }\r\n }catch (err){\r\n this.services.logger.error(`Failed to add metaTag: ${tag}`, err);\r\n }\r\n\r\n })\r\n }\r\n\r\n const removeMetaTags = (injectedMetaTags: IInjectedHeadTag[]) => {\r\n (injectedMetaTags || []).forEach(({element, previous}) => {\r\n if(previous){\r\n element.parentNode?.replaceChild(previous, element);\r\n }else{\r\n element.remove();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * To have more meta tags allowed to be injected from pageContent, add an other Regex here\r\n */\r\n const allowedTags = '(link.*(?:\\\\[rel=\"canonical\"]))|' +\r\n '(meta.*(?:\\\\[property=\"og:updated_time\"]))|' +\r\n '(meta.*(?:\\\\[property=\"og:description\"]))|' +\r\n '(meta.*(?:\\\\[property=\"og:url\"]))|' +\r\n '(meta.*(?:\\\\[name=\"og:title\"]))|' +\r\n '(meta.*(?:\\\\[name=\"description\"]))'\r\n ;\r\n\r\n const metaTags = (headerTags || []).filter(({tag,content, ...rest}) => {\r\n const testIfTagAllowedRegex = new RegExp(allowedTags, 'i');\r\n return testIfTagAllowedRegex.test(prepareElementSelector(tag, rest));\r\n });\r\n\r\n if(this.injectedPageMetaTags.length > 0){\r\n removeMetaTags(this.injectedPageMetaTags);\r\n this.injectedPageMetaTags = [];\r\n }\r\n\r\n addMetaTags(metaTags);\r\n }\r\n\r\n\r\n private async _reloadCurrentPageContent(): Promise {\r\n if(this.currentPage) {\r\n this._currentUri = null;\r\n try {\r\n await this._loadCmsPage(this.services.location.currentUri);\r\n } catch (err) {\r\n this.services.logger.error(`Failed to reload CMS page ${this.currentPage.url}`, err);\r\n }\r\n }\r\n }\r\n\r\n\r\n private async _loadCmsPage(uri: Uri): Promise {\r\n\r\n if(this._currentUri && this._currentUri.pathName && uri.pathName.equals(this._currentUri.pathName)) {\r\n return;\r\n }\r\n\r\n this._currentUri = uri;\r\n\r\n try {\r\n let pageElement = this.services.dom.getElementById('page');\r\n if(this._isFirstLoad && pageElement && !this.services.routing.isOrbitRoute(uri.pathName)) {\r\n\r\n if(this.services.user.isAuthorized){\r\n //In case the user is login we must call the API and not use the DOM page since b2c need to get the XX.context to return the right segments,\r\n //But we must clean the #page div content to avoid duplicate b2c content on the page\r\n pageElement.remove();\r\n await this._loadPageContentWithSpinner(uri);\r\n } else{\r\n this._loadPageContentFromDOM(pageElement, uri);\r\n }\r\n\r\n } else {\r\n await this._loadPageContentWithSpinner(uri);\r\n }\r\n } finally {\r\n this._isFirstLoad = false;\r\n }\r\n }\r\n\r\n\r\n private async _loadPageContentWithSpinner(uri: Uri): Promise {\r\n const isB2CRoute = !this.services.routing.isOrbitRoute(uri.pathName);\r\n if(isB2CRoute) {\r\n this.services.spinner.startSpinner();\r\n }\r\n\r\n try {\r\n await this._loadCmsPageFromApi(uri)\r\n } finally {\r\n if(isB2CRoute) {\r\n this.services.spinner.stopSpinner();\r\n }\r\n }\r\n\r\n }\r\n\r\n private _loadPageContentFromDOM(pageElement: HTMLElement, uri: Uri): void {\r\n // we introduced this delay because if some of the scripts in the innerHTML contains a \r\n */\r\nfunction evaluateScriptsWithExternalFile(html: string) {\r\n try {\r\n const fakeDiv = document.createElement('div');\r\n fakeDiv.innerHTML = html.trim();\r\n\r\n const scriptElements = fakeDiv.getElementsByTagName('script');\r\n const elementsLength = scriptElements ? scriptElements.length : 0;\r\n\r\n for (let index = 0; index < elementsLength; index++) {\r\n const script = document.createElement(\"script\");\r\n\r\n if (scriptElements[index]['src']) {\r\n script.src = scriptElements[index]['src'];\r\n } else {\r\n //Add try catch to B2C scripts\r\n const tryStart = \"try{\";\r\n const consoleLogFunc = (isOrbitInQAMode() ? 'warn' : 'error');\r\n const tryEnd = `}catch(e){console.${consoleLogFunc}('B2C ERROR In EXTERNAL SCRIPT, ERROR MESSAGE: ', e)}`;\r\n\r\n script.innerHTML = tryStart + scriptElements[index]['innerHTML'] + tryEnd;\r\n\r\n }\r\n\r\n document.head.appendChild(script).parentNode?.removeChild(script);\r\n }\r\n } catch (err) {\r\n if(!isInsideAutomation()) {\r\n console.log('Error in evaluateScriptsWithExternalFile function, err message:', err);\r\n }\r\n\r\n }\r\n}\r\n","import {IServiceFactory} from '../../service-factory.interface';\r\nimport {CmsLink} from './cms-link';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {evaluateScripts} from \"./evaluate-scripts\";\r\n\r\nexport class CmsContentDecorator {\r\n constructor(private _element: HTMLElement, private services: IServiceFactory ) {\r\n this._evaluateScripts();\r\n this._loadCmsLinks();\r\n }\r\n\r\n private _cmsLinks: CmsLink[] = [];\r\n\r\n\r\n dispose() {\r\n this._cmsLinks.forEach(a => a.dispose());\r\n }\r\n\r\n\r\n private _evaluateScripts() {\r\n evaluateScripts(this._element.innerHTML);\r\n }\r\n\r\n\r\n private _loadCmsLinks() {\r\n let linkTags = this._element.getElementsByTagName('a');\r\n for(let i = 0; i < linkTags.length; i++) {\r\n let currentLink = linkTags[i] as HTMLAnchorElement;\r\n if (Check.isEmpty(currentLink.href) || currentLink.target === '_blank') {\r\n continue;\r\n }\r\n\r\n let anchorUri = this.services.location.tryParseUrl(currentLink.href);\r\n if(!anchorUri) {\r\n continue;\r\n }\r\n\r\n if(anchorUri.origin === this.services.location.currentUri.origin) {\r\n this._cmsLinks.push(new CmsLink(currentLink, this._element, this.services));\r\n }\r\n\r\n }\r\n }\r\n\r\n scrollIntoView(childElementSelector: string): void {\r\n try {\r\n let el = this._element.querySelector(childElementSelector);\r\n if(el) {\r\n el.scrollIntoView();\r\n }\r\n } catch (err) {\r\n this.services.logger.error(`Failed to scroll into view element with id ${childElementSelector}`, err);\r\n }\r\n\r\n }\r\n}\r\n","import styled from \"styled-components\";\r\n\r\nexport interface LiveCasinoGridItemInfoItemDefaultBoxProps {\r\n isLiveStreamOverlay?: boolean;\r\n}\r\n\r\nexport const LiveCasinoGridItemInfoItemDefaultBox = styled.div`\r\n display: flex;\r\n align-items: center;\r\n margin: ${props => props.isLiveStreamOverlay ? '0 0.75em 0 0.75em' : '0 1em 0 0'};\r\n color: ${props => props.theme.colors.textLight};\r\n letter-spacing: 0.1rem;\r\n font-size: 1em;\r\n height: 24px;\r\n`;","import styled from \"styled-components\";\r\nimport {LiveCasinoGridItemInfoItemDefaultBox} from \"./live-casino-grid-item-info-item.default.box\";\r\n\r\nexport const LiveCasinoGridItemInfoItemSIBox = styled(LiveCasinoGridItemInfoItemDefaultBox)`\r\n font-size: 1.2em;\r\n letter-spacing: 0.48px;\r\n`;\r\n","import {styledByTheme} from \"../../../../../../../themes/architecture/styled-by-theme\";\r\nimport {LiveCasinoGridItemInfoItemDefaultBox} from \"./live-casino-grid-item-info-item.default.box\";\r\nimport {LiveCasinoGridItemInfoItemSIBox} from \"./live-casino-grid-item-info-item.si.box\";\r\n\r\nexport const LiveCasinoGridItemInfoItemBox = styledByTheme(LiveCasinoGridItemInfoItemDefaultBox)\r\n .forSI(LiveCasinoGridItemInfoItemSIBox)\r\n .apply();","import styled from \"styled-components\";\r\n\r\nexport const LobbyGridDefaultBox = styled.div`\r\n overflow: hidden;\r\n\r\n // This is for CLS purpose, we want to make sure there is no 'jump' of the footer when lazy loaded swipers loads\r\n padding-bottom: 300px;\r\n\r\n max-width: 100%;\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n width: 100%;\r\n }\r\n`;","import {LobbyGridDefaultBox} from \"./lobby-grid.default.box\";\r\nimport {styledByTheme} from \"../../themes/architecture/styled-by-theme\";\r\n\r\nexport const LobbyGridBox = styledByTheme(LobbyGridDefaultBox).apply();","import {LiveCasinoGridItemDefaultBox} from \"./live-casino-grid-item.default.box\";\r\n\r\nexport const LiveCasinoGridItemBox = LiveCasinoGridItemDefaultBox;","import styled, {css} from \"styled-components\";\r\n\r\ninterface ILiveCasinoGridItemDefaultBoxProps {\r\n fluidWidth?: boolean; // when true, don't set the width, let it flow within its parent\r\n}\r\n\r\nexport const LiveCasinoGridItemDefaultBox = styled.div`\r\n box-sizing: border-box;\r\n\r\n /* Prevents CSS Transform flicker */\r\n backface-visibility: hidden;\r\n\r\n ${({fluidWidth}) => !fluidWidth && css`\r\n\r\n width: calc(100% / 5);\r\n padding: 1em 0.5em;\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndAbove} {\r\n width: calc(100% / 3);\r\n }\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove} {\r\n width: calc(100% / 4);\r\n }\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n width: calc(100% / 2);\r\n padding: 0.5em 0.25em;\r\n }\r\n `}\r\n`;","import {ClockComponentDefaultBox} from \"./clock.component.default.box\";\r\n\r\nexport const ClockComponentBox = ClockComponentDefaultBox;","import styled from \"styled-components\";\r\n\r\nexport const ClockComponentDefaultBox = styled.div`\r\n ${({theme}) => theme.font.presets.body};\r\n font-size: 1em;\r\n line-height: 1;\r\n`;","import styled, { css } from \"styled-components\";\r\nimport { IButtonCommonProps, IButtonColorSet, IButtonPreset } from \"../button-props.interface\";\r\n\r\ninterface IButtonBoxProps extends IButtonCommonProps {\r\n colorSet: IButtonColorSet;\r\n\r\n height: number;\r\n strokeWidth: number;\r\n iconSize: number;\r\n lateralPadding: number;\r\n\r\n hasLabel: boolean;\r\n hasIcon: boolean;\r\n}\r\nexport const ButtonBox = styled.button`\r\n cursor: ${props => props.disabled ? \"default\" : \"pointer\"};\r\n user-select: none;\r\n\r\n border-radius: ${props => props.rounded ? \"100px\" : props.theme.layout.border.radius};\r\n ${props => props.margin ? css`\r\n margin: ${props.margin};\r\n ` : null};\r\n\r\n /* Override user-agent styles */\r\n background: none;\r\n outline: none;\r\n\r\n ${({theme}) => theme.font.presets.ultra};\r\n /**\r\n * This is not the actual text size.\r\n * The text size is set in the span wrapping the text, here i'm just creating a context for the em units to compute relative to this\r\n */\r\n font-size: ${props => props.fixedSize ? \"10px\" : \"1rem\"};\r\n /**\r\n * If we have only an icon and no label, we want a square (or circle) button\r\n * that means the width = height =>\r\n * border x 2 + lateral-padding x 2 + icon_size = height =>\r\n * lateral_padding = (height - icon_size - 2 x border)/2 =>\r\n * lateral_padding = (height - icon_size)/2 - border\r\n *\r\n * If we have label (with or without icon), don't bother, put 1em or whatever value decided by design (hardcoded or from the theme)\r\n */\r\n padding: 0 ${props => {\r\n if (props.hasIcon && !props.hasLabel) {\r\n return \"calc(\"+((props.height - props.iconSize)/2)+\"em - \"+props.strokeWidth+\"px)\";\r\n } else {\r\n return props.lateralPadding + \"em\";\r\n }\r\n }};\r\n line-height: 0.8;\r\n letter-spacing: 0.05em;\r\n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n /** content-box because the border is in px. So when computing heights, paddings etc in em border is not taken in consideration */\r\n /* box-sizing: content-box;\r\n height: calc(${props => props.height }em - 2*${props => props.strokeWidth }px); */\r\n /** OOORRR */\r\n box-sizing: border-box;\r\n height: ${props => props.height}em;\r\n\r\n width: ${props => props.fullWidth ? \"100%\" : \"auto\"};\r\n transition: all 0.2s ease-in-out;\r\n\r\n border-width: ${props => props.strokeWidth}px;\r\n border-style: solid;\r\n\r\n color: ${props => colorSet(props, props.active ? \"hover\" : \"normal\").text};\r\n background-color: ${props => colorSet(props, props.active ? \"hover\" : \"normal\").bg};\r\n border-color: ${props => colorSet(props, props.active ? \"hover\" : \"normal\").border};\r\n box-shadow: ${props => (props.elevated && colorSet(props, props.active ? \"hover\" : \"normal\").shadow) ? colorSet(props, props.active ? \"hover\" : \"normal\").shadow : \"none\"};\r\n\r\n /* Putting the &:hover rules inside the hover media queries prevents the button to remain in hover state after pressing it.\r\n We wouldn't need this is the pressed/active state would be different from the hover state */\r\n @media ${({theme}) => theme.mediaQuery.hover } {\r\n &:hover {\r\n color: ${props => colorSet(props, \"hover\").text};\r\n background-color: ${props => colorSet(props, \"hover\").bg};\r\n border-color: ${props => colorSet(props, \"hover\").border};\r\n box-shadow: ${props => (props.elevated && colorSet(props, \"hover\").shadow) ? colorSet(props, \"hover\").shadow : \"none\"};\r\n }\r\n }\r\n\r\n ${props => (props.rotated45 && props.hasIcon && !props.hasLabel) ? css`\r\n transform: rotate(45deg);\r\n ` : null}\r\n`;\r\n\r\n/** Helper function because i repeated this part way too much */\r\nfunction colorSet(props: IButtonBoxProps, set: keyof IButtonPreset[\"colors\"]) {\r\n return props.colorSet[props.disabled ? \"disabled\" : set];\r\n}\r\n","import styled from \"styled-components\";\r\n\r\ninterface IButtonLabelProps {\r\n fontSize: number;\r\n lateralPadding: number;\r\n allowLabelWrap?: boolean;\r\n}\r\n\r\nexport const ButtonLabelBox = styled.span`\r\n text-transform: uppercase;\r\n padding: 1px ${({lateralPadding}) => lateralPadding}em 0px;\r\n font-size: ${({fontSize}) => fontSize}em;\r\n line-height: 1.15;\r\n max-height: 2.2em;\r\n\r\n white-space: ${({allowLabelWrap}) => allowLabelWrap ? 'unset' : 'nowrap'};\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n`;\r\n","import styled, { css } from \"styled-components\";\r\nimport { CssRule } from \"../../../../themes/architecture/css-helpers/css-rule\";\r\n\r\ninterface IButtonIconWrapperProps {\r\n rotated45?: boolean;\r\n reverseOnRTL?: boolean;\r\n}\r\n\r\nexport const ButtonIconWrapperBox = styled.span`\r\n ${props => props.rotated45 ? css`\r\n transform: rotate(-45deg);\r\n ` : null}\r\n\r\n ${props => props.reverseOnRTL ? css`\r\n ${CssRule.For.RTL.build()} &{\r\n transform: scaleX(-1);\r\n }\r\n ` : null}\r\n`;\r\n","import React from \"react\";\r\nimport { withTheme } from \"styled-components\";\r\nimport { OrbitTheme } from \"../../../themes/architecture/orbit-theme.interface\";\r\nimport { SvgSizeUnit } from \"../../icon/svg-icon/svg.icon\";\r\nimport { IButtonCommonProps, ButtonPreset, ButtonStroke, ButtonSizeVariant, IButtonIconProps } from \"./button-props.interface\";\r\nimport { ButtonBox } from \"./boxes/button.box\";\r\nimport { ButtonLabelBox } from \"./boxes/button-label.box\";\r\nimport { ButtonIconWrapperBox } from \"./boxes/button-icon-wrapper.box\";\r\n\r\ninterface IButtonProps extends IButtonCommonProps {\r\n preset: ButtonPreset;\r\n stroke?: ButtonStroke;\r\n icon?: IButtonIconProps;\r\n sizeVariant?: ButtonSizeVariant;\r\n className?: string;\r\n allowLabelWrap?: boolean;\r\n tooltip?: string;\r\n\r\n /**\r\n * theme is addded by styled-component's withTheme\r\n * children should not be here, but typescript complains otherwise, when using this component with children\r\n */\r\n theme: OrbitTheme;\r\n children?: React.ReactNode;\r\n\r\n /* button interactions */\r\n onClick?(): void;\r\n onMouseEnter?(): void;\r\n onMouseLeave?(): void;\r\n}\r\n\r\nclass $Button extends React.Component {\r\n render() {\r\n let {\r\n children, theme, preset, icon, stroke, sizeVariant, rotated45, rounded, elevated, allowLabelWrap, tooltip,\r\n onClick, onMouseEnter, onMouseLeave,\r\n ...otherProps\r\n } = this.props;\r\n let hasIcon = !!icon;\r\n let hasLabel = !!children;\r\n\r\n onClick = this.props.disabled ? undefined : onClick;\r\n onMouseEnter = this.props.disabled ? undefined : onMouseEnter;\r\n onMouseLeave = this.props.disabled ? undefined : onMouseLeave;\r\n\r\n let presetValues = theme.baseUIComponents.button.presets[preset];\r\n let themePresetDefaults = theme.baseUIComponents.button.defaults;\r\n\r\n stroke = stroke ?? presetValues.stroke ?? themePresetDefaults.stroke;\r\n rounded = rounded ?? presetValues.rounded ?? themePresetDefaults.rounded;\r\n elevated = elevated ?? presetValues.elevated ?? themePresetDefaults.elevated;\r\n sizeVariant = sizeVariant || \"regular\";\r\n\r\n let iconSize = icon && icon.size ? icon.size : \"regular\";\r\n let iconPlacement = icon && icon.placement ? icon.placement : \"left\";\r\n\r\n let strokeWidth = theme.baseUIComponents.button.strokeValues[stroke];\r\n let height = theme.baseUIComponents.button.sizeVariantValues[sizeVariant].height;\r\n let iconSizeValue = theme.baseUIComponents.button.sizeVariantValues[sizeVariant].iconSize[iconSize];\r\n let fontSize = theme.baseUIComponents.button.sizeVariantValues[sizeVariant].fontSize || presetValues.fontSize || themePresetDefaults.fontSize;\r\n let lateralPadding = sizeVariant === \"small\" ? 0.6 : 1;\r\n\r\n /**\r\n * Rotation is supported for icon only buttons. We support this for casino 777 play game button which is a diamond shaped button\r\n */\r\n rotated45 = rotated45 && hasIcon && !hasLabel;\r\n\r\n return \r\n { (icon && iconPlacement === \"left\") ? this.renderIcon(icon.Component, iconSizeValue, {rotated45, reverseOnRTL: icon.reverseOnRTL}) : null }\r\n { children ? {children} : null }\r\n { (icon && iconPlacement === \"right\") ? this.renderIcon(icon.Component, iconSizeValue, {rotated45, reverseOnRTL: icon.reverseOnRTL}) : null }\r\n \r\n }\r\n\r\n private renderIcon(IconComponent: IButtonIconProps[\"Component\"], size: number, options?: {rotated45?: boolean, reverseOnRTL?: boolean}) {\r\n return \r\n \r\n \r\n }\r\n\r\n}\r\n\r\nexport const Button = withTheme($Button);\r\n","import {LiveCasinoGridItemInfobarIconDefaultBox} from \"./live-casino-grid-item-infobar-icon.default.box\";\r\n\r\nexport const LiveCasinoGridItemInfobarIconBox = LiveCasinoGridItemInfobarIconDefaultBox;","import styled from \"styled-components\";\r\nimport { Image } from \"../../../../../../raw-components/image/image\";\r\n\r\nexport const LiveCasinoGridItemInfobarIconDefaultBox = styled(Image)`\r\n margin-right: 0.25em;\r\n`;","import {LiveCasinoGridItemThumbnailImageDefaultBox} from \"./live-casino-grid-item-thumbnail-image.default.box\";\r\n\r\nexport const LiveCasinoGridItemThumbnailImageBox = LiveCasinoGridItemThumbnailImageDefaultBox;","import styled from \"styled-components\";\r\nimport {ITEM_WRAPPER_BOX} from \"../../css-constants\";\r\nimport { Image } from \"../../../../../raw-components/image/image\";\r\n\r\nexport const LiveCasinoGridItemThumbnailImageDefaultBox = styled(Image)<{filterBlur?: boolean}>`\r\n width: 100%;\r\n transition: transform 0.25s ease;\r\n ${({filterBlur}) => filterBlur ? 'filter: blur(2px)' : null};\r\n .${ITEM_WRAPPER_BOX}:hover &{\r\n transform: scale(1.2);\r\n }\r\n`;","const PRIORITY_LEVEL = {\r\n BASE: 'base',\r\n POP_UP: 'popup',\r\n OPEN_SESSION: 'open-session',\r\n FP: 'fp',\r\n OMG_BEHIND: 'omg-behind',\r\n GAME_FRAME: 'game-frame',\r\n NEXT_GAME: 'next-game',\r\n GAME_LOADING_INDICATOR: 'game-loading-indicator',\r\n GAME_FRAME_LOADER: 'game-frame-loader',\r\n GAME_FRAME_FP: 'game-frame-fp',\r\n MINI_CASHIER: 'mini-cashier',\r\n CASHIER: 'cashier',\r\n LOGIN: 'login',\r\n EXTERNAL_LINK: 'external-link',\r\n INTERNAL_OVER_EXTERNAL_LINK: 'internal-over-external-link',\r\n OMG: 'omg',\r\n GEO_FREEZE_WINDOW: 'geo-freeze-window',\r\n TEMP_ACCOUNT: 'temp-account',\r\n MEMBERSHIP: 'membership',\r\n MESSAGE: 'message',\r\n SECONDARY_MESSAGE: 'secondary-message',\r\n TOUCH_ID: 'touch-id',\r\n TOUCH_ID_POPUP: 'touch-id-popup',\r\n LOCK: 'lock',\r\n SPAIN_SUMMARY_MESSAGE: 'spain-summary-message',\r\n GAMES_QUESTIONNAIRE: 'games-questionnaire'\r\n // MEMBERSHIP: 'membership'\r\n};\r\n\r\n\r\nconst PRIORITY_LEVEL_ZINDEX_MAPPER = {\r\n [PRIORITY_LEVEL.BASE]: 8000,\r\n [PRIORITY_LEVEL.POP_UP]: 8010,\r\n [PRIORITY_LEVEL.OPEN_SESSION]: 8020,\r\n [PRIORITY_LEVEL.FP]: 8030,\r\n [PRIORITY_LEVEL.OMG_BEHIND]: 8035,\r\n [PRIORITY_LEVEL.GAME_LOADING_INDICATOR]: 8037,\r\n [PRIORITY_LEVEL.NEXT_GAME]: 8038,\r\n [PRIORITY_LEVEL.GAME_FRAME]: 8040,\r\n [PRIORITY_LEVEL.GAME_FRAME_FP]: 8041,\r\n [PRIORITY_LEVEL.GAME_FRAME_LOADER]: 8042,\r\n [PRIORITY_LEVEL.MINI_CASHIER]: 8045,\r\n [PRIORITY_LEVEL.LOGIN]: 8050,\r\n [PRIORITY_LEVEL.SPAIN_SUMMARY_MESSAGE]: 8055,\r\n [PRIORITY_LEVEL.EXTERNAL_LINK]: 8060,\r\n [PRIORITY_LEVEL.INTERNAL_OVER_EXTERNAL_LINK]: 8061,\r\n [PRIORITY_LEVEL.OMG]: 8070,\r\n [PRIORITY_LEVEL.CASHIER]: 8072,\r\n [PRIORITY_LEVEL.GAMES_QUESTIONNAIRE]: 8073,\r\n [PRIORITY_LEVEL.GEO_FREEZE_WINDOW]: 8074,\r\n [PRIORITY_LEVEL.TEMP_ACCOUNT]: 8075,\r\n [PRIORITY_LEVEL.MEMBERSHIP]: 8078,\r\n [PRIORITY_LEVEL.MESSAGE]: 8080,\r\n [PRIORITY_LEVEL.SECONDARY_MESSAGE]: 8082,\r\n [PRIORITY_LEVEL.TOUCH_ID]: 8090,\r\n [PRIORITY_LEVEL.TOUCH_ID_POPUP]: 9002,\r\n}\r\n\r\nconst WRAPPER_DEFAULT_INDEX = 7999;\r\n\r\nexport { PRIORITY_LEVEL, PRIORITY_LEVEL_ZINDEX_MAPPER, WRAPPER_DEFAULT_INDEX };\r\n","export const CHANNEL_SOURCE = {\r\n casinoClient: 'CASINO_CLIENT',\r\n partyJackpotToaster: 'PARTY_JACKPOT_TOASTER',\r\n omg: 'OMG',\r\n myAccount: 'MY_ACCOUNT',\r\n registration: 'REGISTRATION'\r\n}\r\n\r\nexport const CHANNEL_ELEMENTS = {\r\n depositButton: 'deposit_button',\r\n withdrawButton: 'withdraw_button',\r\n transactionHistoryButton: 'transaction_history_button',\r\n retryButton: 'retry_button',\r\n plusButton: 'plus_button',\r\n urlParam: 'url_param',\r\n deepLink: 'deep_link',\r\n floatingIcon: 'floating_icon',\r\n safezoneHeaderButton: 'safezone_header_button',\r\n safezoneUsefulLink: 'safezone_useful_link'\r\n}\r\n\r\nexport const DISPLAY_MESSAGE_IDS = {\r\n sofRequired: 100,\r\n retryCloseDrawerMessage: 101,\r\n psRedirectFocusDialog: 102,\r\n timeSpentReminder: 104,\r\n nightLimitWarning: 105,\r\n nightLimitKick: 106,\r\n lugasCooldown:108,\r\n lugasActiveOnAnotherOperator:109,\r\n lugasLogout:110\r\n}\r\n\r\nexport const DISPLAY_MESSAGE_NAMES = {\r\n DISRUPTIVE_WARNING_MESSAGE_NAME: \"DisruptiveWarningMessage\",\r\n DISRUPTIVE_KICKOFF_MESSAGE_NAME: \"DisruptiveKickOffMessage\",\r\n LUGAS_COOLDOWN_MESSAGE_NAME:\"LugasCoolingPeriod\",\r\n LUGAS_ACTIVE_MESSAGE_NAME:\"LugasParallelPlaying\",\r\n LUGAS_LOGOUT_MESSAGE_NAME:\"LugasLogout\"\r\n}\r\n\r\nexport const ACTION_TAKEN_NAMES = {\r\n CONFIRM_ACTION: \"confirm\",\r\n CANCEL_ACTION: \"cancel\",\r\n}","import React from 'react';\r\nimport {OrbitComponent} from '../../base-components/orbit-component/orbit-component';\r\nimport {TapHandler} from '../../tap-handler/tap-handler.component';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {AnyStyledComponent} from 'styled-components';\r\nimport styled from 'styled-components';\r\n\r\ninterface LinkProps {\r\n box?: AnyStyledComponent;\r\n id?: string;\r\n onClick?: (event?: any) => void;\r\n className?: string;\r\n href?: string;\r\n enableTap?: boolean;\r\n preventDefaultOnClick?: boolean\r\n target?: string;\r\n itemProp?: string;\r\n customProps?: {[key: string]: any};\r\n}\r\n\r\nconst DefaultBox = styled.a`\r\n color: ${props => props.theme.colors.text};\r\n`;\r\n\r\nexport class Link extends OrbitComponent {\r\n\r\n private _onClick = (event) => {\r\n\r\n if (this.services.miniOrbit.isEnabled && this.props.target === \"_blank\") {\r\n event.preventDefault();\r\n this.services.miniOrbit.openUrl(this.props.href);\r\n\r\n } else if (Check.isNullOrUndefined(this.props.preventDefaultOnClick) || this.props.preventDefaultOnClick) {\r\n event.preventDefault();\r\n }\r\n\r\n if (this.props.onClick) {\r\n this.props.onClick(event);\r\n }\r\n };\r\n\r\n private _getAnchorProps(): any {\r\n let result: any = {};\r\n\r\n if(this.props.id) {\r\n result.id = this.props.id;\r\n }\r\n if(this.props.className) {\r\n result.className = this.props.className;\r\n }\r\n\r\n if(this.props.href) {\r\n result.href = this.services.location.buildFullUri(this.props.href || '/').toString();\r\n }\r\n\r\n if(this.props.target) {\r\n result.target = this.props.target;\r\n }\r\n\r\n if(this.props.itemProp) {\r\n result.itemProp = this.props.itemProp;\r\n }\r\n\r\n if (this.props.customProps) {\r\n result.customProps = this.props.customProps;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private _renderAnchor(anchorRef: any) {\r\n const Box = this.props.box || DefaultBox;\r\n return (\r\n \r\n {this.props.children}\r\n \r\n );\r\n }\r\n\r\n render() {\r\n if (!this.props.enableTap) {\r\n return this._renderAnchor(null);\r\n }\r\n\r\n let anchorRef: any = React.createRef();\r\n return (\r\n \r\n {this._renderAnchor(anchorRef)}\r\n \r\n );\r\n }\r\n}\r\n","var map = {\n\t\"./888/888.company-model\": [\n\t\t1166,\n\t\t2,\n\t\t22,\n\t\t97\n\t],\n\t\"./evolution/evolution.company-model\": [\n\t\t1113,\n\t\t2,\n\t\t89\n\t],\n\t\"./netent/netent.company-model\": [\n\t\t1123,\n\t\t2,\n\t\t93\n\t],\n\t\"./nyx/integrations/nyx.new-integration.company-model\": [\n\t\t664,\n\t\t2,\n\t\t21,\n\t\t49\n\t],\n\t\"./nyx/integrations/nyx.old-integration.company-model\": [\n\t\t594,\n\t\t2,\n\t\t21,\n\t\t50\n\t],\n\t\"./nyx/nyx.company-model\": [\n\t\t1043,\n\t\t2,\n\t\t21,\n\t\t50,\n\t\t49,\n\t\t112\n\t],\n\t\"./pariplay/pariplay.company-model\": [\n\t\t1131,\n\t\t2,\n\t\t94\n\t],\n\t\"./play-n-go/play-n-go.company-model\": [\n\t\t1143,\n\t\t2,\n\t\t87\n\t],\n\t\"./playtech/playtech.company-model\": [\n\t\t1144,\n\t\t2,\n\t\t88\n\t],\n\t\"./pragmatic/pragmatic.company-model\": [\n\t\t1145,\n\t\t2,\n\t\t90\n\t],\n\t\"./red-tiger/red-tiger.company-model\": [\n\t\t1167,\n\t\t2,\n\t\t48,\n\t\t98\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 809;\nmodule.exports = webpackAsyncContext;","import styled from \"styled-components\";\r\nimport {MOBILE_HORIZONTAL_SPACE_BETWEEN_ITEMS, PC_HORIZONTAL_SPACE_BETWEEN_ITEMS} from \"../space-between-items-consts\";\r\n\r\nexport const PipeHorizontalSeparatorBox = styled.span`\r\n width: 2px;\r\n background-color: ${props => props.theme.colors.backgroundLight};\r\n height: 20px;\r\n margin-left: ${PC_HORIZONTAL_SPACE_BETWEEN_ITEMS()};\r\n margin-right: ${PC_HORIZONTAL_SPACE_BETWEEN_ITEMS()};\r\n @media ${props => props.theme.mediaQuery.lAndBelow} {\r\n height: 14px;\r\n margin-left: ${MOBILE_HORIZONTAL_SPACE_BETWEEN_ITEMS()};\r\n margin-right: ${MOBILE_HORIZONTAL_SPACE_BETWEEN_ITEMS()};\r\n }\r\n`","var map = {\n\t\"./ballysdover/theme.definition\": [\n\t\t1161,\n\t\t0,\n\t\t1,\n\t\t68\n\t],\n\t\"./casino777/theme.definition\": [\n\t\t1122,\n\t\t0,\n\t\t1,\n\t\t69\n\t],\n\t\"./casino888/cip/theme.definition\": [\n\t\t1162,\n\t\t0,\n\t\t1,\n\t\t72\n\t],\n\t\"./casino888/cis/theme.definition\": [\n\t\t1044,\n\t\t0,\n\t\t1,\n\t\t73\n\t],\n\t\"./casino888/theme.definition\": [\n\t\t1129,\n\t\t0,\n\t\t1,\n\t\t74\n\t],\n\t\"./delawarepark/theme.definition\": [\n\t\t1130,\n\t\t0,\n\t\t1,\n\t\t75\n\t],\n\t\"./harrahs/theme.definition\": [\n\t\t1045,\n\t\t0,\n\t\t1,\n\t\t76\n\t],\n\t\"./harrington/theme.definition\": [\n\t\t1163,\n\t\t0,\n\t\t1,\n\t\t77\n\t],\n\t\"./mrgreen/theme.definition\": [\n\t\t1142,\n\t\t0,\n\t\t1,\n\t\t78\n\t],\n\t\"./si/theme.definition\": [\n\t\t1107,\n\t\t0,\n\t\t1,\n\t\t79\n\t],\n\t\"./wsop/cip/theme.definition\": [\n\t\t1164,\n\t\t0,\n\t\t1,\n\t\t70\n\t],\n\t\"./wsop/theme.definition\": [\n\t\t1165,\n\t\t0,\n\t\t1,\n\t\t71\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 815;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./ara\": [\n\t\t596,\n\t\t26\n\t],\n\t\"./ara.ts\": [\n\t\t596,\n\t\t26\n\t],\n\t\"./chi\": [\n\t\t597,\n\t\t32\n\t],\n\t\"./chi.ts\": [\n\t\t597,\n\t\t32\n\t],\n\t\"./dan\": [\n\t\t598,\n\t\t41\n\t],\n\t\"./dan.ts\": [\n\t\t598,\n\t\t41\n\t],\n\t\"./dut\": [\n\t\t599,\n\t\t42\n\t],\n\t\"./dut.ts\": [\n\t\t599,\n\t\t42\n\t],\n\t\"./eng\": [\n\t\t378\n\t],\n\t\"./eng.ts\": [\n\t\t378\n\t],\n\t\"./fin\": [\n\t\t600,\n\t\t27\n\t],\n\t\"./fin.ts\": [\n\t\t600,\n\t\t27\n\t],\n\t\"./fre\": [\n\t\t601,\n\t\t28\n\t],\n\t\"./fre.ts\": [\n\t\t601,\n\t\t28\n\t],\n\t\"./ger\": [\n\t\t602,\n\t\t29\n\t],\n\t\"./ger.ts\": [\n\t\t602,\n\t\t29\n\t],\n\t\"./gre\": [\n\t\t603,\n\t\t30\n\t],\n\t\"./gre.ts\": [\n\t\t603,\n\t\t30\n\t],\n\t\"./ita\": [\n\t\t604,\n\t\t31\n\t],\n\t\"./ita.ts\": [\n\t\t604,\n\t\t31\n\t],\n\t\"./jpn\": [\n\t\t605,\n\t\t33\n\t],\n\t\"./jpn.ts\": [\n\t\t605,\n\t\t33\n\t],\n\t\"./nor\": [\n\t\t606,\n\t\t34\n\t],\n\t\"./nor.ts\": [\n\t\t606,\n\t\t34\n\t],\n\t\"./por\": [\n\t\t607,\n\t\t35\n\t],\n\t\"./por.ts\": [\n\t\t607,\n\t\t35\n\t],\n\t\"./rum\": [\n\t\t608,\n\t\t36\n\t],\n\t\"./rum.ts\": [\n\t\t608,\n\t\t36\n\t],\n\t\"./rus\": [\n\t\t609,\n\t\t37\n\t],\n\t\"./rus.ts\": [\n\t\t609,\n\t\t37\n\t],\n\t\"./spa\": [\n\t\t610,\n\t\t38\n\t],\n\t\"./spa.ts\": [\n\t\t610,\n\t\t38\n\t],\n\t\"./swe\": [\n\t\t611,\n\t\t39\n\t],\n\t\"./swe.ts\": [\n\t\t611,\n\t\t39\n\t],\n\t\"./tha\": [\n\t\t612,\n\t\t40\n\t],\n\t\"./tha.ts\": [\n\t\t612,\n\t\t40\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 816;\nmodule.exports = webpackAsyncContext;","export function hexToRgba(hex: string, opacity: number = 1): string {\r\n var c;\r\n if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)){\r\n c = hex.substring(1).split('');\r\n if(c.length === 3){\r\n c = [c[0], c[0], c[1], c[1], c[2], c[2]];\r\n }\r\n c = '0x'+c.join('');\r\n return 'rgba('+[(c>>16)&255, (c>>8)&255, c&255].join(',')+',' + opacity +')';\r\n }\r\n throw new Error('Bad color Hex code');\r\n}","import React from 'react';\r\nimport {ButtonPreset} from \"../../basic-ui-components/button/base/button-props.interface\";\r\nimport { ISvgIconProps } from '../../basic-ui-components/icon/svg-icon/svg.icon';\r\n\r\nexport interface IModalDialogHandler {\r\n close(shouldApplyClosingAnimation?: boolean, isClosedDirectlyByUser?: boolean): void;\r\n zIndex: number;\r\n shouldBeClosedOnlyByUser: boolean;\r\n shouldApplyClosingAnimation: boolean;\r\n}\r\n\r\nexport interface ShowModalOptions {\r\n title?: string;\r\n icon?: React.ComponentType;\r\n onClosed?: () => void;\r\n onClosedByXButton?: ()=> void;\r\n debugInfo?: string;\r\n hideBorders?: boolean;\r\n hideCloseButton?: boolean;\r\n showOpenAndCloseAnimation?: boolean;\r\n forceTransparentBackground?: boolean;\r\n transparentBackgroundOpacity?: number;\r\n forceTransparentContentBackground?: boolean;\r\n hideDialogHeader?: boolean;\r\n forceCentralization?: boolean;\r\n disableFullscreenMobile?: boolean;\r\n applyMaxHeight?: boolean;\r\n mobileCenterHeader?: boolean;\r\n isHighPriority?: boolean;\r\n forceZOrder?:number;\r\n shouldBeClosedOnlyByUser?: boolean;\r\n forceFullscreenTablet?: boolean;\r\n headerClass?: string;\r\n showPopupAboveSecondWebViewHybrid?:boolean;\r\n noDefaultContentPadding?: boolean;\r\n renderExtraHeaderButtons?: () => React.ReactElement;\r\n}\r\n\r\nexport enum DialogButtonClickHandleResultEnum {\r\n CloseDialogAndContinue,\r\n KeepDialogOpen\r\n}\r\n\r\nexport interface ISimpleTextModalButtonOptions {\r\n text: string;\r\n buttonPreset: ButtonPreset;\r\n onClick: () => Promise;\r\n}\r\n\r\nexport interface ISimpleTextModalOptions {\r\n text: string;\r\n title?: string;\r\n /** @deprecated Do not send an icon as a string url or as react element. Use an svg icon in the iconSvg prop */\r\n icon?: string | React.ReactElement;\r\n iconSvg?: React.ComponentType;\r\n showEmptyTitle?: boolean;\r\n hideCloseButton?: boolean;\r\n buttons?: ISimpleTextModalButtonOptions[];\r\n disableFullscreenMobile?: boolean;\r\n showPopupAboveSecondWebViewHybrid?: boolean;\r\n onClosedByXButton?: ()=> void;\r\n}\r\n\r\nexport interface IDialogService {\r\n showModal(renderContent: (dialogHandler: IModalDialogHandler) => React.ReactNode, options?: ShowModalOptions): IModalDialogHandler;\r\n showSimpleTextModal(options: ISimpleTextModalOptions): IModalDialogHandler;\r\n readonly currentDialogs: React.ReactNode[];\r\n readonly hasOpenDialogs: boolean;\r\n getMaxCGPOverlayZIndex(): number;\r\n closeAllDialogs(): void;\r\n}","import {IGamePartsViewModel} from \"../game-parts/game-parts-view-model.interface\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {IGameSize} from \"../open-game-api-callers/open-game-api-response.interface\";\r\nimport {\r\n Nullable,\r\n NullableUndefinedString,\r\n UndefinedNumber\r\n} from \"../../../../../common/types/nullable-types\";\r\nimport {IRunningGameControllerViewModel} from \"../game-controller/running-game-controller.interface\";\r\nimport {IOpenHistoryGameParams} from \"../../game-runner.service.interface\";\r\nimport {IFreePlayVoucherViewModel} from \"../../../free-play/vouchers/free-play-voucher-view-model.interface\";\r\n\r\nexport enum GameModeEnum {\r\n Demo = 0,\r\n Real = 1,\r\n History = 2\r\n}\r\n\r\nexport interface IGameSessionDataViewModel {\r\n readonly totalBets: number;\r\n readonly totalWins: number;\r\n readonly vendorGameSessionId: NullableUndefinedString;\r\n readonly regulationGameSessionId: NullableUndefinedString;\r\n readonly regulationParticipationTicketId: NullableUndefinedString;\r\n readonly netPosition: number;\r\n}\r\n\r\nexport interface IGameFreePlayContextViewModel {\r\n readonly isFreePlay: boolean;\r\n readonly isCurrentFreePlayMandatory: boolean;\r\n readonly shouldShowFreePlayHeader: boolean;\r\n readonly currentFreePlayVoucher: IFreePlayVoucherViewModel | null;\r\n readonly otherAvailableVouchersForCurrentGame: IFreePlayVoucherViewModel[];\r\n}\r\n\r\nexport interface IGameContextViewModel {\r\n readonly gameMode: GameModeEnum;\r\n readonly gameInfo: GameInfo;\r\n readonly controller: IRunningGameControllerViewModel;\r\n readonly gameParts: IGamePartsViewModel;\r\n readonly launchGameUrl: string | null;\r\n readonly gameSize: Nullable;\r\n readonly isGameResizable: boolean;\r\n readonly freePlayContext: IGameFreePlayContextViewModel;\r\n readonly historyGameParams: IOpenHistoryGameParams | undefined;\r\n readonly gameSessionData: IGameSessionDataViewModel;\r\n readonly referrerId: UndefinedNumber;\r\n readonly allowSwitchBetweenDemoAndReal: boolean;\r\n}","const REGULATION_CODE_TYPES = {\r\n COM: 0,\r\n ITALY: 1,\r\n SPAIN: 2,\r\n NEVADA: 3,\r\n GIB: 4,\r\n DELAWARE: 6,\r\n NJ: 7,\r\n DK: 8,\r\n ROMANIA: 9,\r\n GERMANY: 12,\r\n PORTUGAL: 14,\r\n SWEDEN: 15,\r\n MALTA: 16,\r\n SH: 18,\r\n MICHIGAN: 19,\r\n CANADA_ONTARIO: 21,\r\n NETHERLANDS: 22,\r\n UK: 255\r\n};\r\n\r\nconst REGULATION_NAMES = {\r\n [REGULATION_CODE_TYPES.ITALY]: 'Italy',\r\n [REGULATION_CODE_TYPES.SPAIN]: 'Spain',\r\n [REGULATION_CODE_TYPES.NEVADA]: 'Nevada',\r\n [REGULATION_CODE_TYPES.GIB]: 'Gibraltar',\r\n [REGULATION_CODE_TYPES.DELAWARE]: 'Delaware',\r\n [REGULATION_CODE_TYPES.NJ]: 'NewJersey',\r\n [REGULATION_CODE_TYPES.DK]: 'Denmark',\r\n [REGULATION_CODE_TYPES.PORTUGAL]: 'Portugal',\r\n [REGULATION_CODE_TYPES.SWEDEN]: 'Sweden',\r\n [REGULATION_CODE_TYPES.UK]: 'UK',\r\n [REGULATION_CODE_TYPES.MALTA]: 'Malta',\r\n [REGULATION_CODE_TYPES.ROMANIA]: 'Romania',\r\n [REGULATION_CODE_TYPES.GERMANY]: 'Germany',\r\n [REGULATION_CODE_TYPES.CANADA_ONTARIO]: 'Ontario',\r\n [REGULATION_CODE_TYPES.NETHERLANDS]: 'Netherlands',\r\n [REGULATION_CODE_TYPES.MICHIGAN]: 'Michigan'\r\n};\r\n\r\n\r\nconst REGULATION_SUFFIX = {\r\n [REGULATION_CODE_TYPES.COM]: 'com',\r\n [REGULATION_CODE_TYPES.ITALY]: 'it',\r\n [REGULATION_CODE_TYPES.SPAIN]: 'es',\r\n [REGULATION_CODE_TYPES.NEVADA]: 'nev',\r\n [REGULATION_CODE_TYPES.GIB]: 'gib',\r\n [REGULATION_CODE_TYPES.DELAWARE]: 'del',\r\n [REGULATION_CODE_TYPES.NJ]: 'nj',\r\n [REGULATION_CODE_TYPES.DK]: 'dk',\r\n [REGULATION_CODE_TYPES.PORTUGAL]: 'pt',\r\n [REGULATION_CODE_TYPES.SWEDEN]: 'sw',\r\n [REGULATION_CODE_TYPES.UK]: 'uk',\r\n [REGULATION_CODE_TYPES.MALTA]: 'mt',\r\n [REGULATION_CODE_TYPES.ROMANIA]: 'ro',\r\n [REGULATION_CODE_TYPES.CANADA_ONTARIO]: 'ont',\r\n [REGULATION_CODE_TYPES.NETHERLANDS]: 'nl',\r\n [REGULATION_CODE_TYPES.MICHIGAN]: 'mi'\r\n};\r\n\r\n\r\nconst TEMP_ACCOUNT_STATUS = {\r\n APPROVED: 'APPROVED',\r\n DOCUMENTS_NOT_RECEIVED: 'DOCUMENTS_NOT_RECEIVED',\r\n PENDING_VERIFICATION: 'PENDING_VERIFICATION'\r\n};\r\n\r\nconst BRANDS = {\r\n COM : 0,\r\n NJ888 : 73,\r\n SPAIN: 58,\r\n CANADA: 87,\r\n MICHIGAN: 91\r\n};\r\n\r\n\r\nexport {REGULATION_CODE_TYPES, REGULATION_NAMES, REGULATION_SUFFIX, TEMP_ACCOUNT_STATUS, BRANDS};\r\n","import styled, { css } from 'styled-components';\r\n\r\nexport const dialogTextMixin = css`\r\n color: ${({theme}) => theme.colors.textLight};\r\n font-size: 1.5rem;\r\n text-align: center;\r\n`;\r\n\r\nexport const dialogHighlightedTextMixin = css`\r\n color: ${props => props.theme.colors.brandPrimary};\r\n font-size: 1.5rem;\r\n text-align: center;\r\n`;\r\n\r\nexport const DialogTextBox = styled.div`\r\n margin-top: 2rem;\r\n ${dialogTextMixin}\r\n`;\r\n\r\nexport const DialogHighlightedTextBox = styled.div`\r\n margin-top: 2rem;\r\n ${dialogHighlightedTextMixin}\r\n`;\r\n\r\nexport const ListDialogTextBox = styled.div`\r\n color: ${({theme}) => theme.colors.textContrast};\r\n margin-top: 4rem;\r\n font-size: 1.5rem;\r\n text-align: left;\r\n`;\r\n\r\nexport const DialogDimmedTextBox = styled.div` \r\n margin-top: 2rem;\r\n font-size: 1.4rem;\r\n text-align: center;\r\n color: ${({theme}) => theme.colors.textMiddleDark};\r\n `;"],"sourceRoot":""}