{"version":3,"sources":["app-react/themes/architecture/theme-names.ts","app-react/themes/architecture/css-helpers/flex.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/basic-components/space-between-items-consts.ts","sdk/src/exceptions/cgp_error_codes.ts","app-react/themes/assets.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","common/const/free_play_consts.ts","utils/disposable-object.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","common/const/game_groups_consts.ts","app-react/components/base-components/routed-component/routed.component.ts","app-react/themes/definitions/si/base-colors.ts","sdk/src/events/events.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","app-react/themes/architecture/styled-by-theme.tsx","common/const/wallet_balance_type.ts","app-react/basic-ui-components/form/select.component.tsx","sdk/src/utils/event.ts","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","common/cy-classes.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","app-react/components/geo/boxes/geo-modal-wrapper.box.ts","app-react/components/balance-box/balance-value.component.tsx","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","app-react/components/inside-orbit-menu-container/inside-orbit-menu-container.consts.ts","app-react/themes/definitions/casino777/base-colors.ts","app-react/basic-ui-components/icon/svg-icon/svg.icon.tsx","app-react/services/games-filter/games-filter.service.interface.ts","common/const/ab-testing-names.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/themes/architecture/styled-by-device.tsx","polyfills.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/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/games-filter/interfaces/game-filter-evaluator.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/filters-definitions/vendor.filter.ts","app-react/services/games-filter/evaluators/or-game-filters-evaluator.ts","app-react/services/games-filter/filters-categories-definitions/game-vendor.filters-category.ts","app-react/services/games-filter/filters-definitions/game-group.filter.ts","app-react/services/games-filter/filters-definitions/custom.filter.ts","app-react/services/games-filter/filters-definitions/subgroup-name.filter.ts","app-react/services/games-filter/filters-definitions/all-roulette.filter.ts","app-react/services/games-filter/filters-definitions/all-blackjack.filter.ts","app-react/services/games-filter/filters-definitions/all-baccarat.filter.ts","app-react/services/games-filter/filters-definitions/all-poker.filter.ts","app-react/services/games-filter/filters-categories-definitions/game-group.filters-category.ts","app-react/services/games-filter/evaluators/and-game-filters-evaluator.ts","app-react/services/games-filter/filters-categories-definitions/game-feature.filters-category.ts","app-react/services/safezone/safezone.service.interface.ts","app-react/services/games-filter/strategies/games-filter-strategy-base.ts","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/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/arena-game-filter-editor.ts","app-react/services/games-filter/arena-filters/arena-game-filters-category-editor.ts","app-react/services/games-filter/strategies/advanced-filter/advanced-strategy-filters-editor.ts","app-react/services/games-filter/arena-filters/arena-game-filter.ts","app-react/services/games-filter/arena-filters/arena-game-filters-category.ts","app-react/services/games-filter/filters-definitions/other.filter.ts","app-react/services/games-filter/filters-categories-definitions/other.filters-category.ts","app-react/services/games-filter/arena-filters/dynamic-arena-game-filter.ts","app-react/services/games-filter/filters-definitions/company.filter.ts","app-react/services/games-filter/arena-filters/dynamic-arena-games-filters-category.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/strategies/advanced-filter/advanced-games-filter.strategy.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/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/strategies/simple-games-filter/simple-games-filter.strategy.tsx","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.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-icon1.box.ts","app-react/components/free-to-play-animated-icon/boxes/free-to-play-animated-icon2.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/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/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/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/limits-toaster/limits-toaster.service.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/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/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","app-react/services/regulation/legacy-regulation-wrapper.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/components/profile-box-messages-indicator/consts/indicator-layout.ts","app-react/services/specific-dialogs/specific-dialogs.service.ts","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/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/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-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","sdk/src/components/external_links/external_links_consts.js","app-react/themes/architecture/by-theme-registry.ts","sdk/src/services/hybrid/native/native_const.js","app-react/basic-ui-components/x-close-button/x-close-button.box.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","common/utils/cashier-util.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","common/const/state-of-residence-cookie_const.ts","app-react/components/free-play/voucher-card-css-constants.ts","app-react/themes/architecture/asset.ts","app-react/themes/architecture/css-helpers/css-rule.ts","app-react/basic-components/blank-separator/blank-horizontal-separator.box.ts","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/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","sdk/src/services/overlay_manager/overlay_manager_levels.ts","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/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","app-react/components/raw-components/link/link.tsx","app-react/basic-components/pipe-separator/pipe-horizontal-separator.box.ts","common/const/casinofied-analytics-consts.ts","app-react/themes/hex-to-rgba.ts","app-react/services/companies/companies-models lazy /^/.*/.company/-model$/ groupOptions: {} namespace object","app-react/themes/definitions lazy /^/.*/theme/.definition$/ groupOptions: {} namespace object","settings/configuration/languages lazy /^/.*$/ groupOptions: {} namespace object","app-react/services/game-runner/interfaces/game-context/game-context-view-model.interface.ts","app-react/services/dialog/dialog.service.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","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","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","EGR_logo_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_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","freeToPlay1_atlas","freeToPlay1_json","freeToPlay1_png","freeToPlay2_atlas","freeToPlay2_json","freeToPlay2_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","ButtonsWrapperDefaultBox","buttonsOnSeparateLines","ButtonWrapperDefaultBox","ButtonSpacerDefaultBox","LinkActionBox","button","theme","font","presets","body","colors","brandPrimary","LinkWrapperDefaultBox","ModalDialogActionsComponent","this","className","onClick","primaryAction","disabled","preset","fullWidth","text","secondaryAction","useWarningPreset","linkAction","React","Component","FP_VOUCHER_TYPES","FP_MESSAGE_MODE","POPUP","EMBEDDED_INTERNAL","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","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","GAME_GROUP","RoutedComponent","OrbitComponent","baseColors","base01","base01Contrast","base01Dark","base01Light","base02","base02Contrast","base02Dark","base02Light","base03","base03Contrast","base03Dark","base03Light","base04","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_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","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","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","StyledByTheme","getRegistryItem","ComponentDefinition","currentTheme","themeName","forwardedRef","forwardRef","ByThemeRegistry","styledByTheme","defaultComponent","BalanceType","SelectWrapperBox","width","textLight","SelectBox","select","regular","backgroundMiddleDark","border","radius","hasError","danger","boxBorderLighter","boxBorderContrast","SelectBoxArrow","Select","passThroughProps","selectWidth","ArrowIcon","icons","rightArrowIcon","size","Event","_subscriptions","callback","context","eName","eCallback","eContext","Error","Array","isArray","eventName","cleanFunctions","eventIdx","on","self","onceCallback","apply","_originalCallback","params","subscriptions","getAllSubscriptions","events","concat","event","ex","console","error","cb","cleanFn","TopBannerDefaultBox","NEW_LIVE_CASINO_PAGE","mediaQuery","mAndBelow","GAMING_HISTORY_PAGE","TIPPING_HISTORY_PAGE","sAndBelow","TopBanner777Box","lAndBelow","TopBannerSIBox","backgroundDark","TopBannerBox","forCasino777","forSI","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","_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","log","_openPopup","catch","err","_sendAnalytics","dialog","showModal","shouldBeClosedOnlyByUser","hideCloseButton","isHighPriority","hover","stopPropagation","label","analytics","sendAnalytics","_closeToolTip","_getTooltipBox","CyClass","_restrictUser","classNames","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","imagePreload","fromMinutes","Promise","res","rej","onload","timeoutRejection","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","GeoModalWrapperBox","BalanceValue","balance","bankroll","walletProxy","balanceType","numberIndex","search","symbolIndex","min","WrapperComponent","defaultProps","BOTH","moneyColor","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","base04Contrast","base04Dark","base04Light","base05","base05Contrast","base05Dark","base05Light","SvgSizeUnit","Svg","svg","flipOnRTL","RTL","SvgIcon","sizeUnit","Rem","defaultSize","Px","Percent","ratio","height","viewBox","style","display","version","xmlns","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","FEATURE_NAME_FLOATING_ICON_F2P","InsideOrbitMenuContainerComponent","isInsideAutomation","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","pc","smoothscroll","polyfill","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","Check","isNullOrUndefined","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","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","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","XCloseButtonBox","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","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","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","spriteSheet","BasePcBox","BaseMobileBox","GeneralTitleCasino777Box","SectionTitleCasino777Box","SectionTitleBox","GameAboutComponent","aboutText","GameJackpotPreviewBox","GameJackpotDefaultBox","GameJackpotSIBox","GameJackpotBox","GameJackpotValueDefaultBox","GameJackpotValueSIBox","brandPrimaryContrast","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","GAMES_CATEGORIES","gameInfoComparerByTitle","game1","game2","List_Type","GameInfo","_rawGameData","_aboutText","allowSwitchGameMode","numberOfLines","_hasCustomFilter","filterName","filtersList","filter","hasBonusGames","numberOfDecks","isMultiHand","hasFreeSpins","subGroupName","isEliteLounge","hasSideBets","maxBetPerSpot","ClassicSlots","HighVolatilityTag","LowVolatilityTag","isAllowedCategory","gameCategory","gameGroup","_isAuthorized","forceDemoButton","_isMobile","isAnonymousSupported","siteMap","isUrlInSiteMap","Boolean","gameGroupId","getGameCategory","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","forceIntermediatePageForAutorizedUsers","isDemoModeSupported","shouldUseModernMode","_openInModernMode","_openInLegacyMode","cmsSegmentation","isCstatus","_showIntermediatePage","_shouldRedirectToMembership","_openMembership","closeGame","_sendOpenGameAnalytics","gameController","marketingParams","eventsTrigger","updateMarketingParams","openGame","gameMode","GameModeEnum","Real","freePlayParams","skipFreePlaySuggestion","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","VIDEO_POKER","SCRATCH_CARD","BLACKJACK","ROULETTE","LIVE_CASINO","BACCARAT","externalGameCode","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","_gameGroupToCategoryMapping","_createConfigData","launcher","getTestedGames","originalConfigData","homePage","gamesLists","Swipers","popularTables","PopularTables","swiperGamesList","allGamesGrid","Grids","injectAdminArenas","_getConfigEvaluationContextServices","_defineCustomConfigProperty","getOwnPropertyNames","parseInt","runInAction","configData","evaluator","gamesCategories","mappedCategory","_mapGameCategoryToEnum","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","activeChallengeCount","userName","cid","registrationCountry","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","ApplyGameFilterResult","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","RegistrationCountry","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","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","VendorFilter","_vendorName","removeSpaces","IncludeGame","ExcludeGame","OrGameFiltersEvaluator","_evaluators","NotApplicable","applyFilter","OR","GameVendorFiltersCategory","availableFilters","filters","GameGroupFilter","_gameGroupName","CustomFilter","_evaluate","SubgroupNameFilter","_subGroupName","AllRouletteFilter","AllBlackjackFilter","AllBaccaratFilter","AllPokerFilter","GameGroupFiltersCategory","game","isExclusiveGame","AndGameFiltersEvaluator","AND","SAFEZONE_CONTAINERS_ID","COMPONENT_NAMES","GameFeatureFiltersCategory","isNewGame","hasLowStakes","isClassicSlot","hasHighVolatility","hasLowVolatility","GamesFilterStrategyBase","_filtersCategories","addReaction","filteredGamesMap","_filterGames","_createFiltersCategories","filtersCategories","f","currentFilters","some","isApplied","_createEvaluator","filterResult","FilterLinkIconDefaultPCBox","FilterLinkIconDefaultMobileBox","brandSecondaryLight","brandPrimaryDark","FilterLinkIconDefaultBox","FilterLinkIconCasino777Box","MobileSIBox","FilterLinkIconSIBox","FilterLinkIconBox","FilterLinkDefaultBox","textMiddleDark","textHover","lAndAbove","FilterLinkCasino777Box","backgroundActive","FilterLinkSIBox","FilterLinkBox","FilterLinkComponent","_onFilterClick","onChange","CommonStyles","FiltersGamesListBox","FilterLinkListComponent","_toggleHandler","onToggle","_renderOneFilter","AdvancedGamesFilterComponent","_onClick","filtersEditor","applyFilters","drawer","right","back","visibleCategories","c","visibleFilters","_extractFilters","toggleFilter","AdvancedGamesFilterDrawerRenderer","isMinimized","minOverlayZIndex","supportsCloseIntent","tools","getGuid","ArenaGameFilterEditor","arenaGameFilter","_on","isDynamicFilter","ArenaGameFiltersCategoryEditor","arenaGameFilterCategory","_filters","shouldBeDisplayed","AdvancedStrategyFiltersEditor","_categories","getAppliedFiltersIds","gamesFilter","_getSelectedFiltersIds","ArenaGameFilter","filterConfiguration","isFilterApplied","ArenaGameFiltersCategory","categoryDefinition","_createFiltersForCurrentArena","appliedFilters","currentArenaFiltersConfigurations","currentArenaFiltersConfigurationsMap","OtherFilter","allOthersCategories","isApplicableForCurrentArena","categoriesInCurrentArena","currentArenaCategories","isGameIncludedInThisCategory","OtherFiltersCategory","otherAvailableCategories","DynamicArenaGameFilter","filterDefinition","CompanyFilter","_companyName","DynamicArenaGamesFiltersCategory","_createDynamicFilters","currentAppliedFiltersIds","appliedFilterId","dynamicFilterDefinition","_createDynamicFilterById","filterId","parts","FiltersMobileButtonDefaultBox","FiltersMobileButtonCasino777Box","FiltersMobileButtonBox","FiltersMobileIconDefaultBox","FiltersMobileIconCasino777Box","FiltersMobileIconBox","FiltersMobileButtonComponent","showFiltersEditor","isFilteringAvailable","shouldHideFiltersButtonMobile","isFilterOn","IndicatorContainerBox","family","AdvancedGamesFilteringPcIndicatorComponent","_onClickHandler","_onRemoveFilter","_getAppliedFilters","_renderOneAppliedFilter","_renderAppliedFilters","AdvancedGamesFilterStrategy","_vendorCategory","Lazy","_groupCategory","_featuresCategory","_othersCategory","_dynamicCategory","NextToArenaTitle","reactElement","_createFiltersEditor","FiltersGamesMobilePopupBox","FiltersMobileButtonsBox","FiltersGamesListMobileComponent","_closePopup","_applyFilters","checkedFiltersIds","_clearFilters","_onToggleFilter","_renderPopupButtons","SimpleStrategyFiltersEditor","_sortFilters","filtersConfigurations","f1","f2","FiltersGameListPcBox","FiltersGamesListPcComponent","_toggleFilter","SimpleGamesFilterStrategy","mobileCenterHeader","applyMaxHeight","BelowArenaTitle","GamesFilterService","_useAdvancedStrategy","_currentFilteringStrategy","_createStrategy","urlHash","filterIds","renderMobileFiltersIndicator","renderPCFiltersIndicator","currentArena","currentValue","filters_v2","OPEN_SAFEZONE_SOURCE_VALUES","CHANNEL","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","sessionType","openMyAccount","tabId","openContactUs","target","AppLauncher","apps","CR_HELP_CENTER","enabled","_openHelpWidget","onContactUs","_openLinkAction","safezone","openFullSafezone","TimeSpentReminderPage","openHelpPage","appLauncher","openHelpWidget","businessCorrelationID","NavigationMenu","AppIdentifiers","CRHelpCenter","CasinoClient","shouldOpenLocal","local","sourceLink","li","boxBorderDark","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","_doConfigMenuAction","getUsefulLinks","sdkLinks","filteredOutIds","_getSdkFilteredOutUsefulLinksIds","pickedLinks","_doSdkMenuAction","executeAction","hour","minute","welcomeMessage","defaultMessage","conditions","ruleHour","ruleMinute","openDeposit","depositButton","openWithdraw","withdrawButton","showLoyalty","menuFlow","hasCustomFlow","executeCustomFlow","continue","externalLinkSource","openMenu","_setIsRewardsInfo","_setIsOpen","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","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","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","_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","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","JackpotWidgetAmountBox","JackpotWidgetFooterBox","JackpotWidgetClockLabelDefaultBox","Hot","handleClockLabelFontSize","JackpotWidgetClockLabelCasino777Box","JackpotWidgetClockLabelBox","JackpotWidgetClockDefaultBox","clock","handleClockBoxFontSize","JackpotWidgetClockCasino777Box","JackpotWidgetClockBox","JackpotWidgetClockComponent","updateClockInterval","clockInit","getMustHitTime","clearClockInterval","updateClock","setInterval","serverDate","mustHitDate","remainingTimeMilis","getTime","remainingTimeTimeSp","fromMilliseconds","clockValue","useTotalHours","jackpotsWithState","getThemeType","JackpotWidgetAmountLabelDefaultBox","handleAmountLabelFontSize","JackpotWidgetAmountLabelCasino777Box","JackpotWidgetAmountLabelBox","JackpotWidgetCollectingLabelDefaultBox","handleCollectingLabelFontSize","JackpotWidgetCollectingLabelCasino777Box","JackpotWidgetCollectingLabelBox","JackpotWidgetCollectingAmountDefaultBox","handleCollectingAmountFontSize","JackpotWidgetCollectingAmountCasino777Box","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","ListTitleTextBox","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","_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","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","_aiEngineListsSortOrder","_isUsingExternalAIForSwipersSorting","_getSwipersConfigurations","sw","_setAiEngineListsSortOrder","swipers","_getSwiperIdToPutOnTop","listIndex","originalSwipers","scores","notForcedInLayoutSortedSwipers","forceInLayout","s1","s2","sortedSwipersConfigs","gameList","mappedGameList","shift","_createAllLists","_sendGameListsAnalytics","allLists","_appendGrids","_limitTheNumberOfSwipers","_saveSwipersPostLoginSortOrder","_sortSwipersByPostLoginOrder","_movePreferredSwiperOnTop","_sortSwipersByAI","_createSwipers","maxSwipersToShow","maxNumberOfSwipers","_renderListAndBanner","_renderPromotionalBanner","currentListPosition","saveSortOrder","sortLists","_createSwiper","_getGridsConfigurations","_createGrid","createGrid","createSwiper","_getPromotionalBannerConfig","bannerMinHeight","_getBannerMinHeightInPixels","HomepageHeaderArenaIconDefaultBox","useSmallHeaderArenas","headerArenaIconDropShadow","HomepageHeaderArenaIconSIBox","HomepageHeaderArenaIconBox","HomepageHeaderArenaTitleDefaultBox","HomepageHeaderArenaTitleSIBox","brandSecondaryContrast","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","FreeToPlayAnimatedIcon1Box","MutualBox","FreeToPlayAnimatedIcon2Box","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","icon1RequestOptions","freeToPlay1","icon2RequestOptions","freeToPlay2","iconObservableTarget","_openBonusWheel","freeToPlay","showPromotion","floatingIcon","REQUESTED","requestOptions","iconIndex","loadFreeToPlayAnimation","isPromotionEligible","isPromotionOpened","StyledBox","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","lobbyInfoKeyframes","LobbyGameInfoBox","STICKY","ArenaInfoPreviewComponent","arenaPictureLoading","arenaInfo","isSticky","previewImage","description","PcGamePreviewTitleComponent","gameTitle","GameInfoPreviewComponent","_onMouseEnter","pinCurrentGamePreview","_onMouseLeave","unPinCurrentGamePreview","gameCategoryClassName","PcGameInfoPreviewComponent","enableGamePreview","disableGamePreview","enabledOnPC","stickyHandler","ARENA_TYPES","CasinoArenaComponent","_stickyHandler","stickyHandlerFactory","createStickyHandler","classList","remove","getArenaConfig","sideBarInfo","infoSideBar","infoTitle","infoText","infoImage","topImage","showSearchIcon","arenaFiltersRenderingOptions","CasinoLobbyArenaModel","g","isVideoSlot","casinoGamesGroups","CARRIBEAN_POKER","CRAPS","KENO","POKER","POKER_TEMPLATE_GAMES","isLiveCasino","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","current","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","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","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","input","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","ExternalLinksService","onPlayerAction","_onPlayerActionHandler","actionName","openCashier","registration","StraightToCashier","marketingData","sdkOpenParams","resolveByCallback","actionCallback","response","deposit","unknown","GNWP_SOURCES","PENDING_PLAY","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","openMembership","_openCashier","_playGame","cashierAction","_findNextActionOfType","actionType","next","isActionOfType","MyAccountDeepLinkAction","RedirectDeepLinkAction","TerminateDeepLinkAction","UploadDocumentDeepLinkAction","openUploadDocument","FreePlayDeepLinkAction","freePlayArriveSubscribe","onFreeplayVouchersUpdated","openRewards","OpenListDeeplinkAction","getListConfig","verticalGamesList","OpenListDeeplinkByTitleAction","getGamesListByTitle","OpenListDeeplinkByIdAction","getGamesListById","Number","ControlCenterDeeplinkAction","FreeToPlayDeeplinkAction","waitForEligibility","gameStage","specificParams","appSpecificParameters","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","add","_cleanUpOldAbTestData","currentPathName","OverlayService","ORBIT_OVERLAY_OPEN","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","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","zOrder","ModalDialogHandler","_getNextZIndex","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","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","richPageUrl","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","_setFree2PlayIconNumber","_getFeature","FeatureName","testGroup","GroupName","testId","TestId","isEligible","featuretoggle","_features","aiSortGamesListsFeatureData","_hasFeature","abTestingSearchGameSuggestionByAI","aitype","abTestingPlayersLikeYouGamesListTypeIdAIData","listid","abTestingListOnTopData","abTestingSafeZoneToggleData","enablesafezone","enabledForRegulation","SafezoneLoader","miniBannersFeature","componentid","isBecauseYouPlayedEnabled","abTestingAnimatedIcons","indexNumber","abTestingFeature","iconid","free2PlayIconNumber","GradualIncreaseHelper","_params","realAmount","fakeAmount","stepAmount","amountIncreaseTimer","stopAmountIncreaseTimer","startAmount","steps","startAmountIncreaseTimer","updateFakeAmount","GradualIncreaseHelperFactoryService","SafezoneService","_safezoneObj","_fullSafezoneHandler","_miniSafezoneHandler","_onSafezoneReady","component","MINI","onReady","FULL","_onCallToActionFunc","actionId","USER_AREA","correlationId","correlationID","closeMiniSafezone","closedFromSafezone","openResponsibleGamblingLink","_kickUserAfterSelfExclude","enableSafeZone","_connectToSafezone","_logoutSafezone","safezoneObjectFactory","createFullSafezoneHandler","createMiniSafezoneHandler","_setHasError","createSafezoneObjectParams","onCallToActionCallback","onReadyCallback","createSafezoneObject","analyticsDataLayer","pushSafezoneInitParams","full","init","mini","safeZoneDeeplink","LOBBY","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","_subscribeToUserMenuOpenReaction","userMenuIsOpen","_checkAndRenderMiniSafezone","_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","InternalNavSideMenuLink","getLinkAction","InternalNavIcon","Icon","buildFullUri","isLinkToCurrentPage","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","SLOTS","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","closeModalDialog","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","_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","stateOfResidenceIdentifier","displayStateSelectorPopup","locationIcon","PRIORITY_LEVEL_ZINDEX_MAPPER","PRIORITY_LEVEL","TOUCH_ID","onMessageClosed","downloadPlugin","restartDownloadPlugin","installPopUpClosed","LocationIcon","GEO_FREEZE_WINDOW","timeSpentReminderClockIcon","_getTimeSpentReminderDialogOptions","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","LIMIT_NAMES","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","appInitResult","appInitParams","errorDescription","_isCurrentApp","sessionID","loadingTime","getAppInitParamsStartTime","_getAppInitCommonParams","commonParams","reportDuration","_showApp","sdkObjectName","appObject","_getAppSdkObjectName","_createApplicationAdapter","appInitRequest","_getInitAppParams","_getUserInfo","geoInfo","productPackageToID","productPackageID","deviceInfo","_isMinimized","componentData","_getMiniatureComponentID","_setIsMinimized","waitForAppToOpen","createComponent","show","minimizeApp","InsideDrawerApplication","_drawerContentHandler","_retryOpen","Message","retryButton","_shouldMinimizeOnDrawerClose","_publishMinimizeApp","_publishAppClosed","Overlay","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","openOldChat","sourceAppID","CustomerRelations","FreeToPlayBonusGamesApplication","_bonusWheelContainerElement","setIsPromotionOpened","HelpCentreApplication","CasinofiedAppFactory","CrChat","OpenBanking","UnifiedCashier","Redirect","UnifiedCashout","TransactionHistory","CasinoBonusGameWidget","CasinofiedAppLauncherService","_appFactory","_onBeforeOAuthStateChangedHandler","_closeAllApps","_openAppHandler","_onBrowserUnload","_appClosedHandler","runningApp","_runningApps","_appMinimizedHandler","minimize","_appMaximizedHandler","maximize","_subscribeToTopics","_subscribeToReactions","_subscribeToSdkEvents","_subscribeToBrowserEvents","appMaximized","appMinimized","canClose","closeReason","onBeforeOAuthStateChanged","unload","shouldReportOpenAppEvent","openAppRequest","createApplication","isOpeningInNewWindow","trigger","TriggerType","automaticFlow","sourceAppVersion","appIdentifier","userSelection","_launchApp","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","actionID","ActionID","openEmail","OpenEmail","OpenOnlineHelp","OPEN_EMAIL","OPEN_ONLINE_HELP","CasinofiedActionHandlerService","_performActionHandler","actionHandler","_createActionHandler","handle","openBanking","uploadDocuments","withdraw","openOnlineHelp","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","appInitResultReportingDetails","isOk","getLaunchInfo","appClosedParams","appCloseReason","screen","devicePixelRatio","closingReasonID","actionHandlerStep","actionResult","loadSubject","duration","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","isDepositSessionType","isCashoutSessionType","cashOutEligibility","_openCashierExternalLink","LegacyRegulationWrapper","legacyRegulation","regulationType","REGULATION_NAMES","getRealityCheckIntervalExpectedByTheGame","getAgeResponsibleGamingLabel","updateRealityCheckInterval","nightLimitExpirationDate","showNightLimitMessage","postLoginActionsArePassed","openLimits","openSelfExclusion","NAVIGATION_VIEWS","WINDOW","openSelfTest","RegulationService","sessionCooldownConfig","shouldShowPlayerLimitsToaster","getErrorMessage","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","_setLastPlayedGame","_resetLastPlayedGames","_updateCurrentBecauseYouPlayedGames","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","gameFrameZIndex","persistedGameParams","SessionStorageKeys","currentGameParams","initialGameParams","onDepositWidgetClosed","_refreshCurrentGameBalance","CASHIER","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","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","abIndex","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","IsHybrid","IsAuthenticated","Serial","States","placeholderId","deviceCode","SessionTimerService","_onSessionTimerUpdate","currentSessionTimer","sessionTime","GeoLocationService","IndicatorLayout","CrmService","_sdkLib","_initCrmPromise","_initService","onFirebaseGotNewToken","_connect","isAuth","_initCrm","_disconnect","CrmSdk","libUrl","executeInitCrm","_loadLib","initCrm","userToken","fbToken","onConnectedToFirebase","onDisconnectedFromFirebase","checkEligibility","_getEligibility","doNotShowPromotionReasons","PromotionRestricted","reasonIsNotEligible","SpecificDialogsService","analyticsOnClick","DownloadAppIcon","openDownloadApp","KeepDialogOpen","TippingHistoryBaseModel","_setRecords","reset","loadAllRecords","TipHistory","GameTypeID","TipAmount","AvailableBalanceAfterAction","getTippingHistory","tipId","TipID","gameTypeId","imagePlaceHolderUrl","tipDate","TipDateTime","_getAmounts","TippingHistoryService","LoyaltyIndicatorModel","_clickHandler","_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","getUserSelectedState","isOneSiteEnabled","_renderStateSelector","RegularStatePopupStrategy","_popupDisplayedLocalStorageKey","stateID","forceDisplay","OneSiteStatePopupStrategy","_shouldShowLoginFormSessionStorageKey","saveStateInCookie","reload","getStateFromCookie","StateOfResidenceIdentifierService","_statePopupStrategy","_displayLoginForm","_cookieKey","STATE_OF_RESIDENCE_COOKIE_KEY","statePopupStrategy","shouldDisplayStatePopup","StatePopup","getComponent","onStateConfirmation","onOtherStateClick","getPopupTitle","locationPopupClosed","removeStateCookie","oneSite","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","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","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","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","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","egr_logo","egrLogo","_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","_languageIso2","_cmsSource","overrides","_loadStyleTag","_buildFilePath","_loadScriptTag","scriptTag","styleTag","DEFAULT_CONFIGS","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","Load","LoadingDotBox","animationDelay","LoadingDotsBox","LoadingDotsComponent","SeoBreadcrumbsContainerBox","SeoBreadCrumbsComponent","IFRAME","REDIRECT","SECOND_WEB_VIEW","CASHIER_ACTIONS","LINK_DEFAULT_CONGIF","allowedViews","dimensions","isAuthRequired","isCloseBtnAllowed","immediateShow","isMobileFullScreen","priorityLevel","macos","browsers","safari","isNotAuthRequired","MEMBERSHIP","backToView","SECONDARY_MESSAGE","COMPONENT_TYPES","DIRECTIVE","CONTACT_US","FORGOT_PASSWORD","FORGOT_USERNAME","MY_ACCOUNT","SPORT","RICH","PENDING_LOGIN","DOCUMENT_UPLOAD","_default","_registry","override","Casino888","Casino888Cip","WsopCip","Casino888Cis","Harrahs","Wsop","BallysDover","Delawarepark","Harrington","SI","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","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","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","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","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","VOUCHER_CARD_WIDTH","_relativePath","_brandsOverrides","_locationInfo","locationInfo","negateNextRule","formatRule","EMBEDDED_HYBRID","MINI_ORBIT","BlankHorizontalSeparatorBox","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","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","InfoIcon","_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","BASE","POP_UP","OPEN_SESSION","FP","OMG_BEHIND","NEXT_GAME","GAME_LOADING_INDICATOR","GAME_FRAME_LOADER","GAME_FRAME_FP","MINI_CASHIER","LOGIN","EXTERNAL_LINK","INTERNAL_OVER_EXTERNAL_LINK","TEMP_ACCOUNT","MESSAGE","TOUCH_ID_POPUP","LOCK","SPAIN_SUMMARY_MESSAGE","GAMES_QUESTIONNAIRE","WRAPPER_DEFAULT_INDEX","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","LiveCasinoGridItemInfobarIconBox","LiveCasinoGridItemThumbnailImageBox","anchorRef","_getAnchorProps","_renderAnchor","PipeHorizontalSeparatorBox","partyJackpotToaster","omg","myAccount","urlParam","nightLimitKick","DISRUPTIVE_KICKOFF_MESSAGE_NAME","hex","opacity","webpackAsyncContext","__webpack_require__","code","ids","exports","REGULATION_CODE_TYPES","COM","ITALY","SPAIN","NEVADA","GIB","DELAWARE","NJ","DK","ROMANIA","GERMANY","PORTUGAL","SWEDEN","MALTA","SH","MICHIGAN","CANADA_ONTARIO","NETHERLANDS","UK","REGULATION_SUFFIX","TEMP_ACCOUNT_STATUS","APPROVED","DOCUMENTS_NOT_RECEIVED","PENDING_VERIFICATION","BRANDS","NJ888","CANADA","dialogTextMixin"],"mappings":"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CAC/B,KACA,EACA,EACA,IAED,mCAAoC,CACnC,KACA,EACA,EACA,IAED,mCAAoC,CACnC,KACA,EACA,EACA,IAED,+BAAgC,CAC/B,KACA,EACA,EACA,IAED,kCAAmC,CAClC,KACA,EACA,EACA,IAED,6BAA8B,CAC7B,KACA,EACA,EACA,IAED,gCAAiC,CAChC,KACA,EACA,EACA,IAED,wBAAyB,CACxB,KACA,EACA,EACA,IAED,8BAA+B,CAC9B,KACA,EACA,EACA,IAED,0BAA2B,CAC1B,KACA,EACA,EACA,KAGF,SAAS4lO,EAAoB1zF,GAC5B,IAAI2zF,EAAoBvqP,EAAE0kB,EAAKkyI,GAC9B,OAAOz6I,QAAQ2a,UAAUhe,MAAK,WAC7B,IAAIkQ,EAAI,IAAI3W,MAAM,uBAAyBukJ,EAAM,KAEjD,MADA5tI,EAAEwhO,KAAO,mBACHxhO,KAIR,IAAIyhO,EAAM/lO,EAAIkyI,GAAMhvI,EAAK6iO,EAAI,GAC7B,OAAOtuO,QAAQmuD,IAAImgL,EAAIlrP,MAAM,GAAGmlB,IAAI6lO,EAAoBvhO,IAAIlQ,MAAK,WAChE,OAAOyxO,EAAoB3iO,MAG7B0iO,EAAoB96N,KAAO,WAC1B,OAAO1wB,OAAO0wB,KAAK9K,IAEpB4lO,EAAoB1iO,GAAK,IACzBuP,EAAOuzN,QAAUJ,G,oBCtFjB,IAAI5lO,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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","file":"static/js/orbit-main.68b10b0a.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}\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","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","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\tEGR_logo_png: new Asset(\"images/EGR-logo.png\", {}),\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,'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_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\tfreeToPlay1_atlas: new Asset(\"images/f2p/freeToPlay1.atlas\", {}),\n\t\t\tfreeToPlay1_json: new Asset(\"images/f2p/freeToPlay1.json\", {}),\n\t\t\tfreeToPlay1_png: new Asset(\"images/f2p/freeToPlay1.png\", {}),\n\t\t\tfreeToPlay2_atlas: new Asset(\"images/f2p/freeToPlay2.atlas\", {}),\n\t\t\tfreeToPlay2_json: new Asset(\"images/f2p/freeToPlay2.json\", {}),\n\t\t\tfreeToPlay2_png: new Asset(\"images/f2p/freeToPlay2.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,'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,'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 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\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 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","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 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}","export enum GAME_GROUP {\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 {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","/**\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_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};\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 {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: number;\r\n templateID: number;\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';","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 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}","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 {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\n\r\nexport const TopBannerSIBox = styled(TopBannerDefaultBox)`\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 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 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\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","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}","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 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 const INSIDE_ORBIT_MENU_CONTAINER = 'inside-orbit-menu-container';","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 * as React from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\nimport { CssRule } from '../../../themes/architecture/css-helpers/css-rule';\r\n\r\nexport enum SvgSizeUnit {\r\n Rem = \"rem\",\r\n Em = \"em\",\r\n Px = \"px\",\r\n Percent = \"%\"\r\n}\r\n\r\nexport interface ISvgIconProps {\r\n /**\r\n * The size of the icon.\r\n * @default 2.4\r\n */\r\n size?: number;\r\n /**\r\n * if false, the property size represents the width\r\n * if true, the property size represents the height\r\n * @default false\r\n */\r\n sizeIsHeight?: boolean;\r\n /**\r\n * Css unit: rem, em, px, %\r\n * @default rem\r\n */\r\n sizeUnit?: SvgSizeUnit;\r\n /**\r\n * Additional css,\r\n * Do not abuse this prop. You will be punished\r\n */\r\n style?: React.CSSProperties;\r\n /**\r\n * Additional class name for styling, selectors\r\n * Do not abuse this prop. You will be punished\r\n */\r\n className?: string;\r\n}\r\n\r\ninterface ISvgIconPrivateProps {\r\n /**\r\n * The aspect ratio of the icon. is expressed by the width divided by the height.\r\n * For example an icon that is 16:9 will have a ratio of 16/9 = 1.(7) ~= 1.78\r\n * Default is 1, square icon\r\n * @default 1\r\n */\r\n ratio?: number;\r\n /**\r\n * Specific svg property\r\n */\r\n viewBox?: string;\r\n /**\r\n * Some icons needs to be flipped on RTL languages, for example left arrow icon (<) must be flipped, and will look like a right arrow icon (>)\r\n */\r\n flipOnRTL?: boolean;\r\n}\r\n\r\nconst Svg = styled.svg<{flipOnRTL?: boolean}>`\r\n ${({flipOnRTL}) => flipOnRTL ? css`\r\n ${CssRule.For.RTL.build()} & {\r\n transform: scaleX(-1);\r\n }`\r\n : null}\r\n`;\r\n\r\nexport class SvgIcon extends React.Component {\r\n render() {\r\n const sizeUnit = this.props.sizeUnit ? this.props.sizeUnit : SvgSizeUnit.Rem;\r\n const defaultSize = sizeUnit === SvgSizeUnit.Px ? 24 : (sizeUnit === SvgSizeUnit.Percent ? 100 : 2.4);\r\n const size = this.props.size ? this.props.size : defaultSize;\r\n const ratio = this.props.ratio ? this.props.ratio : 1;\r\n\r\n const width = this.props.sizeIsHeight ? (size * ratio) : size;\r\n const height = this.props.sizeIsHeight ? size : (size / ratio);\r\n\r\n const viewBox = this.props.viewBox ?? \"0 0 24 24\";\r\n const style = {\r\n display: \"block\",\r\n ...this.props.style\r\n };\r\n\r\n return (\r\n \r\n {this.props.children}\r\n \r\n );\r\n }\r\n}\r\n","import {GameInfo} from '../games/game-info';\r\nimport React from \"react\";\r\nimport {FilterConfiguration} from \"../configurations/config-data-sections/arenas.configuration\";\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\nexport type ArenaFiltersConfigurationMap = Record;\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 readonly currentArenaFiltersConfigurationsMap: ArenaFiltersConfigurationMap;\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 supportFiltersV2(): boolean;\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\nexport const FEATURE_NAME_FLOATING_ICON_F2P = \"FloatingIconF2P\";\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\": \"Blackjack Online\",\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 }\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 {observer} from 'mobx-react';\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport function styledByDevice, O extends object = {}>(\r\n pc: StyledComponent, mobile: StyledComponent\r\n): StyledComponent {\r\n\r\n let ComponentDefinition = observer(class extends OrbitComponent{\r\n render() {\r\n let Component = null;\r\n\r\n if(this.services.device.isMobile) {\r\n Component = mobile;\r\n } else {\r\n Component = pc;\r\n }\r\n\r\n return (\r\n \r\n {this.props.children}\r\n \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}","import 'intersection-observer';\r\nimport 'url-search-params-polyfill'; // Edge 41 and 42 don't have this\r\nimport smoothscroll from 'smoothscroll-polyfill'; // this is for making window.scrollTo work in Edge\r\nsmoothscroll.polyfill();","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\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 return this.services.sdk.continuePlayingCurrentGame();\r\n }\r\n\r\n closeRunningGame(): void {\r\n return this.services.sdk.closeRunningGame();\r\n }\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`;","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`;","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.moneyColor};\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.moneyColor};\r\n color: ${props => props.theme.colors.brandPrimaryContrast};\r\n padding: 2px 0;\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 {NullableString} from \"../../../common/types/nullable-types\";\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}\r\n\r\nexport const GAMES_CATEGORIES = {\r\n SLOTS: 'slots',\r\n CARD_AND_TABLE: 'card-and-table',\r\n LIVE: 'live'\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: any,\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 HighVolatilityTag(): boolean {\r\n return this._rawGameData.HighVolatilityTag;\r\n }\r\n\r\n get LowVolatilityTag(): boolean {\r\n return this._rawGameData.LowVolatilityTag;\r\n }\r\n\r\n get allowMinMaxBet(): boolean {\r\n let isAllowedCategory = this.gameCategory === GAMES_CATEGORIES.CARD_AND_TABLE || this.gameCategory === GAMES_CATEGORIES.LIVE;\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 return this.services.configuration.getGameCategory(this.gameGroup);\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._hasCustomFilter('HighVolatilityTag');\r\n }\r\n\r\n get hasLowVolatility(): boolean {\r\n return this._hasCustomFilter('LowVolatilityTag');\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.gameCategory === GAMES_CATEGORIES.LIVE) {\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 });\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 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 get externalGameCode(): NullableString {\r\n return this._rawGameData.externalGameCode;\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\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 {GAMES_CATEGORIES} from '../games/game-info';\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 private _mapGameCategoryToEnum(category: string): string {\r\n switch(category) {\r\n case 'slots': {\r\n return GAMES_CATEGORIES.SLOTS;\r\n }\r\n case 'cardAndTable': {\r\n return GAMES_CATEGORIES.CARD_AND_TABLE;\r\n }\r\n case 'live': {\r\n return GAMES_CATEGORIES.LIVE;\r\n }\r\n default: {\r\n return '';\r\n }\r\n }\r\n }\r\n\r\n private _gameGroupToCategoryMapping: {[key: string]: string} | null = null;\r\n getGameCategory(gameGroup: string): string {\r\n if(!this._gameGroupToCategoryMapping) {\r\n this._gameGroupToCategoryMapping = {};\r\n let gamesCategories = this.data.generalSettings.gamesSettings.gamesCategories;\r\n Object.keys(gamesCategories).forEach(category => {\r\n let mappedCategory = this._mapGameCategoryToEnum(category);\r\n (gamesCategories[category] || []).forEach(gameGroup => {\r\n this._gameGroupToCategoryMapping![gameGroup] = mappedCategory;\r\n });\r\n });\r\n }\r\n\r\n return this._gameGroupToCategoryMapping[gameGroup];\r\n }\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 }\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 {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 {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 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 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: any) => 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: any) => 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 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 return this.CGP.continuePlayingCurrentGame();\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 {IGameFilterDefinition} from '../interfaces/game-filter-definition.interface';\r\nimport {GameInfo} from '../../games/game-info';\r\nimport {removeSpaces} from \"../../../../utils/string-helpers\";\r\nimport {ApplyGameFilterResult} from \"../interfaces/game-filter-evaluator.interface\";\r\n\r\nexport class VendorFilter implements IGameFilterDefinition {\r\n constructor(public readonly id: string,\r\n private readonly _vendorName: string) {\r\n\r\n }\r\n\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if(removeSpaces(gameInfo.vendorName.toLowerCase()) === removeSpaces(this._vendorName.toLowerCase())) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n\r\n}\r\n","import {ApplyGameFilterResult, IGameFilterEvaluator} from \"../interfaces/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 {IFilterCategoryDefinition} from \"../interfaces/filter-category-definition.interface\";\r\nimport {IGameFilterDefinition} from \"../interfaces/game-filter-definition.interface\";\r\nimport {VendorFilter} from \"../filters-definitions/vendor.filter\";\r\nimport {IServiceFactoryExtended} from \"../../service-factory-extended.interface\";\r\nimport {GameInfo} from \"../../games/game-info\";\r\nimport {OR} from \"../evaluators/or-game-filters-evaluator\";\r\nimport {ApplyGameFilterResult} from \"../interfaces/game-filter-evaluator.interface\";\r\n\r\n\r\nexport class GameVendorFiltersCategory implements IFilterCategoryDefinition {\r\n\r\n constructor(private readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n applyFilters(gameInfo: GameInfo, filters: IGameFilterDefinition[]): ApplyGameFilterResult {\r\n return OR(...filters).applyFilter(gameInfo);\r\n }\r\n\r\n readonly title: string = 'Game Vendors';\r\n\r\n readonly availableFilters: IGameFilterDefinition[] = [\r\n new VendorFilter('vendor_888','888'),\r\n new VendorFilter('vendor_netent', 'NetEnt'),\r\n new VendorFilter('vendor_playngo', 'play n go'),\r\n new VendorFilter('vendor_redtiger', 'Red Tiger'),\r\n new VendorFilter('vendor_quickspin', 'Quickspin'),\r\n new VendorFilter('vendor_yggdrasil', 'yggdrasil'),\r\n new VendorFilter('vendor_merkur', 'merkur'),\r\n new VendorFilter('vendor_gamomat', 'gamomat'),\r\n new VendorFilter('vendor_EGT', 'EGT'),\r\n new VendorFilter('vendor_MGA', 'MGA'),\r\n new VendorFilter('vendor_playtech','PlayTech'),\r\n new VendorFilter('vendor_pragmatic', 'Pragmatic'),\r\n new VendorFilter('vendor_blueprint', 'Blueprint'),\r\n new VendorFilter('vendor_evolution', 'Evolution'),\r\n new VendorFilter('vendor_light_and_wonder', 'LNW'),\r\n new VendorFilter('vendor_igt', 'IGT'),\r\n new VendorFilter('vendor_h5', 'H5'),\r\n new VendorFilter('vendor_everi', 'Everi')\r\n ];\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import {IGameFilterDefinition} from '../interfaces/game-filter-definition.interface';\r\nimport {GameInfo} from '../../games/game-info';\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {ApplyGameFilterResult} from \"../interfaces/game-filter-evaluator.interface\";\r\n\r\nexport class GameGroupFilter implements IGameFilterDefinition {\r\n constructor(public readonly id: string,\r\n private readonly _gameGroupName: string | string[] ) {\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if(Check.isArray(this._gameGroupName)) {\r\n for(let i = 0; i < this._gameGroupName.length;i++){\r\n if (this._gameGroupName[i] === gameInfo.gameGroup){\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n }\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n\r\n if(gameInfo.gameGroup === this._gameGroupName) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n}\r\n","import {IGameFilterDefinition} from '../interfaces/game-filter-definition.interface';\r\nimport {GameInfo} from '../../games/game-info';\r\nimport {ApplyGameFilterResult} from \"../interfaces/game-filter-evaluator.interface\";\r\n\r\nexport class CustomFilter implements IGameFilterDefinition {\r\n constructor(public readonly id: string,\r\n private readonly _evaluate: (gameInfo: GameInfo) => boolean) {\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if(this._evaluate(gameInfo)) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n}\r\n","import {IGameFilterDefinition} from '../interfaces/game-filter-definition.interface';\r\nimport {GameInfo} from '../../games/game-info';\r\nimport { Check } from '@sparkware/app-utils';\r\nimport {ApplyGameFilterResult} from \"../interfaces/game-filter-evaluator.interface\";\r\n\r\nexport class SubgroupNameFilter implements IGameFilterDefinition {\r\n constructor(public readonly id: string,\r\n private readonly _subGroupName: string) {\r\n\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(this._subGroupName) !== -1) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n}\r\n","import {IGameFilterDefinition} from '../interfaces/game-filter-definition.interface';\r\nimport {GameInfo} from '../../games/game-info';\r\nimport {GameGroupFilter} from \"./game-group.filter\";\r\nimport {SubgroupNameFilter} from \"./subgroup-name.filter\";\r\nimport {ApplyGameFilterResult} from \"../interfaces/game-filter-evaluator.interface\";\r\n\r\nexport class AllRouletteFilter implements IGameFilterDefinition {\r\n\r\n public readonly id: string = 'all-roulette';\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if(ApplyGameFilterResult.IncludeGame === new GameGroupFilter('roulette', 'Roulette').applyFilter(gameInfo)\r\n || ApplyGameFilterResult.IncludeGame === new SubgroupNameFilter('live-roulette', 'roulette').applyFilter(gameInfo)) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n}\r\n","import {IGameFilterDefinition} from '../interfaces/game-filter-definition.interface';\r\nimport {GameInfo} from '../../games/game-info';\r\nimport {GameGroupFilter} from \"./game-group.filter\";\r\nimport {SubgroupNameFilter} from \"./subgroup-name.filter\";\r\nimport {ApplyGameFilterResult} from \"../interfaces/game-filter-evaluator.interface\";\r\n\r\nexport class AllBlackjackFilter implements IGameFilterDefinition {\r\n\r\n readonly id = 'all-blackjack';\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if(ApplyGameFilterResult.IncludeGame ===new GameGroupFilter('blackjack', 'Blackjack').applyFilter(gameInfo)\r\n || ApplyGameFilterResult.IncludeGame ===new SubgroupNameFilter('live-blackjack', 'blackjack').applyFilter(gameInfo)) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n}\r\n","import {IGameFilterDefinition} from '../interfaces/game-filter-definition.interface';\r\nimport {GameInfo} from '../../games/game-info';\r\nimport {GameGroupFilter} from \"./game-group.filter\";\r\nimport {SubgroupNameFilter} from \"./subgroup-name.filter\";\r\nimport {ApplyGameFilterResult} from \"../interfaces/game-filter-evaluator.interface\";\r\n\r\nexport class AllBaccaratFilter implements IGameFilterDefinition {\r\n\r\n readonly id = 'all-baccarat';\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if(ApplyGameFilterResult.IncludeGame === new GameGroupFilter('baccarat', 'Baccarat').applyFilter(gameInfo)\r\n || ApplyGameFilterResult.IncludeGame === new SubgroupNameFilter('live-baccarat' ,'baccarat').applyFilter(gameInfo)){\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n}","import {IGameFilterDefinition} from '../interfaces/game-filter-definition.interface';\r\nimport {GameInfo} from '../../games/game-info';\r\nimport {SubgroupNameFilter} from \"./subgroup-name.filter\";\r\nimport {ApplyGameFilterResult} from \"../interfaces/game-filter-evaluator.interface\";\r\n\r\nexport class AllPokerFilter implements IGameFilterDefinition {\r\n\r\n readonly id = 'all-poker';\r\n\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if(gameInfo.gameGroup.toLowerCase().indexOf('poker') !== -1\r\n || ApplyGameFilterResult.IncludeGame === new SubgroupNameFilter('live-poker', 'poker').applyFilter(gameInfo)) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n}\r\n","import {IFilterCategoryDefinition} from \"../interfaces/filter-category-definition.interface\";\r\nimport {IGameFilterDefinition} from \"../interfaces/game-filter-definition.interface\";\r\nimport {GameGroupFilter} from \"../filters-definitions/game-group.filter\";\r\nimport {CustomFilter} from \"../filters-definitions/custom.filter\";\r\nimport {SubgroupNameFilter} from \"../filters-definitions/subgroup-name.filter\";\r\nimport {AllRouletteFilter} from \"../filters-definitions/all-roulette.filter\";\r\nimport {AllBlackjackFilter} from \"../filters-definitions/all-blackjack.filter\";\r\nimport {AllBaccaratFilter} from \"../filters-definitions/all-baccarat.filter\";\r\nimport {AllPokerFilter} from \"../filters-definitions/all-poker.filter\";\r\nimport {IServiceFactoryExtended} from \"../../service-factory-extended.interface\";\r\nimport {GameInfo} from \"../../games/game-info\";\r\nimport {OR} from \"../evaluators/or-game-filters-evaluator\";\r\nimport {ApplyGameFilterResult} from \"../interfaces/game-filter-evaluator.interface\";\r\n\r\nexport class GameGroupFiltersCategory implements IFilterCategoryDefinition {\r\n constructor(private readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n\r\n readonly title: string = 'Game Groups';\r\n\r\n applyFilters(gameInfo: GameInfo, filters: IGameFilterDefinition[]): ApplyGameFilterResult {\r\n return OR(...filters).applyFilter(gameInfo);\r\n }\r\n\r\n readonly availableFilters: IGameFilterDefinition[] = [\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}","import {ApplyGameFilterResult, IGameFilterEvaluator} from \"../interfaces/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 {IFilterCategoryDefinition} from \"../interfaces/filter-category-definition.interface\";\r\nimport {IGameFilterDefinition} from \"../interfaces/game-filter-definition.interface\";\r\nimport {CustomFilter} from \"../filters-definitions/custom.filter\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {IServiceFactoryExtended} from \"../../service-factory-extended.interface\";\r\nimport {GameInfo} from \"../../games/game-info\";\r\nimport {AND} from \"../evaluators/and-game-filters-evaluator\";\r\nimport {ApplyGameFilterResult} from \"../interfaces/game-filter-evaluator.interface\";\r\n\r\nexport class GameFeatureFiltersCategory implements IFilterCategoryDefinition {\r\n constructor(private readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n get title(): string{\r\n return this.services.translation.translate('Game Features');\r\n }\r\n\r\n applyFilters(gameInfo: GameInfo, filters: IGameFilterDefinition[]): ApplyGameFilterResult {\r\n const result = AND(...filters).applyFilter(gameInfo);\r\n return result;\r\n }\r\n\r\n availableFilters: IGameFilterDefinition[] = [\r\n new CustomFilter('one-to-twenty-five', (gameInfo) => Check.isNumber(gameInfo.numberOfLines) && gameInfo.numberOfLines >= 1 && gameInfo.numberOfLines <= 24),\r\n new CustomFilter('twenty-five-plus', (gameInfo) => Check.isNumber(gameInfo.numberOfLines) && gameInfo.numberOfLines >= 25),\r\n new CustomFilter('jackpot', (game) => game.hasJackpot),\r\n new CustomFilter('new', (game) => game.isNewGame),\r\n new CustomFilter('lowStakes', (game) => game.hasLowStakes),\r\n new CustomFilter('classicSlots', (game) => game.isClassicSlot),\r\n new CustomFilter('bonus', (game) => game.hasBonusGames),\r\n new CustomFilter('freeSpins', (game) => game.hasFreeSpins),\r\n new CustomFilter('highVolatility', (game) => game.hasHighVolatility),\r\n new CustomFilter('lowVolatility', (game) => game.hasLowVolatility)\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\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 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/arena-game-filters-category.interface\";\r\nimport {IArenaGameFilter} from \"../arena-filters/arena-game-filter.interface\";\r\nimport {ApplyGameFilterResult, IGameFilterEvaluator} from \"../interfaces/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.filters.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\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/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/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 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 {FilterLinkListComponent} from \"../filter-link-list/filter-link-list.component\";\r\nimport {\r\n IArenaGameFilterEditorViewModel\r\n} from \"../../../services/games-filter/arena-filters/arena-game-filter-editor-view-model.interface\";\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 _onClick = async () => {\r\n await this.props.filtersEditor.applyFilters();\r\n this.services.drawer.right.back();\r\n }\r\n\r\n private _extractFilters() {\r\n const result: IArenaGameFilterEditorViewModel[] = [];\r\n\r\n this.props.filtersEditor.visibleCategories.forEach(c => {\r\n c.visibleFilters.forEach(f => result.push(f));\r\n });\r\n\r\n return result;\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n\r\n {this.props.filtersEditor.visibleCategories.map(c =>
{c.title}
)}\r\n filter.toggleFilter()}/>\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 {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\n\r\nexport class ArenaGameFilterEditor implements IArenaGameFilterEditorViewModel {\r\n constructor(private 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 @observable.ref\r\n private _on: boolean;\r\n get on(): boolean {\r\n return this._on;\r\n }\r\n\r\n set on(value: boolean) {\r\n runInAction(() => this._on = 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\r\n get text(): string {\r\n return this.arenaGameFilter.text;\r\n }\r\n\r\n get shouldBeDisplayed(): boolean {\r\n return !this.arenaGameFilter.isDynamicFilter;\r\n }\r\n}","import {ArenaGameFilterEditor} from \"./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\n\r\nexport class ArenaGameFiltersCategoryEditor implements IArenaGameFiltersCategoryEditorViewModel {\r\n constructor(private readonly arenaGameFilterCategory: IArenaGameFiltersCategory) {\r\n this._filters = arenaGameFilterCategory.filters.map(f => new ArenaGameFilterEditor(f));\r\n }\r\n\r\n private _filters: ArenaGameFilterEditor[];\r\n get visibleFilters(): ArenaGameFilterEditor[] {\r\n return this._filters.filter(f => f.shouldBeDisplayed);\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 return this._filters.filter(f => f.on).map(f => f.id);\r\n }\r\n}","import {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {ArenaGameFiltersCategoryEditor} from \"../../arena-filters/arena-game-filters-category-editor\";\r\nimport {IAdvancedStrategyFiltersEditorViewModel} from \"./advanced-strategy-filters-editor-view-model.interface\";\r\nimport {IArenaGameFiltersCategory} from \"../../arena-filters/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 _getSelectedFiltersIds(): 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._getSelectedFiltersIds());\r\n }\r\n}","import {IGameFilterDefinition} from \"../interfaces/game-filter-definition.interface\";\r\nimport {FilterConfiguration} from \"../../configurations/config-data-sections/arenas.configuration\";\r\nimport {IServiceFactoryExtended} from \"../../service-factory-extended.interface\";\r\nimport {GameInfo} from \"../../games/game-info\";\r\nimport {computed} from \"mobx\";\r\nimport {IArenaGameFilter} from \"./arena-game-filter.interface\";\r\nimport {ApplyGameFilterResult} from \"../interfaces/game-filter-evaluator.interface\";\r\n\r\nexport class ArenaGameFilter implements IArenaGameFilter {\r\n constructor(private readonly filter: IGameFilterDefinition,\r\n private readonly filterConfiguration: FilterConfiguration,\r\n private readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n readonly isDynamicFilter = false;\r\n\r\n get id(): string {\r\n return this.filter.id;\r\n }\r\n\r\n @computed\r\n get isApplied(): boolean {\r\n return this.services.gamesFilter.isFilterApplied(this.filter.id);\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate(this.filterConfiguration.text);\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n return this.filter.applyFilter(gameInfo);\r\n }\r\n}\r\n","import {IFilterCategoryDefinition} from \"../interfaces/filter-category-definition.interface\";\r\nimport {IServiceFactoryExtended} from \"../../service-factory-extended.interface\";\r\nimport {GameInfo} from \"../../games/game-info\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {ArenaGameFilter} from \"./arena-game-filter\";\r\nimport {Nullable} from \"../../../../common/types/nullable-types\";\r\nimport {IArenaGameFiltersCategory} from \"./arena-game-filters-category.interface\";\r\nimport {computed} from \"mobx\";\r\nimport {ApplyGameFilterResult} from \"../interfaces/game-filter-evaluator.interface\";\r\n\r\nexport class ArenaGameFiltersCategory implements IArenaGameFiltersCategory {\r\n constructor(private readonly categoryDefinition: IFilterCategoryDefinition,\r\n private readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n get title(): string {\r\n return this.categoryDefinition.title;\r\n }\r\n\r\n private _filters: Nullable = null;\r\n get filters(): ArenaGameFilter[] {\r\n if(!this._filters) {\r\n this._filters = this._createFiltersForCurrentArena();\r\n }\r\n return this._filters;\r\n }\r\n\r\n get isApplicableForCurrentArena(): boolean {\r\n return this.filters.length > 0;\r\n }\r\n\r\n @computed\r\n get appliedFilters(): ArenaGameFilter[] {\r\n return this.filters.filter(f => f.isApplied);\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);\r\n }\r\n\r\n isGameIncludedInThisCategory(gameInfo: GameInfo): boolean {\r\n for(let f of this.filters) {\r\n if(ApplyGameFilterResult.IncludeGame === f.applyFilter(gameInfo)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n\r\n private _createFiltersForCurrentArena(): ArenaGameFilter[] {\r\n\r\n const currentArenaFiltersConfigurations = this.services.gamesFilter.currentArenaFiltersConfigurationsMap;\r\n if(Check.isEmpty(currentArenaFiltersConfigurations)) {\r\n return [];\r\n }\r\n\r\n\r\n return this.categoryDefinition.availableFilters.filter(f => currentArenaFiltersConfigurations[f.id])\r\n .map(f => new ArenaGameFilter(f, currentArenaFiltersConfigurations[f.id].filterConfiguration, this.services));\r\n }\r\n}","import {IGameFilterDefinition} from '../interfaces/game-filter-definition.interface';\r\nimport {GameInfo} from '../../games/game-info';\r\nimport {IArenaGameFiltersCategory} from \"../arena-filters/arena-game-filters-category.interface\";\r\nimport {computed} from \"mobx\";\r\nimport {ApplyGameFilterResult} from \"../interfaces/game-filter-evaluator.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 OtherFilter implements IGameFilterDefinition {\r\n constructor(private readonly allOthersCategories: IArenaGameFiltersCategory[]) {\r\n }\r\n\r\n get id(): string {\r\n return 'other';\r\n }\r\n\r\n @computed\r\n get currentArenaCategories(): IArenaGameFiltersCategory[] {\r\n return this.allOthersCategories.filter(c => c.isApplicableForCurrentArena);\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/arena-game-filters-category.interface\";\r\nimport {IFilterCategoryDefinition} from \"../interfaces/filter-category-definition.interface\";\r\nimport {IGameFilterDefinition} from \"../interfaces/game-filter-definition.interface\";\r\nimport {OtherFilter} from \"../filters-definitions/other.filter\";\r\nimport {IServiceFactoryExtended} from \"../../service-factory-extended.interface\";\r\nimport {GameInfo} from \"../../games/game-info\";\r\nimport {ApplyGameFilterResult} from \"../interfaces/game-filter-evaluator.interface\";\r\n\r\n\r\nexport class OtherFiltersCategory implements IFilterCategoryDefinition {\r\n\r\n constructor(otherAvailableCategories: IArenaGameFiltersCategory[], private readonly services: IServiceFactoryExtended) {\r\n this.availableFilters = [\r\n new OtherFilter(otherAvailableCategories)\r\n ];\r\n }\r\n\r\n applyFilters(gameInfo: GameInfo, filters: IGameFilterDefinition[]): ApplyGameFilterResult {\r\n return this.availableFilters[0].applyFilter(gameInfo);\r\n }\r\n\r\n readonly title: string = \"Others\";\r\n readonly availableFilters: IGameFilterDefinition[];\r\n}","import {IArenaGameFilter} from \"./arena-game-filter.interface\";\r\nimport {IGameFilterDefinition} from \"../interfaces/game-filter-definition.interface\";\r\nimport {IServiceFactoryExtended} from \"../../service-factory-extended.interface\";\r\nimport {GameInfo} from \"../../games/game-info\";\r\nimport {ApplyGameFilterResult} from \"../interfaces/game-filter-evaluator.interface\";\r\n\r\nexport class DynamicArenaGameFilter implements IArenaGameFilter {\r\n constructor(private readonly filterDefinition: IGameFilterDefinition,\r\n private readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n readonly isDynamicFilter = true;\r\n\r\n get id(): string {\r\n return this.filterDefinition.id;\r\n }\r\n\r\n get isApplied(): boolean {\r\n return this.services.gamesFilter.isFilterApplied(this.id);\r\n }\r\n readonly text: string;\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n return this.filterDefinition.applyFilter(gameInfo);\r\n }\r\n\r\n}","import {IGameFilterDefinition} from '../interfaces/game-filter-definition.interface';\r\nimport {GameInfo} from '../../games/game-info';\r\nimport {removeSpaces} from \"../../../../utils/string-helpers\";\r\nimport {ApplyGameFilterResult} from \"../interfaces/game-filter-evaluator.interface\";\r\n\r\nexport class CompanyFilter implements IGameFilterDefinition {\r\n constructor(public readonly id: string,\r\n private readonly _companyName: string) {\r\n\r\n }\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} from \"../../../../common/types/nullable-types\";\r\nimport {DynamicArenaGameFilter} from \"./dynamic-arena-game-filter\";\r\nimport {VendorFilter} from \"../filters-definitions/vendor.filter\";\r\nimport {CompanyFilter} from \"../filters-definitions/company.filter\";\r\nimport {computed} from \"mobx\";\r\nimport {IArenaGameFilter} from \"./arena-game-filter.interface\";\r\nimport {ApplyGameFilterResult} from \"../interfaces/game-filter-evaluator.interface\";\r\nimport {AND} from \"../evaluators/and-game-filters-evaluator\";\r\n\r\nexport class DynamicArenaGamesFiltersCategory implements IArenaGameFiltersCategory {\r\n constructor(private readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n readonly isApplicableForCurrentArena: boolean = true;\r\n readonly title: string = 'Dynamic filters';\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n\r\n if(this.filters.length === 0) {\r\n return ApplyGameFilterResult.NotApplicable;\r\n }\r\n\r\n return AND(...this.filters).applyFilter(gameInfo);\r\n\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 filters(): DynamicArenaGameFilter[] {\r\n return this._createDynamicFilters()\r\n }\r\n\r\n get appliedFilters(): IArenaGameFilter[] {\r\n return this.filters;\r\n }\r\n\r\n private _createDynamicFilters(): DynamicArenaGameFilter[] {\r\n const result: DynamicArenaGameFilter[] = [];\r\n\r\n\r\n\r\n const currentArenaFiltersConfigurations = this.services.gamesFilter.currentArenaFiltersConfigurationsMap;\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 DynamicArenaGameFilter(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 DynamicArenaGameFilter(new VendorFilter(filterId, parts[1]), this.services);\r\n case 'company':\r\n return new DynamicArenaGameFilter(new CompanyFilter(filterId, parts[1]), this.services);\r\n default:\r\n return null;\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 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/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 private _onClickHandler = () => {\r\n this.services.gamesFilter.showFiltersEditor();\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)}>\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(c => {\r\n c.visibleFilters.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 React from 'react';\r\nimport {GameVendorFiltersCategory} from \"../../filters-categories-definitions/game-vendor.filters-category\";\r\nimport {GameGroupFiltersCategory} from \"../../filters-categories-definitions/game-group.filters-category\";\r\nimport {GameFeatureFiltersCategory} from \"../../filters-categories-definitions/game-feature.filters-category\";\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/arena-game-filters-category.interface\";\r\nimport {ArenaGameFiltersCategory} from \"../../arena-filters/arena-game-filters-category\";\r\nimport {IGameFilterEvaluator} from \"../../interfaces/game-filter-evaluator.interface\";\r\nimport {Lazy} from \"../../../../../utils/Lazy\";\r\nimport {OtherFiltersCategory} from \"../../filters-categories-definitions/other.filters-category\";\r\nimport {DynamicArenaGamesFiltersCategory} from \"../../arena-filters/dynamic-arena-games-filters-category\";\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 {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\n\r\nexport class AdvancedGamesFilterStrategy extends GamesFilterStrategyBase {\r\n\r\n private _vendorCategory = new Lazy(() => new ArenaGameFiltersCategory(new GameVendorFiltersCategory(this.services), this.services));\r\n private _groupCategory = new Lazy(() => new ArenaGameFiltersCategory(new GameGroupFiltersCategory(this.services), this.services));\r\n private _featuresCategory = new Lazy(() => new ArenaGameFiltersCategory(new GameFeatureFiltersCategory(this.services), this.services));\r\n private _othersCategory = new Lazy(() => new ArenaGameFiltersCategory(new OtherFiltersCategory([this._vendorCategory.value, this._groupCategory.value, this._featuresCategory.value], this.services), this.services));\r\n private _dynamicCategory = new Lazy(() => new DynamicArenaGamesFiltersCategory(this.services));\r\n protected _createFiltersCategories(): IArenaGameFiltersCategory[] {\r\n\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._dynamicCategory.value\r\n ];\r\n }\r\n\r\n protected _createEvaluator(): IGameFilterEvaluator | null {\r\n return OR(AND(this._featuresCategory.value,\r\n this._dynamicCategory.value,\r\n OR(this._vendorCategory.value, this._groupCategory.value)),\r\n this._othersCategory.value);\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\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/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/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/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.filters.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.gamesFilter.currentArenaFiltersConfigurationsMap;\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 {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/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 React from 'react';\r\nimport {\r\n FiltersGamesListMobileComponent\r\n} from \"../../../../components/filters/filters-games-list-mobile/filters-games-list-mobile.component\";\r\nimport {GameVendorFiltersCategory} from \"../../filters-categories-definitions/game-vendor.filters-category\";\r\nimport {GameGroupFiltersCategory} from \"../../filters-categories-definitions/game-group.filters-category\";\r\nimport {GameFeatureFiltersCategory} from \"../../filters-categories-definitions/game-feature.filters-category\";\r\nimport {SimpleStrategyFiltersEditor} from \"./simple-strategy-filters-editor\";\r\nimport {GamesFilterStrategyBase} from \"../games-filter-strategy-base\";\r\nimport {OtherFiltersCategory} from \"../../filters-categories-definitions/other.filters-category\";\r\nimport {ArenaGameFiltersCategory} from \"../../arena-filters/arena-game-filters-category\";\r\nimport {IArenaGameFiltersCategory} from \"../../arena-filters/arena-game-filters-category.interface\";\r\nimport {DynamicArenaGamesFiltersCategory} from \"../../arena-filters/dynamic-arena-games-filters-category\";\r\nimport {Lazy} from \"../../../../../utils/Lazy\";\r\nimport {IGameFilterEvaluator} from \"../../interfaces/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\n\r\nexport class SimpleGamesFilterStrategy extends GamesFilterStrategyBase {\r\n\r\n private _vendorCategory = new Lazy(() => new ArenaGameFiltersCategory(new GameVendorFiltersCategory(this.services), this.services));\r\n private _groupCategory = new Lazy(() => new ArenaGameFiltersCategory(new GameGroupFiltersCategory(this.services), this.services));\r\n private _featuresCategory = new Lazy(() => new ArenaGameFiltersCategory(new GameFeatureFiltersCategory(this.services), this.services));\r\n private _othersCategory = new Lazy(() => new ArenaGameFiltersCategory(new OtherFiltersCategory([this._vendorCategory.value, this._groupCategory.value, this._featuresCategory.value], this.services), this.services));\r\n private _dynamicCategory = new Lazy(() => new DynamicArenaGamesFiltersCategory(this.services));\r\n protected _createFiltersCategories(): IArenaGameFiltersCategory[] {\r\n\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._dynamicCategory.value\r\n ];\r\n }\r\n\r\n protected _createEvaluator(): IGameFilterEvaluator | null {\r\n return OR(AND(this._featuresCategory.value,\r\n this._dynamicCategory.value,\r\n OR(this._vendorCategory.value, this._groupCategory.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 {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {\r\n ArenaFiltersConfigurationMap,\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 {AdvancedGamesFilterStrategy} from \"./strategies/advanced-filter/advanced-games-filter.strategy\";\r\nimport {SimpleGamesFilterStrategy} from \"./strategies/simple-games-filter/simple-games-filter.strategy\";\r\nimport {computed} from \"mobx\";\r\nimport {Nullable} from \"../../../common/types/nullable-types\";\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 = this._createStrategy();\r\n\r\n\r\n this.reaction(() => this.services.routing.currentRoute, () => {\r\n this._currentFilteringStrategy = this._createStrategy();\r\n });\r\n\r\n }\r\n\r\n private _useAdvancedStrategy = false;\r\n\r\n private _createStrategy(): IGamesFilterStrategy {\r\n if(this._useAdvancedStrategy) {\r\n return new AdvancedGamesFilterStrategy(this.services);\r\n }\r\n return new SimpleGamesFilterStrategy(this.services);\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] === '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);\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\r\n @computed\r\n get currentArenaFiltersConfigurationsMap(): ArenaFiltersConfigurationMap {\r\n const currentArena = this.services.routing.currentRoute.data?.arenaType;\r\n\r\n return (this.services.configuration.data.arenas[currentArena]?.filters ?? [])\r\n .reduce((result, currentValue, index) => {\r\n result[currentValue.id] = {\r\n filterConfiguration: currentValue,\r\n index: index\r\n };\r\n return result;\r\n }, {});\r\n }\r\n\r\n public supportFiltersV2(): boolean {\r\n if(this.services.routing.currentRoute.data && this.services.routing.currentRoute.data.arenaType){\r\n const arena = this.services.configuration.data.arenas[this.services.routing.currentRoute.data.arenaType];\r\n\r\n if(!arena) {\r\n return false;\r\n }\r\n\r\n return !!arena.filters_v2;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\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\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 interface FilterConfiguration {\r\n readonly id: string;\r\n readonly text?: string;\r\n readonly display?: boolean;\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: number;\r\n templateID: number;\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: number,\r\n componentID: number,\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: number;\r\n componentID: number;\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: FilterConfiguration[];\r\n filters_v2: [];\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: number;\r\n templateID: number;\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 {SafeZoneDeeplink} from \"../safezone/safezone.service.interface\";\r\nimport {CHANNEL_SOURCE, CHANNEL_ELEMENTS} from \"../../../common/const/casinofied-analytics-consts\";\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({tabId: 13});\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.safezone.openFullSafezone();\r\n }\r\n\r\n onTimeSpentReminder(link: IUsefulLinkConfiguration) {\r\n this.services.safezone.openFullSafezone(SafeZoneDeeplink.TimeSpentReminderPage);\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.user.logout();\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(`game-category-${gameInfo.gameCategory}`)\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\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\nexport const JackpotWidgetAmountBox = styledByTheme(JackpotWidgetAmountDefaultBox).forCasino777(JackpotWidgetAmountCasino777Box).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 1rem;\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\nexport const JackpotWidgetClockLabelBox = styledByTheme(JackpotWidgetClockLabelDefaultBox)\r\n .forCasino777(JackpotWidgetClockLabelCasino777Box).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`;\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\nexport const JackpotWidgetClockBox = styledByTheme(JackpotWidgetClockDefaultBox).forCasino777(JackpotWidgetClockCasino777Box).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\nexport const JackpotWidgetAmountLabelBox = styledByTheme(JackpotWidgetAmountLabelDefaultBox).forCasino777(JackpotWidgetAmountLabelCasino777Box).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\nexport const JackpotWidgetCollectingLabelBox = styledByTheme(JackpotWidgetCollectingLabelDefaultBox)\r\n .forCasino777(JackpotWidgetCollectingLabelCasino777Box).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\nexport const JackpotWidgetCollectingAmountBox = styledByTheme(JackpotWidgetCollectingAmountDefaultBox)\r\n .forCasino777(JackpotWidgetCollectingAmountCasino777Box).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 {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\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 .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 {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\n\r\nexport type BannerConfig = {position: number; templateID: number; componentID: number; 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 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 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\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 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 FreeToPlayAnimatedIcon1Box = styledByDevice(PCBox,MobileBox);","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 MutualBox = styled(FreeToPlayAnimatedIconDefaultBox)`\r\n right: 20px;\r\n bottom: ${props => props.isHybridEmbedded? `calc(env(safe-area-inset-bottom) + 86px)` : '20px'};\r\n`;\r\n\r\nconst PCBox = styled(MutualBox)`\r\n width: 100px;\r\n`;\r\n\r\nconst MobileBox = styled(MutualBox)`\r\n width: 70px;\r\n`;\r\n\r\n\r\nexport const FreeToPlayAnimatedIcon2Box = 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 {FreeToPlayAnimatedIcon1Box} from \"./boxes/free-to-play-animated-icon1.box\";\r\nimport {FreeToPlayAnimatedIcon2Box} from \"./boxes/free-to-play-animated-icon2.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 icon1RequestOptions = {\r\n jsonUrl: this.services.theme.currentTheme.images.f2p.freeToPlay1.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 private icon2RequestOptions = {\r\n jsonUrl: this.services.theme.currentTheme.images.f2p.freeToPlay2.toString(),\r\n size: {\r\n width: 234,\r\n height: 259\r\n },\r\n timings: {\r\n delay: 2000,\r\n interval: 3000\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.services.freeToPlay.iconIndex === 1) ? this.icon1RequestOptions : this.icon2RequestOptions;\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 const StyledBox = (this.services.freeToPlay.iconIndex === 1)? FreeToPlayAnimatedIcon1Box : FreeToPlayAnimatedIcon2Box;\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 {ArenaGamesGridConfiguration, SwiperGamesListConfiguration} 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\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}","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 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 {GAME_GROUP} from \"../../../../../../common/const/game_groups_consts\";\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 case EXCLUSIVE_ARENA_NAME:\r\n return gamesInfo.filter(g => g.isVideoSlot);\r\n case CASINO_GAMES_ARENA_NAME:\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 return gamesInfo.filter(g => casinoGamesGroups.includes(g.gameGroupId));\r\n\r\n default:\r\n return gamesInfo.filter(g => !g.isLiveCasino);\r\n }\r\n }\r\n}\r\n","import React from \"react\";\r\nimport {IArenaViewModel} from \"../arena-view-model.interface\";\r\nimport {GameInfo} from \"../../../../games/game-info\";\r\n\r\nexport class VoidArenaModel implements IArenaViewModel {\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}","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 {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\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 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}","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 {IArenaViewModel} from \"../arena-view-model.interface\";\r\nimport {GameInfo} from \"../../../../games/game-info\";\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 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}","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();\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();\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.openLink(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\n\r\nexport type ExternalLinkViewMode = 'window' | 'iframe' | 'redirect';\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}\r\n\r\n\r\n\r\nexport interface OpenMyAccountOptions {\r\n tabId: number;\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\n\r\nexport interface IExternalLinksService {\r\n openLink(params: OpenLinkParams, marketingParams?: MarketingParams, useCallbackURL?: boolean): Promise;\r\n openMyAccount(options?: OpenMyAccountOptions, marketingParams?: MarketingParams, resolveByCallback?: boolean): 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}\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\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 'slots':\r\n return (\r\n \r\n \r\n \r\n );\r\n case 'live':\r\n return (\r\n \r\n \r\n \r\n );\r\n case '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 IExternalLinksService,\r\n OpenContactUsOptions,\r\n OpenLinkParams,\r\n OpenMembershipResponse,\r\n OpenMyAccountOptions\r\n} from './external-links.service.interface';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {OnPlayerActionParams} from '../sdk/sdk-events';\r\nimport {SdkOpenExternalLinkParams} from '../sdk/sdk.service.interface';\r\nimport {MarketingParams} from \"../../../common/interfaces/marketing-params.interface\";\r\nimport {CHANNEL_ELEMENTS, CHANNEL_SOURCE} from \"../../../common/const/casinofied-analytics-consts\";\r\nimport {AreaType} from \"@sparkware/uc-sdk-core\";\r\nimport Device from \"../../../sdk/src/utils/device/device\";\r\nimport {GNWP_SOURCES} from \"../../../sdk/src/components/external_links/external_links_consts\";\r\n\r\nexport class ExternalLinksService extends ServiceBase implements IExternalLinksService {\r\n\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 marketing: marketingData,\r\n options: {...params.options, showRegister: !this.services.cmsSegmentation.isCisOrCip && this.services.configuration.data.generalSettings.showRegisterButton}\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?: OpenMyAccountOptions, marketingParams?: MarketingParams, resolveByCallback: boolean = false): Promise {\r\n await this.openLink({\r\n source: 'my_account',\r\n options: options,\r\n resolveByCallback: resolveByCallback\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","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\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 })\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 {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`;","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","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`","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}\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}\r\n\r\nexport const DISPLAY_MESSAGE_NAMES = {\r\n DISRUPTIVE_WARNING_MESSAGE_NAME: \"DisruptiveWarningMessage\",\r\n DISRUPTIVE_KICKOFF_MESSAGE_NAME: \"DisruptiveKickOffMessage\",\r\n}","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}","var map = {\n\t\"./888/888.company-model\": [\n\t\t1153,\n\t\t2,\n\t\t21,\n\t\t94\n\t],\n\t\"./evolution/evolution.company-model\": [\n\t\t1100,\n\t\t2,\n\t\t85\n\t],\n\t\"./netent/netent.company-model\": [\n\t\t1110,\n\t\t2,\n\t\t89\n\t],\n\t\"./nyx/nyx.company-model\": [\n\t\t1130,\n\t\t2,\n\t\t90\n\t],\n\t\"./pariplay/pariplay.company-model\": [\n\t\t1118,\n\t\t2,\n\t\t91\n\t],\n\t\"./play-n-go/play-n-go.company-model\": [\n\t\t1131,\n\t\t2,\n\t\t83\n\t],\n\t\"./playtech/playtech.company-model\": [\n\t\t1132,\n\t\t2,\n\t\t84\n\t],\n\t\"./pragmatic/pragmatic.company-model\": [\n\t\t1133,\n\t\t2,\n\t\t86\n\t],\n\t\"./red-tiger/red-tiger.company-model\": [\n\t\t1154,\n\t\t2,\n\t\t47,\n\t\t95\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 = 798;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./ballysdover/theme.definition\": [\n\t\t1148,\n\t\t0,\n\t\t1,\n\t\t65\n\t],\n\t\"./casino777/theme.definition\": [\n\t\t1109,\n\t\t0,\n\t\t1,\n\t\t66\n\t],\n\t\"./casino888/cip/theme.definition\": [\n\t\t1149,\n\t\t0,\n\t\t1,\n\t\t68\n\t],\n\t\"./casino888/cis/theme.definition\": [\n\t\t1031,\n\t\t0,\n\t\t1,\n\t\t69\n\t],\n\t\"./casino888/theme.definition\": [\n\t\t1116,\n\t\t0,\n\t\t1,\n\t\t70\n\t],\n\t\"./delawarepark/theme.definition\": [\n\t\t1117,\n\t\t0,\n\t\t1,\n\t\t71\n\t],\n\t\"./harrahs/theme.definition\": [\n\t\t1032,\n\t\t0,\n\t\t1,\n\t\t72\n\t],\n\t\"./harrington/theme.definition\": [\n\t\t1150,\n\t\t0,\n\t\t1,\n\t\t73\n\t],\n\t\"./si/theme.definition\": [\n\t\t1094,\n\t\t0,\n\t\t1,\n\t\t74\n\t],\n\t\"./wsop/cip/theme.definition\": [\n\t\t1151,\n\t\t0,\n\t\t1,\n\t\t75\n\t],\n\t\"./wsop/theme.definition\": [\n\t\t1152,\n\t\t0,\n\t\t1,\n\t\t67\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 = 804;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./ara\": [\n\t\t583,\n\t\t25\n\t],\n\t\"./ara.ts\": [\n\t\t583,\n\t\t25\n\t],\n\t\"./chi\": [\n\t\t584,\n\t\t31\n\t],\n\t\"./chi.ts\": [\n\t\t584,\n\t\t31\n\t],\n\t\"./dan\": [\n\t\t585,\n\t\t40\n\t],\n\t\"./dan.ts\": [\n\t\t585,\n\t\t40\n\t],\n\t\"./dut\": [\n\t\t586,\n\t\t41\n\t],\n\t\"./dut.ts\": [\n\t\t586,\n\t\t41\n\t],\n\t\"./eng\": [\n\t\t369\n\t],\n\t\"./eng.ts\": [\n\t\t369\n\t],\n\t\"./fin\": [\n\t\t587,\n\t\t26\n\t],\n\t\"./fin.ts\": [\n\t\t587,\n\t\t26\n\t],\n\t\"./fre\": [\n\t\t588,\n\t\t27\n\t],\n\t\"./fre.ts\": [\n\t\t588,\n\t\t27\n\t],\n\t\"./ger\": [\n\t\t589,\n\t\t28\n\t],\n\t\"./ger.ts\": [\n\t\t589,\n\t\t28\n\t],\n\t\"./gre\": [\n\t\t590,\n\t\t29\n\t],\n\t\"./gre.ts\": [\n\t\t590,\n\t\t29\n\t],\n\t\"./ita\": [\n\t\t591,\n\t\t30\n\t],\n\t\"./ita.ts\": [\n\t\t591,\n\t\t30\n\t],\n\t\"./jpn\": [\n\t\t592,\n\t\t32\n\t],\n\t\"./jpn.ts\": [\n\t\t592,\n\t\t32\n\t],\n\t\"./nor\": [\n\t\t593,\n\t\t33\n\t],\n\t\"./nor.ts\": [\n\t\t593,\n\t\t33\n\t],\n\t\"./por\": [\n\t\t594,\n\t\t34\n\t],\n\t\"./por.ts\": [\n\t\t594,\n\t\t34\n\t],\n\t\"./rum\": [\n\t\t595,\n\t\t35\n\t],\n\t\"./rum.ts\": [\n\t\t595,\n\t\t35\n\t],\n\t\"./rus\": [\n\t\t596,\n\t\t36\n\t],\n\t\"./rus.ts\": [\n\t\t596,\n\t\t36\n\t],\n\t\"./spa\": [\n\t\t597,\n\t\t37\n\t],\n\t\"./spa.ts\": [\n\t\t597,\n\t\t37\n\t],\n\t\"./swe\": [\n\t\t598,\n\t\t38\n\t],\n\t\"./swe.ts\": [\n\t\t598,\n\t\t38\n\t],\n\t\"./tha\": [\n\t\t599,\n\t\t39\n\t],\n\t\"./tha.ts\": [\n\t\t599,\n\t\t39\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 = 805;\nmodule.exports = webpackAsyncContext;","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 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}","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}","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"],"sourceRoot":""}