{"version":3,"sources":["app-react/themes/architecture/css-helpers/flex.ts","app-react/themes/architecture/gray-colors.ts","common/const/game_groups_consts.ts","app-react/services/arenas/arena-consts.ts","app-react/components/modal-dialog/boxes/actions/buttons-wrapper.box.ts","app-react/components/modal-dialog/boxes/actions/button-wrapper.box.ts","app-react/components/modal-dialog/boxes/actions/link-action.box.ts","app-react/components/modal-dialog/boxes/actions/link-wrapper.box.ts","app-react/components/modal-dialog/modal-dialog-actions.component.tsx","app-react/themes/definitions/mrgreen/base-colors.ts","app-react/services/game-runner/interfaces/game-step/game-run-step.interface.ts","app-react/themes/assets.ts","app-react/basic-components/space-between-items-consts.ts","common/const/cashier-session-types.ts","utils/disposable-object.ts","sdk/src/exceptions/cgp_error_codes.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","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/css-constants.ts","app-react/components/base-components/routed-component/routed.component.ts","app-react/themes/definitions/si/base-colors.ts","sdk/src/utils/date_formatter.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.mrgreen.box.ts","app-react/components/game-jackpot/boxes/value/game-jackpot-value.siCis.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/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/raw-components/aspect-ratio-container/aspect-ratio-container.component.tsx","common/const/wallet_balance_type.ts","common/const/responsible-gaming.ts","app-react/basic-ui-components/form/select.component.tsx","sdk/src/components/external_links/handlers/membership/external_links_membership_handler_consts.js","app-react/components/header/welcome-buttons/header-welcome-buttons-helpers.tsx","app-react/components/top-image/boxes/top-banner/top-banner.default.box.ts","app-react/components/top-image/boxes/top-banner/top-banner.777.box.ts","app-react/components/top-image/boxes/top-banner/top-banner.si.box.ts","app-react/components/top-image/boxes/top-banner/top-banner.mrgreen.box.ts","app-react/components/top-image/boxes/top-banner/top-banner.box.ts","app-react/components/top-image/boxes/top-banner-image/top-banner-image.box.ts","app-react/components/top-image/boxes/top-banner-image/top-banner-image.default.box.ts","app-react/components/top-image/boxes/top-banner-logo-image/top-banner-logo-image.default.box.ts","app-react/components/top-image/boxes/top-banner-logo-image/top-banner-logo-image.casino777.box.ts","app-react/components/top-image/boxes/top-banner-logo-image/top-banner-logo-image.box.ts","app-react/components/top-image/boxes/top-banner-title/top-banner-title.default.box.ts","app-react/components/top-image/boxes/top-banner-title/top-banner-title.casino777.box.ts","app-react/components/top-image/boxes/top-banner-title/top-banner-title.box.ts","app-react/components/top-image/boxes/top-banner-live-logo/top-banner-live-logo.default.box.ts","app-react/components/top-image/boxes/top-banner-live-logo/top-banner-live-logo.casino777.box.ts","app-react/components/top-image/boxes/top-banner-live-logo/top-banner-live-logo.box.ts","app-react/components/top-image/top-image.component.tsx","app-react/components/responsible-gambling/responsible-gaming-buttons/regulations/germany/boxes/panic-button.box.ts","app-react/components/responsible-gambling/responsible-gaming-buttons/regulations/germany/css-classes.ts","app-react/components/responsible-gambling/responsible-gaming-buttons/regulations/germany/boxes/panic-button-tooltip.box.ts","app-react/components/responsible-gambling/responsible-gaming-buttons/regulations/germany/boxes/panic-button-popup.box.ts","app-react/components/responsible-gambling/responsible-gaming-buttons/regulations/germany/boxes/panic-button-popup-time.box.ts","app-react/components/responsible-gambling/responsible-gaming-buttons/regulations/germany/boxes/panic-button-popup-ok.box.ts","app-react/components/responsible-gambling/responsible-gaming-buttons/regulations/germany/panic-button-popup.component.tsx","app-react/components/responsible-gambling/responsible-gaming-buttons/regulations/germany/boxes/panic-button-tooltip-click-here.ts","app-react/components/responsible-gambling/responsible-gaming-buttons/regulations/germany/boxes/panic-button-tooltip-close.box.ts","app-react/components/responsible-gambling/responsible-gaming-buttons/regulations/germany/boxes/panic-button-mobile-overlay.box.ts","app-react/components/responsible-gambling/responsible-gaming-buttons/regulations/germany/responsible-gaming-buttons-germany.component.tsx","app-react/components/admin-banner/boxes/admin-banner-wrapper.box.ts","app-react/components/admin-banner/admin-banner.component.tsx","app-react/components/banner/banner.component.tsx","app-react/basic-ui-components/x-close-button/x-close-button.box.ts","app-react/services/external-links/handlers/my-account/my-account.external-link-handler.interface.ts","app-react/themes/architecture/sections/theme-layout.interface.ts","app-react/services/gaming-history/gaming-history-type.ts","app-react/components/geo/boxes/geo-modal-wrapper.box.ts","common/const/free_play_consts.ts","common/utils/cashier-util.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/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/single-game/common/parts/game-image/game-image.component.tsx","app-react/components/orbit-swiper/swiper-window.component.tsx","app-react/components/arena-games-lists/arena-games-lists.component.tsx","app-react/themes/architecture/styled-by-theme.tsx","app-react/components/inside-orbit-menu-container/inside-orbit-menu-container.consts.ts","app-react/themes/definitions/casino777/base-colors.ts","common/utils/image-preload.ts","app-react/services/games-filter/games-filter.service.interface.ts","common/cy-classes.ts","common/const/ab-testing-names.ts","common/interfaces/orbit-component-to-sdk-adapter/components-props/time-spent-reminder-options.ts","sdk/src/components/external_links/handlers/my_account/external_links_my_account_handler_consts.js","app-react/components/header/buttons/boxes/header-standard-button.box.ts","common/const/state-of-residence-cookie_const.ts","app-react/components/inside-orbit-menu-container/inside-orbit-menu-container.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","sdk/src/events/events.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.mrgreen.box.ts","app-react/components/modal-dialog/boxes/title/dialog-title.box.ts","app-react/components/modal-dialog/boxes/close-button/dialog-close-button.box.ts","app-react/components/modal-dialog/boxes/close-button/dialog-close-button.default.box.ts","app-react/components/modal-dialog/css-classes.ts","app-react/components/modal-dialog/boxes/header/dialog-header.default.box.ts","app-react/components/modal-dialog/boxes/header/dialog-header.cip.box.ts","app-react/components/modal-dialog/boxes/header/dialog-header.box.ts","app-react/components/modal-dialog/boxes/header-buttons/header-buttons-container.box.ts","app-react/components/modal-dialog/parts/header/dialog-header.component.tsx","app-react/components/lobby-game-info-preview/intermediate-page/title/title.component.tsx","app-react/components/lobby-game-info-preview/common/trailer-or-stripe-image/stripe-image/boxes/stripe-image/stripe-image.default.box.ts","app-react/components/lobby-game-info-preview/common/trailer-or-stripe-image/stripe-image/boxes/stripe-image/stripe-image.box.ts","app-react/components/lobby-game-info-preview/common/trailer-or-stripe-image/stripe-image/game-stripe-image.component.tsx","app-react/components/lobby-game-info-preview/common/trailer-or-stripe-image/trailer/boxes/trailer/trailer.box.ts","app-react/components/lobby-game-info-preview/common/trailer-or-stripe-image/trailer/boxes/trailer/trailer.default.box.ts","app-react/components/lobby-game-info-preview/common/trailer-or-stripe-image/trailer/game-trailer.component.tsx","app-react/components/lobby-game-info-preview/common/trailer-or-stripe-image/trailer-or-stripe-image.component.tsx","app-react/components/lobby-game-info-preview/common/game-info-container/features/cell/boxes/cell-value-bool/cell-value-bool.default.box.ts","app-react/services/games/games-categories.enum.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/cell/boxes/cell-value-bool/cell-value-bool.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/cell/boxes/cell-value-text/cell-value-text.default.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/cell/boxes/cell-value-text/cell-value-text.casino777.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/cell/boxes/cell-value-text/cell-value-text.mrgeen.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.default.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/cell/boxes/cell-title/cell-title.mrgeen.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/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.mrgreen.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.default.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/about/boxes/game-description-text/game-description-text.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/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.si.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.default.box.ts","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/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","common/const/ai-trending-list-ids-map.ts","app-react/services/user/user.service.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/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/safezone/safezone.service.interface.ts","app-react/services/sdk/sdk-events-trigger.ts","app-react/services/sdk/sdk.service.ts","common/interfaces/cashier-widgets-eligibility-details.interface.ts","app-react/services/games-filter/strategies/no-filter/no-games-filter.strategy.ts","app-react/services/games-filter/games-filter.service.ts","app-react/services/configurations/config-data-sections/arenas.configuration.ts","app-react/services/user-menu/useful-link-actions.ts","app-react/components/useful-links/boxes/useful-links-item/useful-links-item.default.box.ts","app-react/components/useful-links/boxes/useful-links-item/useful-links-item.casino777.box.ts","app-react/components/useful-links/boxes/useful-links-item/useful-links-item.cip.box.ts","app-react/components/useful-links/boxes/useful-links-item/useful-links-item.mrgreen.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/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.siCis.box.ts","app-react/components/single-game/regular-template/boxes/game-title/game-title.mrgreen.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.mrgreen.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.default.box.ts","app-react/components/single-game/regular-template/boxes/game-number-badge/game-number-badge.mrgreen.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-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-static-image-overlay/video-tile-static-image-overlay.mrgreen.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-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.siCis.box.ts","app-react/components/orbit-swiper/boxes/swiper-games-list/swiper-games-list.box.ts","app-react/components/orbit-swiper/boxes/swiper/swiper.box.ts","app-react/components/orbit-swiper/boxes/swiper/swiper.default.box.ts","app-react/components/orbit-swiper/orbit-swiper.component.tsx","app-react/components/recently-played/recently-played.component.tsx","app-react/services/arenas/models/lists/games-list-base.model.tsx","app-react/components/game-list-title/constants.ts","app-react/components/game-list-title/boxes/list-title-icon/list-title-icon.default.box.ts","app-react/components/game-list-title/boxes/list-title-icon/list-title-icon.wsop.cip.box.ts","app-react/components/game-list-title/boxes/list-title-icon/list-title-icon.cis.box.ts","app-react/components/game-list-title/boxes/list-title-icon/list-title-icon.box.ts","app-react/components/jackpot-widget/boxes/jackpot-widget.default.box.ts","app-react/components/jackpot-widget/boxes/jackpot-widget.box.ts","app-react/components/jackpot-widget/boxes/bg/jackpot-widget-bg.box.ts","app-react/components/jackpot-widget/boxes/logo/jackpot-widget-logo.box.ts","app-react/components/jackpot-widget/boxes/amount/jackpot-widget-amount.box.ts","app-react/components/jackpot-widget/boxes/footer/jackpot-widget-footer.box.ts","app-react/components/jackpot-widget/boxes/footer/clock/label/jackpot-widget-clock-label.box.ts","app-react/components/jackpot-widget/boxes/footer/clock/box/jackpot-widget-clock.box.ts","app-react/components/jackpot-widget/jackpot-widget-clock.component.tsx","app-react/components/jackpot-widget/boxes/amount/label/jackpot-widget-amount-label.box.ts","app-react/components/jackpot-widget/boxes/footer/collecting/label/jackpot-widget-collecting-label.ts","app-react/components/jackpot-widget/boxes/footer/collecting/amount/jackpot-widget-collecting-amount.ts","app-react/components/jackpot-widget/boxes/shine/jackpot-widget-shine.box.ts","app-react/components/jackpot-widget/jackpot-widget.component.tsx","app-react/components/jackpot-widget/boxes/aspect-ratio/jackpot-widget-aspect-ratio.box.ts","app-react/components/jackpot-widget/boxes/amount/jackpot-widget-amount-container.box.ts","app-react/components/jackpot-widget/skeleton/boxes/footer/jackpot-widget-footer-element-skeleton.box.ts","app-react/components/jackpot-widget/skeleton/boxes/footer/jackpot-widget-clock-label-skeleton.box.ts","app-react/components/jackpot-widget/skeleton/boxes/footer/jackpot-widget-collecting-label-skeleton.box.ts","app-react/components/jackpot-widget/skeleton/boxes/footer/jackpot-widget-footer-container-skeleton.box.ts","app-react/components/jackpot-widget/skeleton/boxes/jackpot-widget-amount-skeleton.box.ts","app-react/services/pixi-app/animated-icon-base-service.service.ts","app-react/components/orbit-swiper/boxes/jackpot-widget-wrapper/jackpot-widget-wrapper.default.box.ts","app-react/components/orbit-swiper/boxes/jackpot-widget-wrapper/jackpot-widget-wrapper.box.ts","app-react/components/red-tiger-widget/boxes/widget/red-tiger-widget.default.box.ts","app-react/components/red-tiger-widget/boxes/widget/red-tiger-widget.box.ts","app-react/components/red-tiger-widget/boxes/hitArea/red-tiger-widget-hit-area.default.box.ts","app-react/components/red-tiger-widget/boxes/hitArea/red-tiger-widget-hit-area.casino777.box.ts","app-react/components/red-tiger-widget/boxes/hitArea/red-tiger-widget-hit-area.box.ts","app-react/components/red-tiger-widget/boxes/frameContainer/red-tiger-widget-frame-container.default.box.ts","app-react/components/red-tiger-widget/boxes/frameContainer/red-tiger-widget-frame-container.box.ts","app-react/components/red-tiger-widget/red-tiger-widget.component.tsx","app-react/basic-components/general-title/general-title.si.box.ts","app-react/basic-components/general-title/general-title.box.tsx","app-react/components/game-list-title/boxes/list-title-text/list-title-text.default.box.ts","app-react/components/game-list-title/boxes/list-title-text/list-title-text.casino777.box.ts","app-react/components/game-list-title/boxes/list-title-text/list-title-text.cip.box.ts","app-react/components/game-list-title/boxes/list-title-text/list-title-text.cis.box.ts","app-react/components/game-list-title/boxes/list-title-text/list-title-text.si.box.ts","app-react/components/game-list-title/boxes/list-title-text/list-title-text.mrgreen.box.ts","app-react/components/game-list-title/boxes/list-title-text/list-title-text.siCis.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.mrgreen.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.siCis.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.siCis.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/menu/menu-item/home-page-header-arena-menu-item.default.box.ts","app-react/components/home-page-header-arenas/boxes/menu/menu-item/home-page-header-arena-menu-item.mrgreen.box.ts","app-react/components/home-page-header-arenas/boxes/menu/menu-item/home-page-header-arena-menu-item.box.ts","app-react/components/home-page-header-arenas/boxes/menu/icon-box/home-page-header-arena-menu-item-icon.default.box.ts","app-react/components/home-page-header-arenas/boxes/menu/icon-box/home-page-header-arena-menu-item-icon.box.ts","app-react/components/home-page-header-arenas/boxes/menu/menu-item-name/home-page-header-arena-menu-item-name.default.box.ts","app-react/components/home-page-header-arenas/boxes/menu/menu-item-name/home-page-header-arena-menu-item-name.box.ts","app-react/components/home-page-header-arenas/boxes/tiles/tile/home-page-header-arena-tile.default.box.ts","app-react/components/home-page-header-arenas/boxes/tiles/tile/home-page-header-arena-tile.si.box.ts","app-react/components/home-page-header-arenas/boxes/tiles/tile/home-page-header-arena-tile.box.ts","app-react/components/home-page-header-arenas/boxes/tiles/name/home-page-header-arena-name.default.box.ts","app-react/components/home-page-header-arenas/boxes/tiles/name/home-page-header-arena-name.si.box.ts","app-react/components/home-page-header-arenas/boxes/tiles/name/home-page-header-arena-name.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.mrgreen.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.mrgreen.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/tiles/skeleton/home-page-header-arena-skeleton.default.box.ts","app-react/components/home-page-header-arenas/boxes/tiles/skeleton/home-page-header-arena-skeleton.si.box.ts","app-react/components/home-page-header-arenas/boxes/tiles/skeleton/home-page-header-arena-skeleton.box.ts","app-react/components/home-page-header-arenas/home-page-header-arena-tile.component.tsx","app-react/components/home-page-header-arenas/home-page-header-arenas.component.tsx","app-react/components/home-page/boxes/home-page-top-banner-background.box.ts","app-react/components/home-page/boxes/home-page-top-banner-divider-line.ts","app-react/components/free-to-play-animated-icon/boxes/free-to-play-animated-icon.default.box.ts","app-react/components/free-to-play-animated-icon/boxes/free-to-play-animated-icon.box.ts","app-react/services/user-game-orientation/user-game-orientation.service.interface.ts","app-react/components/free-to-play-animated-icon/free-to-play-animated-icon.component.tsx","app-react/components/home-page/home-page.component.tsx","app-react/services/arenas/models/arenas/home-page/home-page-arena.model.tsx","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/arena-info-preview/boxes/arena-picture/arena-picture.box.ts","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/arena-info-preview/boxes/arena-picture/arena-picture.default.box.ts","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/arena-info-preview/boxes/arena-title/arena-title.box.ts","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/arena-info-preview/boxes/arena-title/arena-title.default.box.ts","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/arena-info-preview/boxes/arena-description-text/arena-description-text.box.ts","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/arena-info-preview/boxes/arena-description-text/arena-description-text.default.box.ts","app-react/components/lobby-game-info-preview/pc-game-info-preview/boxes/lobby-game-info/lobby-game-info.default.box.ts","app-react/components/lobby-game-info-preview/pc-game-info-preview/boxes/lobby-game-info/lobby-game-info.box.ts","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/arena-info-preview/arena-info-preview.component.tsx","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/game-info-preview/title/pc-game-preview-title.component.tsx","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/game-info-preview/game-info-preview.component.tsx","app-react/components/lobby-game-info-preview/pc-game-info-preview/pc-game-info-preview.component.tsx","app-react/components/arena-host/casino-arena/casino-arena.template-types.ts","app-react/components/arena-host/casino-arena/casino-arena.component.tsx","app-react/services/arenas/models/filters-configuration-to-map.ts","app-react/services/games-filter/evaluators/game-filter-evaluator.interface.ts","app-react/services/games-filter/strategies/games-filter-strategy-base.ts","app-react/components/filters/advanced-filtering/filter-categories-list/boxes/container.box.ts","app-react/components/filters/advanced-filtering/filter-category/boxes/filter-category.box.ts","app-react/components/filters/advanced-filtering/filter-category/boxes/filter-category-content.box.ts","app-react/components/filters/advanced-filtering/filter-category/boxes/filter-Item.box.ts","app-react/components/filters/advanced-filtering/filter-category/boxes/input.box.ts","app-react/components/filters/advanced-filtering/filter-category/boxes/filter-item-title.box.ts","app-react/components/filters/advanced-filtering/filter-category/boxes/sub-filters.box.ts","app-react/components/filters/advanced-filtering/filter-category/boxes/filter-item-container.box.ts","app-react/components/filters/advanced-filtering/filter-category/filter-category-item.component.tsx","app-react/components/filters/advanced-filtering/filter-category/filter-category-content.component.tsx","app-react/components/filters/advanced-filtering/filter-category/boxes/title-container.box.ts","app-react/components/filters/advanced-filtering/filter-category/boxes/title.box.ts","app-react/components/filters/advanced-filtering/filter-category/boxes/preview.box.ts","app-react/components/filters/advanced-filtering/filter-category/filter-category-header.component.tsx","app-react/components/filters/advanced-filtering/filter-category/filter-category.component.tsx","app-react/components/filters/advanced-filtering/filter-categories-list/filter-categories-list.component.tsx","app-react/components/filters/advanced-filtering/boxes/advanced-games-filter.box.ts","app-react/components/filters/advanced-filtering/boxes/advanced-games-filter-footer.box.ts","app-react/components/filters/advanced-filtering/boxes/advanced-games-filter-header.box.ts","app-react/components/filters/advanced-filtering/boxes/advanced-games-filter-close-button.box.ts","app-react/components/filters/advanced-filtering/boxes/advanced-games-filter-button.box.ts","app-react/components/filters/advanced-filtering/filter-categories-list/boxes/filter-by.box.ts","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/filters/arena-game-filter-editor.ts","app-react/services/games-filter/arena-filters/categories/arena-game-filters-category-editor.ts","app-react/services/games-filter/strategies/advanced-filter/advanced-filters-analytics.ts","app-react/services/games-filter/strategies/advanced-filter/advanced-strategy-filters-editor.ts","app-react/services/games-filter/evaluators/and-game-filters-evaluator.ts","app-react/components/filters/filters-games-list-mobile/boxes/menu-button/filters-mobile-button.default.box.ts","app-react/components/filters/filters-games-list-mobile/boxes/menu-button/filters-mobile-button.casino777.box.ts","app-react/components/filters/filters-games-list-mobile/boxes/menu-button/filters-mobile-button.mrgreen.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/indicators/pc-indicator/boxes/applied-filter-indicator.box.ts","app-react/components/filters/advanced-filtering/indicators/pc-indicator/boxes/applied-filters.box.ts","app-react/components/filters/advanced-filtering/indicators/pc-indicator/boxes/remove-filter-button.box.ts","app-react/components/filters/advanced-filtering/indicators/pc-indicator/boxes/applied-filter-name.box.ts","app-react/components/filters/advanced-filtering/indicators/pc-indicator/applied-filters-pc-indicator-for-advanced-filtering.component.tsx","app-react/services/games-filter/arena-filters/categories/arena-game-filters-category-base.ts","app-react/services/games-filter/arena-filters/filters/arena-game-filter-base.ts","app-react/services/games-filter/arena-filters/filters/dynamic-arena-game-filter.ts","app-react/services/games-filter/arena-filters/categories/dynamic-arena-game-filters-category.ts","app-react/services/games-filter/evaluators/or-game-filters-evaluator.ts","app-react/services/games-filter/filters-categories-definitions/filter-category-definition-base.ts","app-react/services/games-filter/filters-definitions/game-filter-definition-base.ts","app-react/services/games-filter/filters-definitions/volatility/high-volatility.filter-definition.ts","app-react/services/games-filter/filters-definitions/volatility/low-volatility.filter-definition.ts","app-react/services/games-filter/filters-definitions/volatility/medium-volatility.filter-definition.ts","app-react/services/games-filter/filters-categories-definitions/volatility.filters-category-definition.ts","app-react/services/games-filter/filters-definitions/game-feature-filter-definition-base.ts","app-react/services/games-filter/filters-definitions/game-features/one-to-twenty-five.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-features/twenty-five-plus.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-features/new-game.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-features/low-stake.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-features/high-stake.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-features/bonus-game.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-features/free-spins.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-features/has-side-bets.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-features/is-multi-hand.filter-definition.ts","app-react/services/games-filter/filters-categories-definitions/game-features.filters-category-definition.ts","app-react/services/games-filter/filters-definitions/jackpot/has-dailight-jackpot.filter-definition.ts","app-react/services/games-filter/filters-definitions/jackpot/has-twilight-jackpot.filter-definition.ts","app-react/services/games-filter/filters-definitions/jackpot/has-captain8-jackpot.filter-definition.ts","app-react/services/games-filter/filters-definitions/jackpot/has-red-tiger-jackpot.filter-definition.ts","app-react/services/games-filter/filters-definitions/jackpot/has-jackpot.filter-definition.ts","app-react/services/games-filter/filters-definitions/jackpot/has-no-jackpot.filter-definition.ts","app-react/services/games-filter/filters-categories-definitions/has-jackpot.filters-category-definition.ts","app-react/services/games-filter/filters-definitions/vendor/vendor.filter-definition.ts","app-react/services/games-filter/filters-categories-definitions/game-vendor.filters-category-definition.ts","app-react/services/games-filter/filters-definitions/game-group-filter-definition-base.ts","app-react/services/games-filter/filters-definitions/game-group/baccarat.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-group/blackjack.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-group/craps.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-group/keno.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-group/live-elite-lunge.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-group/live-elite-lounge-or-exclusive.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-group/live-game-filter-definition-base.ts","app-react/services/games-filter/filters-definitions/game-group/live-game-shows.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-group/poker.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-group/roulette.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-group/scratchcards.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-group/slots.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-group/other-game-group.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-group/live-baccarat.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-group/live-blackjack.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-group/live-poker.filter-definition.ts","app-react/services/games-filter/filters-definitions/game-group/live-roulette.filter-definition.ts","app-react/services/games-filter/filters-categories-definitions/game-group.filters-category-definition.ts","app-react/services/games-filter/filters-definitions/theme/game-theme.filter-definition.ts","app-react/services/games-filter/filters-categories-definitions/game-theme.filters-category-definition.ts","app-react/services/games-filter/filters-categories-definitions/filter-category-definition-factory.ts","app-react/services/games-filter/strategies/advanced-filter/advanced-games-filter.strategy.tsx","app-react/components/filters/filter-link/boxes/icon/filter-link-icon.default.box.ts","app-react/components/filters/filter-link/boxes/icon/filter-link-icon.casino777.box.ts","app-react/components/filters/filter-link/boxes/icon/filter-link-icon.si.box.ts","app-react/components/filters/filter-link/boxes/icon/filter-link-icon.mrgreen.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.mrgreen.box.ts","app-react/components/filters/filter-link/boxes/filter-link.box.ts","app-react/components/filters/filter-link/filter-link.component.tsx","app-react/components/filters/filter-link-list/filters-games-list.default.box.ts","app-react/components/filters/filter-link-list/filters-games-list.box.ts","app-react/components/filters/filter-link-list/filter-link-list.component.tsx","app-react/components/filters/filters-games-list-mobile/boxes/popup/filters-games-mobile-popup.box.ts","app-react/components/filters/filters-games-list-mobile/boxes/popup/menu/filters-mobile-buttons.box.ts","app-react/components/filters/filters-games-list-mobile/boxes/popup/menu/filters-mobile-buttons.default.box.ts","app-react/components/filters/filters-games-list-mobile/filters-games-list-mobile.component.tsx","app-react/services/games-filter/strategies/simple-games-filter/simple-strategy-filters-editor.ts","app-react/services/games-filter/filters-definitions/other/other.filter-definition.ts","app-react/services/games-filter/filters-categories-definitions/other.filters-category-definition.ts","app-react/services/games-filter/arena-filters/filters/static-arena-game-filter.ts","app-react/services/games-filter/arena-filters/categories/static-arena-game-filters-category.ts","app-react/components/filters/filters-games-list-pc/boxes/filters-game-list-pc.box.ts","app-react/components/filters/filters-games-list-pc/boxes/filters-game-list-pc.default.box.ts","app-react/components/filters/filters-games-list-pc/filters-games-list-pc.component.tsx","app-react/services/games-filter/arena-filters/filters/adhoc-arena-game-filter.ts","app-react/services/games-filter/filters-definitions/company/company.filter-definitions.ts","app-react/services/games-filter/arena-filters/categories/adhoc-arena-games-filters-category.ts","app-react/services/games-filter/strategies/simple-games-filter/simple-games-filter.strategy.tsx","app-react/services/arenas/models/arenas/casino-lobby/casino-lobby-arena.model.tsx","app-react/services/arenas/models/arenas/void-arena/void-arena.model.ts","app-react/services/arenas/models/lists-sort-order-storage.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-filter-button-icon/live-casino-filter-button-icon.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-filter-button-icon/live-casino-filter-button-icon.si.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-filter-button-icon/live-casino-filter-button-icon.mrgreen.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.mrgreen.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.mrgreen.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-z-indexes.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/boxes/search-game-image-box/search-game-image.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-arena.mrgreen.box.ts","app-react/components/game-search/search-input/search-input-area/boxes/search-input-area-box/search-input-area.box.ts","app-react/components/game-search/search-input/search-input-area/search-input-area.tsx","app-react/components/game-search/search-input/search-input-mobile/search-input-mobile.component.tsx","app-react/components/game-search/search-input/search-input-pc/boxes/search-input-form/search-input-form.box.ts","app-react/components/game-search/search-input/search-input-pc/boxes/search-input-form/search-input-form.default.box.ts","app-react/components/game-search/search-input/search-input-pc/boxes/search-pc-icon/search-pc-icon.default.box.ts","app-react/components/game-search/search-input/search-input-pc/boxes/search-pc-icon/search-pc-icon.casino777.box.ts","app-react/components/game-search/search-input/search-input-pc/boxes/search-pc-icon/search-pc-icon.harrahs.box.ts","app-react/components/game-search/search-input/search-input-pc/boxes/search-pc-icon/search-pc-icon.wsop.box.ts","app-react/components/game-search/search-input/search-input-pc/boxes/search-pc-icon/search-pc-icon.box.ts","app-react/components/game-search/search-input/search-input-pc/search-input-pc.component.tsx","app-react/components/game-search/boxes/game-search-box/game-search.box.ts","app-react/components/game-search/game-search.component.tsx","app-react/services/game-search/game-search.service.tsx","app-react/services/external-links/strategies/external-links-legacy.strategy.ts","app-react/services/external-links/strategies/external-links-modern.strategy.ts","app-react/services/analytics/analytics-data-layer.service.interface.ts","app-react/services/external-links/external-links.service.ts","app-react/services/cms/cms-api/cms-api.service.ts","app-react/components/cms-banner/banner-content/banner-content.component.tsx","app-react/services/cms/cms-banners/banner-definition/banner-definition.tsx","app-react/services/cms/cms-banners/cms-banners.service.ts","app-react/services/cms/cms-pages/cms-pages.service.ts","app-react/services/cms/cms-segmentation/cms-segmentation.service.ts","app-react/services/deep-link/deep-link-actions/deep-link-action-base.ts","app-react/services/deep-link/deep-link-actions/cashier/cashier-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/login/login-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/play-game/play-game-deep-link-action-base.ts","app-react/services/deep-link/deep-link-actions/play-game/play-game-real/play-game-real-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/play-game/play-game-demo/play-game-demo-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/register/register-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/my-account/my-account-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/redirect/redirect-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/terminate/terminate-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/upload-document/upload-document-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/freeplay/freeplay-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/open-list/open-list-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/control-center/control-center-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/free-to-play/free-to-play-deeplink-action.ts","app-react/services/deep-link/deep-link-action-factory/deep-link-actions-factory.service.ts","app-react/services/sdk-component-factory/sdk-component-factory.service.ts","app-react/components/sticky-handler/sticky-handler.ts","app-react/services/sticky-handler-factory/sticky-handler-factory.service.ts","app-react/services/game-preview-features-selector/preview-features/boolean-game-preview-feature.ts","app-react/services/game-preview-features-selector/preview-features/money-game-preview-feature.ts","app-react/services/game-preview-features-selector/preview-features/numeric-game-preview-feature.ts","app-react/services/game-preview-features-selector/preview-features/all-features.ts","app-react/services/game-preview-features-selector/game-preview-features-selector.service.ts","app-react/services/game-route-handler/game-route-handler.service.ts","app-react/app-bootstrap/launcher-overrides-reader/launcher-overrides-reader.ts","app-react/services/launcher/launcher.service.ts","app-react/services/spinner/spinner.service.ts","app-react/services/menu-flow/menu-flow.service.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.mrgreen.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.default.box.ts","app-react/components/tooltip/tooltips/icon-title-text/boxes/title.mrgreen.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/seperator.mrgreen.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","app-react/services/live-table-feeds-service/live-table-feeds.service.interface.ts","utils/memoize.ts","app-react/services/live-table-feeds-service/live-table-feeds.service.ts","app-react/services/drawer/drawer-content-decorator.ts","app-react/services/drawer/drawer-handler.ts","app-react/services/drawer/drawer.service.ts","app-react/services/daily-deal/daily-deal.service.ts","app-react/services/jackpots-with-state/jackpot-handler/jackpot-handler.ts","app-react/services/jackpots-with-state/jackpots-with-state.service.ts","app-react/services/jackpots/jackpots.service.ts","utils/ab-testing-feature-check.ts","app-react/services/ab-testing/ab-testing-feature-data-provider.service.ts","utils/gradual-increase-helper.ts","app-react/services/gradual-increase-helper-factory/gradual-increase-helper-factory.service.ts","app-react/services/safezone/safezone.service.ts","app-react/components/safezone/boxes/full-safezone-content.box.tsx","app-react/components/safezone/boxes/full-safezone-content-default.box.tsx","app-react/components/on-error/boxes/on-error.box.tsx","app-react/components/on-error/boxes/on-error-default.box.tsx","app-react/components/on-error/boxes/on-error-icon.box.tsx","app-react/components/on-error/boxes/on-error-title.box.tsx","app-react/components/on-error/boxes/on-error-message.box.tsx","app-react/components/on-error/boxes/on-error-buttons.box.ts","app-react/components/on-error/on-error.component.tsx","app-react/components/safezone/full-safezone.component.tsx","app-react/services/homepage/homepage.service.tsx","app-react/services/safezone/safezone-handler-base.ts","app-react/services/safezone/full-safezone-handler.tsx","app-react/services/safezone/mini-safezone-handler.ts","app-react/services/safezone/safezone-object-factory.service.ts","app-react/services/wallet-proxy/wallet-proxy.service.ts","app-react/components/game-popup/boxes/game-view/games-view.default.box.ts","app-react/components/game-popup/boxes/game-view/games-view.box.ts","app-react/components/game-popup/boxes/game-icon-container/game-icon-container.default.box.ts","app-react/components/game-popup/boxes/game-icon-container/game-icon-container.box.ts","app-react/components/game-popup/boxes/game-view-section/game-view-section.box.ts","app-react/components/game-popup/boxes/game-popup/game-popup.default.box.ts","app-react/components/game-popup/boxes/game-popup/game-popup.box.ts","app-react/components/game-popup/boxes/sub-title-container/sub-title-container.box.ts","app-react/components/game-popup/boxes/game-view-divider/games-view-divider.default.box.ts","app-react/components/game-popup/boxes/menu-container/menu-container.box.ts","app-react/components/game-popup/boxes/description-container/description-container.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/side-menu-item.box.ts","app-react/components/side-menu-rework/side-menu-link/side-menu-item.component.tsx","app-react/components/side-menu-rework/side-menu-link/boxes/link/generic-side-menu-link.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/link/generic-side-menu-label.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/link/generic-side-menu-icon.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/link/generic-pre-icon-menu-link.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/link/generic-side-menu-image.box.ts","app-react/components/side-menu-rework/side-menu-link/internal-nav-side-menu-link.component.tsx","app-react/components/loyalty-bar/loyalty-bar-wrapper.component.tsx","app-react/components/side-menu-rework/side-menu-link/loyaltybar-side-menu-link.component.tsx","app-react/components/side-menu-rework/side-menu-link/boxes/link/deposit-side-menu-link.default.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/link/deposit-side-menu-link.casino777.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/link/deposit-side-menu-link.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/link/signup-side-menu-link.box.ts","app-react/components/side-menu-rework/side-menu-link/icons/arrow-side-menu-link.icon.ts","app-react/components/side-menu-rework/side-menu-link/signup-side-menu-link.component.tsx","app-react/components/side-menu-rework/side-menu-link/deposit-side-menu-link.component.tsx","app-react/components/side-menu/boxes/side-menu-component.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/side-menu-list.box.ts","app-react/components/side-menu-rework/side-menu-links-group/side-menu-links-group.component.tsx","app-react/components/game-popup/boxes/game-popup-checkbox-container/game-popup-checkbox-container.box.ts","app-react/components/game-popup/boxes/game-popup-checkbox/game-popup-checkbox.box.ts","app-react/components/game-popup/game-popup.component.tsx","app-react/services/game-popup/game-popup.service.tsx","app-react/services/analytics/analytics-data-layer.service.ts","app-react/components/session-cooldown-popup/boxes/session-cooldown.popup.box.ts","app-react/components/session-cooldown-popup/boxes/session-cooldown-popup.default.box.ts","app-react/components/session-cooldown-popup/boxes/session-cooldown-popup-text.box.ts","app-react/components/session-cooldown-popup/boxes/session-cooldown-popup-text.default.box.ts","app-react/components/session-cooldown-popup/boxes/session-cooldown-popup-timer.box.ts","app-react/components/session-cooldown-popup/boxes/session-cooldown-popup-timer.default.box.ts","app-react/components/session-cooldown-popup/boxes/session-cooldown-popup-timer-remaining.box.ts","app-react/components/session-cooldown-popup/boxes/session-cooldown-popup-timer-remaining.default.box.ts","app-react/components/session-cooldown-popup/session-cooldown-popup.component.tsx","app-react/services/session-cooldown/session-cooldown.service.tsx","app-react/components/time-spent-reminder/with-dropdown/time-spent-reminder-with-dropdown.component.tsx","app-react/services/media-query/media-query-listener.ts","app-react/services/media-query/media-query.service.ts","app-react/orbit-api.ts","app-react/orbit-api.interface.ts","app-react/services/tools/tools.service.ts","app-react/components/vertical-games-list/boxes/vertical-games-list.box.ts","app-react/components/vertical-games-list/boxes/header.box.ts","app-react/components/vertical-games-list/boxes/games-list.box.ts","app-react/components/vertical-games-list/boxes/game.box.ts","app-react/components/vertical-games-list/boxes/game-details.box.ts","app-react/components/vertical-games-list/boxes/game-divider.box.ts","app-react/components/balance-box/balance-box-buttons/boxes/button-wrapper.box.ts","app-react/components/vertical-games-list/boxes/game-image.box.ts","app-react/components/vertical-games-list/css-classes.ts","app-react/components/vertical-games-list/boxes/game-details-name.box.ts","app-react/components/vertical-games-list/boxes/game-details-jp.box.ts","app-react/components/vertical-games-list/vertical-games-list-game.component.tsx","app-react/components/vertical-games-list/boxes/header-title.box.ts","app-react/components/vertical-games-list/boxes/header-close.box.ts","app-react/components/vertical-games-list/boxes/dj-widget.box.ts","app-react/components/vertical-games-list/vertical-games-list.component.tsx","app-react/services/vertical-games-list/vertical-games-list.service.tsx","app-react/services/user-game-orientation/user-game-orientation.service.ts","app-react/services/api/api-controller-base.ts","app-react/services/api/api.service.ts","app-react/components/time-spent-reminder/with-dropdown/boxes/tsr-with-dropdown.box.ts","app-react/components/time-spent-reminder/with-dropdown/boxes/tsr-with-dropdown-option-selector.box.ts","app-react/components/time-spent-reminder/with-dropdown/boxes/tsr-with-dropdown-main-text.default.box.ts","app-react/components/time-spent-reminder/with-dropdown/boxes/tsr-with-dropdown-main-text.casino777.box.ts","app-react/components/time-spent-reminder/with-dropdown/boxes/tsr-with-dropdown-main-text.box.ts","app-react/components/time-spent-reminder/with-dropdown/boxes/tsr-with-dropdown-selector-container.box.ts","app-react/services/storage/local-storage-keys.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/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-message-collection.ts","app-react/services/omg-proxy/omg.service.ts","app-react/services/casinofied/message-broker/message-broker.consts.ts","app-react/services/casinofied/message-broker/message-broker.service.ts","app-react/services/casinofied/casinofied-helper-functions.ts","app-react/services/casinofied/app-launcher/apps/adapters/casinofied-zoid-application-adapter.ts","app-react/services/casinofied/app-launcher/apps/adapters/casinofied-regular-application-adapter.ts","app-react/services/casinofied/app-launcher/apps/casinofied-application-base.ts","app-react/services/casinofied/app-launcher/apps/casinofied-application.interface.ts","app-react/services/casinofied/app-launcher/apps/inside-drawer.application.tsx","app-react/services/casinofied/app-launcher/apps/chat/chat.application.ts","app-react/services/casinofied/app-launcher/casinofied-app-sdk-loader.ts","app-react/services/casinofied/app-launcher/components/casinofied-bubble.component.tsx","app-react/services/casinofied/app-launcher/components/casinofied-component-base.ts","app-react/services/casinofied/app-launcher/apps/adapters/unified-cashier-zoid-adapter.ts","app-react/services/casinofied/app-launcher/apps/deposit-widget/deposit-widget.application.ts","app-react/components/payments-redirect-focus/boxes/payment-redirect-focus-title/payment-redirect-focus-title.box.ts","app-react/components/payments-redirect-focus/boxes/payment-redirect-focus-title/payment-redirect-focus-title.default.box.ts","app-react/components/payments-redirect-focus/boxes/payment-redirect-focus-container/payment-redirect-focus.box.ts","app-react/components/payments-redirect-focus/payments-redirect-focus.component.tsx","app-react/services/casinofied/app-launcher/apps/payments-redirect/payments-redirect.application.tsx","app-react/services/casinofied/app-launcher/apps/full-cashier/full-cashier.application.ts","app-react/services/casinofied/app-launcher/apps/cashout-widget/cashout-widget.application.ts","app-react/services/casinofied/app-launcher/apps/transaction-history/transaction-history.application.ts","app-react/services/casinofied/app-launcher/apps/customer-relations/customer-relations.application.ts","app-react/services/casinofied/app-launcher/apps/free-to-play-bonus-games/free-to-play-bonus-games.application.ts","app-react/services/casinofied/app-launcher/apps/help-centre/help-centre.application.ts","app-react/services/casinofied/app-launcher/apps/control-center/init-params-helper.ts","app-react/services/casinofied/app-launcher/apps/control-center/control-center-full.application.ts","app-react/services/limits-toaster/limits-toaster.service.ts","app-react/services/casinofied/app-launcher/apps/control-center/control-center-mini.application.ts","app-react/services/casinofied/app-launcher/apps/control-center/control-center-analytics-helper.ts","app-react/services/casinofied/app-launcher/casinofied-app-factory.ts","app-react/services/casinofied/app-launcher/casinofied-app-launcher.service.ts","app-react/services/casinofied/action-handler/action-handler-base.ts","app-react/services/casinofied/action-handler/handlers/open-banking.action-handler.ts","app-react/services/casinofied/action-handler/handlers/upload-documents.action-handler.ts","app-react/services/casinofied/action-handler/handlers/open-deposit.action-handler.ts","app-react/services/casinofied/action-handler/handlers/open-withdraw.action-handler.ts","app-react/services/casinofied/action-handler/handlers/open-link.action-handler.ts","app-react/services/casinofied/action-handler/handlers/open-chat.action-handler.ts","app-react/services/casinofied/action-handler/handlers/open-link-with-form-post.action-handler.ts","app-react/services/casinofied/action-handler/handlers/open-control-center-full.action-handler.ts","app-react/services/casinofied/action-handler/handlers/open-client-page.action-handler.ts","app-react/services/casinofied/action-handler/handlers/logout.action-handler.ts","app-react/services/casinofied/action-handler/casinofied-action-handler.service.ts","app-react/services/floating-bubbles/floating-bubbles.service.ts","app-react/components/source-of-funds/boxes/source-of-funds.box.ts","app-react/components/source-of-funds/source-of-funds-popup.component.tsx","app-react/services/restriction-ruler/restriction-ruler.service.tsx","app-react/services/restriction-ruler/restriction-ruler.service.interface.ts","app-react/services/red-tiger/red-tiger.service.ts","app-react/services/casinofied/analytics-publisher/casinofied-analytics.service.ts","app-react/services/http/http-with-request-time-measurement.service.ts","app-react/services/ab-testing-ai-sort/ab-testing-ai-sort-games-lists.service.ts","app-react/services/cashier/cashier.service.ts","utils/case-insensitive-property-reader.ts","app-react/services/external-links/handlers/external-link-handler-base.ts","app-react/components/external-links/boxes/external-link-iframe.box.ts","app-react/components/external-links/boxes/external-link-iframe-container.box.ts","app-react/components/external-links/boxes/external-link-close-button-wrapper.default.box.ts","app-react/components/external-links/boxes/external-link-close-button-wrapper.box.ts","app-react/components/external-links/external-link-iframe.component.tsx","app-react/services/external-links/renderers/external-link-iframe.renderer.tsx","app-react/services/external-links/handlers/external-link-in-iframe-handler-base.ts","app-react/services/external-links/handlers/registration/registration.external-link-handler.ts","app-react/services/external-links/handlers/my-account/my-account.external-link-handler.tsx","app-react/services/external-links/handlers/cashier/cashier.external-link-handler.ts","app-react/services/external-links/handlers/omg/omg.external-link-handler.ts","app-react/services/external-links/handlers-factory/external-links-handlers-factory.ts","app-react/components/header/buttons/login-button/boxes/login-button.default.box.ts","app-react/components/header/buttons/login-button/boxes/login-button.si.box.ts","app-react/components/header/buttons/login-button/boxes/login-button.box.ts","app-react/components/header/welcome-buttons/header-welcome-buttons-analytics-sender.ts","app-react/components/header/buttons/login-button/header-login-button.component.tsx","app-react/components/header/buttons/register-button/boxes/register-button.default.box.ts","app-react/components/header/buttons/register-button/boxes/register-button.si.box.ts","app-react/components/header/buttons/register-button/boxes/register-button.mrgreen.box.ts","app-react/components/header/buttons/register-button/boxes/register-button.box.ts","app-react/components/header/buttons/register-button/header-register-button.component.tsx","app-react/services/regulation/regulation-components-common.tsx","app-react/services/regulation/legacy-regulation-wrapper.ts","app-react/services/regulation/germany/germany-regulation.ts","app-react/services/external-links/handlers/registration/regulations/michigan/michigan.registration.external-link-handler.ts","app-react/services/external-links/handlers-factory/regulations/michigan/michigan.external-links-handlers-factory.ts","app-react/services/regulation/michigan/components/michigan.regulation-components.tsx","app-react/services/regulation/michigan/michigan.regulation.ts","app-react/services/regulation/ontario/components/ontario.regulation-components.tsx","app-react/services/external-links/handlers/registration/regulations/ontario/ontario.registration.external-link-handler.ts","app-react/services/external-links/handlers-factory/regulations/ontario/ontario.external-links-handlers-factory.ts","app-react/services/regulation/ontario/ontario.regulation.ts","app-react/services/external-links/handlers/registration/regulations/netherlands/netherlands.registration.external-link-handler.ts","app-react/services/external-links/handlers-factory/regulations/netherlands/netherlands.external-links-handlers-factory.ts","app-react/services/regulation/netherland/netherlands-regulation.ts","app-react/services/external-links/handlers/registration/regulations/new-jersey/new-jersey.registration.external-link-handler.ts","app-react/services/external-links/handlers-factory/regulations/new-jersey/new-jersey.external-links-handlers-factory.ts","app-react/services/regulation/new-jersey/new-jersey.regulation.ts","app-react/services/external-links/handlers/registration/regulations/uk/uk.registration.external-link-handler.ts","app-react/services/external-links/handlers-factory/regulations/uk/uk.external-links-handlers-factory.ts","app-react/services/regulation/uk/uk.regulation.ts","app-react/services/regulation/regulation.service.ts","app-react/services/burnout/player-burnout.service.ts","app-react/services/player-offerings/player-offerings/offers/offer-base.ts","app-react/services/player-offerings/player-offerings/offers/welcome-offer.tsx","app-react/components/wheel-of-fortune/boxes/wheel-of-fortune-shell.box.ts","app-react/components/wheel-of-fortune/boxes/wheel-of-fortune-colors.box.ts","app-react/components/wheel-of-fortune/boxes/wheel-of-fortune-wrapper.box.ts","app-react/components/wheel-of-fortune/wheel-of-fortune.component.tsx","app-react/services/player-offerings/player-offerings/offers/wheel-of-fortune-offer.tsx","app-react/components/link-to-offer/boxes/link-to-offer-banner/link-to-offer-banner.default.box.ts","app-react/components/link-to-offer/boxes/link-to-offer-banner/link-to-offer-banner.box.ts","app-react/services/player-offerings/player-offerings/offers/registration-offer.tsx","app-react/services/player-offerings/player-offerings.service.tsx","app-react/services/pixi-app/pixi-app-creator.ts","app-react/services/pixi-app/pixi-app.service.ts","app-react/services/free-play/providers/3rdparty/third-party-vouchers.provider.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","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","common/interfaces/crm-sdk-lib.interface.ts","app-react/services/free-play/free-play.service.ts","app-react/services/restrictions/restrictions.service.ts","app-react/services/free-to-play/free-to-play.service.ts","app-react/services/gnwp/gnwp.service.ts","app-react/services/scrip-loader/script-loader.service.ts","app-react/services/admin-banner/admin-banner.service.ts","app-react/services/session-timer/session-timer.service.ts","app-react/services/geo-location/geo-location.service.ts","app-react/services/crm/crm.service.ts","app-react/services/specific-dialogs/specific-dialogs.service.interface.ts","app-react/components/lugas/boxes/line-box.ts","app-react/components/profile-box-messages-indicator/consts/indicator-layout.ts","app-react/components/lugas/lugas-active-popup.component.tsx","app-react/components/login-popup/boxes/login-popup.box.ts","app-react/components/login-popup/boxes/login-popup-dialog-text.box.ts","app-react/components/login-popup/login-popup.component.tsx","app-react/services/specific-dialogs/specific-dialogs.service.tsx","app-react/services/tipping-history/models/tipping-history-view-model.ts","app-react/services/tipping-history/tipping-history.service.ts","app-react/services/loyalty-indicator/models/loyalty-indicator.model.ts","app-react/services/loyalty-indicator/loyalty-indicator.service.ts","app-react/components/state-popup/boxes/state-popup-wrapper.box.ts","app-react/components/state-popup/state-popup.component.tsx","app-react/components/state-popup/boxes/state-popup-error-message.box.ts","app-react/components/state-popup/boxes/state-popup-select-wrapper.box.ts","app-react/components/state-popup/state-popup-with-dropdown.component.tsx","app-react/services/state-of-residence-identifier/state-popup-strategies.ts","app-react/services/state-of-residence-identifier/state-of-residence-identifier.service.tsx","app-react/services/login-popup/login-popup.service.ts","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.si.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.wsop.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-button.harrahs.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-button.mrgreen.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.wsop.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-add-button/profile-cashier-add-button.harrahs.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-add-button/profile-cashier-add-button.mrgreen.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-groups-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.mrgreen.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/user-menu/user-menu/boxes/root/user-menu-root.default.box.ts","app-react/components/user-menu/user-menu/boxes/root/user-menu-root.casino777.box.ts","app-react/components/user-menu/user-menu/boxes/root/user-menu-root.box.ts","app-react/components/user-menu/user-menu/boxes/wrapper/user-menu-wrapper.default.box.ts","app-react/components/user-menu/user-menu/boxes/wrapper/user-menu-wrapper.box.ts","app-react/components/user-menu/user-menu/boxes/holder/user-menu-holder.default.box.ts","app-react/components/user-menu/user-menu/boxes/holder/user-menu-holder.box.ts","app-react/components/user-menu/user-menu.component.tsx","app-react/components/header/top-header-right/help-button/help-button.component.tsx","app-react/components/icons/base/sprite-icon.box.tsx","app-react/components/icons/icons.component.tsx","app-react/components/icons/library/close.icon.tsx","app-react/components/icons/library/poker-brand-small.icon.tsx","app-react/components/icons/library/sport-brand-small.icon.tsx","app-react/components/icons/library/casino-brand-small.icon.tsx","app-react/components/header/top-header-left/cross-brand/boxes/cross-brand-list.default.box.ts","app-react/components/header/top-header-left/cross-brand/boxes/cross-brand-list.box.ts","app-react/components/header/top-header-left/cross-brand/boxes/cross-brand-item.default.box.ts","app-react/components/header/top-header-left/cross-brand/boxes/cross-brand-item.box.ts","app-react/components/header/top-header-left/cross-brand/boxes/cross-brand-item-icon.default.box.ts","app-react/components/header/top-header-left/cross-brand/boxes/cross-brand-item-icon.box.ts","app-react/components/header/top-header-left/cross-brand/cross-brands.component.tsx","app-react/components/header/top-header-left/mobile-burger-menu/boxes/container/burger-menu-container.box.ts","app-react/components/header/top-header-left/mobile-burger-menu/boxes/container/burger-menu-container.default.box.ts","app-react/components/header/top-header-left/mobile-burger-menu/mobile-burger-menu.component.tsx","app-react/components/header/boxes/language-switcher/header-language-switcher.box.ts","app-react/components/header/top-header-right/language-switcher/header-language-switcher.component.tsx","app-react/components/header/top-header-right/deposit/boxes/deposit-header-button.box.ts","app-react/components/header/top-header-right/deposit/deposit-header-button.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.mrgreen.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.default.box.tsx","app-react/components/overlay/boxes/overlay.component.mrgreen.box.ts","app-react/components/overlay/boxes/overlay.component.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.mrgreen.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.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-link/sticky-navigation-menu-link.box.ts","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.mrgreen.box.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.mrgreen.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.mrgreen.box.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.mrgreen.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.mrgreen.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.mrgreen.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.mrgreen.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","app-react/components/sdk/sdk.component.tsx","app-react/components/clock/clock.component.tsx","sdk/src/utils/event.ts","app-react/basic-ui-components/icon/svg-icon/svg.icon.tsx","app-react/themes/architecture/by-theme-registry.ts","sdk/src/services/games_information/games_information_service_interface.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.default.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","app-react/services/theme/standard-theme-customizer.ts","common/const/service-worker-constants.ts","app-react/services/storage/session-storage-keys.ts","app-react/components/game-window/header-bar/common/boxes/close-game-button/game-header-bar-close-button.box.ts","app-react/components/game-window/game-css-constants.ts","app-react/themes/defaults/icons/info.icon.tsx","app-react/components/free-play/voucher-card-css-constants.ts","app-react/themes/architecture/asset.ts","app-react/themes/architecture/styled-by-device.tsx","sdk/src/components/external_links/external_links_consts.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/live-casino-grid-item-infobar.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/live-casino-grid-item-infobar.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/live-casino-grid-item-infobar.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/bet-interval/live-casino-grid-item-bet-interval.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/bet-interval/live-casino-grid-item-bet-interval.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/bet-interval/live-casino-grid-item-bet-interval.mrgreen.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.mrgreen.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.siCis.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.siCis.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-navbar/live-casino-navbar.mrgreen.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/welcome-buttons/anonymous-user/boxes/buttons-container/anonymous-buttons-container.default.box.ts","app-react/components/header/welcome-buttons/anonymous-user/boxes/buttons-container/anonymous-buttons-container.harrahs.box.ts","app-react/components/header/welcome-buttons/anonymous-user/boxes/buttons-container/anonymous-buttons-container.box.ts","app-react/components/header/welcome-buttons/anonymous-user/header-welcome-buttons-for-anonymous-user.component.tsx","app-react/components/header/welcome-buttons/authorized-user/boxes/mobile-container/mobile-container.box.ts","app-react/components/header/welcome-buttons/authorized-user/boxes/icon/user-icon.box.ts","app-react/components/header/welcome-buttons/authorized-user/boxes/bankroll/user-bankroll.box.ts","app-react/components/header/welcome-buttons/authorized-user/boxes/free-play-dot-indicator/free-play-dot-indicator.box.ts","app-react/components/header/welcome-buttons/authorized-user/mobile-view/header-welcome-buttons-for-authorized-user-mobile-view.component.tsx","app-react/components/header/welcome-buttons/authorized-user/boxes/pc-container/pc-container.box.ts","app-react/components/header/buttons/cashier-button/boxes/header-cashier-button.default.box.ts","app-react/components/header/buttons/cashier-button/boxes/header-cashier-button.mrgreen.box.ts","app-react/components/header/buttons/cashier-button/boxes/header-cashier-button.box.ts","app-react/components/header/buttons/cashier-button/header-cashier-button.component.tsx","app-react/components/header/welcome-buttons/authorized-user/pc-view/header-welcome-buttons-for-authorized-user-pc-view.component.tsx","app-react/components/header/welcome-buttons/authorized-user/header-welcome-buttons-for-authorized-user.component.tsx","app-react/components/header/welcome-buttons/boxes/header-welcome-buttons.box.ts","app-react/components/header/welcome-buttons/header-welcome-buttons.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.default.box.ts","app-react/components/free-play/boxes/voucher-games-list/voucher-games-list.siCis.box.ts","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/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/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/clock-last-login.siCis.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/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/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.mrgreen.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.siCis.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/draws/live-casino-grid-item-draw.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/shared-components/roulette-draws.component.tsx","app-react/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.siCis.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/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/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/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.mrgreen.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/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/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.box.ts","app-react/components/clock/boxes/clock.component.default.box.tsx","app-react/components/clock/boxes/clock.component.siCis.box.ts","app-react/components/clock/boxes/clock.component.box.tsx","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/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/themes/architecture/css-helpers/css-rule.ts","app-react/basic-components/blank-separator/blank-horizontal-separator.box.ts","sdk/src/services/hybrid/native/native_const.js","app-react/themes/hex-to-rgba.ts","app-react/basic-ui-components/button/base/boxes/button.box.ts","app-react/basic-ui-components/button/base/boxes/button-label.default.box.ts","app-react/basic-ui-components/button/base/boxes/button-label.mrgreen.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/services/companies/companies-models lazy /^/.*/.company/-model$/ groupOptions: {} namespace object","common/const/casinofied-analytics-consts.ts","app-react/themes/definitions lazy /^/.*/theme/.definition$/ groupOptions: {} namespace object","settings/configuration/languages lazy /^/.*$/ groupOptions: {} namespace object","app-react/components/raw-components/link/link.tsx","app-react/services/game-runner/interfaces/game-context/game-context-view-model.interface.ts","sdk/src/services/overlay_manager/overlay_manager_levels.ts","app-react/components/single-game/css-constants.ts","app-react/components/modal-dialog/boxes/text/dialog-text.box.ts","app-react/services/dialog/dialog.service.interface.ts","sdk/src/services/regulation/regulation_const.ts","app-react/themes/definitions/si/cis/base-colors.ts","app-react/themes/architecture/theme-names.ts"],"names":["flexRowContainerMixin","css","flexRowReverseContainerMixin","flexColumnContainerMixin","flexAlignItemsMixin","props","alignItems","flexCenterAlignItemsMixin","flexGrowItem","flexBasis","flexFixedSizeItem","flexAdaptiveSizeItem","FlexGrowItemBox","styled","div","FlexContainerBox","justifyContent","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","GAME_GROUP","LIVE_CASINO_ARENA_NAME","NEW_LIVE_CASINO_ARENA_NAME","CIP_ALL_GAMES_ARENA_NAME","SLOTS_ARENA_NAME","CASINO_GAMES_ARENA_NAME","JACKPOTS_ARENA_NAME","EXCLUSIVE_ARENA_NAME","SCRATCH_CARDS_ARENA_NAME","VIDEO_POKER_ARENA_NAME","INSTANT_WIN_GAMES_ARENA_NAME","BLACKJACK_ARENA_NAME","VIRTUAL_SPORT_ARENA_NAME","ROULETTE_ARENA_NAME","PROGRESSIVE_SLOTS_ARENA_NAME","NEW_GAMES_ARENA_NAME","HOME_PAGE_ARENA","ALL_ARENAS","Array","of","ButtonsWrapperDefaultBox","buttonsOnSeparateLines","ButtonWrapperDefaultBox","ButtonSpacerDefaultBox","LinkActionBox","button","theme","font","presets","body","colors","brandPrimary","LinkWrapperDefaultBox","ModalDialogActionsComponent","this","className","classNames","CyClass","onClick","primaryAction","disabled","preset","fullWidth","text","secondaryAction","useWarningPreset","linkAction","React","Component","baseColors","base01","base01Contrast","base01Dark","base01Light","base02","base02Contrast","base02Dark","base02Light","base03","base03Contrast","base03Dark","base03Light","base04","base05","gold","yellow","GameStepsExecutionResultEnum","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","OleoScript_Bold_ttf","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","Montserrat_VariableFont_ttf","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","deposit_header_icon_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_93_154_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_91_151_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","_777logo_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","_888casinologo_png","blackSquare_png","div_lang_png","germany_panic_icon_png","ballysdover_logo_png","delaware_park_logo_png","hccasinologo_png","harrington_logo_png","mrgreenlogo_png","si_island_resort_png","si_sports_book_png","si_logo_mobile_png","si_logo_pc_png","animated_icons_poc","millionaire_genie_megaways","genie_megaways_v1_atlas","genie_megaways_v1_json","genie_megaways_v1_png","genie_megaways_v2_atlas","genie_megaways_v2_json","genie_megaways_v2_png","genie_megaways_v3_atlas","genie_megaways_v3_json","genie_megaways_v3_png","genie_megaways_v4_atlas","genie_megaways_v4_json","genie_megaways_v4_png","arena_link_to_offer","Close_BTN_green_svg","Gift_BTN_green_svg","browser_icons","chrome_icon_PNG","microsoft_edge_png","mozilla_firefox_png","burnout","burnout_animation_atlas","burnout_animation_json","burnout_animation_png","burnout_animation_last_frame_png","daily_deal","daily_deal_chest_glow_png","daily_deal_chest_halo_png","daily_deal_chest_text_strip_svg","daily_deal_chest_png","f2p","freeToPlay_atlas","freeToPlay_json","freeToPlay_png","free_play","fp_left_arrow_png","fp_right_arrow_png","fp_step_msg_bg_png","fp_vouchers_bg_png","freeplay_bg_type_fp_png","freeplay_bg_type_fs_png","freeplay_bg_type_jfp_png","freeplay_bg_type_jfs_png","freeplay_type_fp_png","freeplay_type_fs_png","freeplay_type_jfp_png","freeplay_type_jfs_png","games_icons_background","BGcardandtable_png","BGGameBlack_png","BGGameBlackSquare_png","BGicon_png","BGredTiger_png","game_frame","demo_left_corner_png","demo_right_corner_png","freeplay_indicator_png","freeplay_indicator_selected_png","freeplay_left_corner_png","freeplay_right_corner_png","real_left_corner_png","real_right_corner_png","regulation_strip_clock_png","history","history_details_left_corner_png","history_calendar_png","jackpot_widget","crown_png","daily","background_png","logo_png","high_noon","hourly_captain8","background_landscape_png","info_dialog","mobile_png","mobile_landscape_png","pc_png","live_party","in_game_widget_background_png","party","toaster_icon_png","winning_png","twilight","live_arena","active_indicator_bg_png","dealer_icon_png","seat_icon_png","seat_icon_dark_png","live_arena_widget","capsule_end_png","capsule_mid_png","capsule_start_png","separator_png","regulation_specific","denmark","safe_to_play_png","self_exclusion_png","self_test_png","ontario","safe_to_play_icon_png","sweeden","sw_resp_game_limit_symbol_png","sw_resp_game_limit_png","sw_resp_game_panic_symbol_png","sw_resp_game_panic_png","sw_resp_game_self_test_symbol_png","sw_resp_game_self_test_png","responsible_gambling","age_18plus_capsule_png","age_18plus_flat_png","age_18plus_round_png","age_21plus_flat_png","age_21plus_round_png","begambleaeare_logo_png","gamecare_logo_png","safeZoneIcon_svg","user","post_login_mobile_png","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","exclusive_arena_banner_mobile_png","exclusive_arena_banner_pc_png","exclusive_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_diamond_logo_png","vip_gold_logo_mobile_png","vip_gold_logo_pc_png","vip_gold_logo_pc_dark_png","vip_gold_logo_png","vip_platinum_logo_mobile_png","vip_platinum_logo_pc_png","vip_platinum_logo_pc_dark_png","vip_platinum_logo_png","vip_regular_logo_mobile_png","vip_regular_logo_pc_png","vip_regular_logo_pc_dark_png","vip_regular_logo_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","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","PC_HORIZONTAL_SPACE_BETWEEN_ITEMS","multiplier","MOBILE_HORIZONTAL_SPACE_BETWEEN_ITEMS","CashierSessionTypes","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","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","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","ITEM_WRAPPER_BOX","RED","GREEN","RoutedComponent","OrbitComponent","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","GameJackpotDefaultBox","moneyColor","GameJackpotSIBox","brandSecondary","GameJackpotBox","styledByTheme","forSI","forSICis","apply","GameJackpotValueDefaultBox","GameJackpotValueSIBox","GameJackpotValueMrGreenBox","brandPrimaryDark","GameJackpotValueSICisBox","GameJackpotValueBox","forMrGreen","GameJackpotComponent","observer","jackpotValue","services","jackpots","getGameJackpot","gameType","currency","formatMoney","BannerContainerBox","LOBBY_PAGE","background","minHeight","CmsBannerComponent","cmsBanners","loadBanner","_bannerId","CmsBannerId","componentID","templateID","fallbackComponent","contentDefinition","bannersMap","key","EmptyBannerDefinition","_bannerDefinition","render","showPlaceholder","AspectRatioBox","expectedWidth","expectedHeight","AspectRatioContentBox","useBGColorDuringLoadAnimation","isLoading","backgroundDark","AspectRatioContainerComponent","width","height","BalanceType","GermanyResponsibleGamingButtonPlacement","SelectWrapperBox","textLight","SelectBox","select","regular","backgroundMiddleDark","border","radius","hasError","danger","boxBorderLighter","boxBorderContrast","SelectBoxArrow","Select","passThroughProps","selectWidth","ArrowIcon","currentTheme","icons","rightArrowIcon","size","MEMBERSHIP_POST_ACTIONS","PLAY","DEPOSIT","BACK","UPLOAD_DOCUMENTS_CASHIER","REGISTRATION_COMPLETED","OPEN_BANK_ID","DOWNLOAD_APP","STORE_REGISTRATION_COOKIES_DATA","SHOW_LOGIN","UPLOAD_DOCUMENTS_IV","REGISTRATION_DATA_KEY","getButtonSizeVariant","mediaQuery","lAndBelow","getButtonsSeparator","TopBannerDefaultBox","NEW_LIVE_CASINO_PAGE","mAndBelow","GAMING_HISTORY_PAGE","TIPPING_HISTORY_PAGE","sAndBelow","TopBanner777Box","TopBannerSIBox","TopBannerMrGreenBox","TopBannerBox","forCasino777","TopBannerImageBox","Image","PCBox","MobileBox","TopBannerLogoImageDefaultBox","styledByDevice","TopBannerLogoImageCasino777Box","LIVE_CASINO_PAGE","TopBannerLogoImageBox","DefaultBox","h1","medium","TopBannerTitleDefaultBox","TopBannerTitleCasino777Box","bold","TopBannerTitleBox","TopBannerLiveLogoDefaultBox","TopBannerLiveLogoCasino777Box","TopBannerLiveLogoBox","TopImageComponent","title","srcLogo","device","isMobile","liveArena","casinoLiveLogoMobile","casinoLiveLogoPC","alt","translation","translate","src","image","topImageRef","altText","_renderLogoAndTitle","PanicButtonBox","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","panicRestrictUser","then","data","console","log","_openPopup","catch","err","_sendAnalytics","dialog","showModal","shouldBeClosedOnlyByUser","hideCloseButton","isHighPriority","os","isMobileOS","event","stopPropagation","label","analytics","sendOrbitUserFlowEvent","hover","_closeToolTip","_getTooltipBox","_restrictUser","Fragment","onMouseEnter","_onMouseEnterPanicBtn","onMouseLeave","_onMouseLeavePanicBtn","onClickPanicBtn","germanyPanicButton","placement","inDetailedHistory","_renderTooltipClickHere","_renderCloseBtn","_renderMobileOverlay","OrbitComponentWithState","AdminBannerBoxPC","AdminBannerBoxMobile","AdminBannerBox","AdminBannerComponent","bannerSegmentation","JSON","stringify","adminBanner","getSegmentationsForAdminBanner","bannerConfig","getConfigForAdminBanner","bannerAdminPlaceholderId","config","segmentation","BannerComponent","adminBannerEnabled","_shouldUseAdminBanner","XCloseButtonBox","closeModalDialog","MyAccountTab","HeaderArenasStyle","GamingHistoryType","GeoModalWrapperBox","FP_VOUCHER_TYPES","isDepositSessionType","sessionType","Check","isNullOrUndefined","QUICK_DEPOSIT","FULL_CASHIER","isCashoutSessionType","WITHDRAWAL","BalanceValue","balance","bankroll","walletProxy","balanceType","numberIndex","search","symbolIndex","min","WrapperComponent","defaultProps","BOTH","isHybridEmbedded","PcBox","DailyDealContainerBox","glowRotateAnimation","keyframes","DailyDealChestGlowBox","dailyDeal","glow","chestScaleAnimation","DailyDealChestBox","img","DailyDealTextStripBox","textStrip","DailyDealChestHaloBox","halo","DailyDealComponent","_onDailyDealClick","sendAnalytics","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","GameImageAnimatedBox","commonGameImageCssMixin","GameImageAnimatedComponent","animatedImageWrapper","pixiAnimationRegistration","_captureAnimatedImageElementRef","element","unregister","loadPixiAnimatedIcon","gameAnimatedIconsManager","register","jsonUrl","animationJsonUrl","wrapper","timings","animationTiming","onAnimationLoad","onAnimationBeforeUnload","onAnimationUnload","GameImageComponent","_loadAnimatedIconTimeout","onSettled","loadingAnimation","attemptLoadAnimatedIcon","setTimeout","gameInfo","getGameImage","squareIcon","_shouldUseSquareIcons","animatedIcon","getAnimatedImageTimings","delay","hideStaticImage","onAnimationIconStateChange","useSquareIcons","shouldUseSquareIcons","abTestingFeatureDataProvider","animatedGameIconsDisabled","seoAlt","getImageSeoAlt","imgUrl","useLazyLoad","useLazyLoading","getGameImageExpectedSizes","hide","lazy","SINGLE_GAME_IMAGE","fallbackSrc","getGameImagePlaceHolderUrl","onLoadStart","onLoad","SwiperWindowComponent","arena","renderList","windowPosition","ArenaGamesListsComponent","_intersectionSpy","_timeoutRef","_onIntersect","_loadNextBatch","_onCaptureIntersectionSpyRef","_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","StyledByTheme","getRegistryItem","ComponentDefinition","themeName","forwardedRef","forwardRef","ByThemeRegistry","defaultComponent","INSIDE_ORBIT_MENU_CONTAINER","base04Contrast","base04Dark","base04Light","base05Contrast","base05Dark","base05Light","imagePreload","fromMinutes","Promise","res","rej","onload","timeoutRejection","error","backgroundUrl","imageObj","onerror","totalMilliseconds","PcFilterIndicatorRenderingLocation","FEATURE_GAME_RECOMMENDATIONS","FEATURE_ROUTE_OVERWRITE","FEATURE_DEPOSIT_WIDGET","FEATURE_CASHOUT_WIDGET","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","TSR_TYPE","MY_ACCOUNT_POST_ACTIONS","GAME","CASHIER","CASINO","SPORT","EXTERNAL_URL","CLOSE","RICH","INTERNAL_URL","HeaderStandardButtonBox","Button","STATE_OF_RESIDENCE_COOKIE_KEY","InsideOrbitMenuContainerComponent","isInsideAutomation","style","display","textAlign","id","MainScreenComponent","MAIN_SCREEN","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","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_TOTAL_JACKPOTS_UPDATED","LIVE_FEEDS_JACKPOT_AMOUNTS_UPDATED","LIVE_FEEDS_STATE_JACKPOTS_UPDATED","OAUTH_REMOVE_FROM_LOCAL_STORAGE","LOCAL_STORAGE_CHANGED","ELEMENT_CREATED","BEGIN_LOGIN_AFTER_REGISTRATION","LOGIN_COMPLETED_AFTER_REGISTERATION","LOGIN_FAILED_AFTER_REGISTRATION","TOAST_CREATED","TOAST_SHOW","TOAST_HIDE","TOAST_CLOSE_BUTTON","TOAST_USER_DISMISS","HYBRID_ALERT","HYBRID_OPEN_MAIL","HYBRID_UPDATE_INFO_KEY","FIREBASE_GOT_NEW_TOKEN","TOUCH_ID_GET_TOKEN_FROM_SRV","TOUCH_ID_INIT_SCREEN_SHOW","TOUCH_ID_TRY_AGAIN_SKIP","TOUCH_ID_CHECK_TOKEN_ENABLE","TOUCH_ID_TOKEN_ENABLE_RES","TOUCH_ID_CLEAR_TOKEN","TOUCH_ID_NATIVE_CANCEL","TOUCH_ID_LOGIN_ERROR","TOUCH_ID_AUTO_LOGIN","TOUCH_ID_STATE_CHANGED","WEB_VIEW_NAVIGATE_GAME","WEB_VIEW_NAVIGATE_DEPOSIT_WIDGET","WEB_VIEW_NAVIGATE_MIT_ID","WEB_VIEW_NAVIGATE_CASHIER","SECOND_WEB_VIEW_OLD_CALL","SECOND_WEB_VIEW_CLOSE","SECOND_WEB_VIEW_OPEN","SECOND_WEB_VIEW_CLOSE_ALL","OVERLAY_OPEN_AWAIT","OVERLAY_CLOSE_EXPIRED","FABRIC_ADD_EVENT","ADD_TAG_OPEN_APP_VER","ADD_TAG","REM_TAG","DEEPLINK_RECEIVED","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_REMOVED","SESSION_EVENT_FREE_PLAY_BATCH_ADDED","SESSION_EVENT_FREE_PLAY_BATCH_UPDATED","SESSION_EVENT_FREE_PLAY_BATCH_REMOVED","SESSION_EVENT_NET_POSITION_UPDATE","SESSION_EVENT_RECEIVED_TOASTER","SESSION_EVENT_UPDATERESTRICTION_RECEIVED","SESSION_EVENT_PLAYER_BURNOUT_MESSAGE_RECEIVED","SECOND_WEB_VIEW_NAVIGATE_SPORT","TIME_UPDATED_FROM_SERVER","ON_BROWSER_PAGE_HIDE","TOKEN_LIFETIME_EXPIRED","LIVE_TABLES_UPDATE","LOADING_INDICATOR_EMBEDDED_UPDATE","LOADING_INDICATOR_EMBEDDED_UPDATE_V2","LOADING_INDICATOR_EMBEDDED_CLOSED_BY_X","GAMES_QUESTIONNAIRE_COMPLETED","GAME_SEQUENCE_FINISH","GAME_POPUP_SHOW","USER_APPROVE_GAME_POPUP","BONUS_ABUSE_PARKING_MONEY","SHOW_POPUP_ABOVE_HYBRID_SECOND_WEB_VIEW","CLOSE_POPUP_ABOVE_HYBRID_SECOND_WEB_VIEW","DEPOSIT_WIDGET_CLOSED","DAILY_DEAL_REMOVE_INDICATION","LOCATION_POPUP_OPEN","LOCATION_POPUP_CLOSED","PLAYER_MESSAGES_STRATEGY_READY","CHANGE_OVERLAY_PRIORITY","OMG_DISPLAYED","LIVE_GAME_SWITCHED","PROMOTIONS_CHANGED","ODR_CLEAR_ALL_GAMES","SERIAL_UPDATE","CLIENT_EVENTS","MENU_CLICKED","LOGIN_BUTTON_CLICKED","REALITY_CHECK_OPENED","REALITY_CHECK_CLOSED","USER_EVENTS","ON_CLICK","ON_DOUBLE_CLICK","ON_SUBMIT","ON_MOUSE_MOVE","ON_MOUSE_DOWN","ON_KEY_PRESS","ON_DOM_MOUSE_SCROLL","ON_MOUSE_WHEEL","ON_TOUCH_START","ON_TOUCH_MOVE","ON_TOUCH_END","ON_MSPOINTER_MOVE","ON_RESIZE","ON_FOCUS","ON_CHANGE","ON_BLUR","USER_ACTIVITY_EVENTS_ALL","USER_ACTIVITY_EVENTS_FOR_HYBRID","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","header","getHeaderRegulationDataElement","imageFilePath","resolveGameImagePath","orbitComponentInsideSdkProvider","cashier","gameRunner","casinofiedAnalytics","externalLinks","PropertiesEvaluator","_propertiesEvaluators","_config","context","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","isArray","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","Error","createStatementsDefinition","subLists","statementsDefinition","statements","sublist","Segment","Games","segment","_createStatementsRule","GamesIdPropertyEvaluator","_owner","_adminConfig","gamesAdminRefKey","owner","listsv2","gameTypes","launcherGames","IsFalsyOperator","GreaterThanOperator","isNumber","LessThanOperator","AnyOfOperator","includes","PreviewFeatureType","ConfigurationEvaluationContext","dataProvider","isObject","_hasStatementsOrDefaultValue","_createStatementsEvaluators","statementsDefinitions","toUpperCase","logger","isString","assetPath","propertyValue","gamesSettings","gamesTags","_mergeGamesFromLauncher","existingGamesTags","demoSettings","demoCTAAnonymous","pc","demoCTAAuthorized","intermediatePageAnonymous","intermediatePageAuthorized","SdkInitializer","_applicationConfiguration","_sdkHooksProvider","_windowService","_theme","_waitForMapperCGP","resolve","getGameTypesMappingForSdk","_waitForHeaderRegulationDataElement","headerRegulationDataElement","waitForElement","module","API","Logger","logLevel","sdkApi","sdkConfigOverrides","getSdkConfigOverrides","initialize","CGP_OBJECT_NAME","Country","getCountryServiceOverrides","Skin","getSkinServiceOverrides","Game","getGameServiceOverrides","Integration","getIntegrationServiceOverrides","Themes","getThemesServiceOverrides","Http2","getHttp2ServiceOverrides","JackpotToasters","getJackpotToastersServiceOverrides","OrbitComponentRender","getOrbitComponentRenderOverrides","CashierProxy","getCashierProxyOverrides","GameRunnerProxy","getGameRunnerProxyOverrides","CasinofiedAnalyticsProxy","getCasinofiedAnalyticsProxyOverrides","ExternalLinksProxy","getExternalLinksProxyOverrides","_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","externalLinksService","getExternalLinksProxyService","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","events","onAppPaused","_setIsAppVisible","onAppResumed","onGameOpen","_setIsVideoMuted","isSupported","isVideoMuted","isAppVisible","currentRegulationCode","regulation","getRegulationCode","disableForRegulationPreLogin","LiveVideoStream","_checkIfSupported","structuredLoggingService","getLogger","addCategory","addAction","info","_setIsSupported","computed","LiveStreamPlayingService","LiveStreamNativePlayer","LiveStreamHlsPlayer","videoReference","dontAutoSwipe","streamSource","videoURL","watchTimeLimit","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","minBet","maxBet","getCurrencyIso3","currencyIso3","AnalyticsService","category","omitStructuredLogger","eventType","sendElasticInfoEvent","sendToDWH","addLabel","addValue","addCustomData","customData","appID","setAppID","setEventType","eventData","getGoogleClientID","LobbyGameInfoPreviewService","serviceFactory","_setGamePreviewTimeout","_clearGamePreviewTimeout","_allowPreview","_currentGamePreviewPinned","_resetGamePreview","currentPreviewedGame","gamesMap","clearGamePreview","allowGamePreview","_setCurrentPreviewedGame","RunningGameService","_listenForLastRealGame","_listenForLastOpenDemoGame","isGameRunning","continuePlayingCurrentGame","stopCurrentGameAutoplay","currentRunningGame","closeGame","shouldSuggestNextGame","lastGameInfo","lastPlayedRealGame","gameInfos","correlatedGamesForLastPlayedRealGame","onGameClose","closeOptions","isReal","isGamePlayed","showNextGameSuggestion","setLastPlayedRealGame","getGameInfo","getCorrelatedGames","correlatedGames","getGamesInfoArray","gameInfosArray","_setLastPlayedRealGame","_setCorrelatedGamesForLastPlayedRealGame","setLastOpenDemoGame","_setLastOpenDemoGame","lastOpenDemoGame","GameInfoButtonDefaultBox","GameInfoButtonCasino777Box","GameInfoButtonBox","DialogTitleDefaultBox","DialogTitleMrGreenBox","DialogTitleBox","DialogCloseButtonBox","components","modalDialog","closeButtonSize","APPLY_BORDERS","APPLY_ANIMATION","MOBILE_CENTERED_HEADER","FORCE_TRANSPARENT_BACKGROUND","FORCE_TRANSPARENT_CONTENT_BACKGROUND","DISABLE_FULLSCREEN_MOBILE","FORCE_CENTRALIZATION","APPLY_MAX_HEIGHT","FORCE_FULLSCREEN_TABLET","APPLY_MODAL_CLOSING_ANIMATION","DialogHeaderDefaultBox","backgroundLight","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","TrailerBox","GameTrailerComponent","poster","autoPlay","loop","type","TrailerOrStripeImageComponent","hasVideoTrailer","GAMES_CATEGORIES","CellValueBoolBox","checkMark","CellValueTextDefaultBox","CellValueTextCasino777Box","dangerDark","CellValueTextMrGreenBox","CellValueTextBox","CellTitleDefaultBox","boxBorderLight","CellTitleMrGreenBox","CellTitleBox","GameFeatureCellComponent","_renderNoInfo","check","_renderCheckbox","_renderDescription","_renderValue","TableContainerDefaultBox","table","boxBorder","TableContainerBoxCasino777Box","brandSecondaryDark","TableContainerBoxMrGreenBox","TableContainerBox","GameFeaturesTableComponent","cells","reduce","acc","curr","cell","features","chunks","splitArrayToChunks","cellSpacing","chunk","_renderGameInfoTableRow","GameDescriptionDefaultTextBox","GameDescriptionSIBox","GameDescriptionTextBox","h2","generalTitle","GeneralTitleDefaultBox","SectionTitleDefaultBox","common","secondary","RTL","spriteSheet","BasePcBox","BaseMobileBox","GeneralTitleCasino777Box","SectionTitleCasino777Box","SectionTitleBox","GameAboutComponent","aboutText","GameJackpotPreviewBox","JackpotAmountPreviewDefaultBox","JackpotAmountPreviewCasino777Box","JackpotAmountPreviewCasinoSIBox","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","_renderDemoButton","IntermediatePageDefaultBox","texture","IntermediatePageSIBox","IntermediatePageBox","StripeImageAndButtonsBox","GradientDefaultBox","GradientCasino777Box","GradientBox","WarningImageBox","WarningTextBox","WarningMessageBox","RealMoneyOnlyWarningComponent","onlyRealMoneyGameWarning","OpenGameIntermediatePageComponent","allowWithdrawOnlyFromReal","pageName","_renderOnlyRealMoneyWarning","showIntermediatePage","isCalledFromIntermediatePage","NoGameRestriction","gameInfoComparerByTitle","game1","game2","List_Type","GameInfo","_rawGameData","_aboutText","allowSwitchGameMode","numberOfLines","_hasCustomFilter","filterName","filtersList","filter","hasBonusGames","numberOfDecks","isMultiHand","hasFreeSpins","subGroupName","isEliteLounge","hasSideBets","maxBetPerSpot","ClassicSlots","isAllowedCategory","isCardOrTableGame","isLiveCasino","gameGroup","_isAuthorized","forceDemoButton","_isMobile","isAnonymousSupported","siteMap","isUrlInSiteMap","Boolean","gameGroupId","isVideoSlot","isScratchCards","SLOTS","LIVE","CARD_AND_TABLE","gameCategory","companyName","vendorId","vendorName","hybrid_icon","animated_square","getAnimatedJsonUrl","_getResolvedGameImagePath","animated_round","icon","pngImagePath","animatedImageTimings","badge","video_thumbnail","gameBadgePath","maxBetPerBrand","useSquareIcon","gameIconPlaceHolderSq","gameIconPlaceHolder","seoValue","seo","gameName","categoryName","imagePath","strip_mobile","strip_pc","previewDefaultImage","gamesPreviewDefaultImages","gameCategoryWithUnderScores","multiplayer","volatility","GAME_VOLATILITY","High","Low","Medium","forceIntermediatePageForAutorizedUsers","isDemoModeSupported","params","_showIntermediatePage","_shouldRedirectToMembership","_openMembership","_sendOpenGameAnalytics","gameController","marketingParams","eventsTrigger","updateMarketingParams","openGame","gameMode","GameModeEnum","Real","freePlayParams","skipFreePlaySuggestion","referrerId","Demo","cmsSegmentation","isCstatus","shouldShowIntermediatePage","openLink","source","dl","listTitle","_replaceUnderscore","analyticsLabel","gameIndex","analyticsAction","openFromDrawer","listPosition","aiEngine","AIListTypeID","AdminListID","words","arena_icon","restriction","VIDEO_SLOT","SLOT","BACCARAT","BLACKJACK","CARRIBEAN_POKER","CRAPS","KENO","POKER","POKER_TEMPLATE_GAMES","ROULETTE","SCRATCH_CARD","VIDEO_POKER","LIVE_CASINO","isBlackJack","isRoulette","isBaccarat","isVideoPoker","ROULETTE_LIKE","ARCADE","POWER_VIDEO_POKER","PAI_GOW_POKER","CRAZY_BLACKJACK","externalGameCode","gameThemes","GamesService","_gamesAboutTexts","_updateGamesMap","fireImmediately","onRecentlyPlayedGamesUpdated","_updateRecentlyPlayedGames","recentlyPlayedGames","isInitialized","getUtils","arraysAreEqual","sdkGamesInfo","_getGamesAboutTexts","aboutTexts","usedGameTypesBySiteMap","accumulator","gt","sdkInfo","gameTagInfo","rawGameData","assign","gamesAboutTextConfigPath","gamesAboutTextPath","gamesAboutTextUrl","http","aboutTextsJson","warning","statusCode","_getGamesInfoMap","_setGamesMap","getGamesInfo","_buildGamesMap","inCacheGames","getGamesInfoForHistory","getGamesInfoMap","numberOfGames","animated","getAdminArenaLists","adminArenaConfigData","arenaKey","listType","adminLists","lists","list","currentList","Metadata","SubLists","gamesId","LIST_TYPE_ID","ConfigurationsService","startupConfigs","startupConfiguration","_createConfigData","launcher","getTestedGames","originalConfigData","homePage","gamesLists","Swipers","popularTables","PopularTables","swiperGamesList","allGamesGrid","Grids","injectAdminArenas","_getConfigEvaluationContextServices","_defineCustomConfigProperty","getOwnPropertyNames","parseInt","runInAction","configData","evaluator","gameTypesMap","_getUsedGamesByHomePage","_getUsedGamesByArenas","_getUsedGameTypesByLiveGamesArena","_getUsedGameTypesByNewLiveGamesArena","values","gamesList","gamesIds","arenaConfig","swiperConfig","gamesGridConfig","liveCasinoArenaConfig","gameTypeConfig","gameId","popularTablesConfig","tableConfig","tableGamesIds","fullPath","objectValue","fullPathArray","split","fileName","imageFileName","imagesBasePath","gamesImages","serverPath","path","homePageGamesLists","jackpotId","newGameArenaConfig","concat","find","listConfig","isSelfUpdatedByNewest","_getCurrentArenaLists","listId","homePageHeaderArenas","headerArenasOrder","arenaHeader","homepageHeader","arenaNames","orderedArenas","getConfigs","allLinks","sideMenu","menu_links","UserService","waitForAutoLogin","_updateUserData","onOAuthStateChanged","logoutReason","userData","_userData","localStorage","setItem","statusGroupId","_checkForFaultyCStatus","playerStatus","getItem","scrollTo","_updateSegments","cStatus","IsAuthorized","IsVIP","GenderId","DaysSinceRegistration","daysSinceRegistration","RegistrationCountry","registrationCountry","activeChallengeCount","userName","cid","joinDate","timeSinceRegistration","parse","totalDays","Infinity","playerRMStatus","getCountryName","getAutoLoginToken","token","getPlatformToken","getFirebaseToken","openLoginForm","getAccountData","IsDocUploadRequired","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","_callback","e","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","NO_AI_GAMES_RECOMMENDATIONS","engine","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","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","eventName","SAFEZONE_CONTAINERS_ID","COMPONENT_NAMES","SdkEventsTrigger","Event","fire","gametype","message","gnwpSource","omgHook","SdkService","_events","_updateLocalStorageAccordingToCookie","_displayHybrid","hasNavigationHistory","routeChanged","isFunction","displayHybrid","isLoginFromRegistration","getCGPMaxOverlayZIndex","getRegulationDateAndTimeFormat","rawUserData","getUserData","rawAccountData","accountData","depositWidgetEligibility","getDepositWidgetEligibilityDetails","isABEligible","isNtsEligible","errorMessage","ineligibleReason","cashOutWidgetEligibility","getCashoutWidgetEligibilityDetails","firstName","FirstName","lastName","LastName","isVIP","DWHGameGroupOrientation","StatusGroupId","genderID","TimeSinceRegistration","PlayerRMStatus","sessionId","getSessionId","JoinDate","isFTD","FTDSubBrand","IsPromotionPermitted","isSdkReady","getAIList","numberOfRecentlyPlayedGameToFilterOut","aiGameTypesArray","listTypeIds","getAINewGamesList","getCurrentServerDate","getAbTestingData","featureName","waitForAnonymousAbTestingData","ex","getUserSegments","format$$$","linkParams","useCallbackURL","getSourceSubBrandName","callbackUrl","getExternalBrandCallbackURL","openExternalLink","view","openResponsibleGamingLink","openGameOptions","showRegister","navbar","login","componentId","createComponentRenderer","getGamesThemes","getGamesVendors","getGamesCompanies","getRegulationService","isHybridEmbeddedGame","openHybridLink","autologinCookie","getCookie","setAutoLoginToken","removeCookie","getGRSEnvironments","countPlayerChallenges","openInNewWindow","menuActionExecute","method","getExternalBrandCallbackURLMethod","menuJSON","startLiveTableFeeds","startEvolutionLiveFeeds","stopLiveTableFeeds","stopEvolutionLiveFeeds","campaignId","getRichPageUrl","getDailyDealCampaigns","getJackpotsWithState","getJackpotAmountByGameType","toasterData","showToaster","plainNumber","getBankroll","loadSafezoneSdk","getProductPackage","getPlatformSystemID","getSkin","getClientPlatform","getVersion","getCulture","shouldEnforceHybridAppForMobileWebOnLoginAttempt","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","getBurnoutAnimationZIndex","currentRegulation","getCurrentBrowserTabId","hasOpenOverlays","gnwp","scriptLoader","startGeoLocationOnOpenRealGame","buttons","sdkButtonToModalButton","sdkBtnOpts","cssClass","primarySdkButton","secondarySdkButton","modalDialogButtonsComponentProps","getButtonsForNonRetryGeoFlow","_convertButtonsToOrbitFormat","reject","getRetryMessageButtons","stopGameTimeReminders","isEligibleForGameGeoRetry","startAutoRetryGeoProcess","tokenProperty","extractTokenProperty","isLoginPopupEnabled","NoGamesFilterStrategy","isFilteringAvailable","GamesFilterService","_currentFilteringStrategy","_setCurrentStrategy","currentArena","getGamesFilteringStrategy","filteredGamesMap","urlHash","filterIds","currentAppliedFiltersIds","filterId","renderMobileFiltersIndicator","renderPCFiltersIndicator","showFiltersEditor","OPEN_SAFEZONE_SOURCE_VALUES","CHANNEL","OPEN_SAFEZONE_SOURCE","CLOSE_SAFEZONE_SOURCE_VALUES","SafeZoneDeeplink","ApiListType","ACTIONS","SAFEZONE_EVENTS","UsefulLinkActions","link","_findHandler","linkId","handlerName","charAt","openTransactionHistory","channel","CHANNEL_SOURCE","casinoClient","area","AreaType","UserArea","CHANNEL_ELEMENTS","transactionHistoryButton","openOldCashier","ReverseWithdrawal","VERIFY_ID","openMyAccount","tabId","ComPoints","openContactUs","target","AppLauncher","apps","CR_HELP_CENTER","enabled","_openHelpWidget","onContactUs","_openLinkAction","appLauncher","openControlCenterFull","businessCorrelationID","tools","getGuid","safezoneUsefulLink","appSpecificParameters","USER_AREA","deeplink","ControlCenterDeeplink","TimeSpentReminderPage","openHelpPage","openHelpWidget","NavigationMenu","AppIdentifiers","CRHelpCenter","CasinoClient","shouldOpenLocal","local","sourceLink","li","boxBorderDark","textHover","backgroundHover","hideArrow","UsefulLinksItemDefaultBox","UsefulLinksItemCasino777Box","UsefulLinksItemCipBox","UsefulLinksItemMrGreenBox","UsefulLinksItemBox","forCis","ConfigUsefulLink","linkConfig","iconAsset","iconURI","imageAsset","imageAlt","imageURI","renderImageItem","renderTextItem","UsefulLinksItemSideTextBox","SdkUsefulLink","activator","sideText","sideTextClass","ANALYTICS_CATEGORY","USEFUL_LINKS_ACTION","UserMenuService","linkActions","overlay","registerConsumer","reFetchLinks","onTouchIDActiveStateChanged","_fetchLinks","links","_setUsefulLinks","shouldOpen","shouldBeRewards","isRewardsInfo","newLinks","usefulLinks","fetchSteps","_fetchConfigLinks","_fetchSdkLinks","all","stepLinks","combinedLinks","n","orderLinksByPosition","sortingOrder","sortBy","drawer","_doConfigMenuAction","getUsefulLinks","sdkLinks","filteredOutIds","_getSdkFilteredOutUsefulLinksIds","pickedLinks","_doSdkMenuAction","executeAction","current","logoutUser","hour","minute","welcomeMessage","defaultMessage","conditions","ruleHour","ruleMinute","openDeposit","depositButton","openWithdraw","withdrawButton","showLoyalty","menuFlow","hasCustomFlow","executeCustomFlow","continue","externalLinkSource","openMenu","_setIsRewardsInfo","_setIsOpen","right","closeDrawer","GameBadgeDefaultBox","GameBadgeCasino777Box","GameBadgeSIBox","GameBadgeBox","GameBadgeComponent","badgeUrl","supportBadgeOnSquareIcons","GameImageContainerComponent","_handleImageDoneLoading","gameItemImageRef","createRef","Box","box","allowTap","elementRef","GAME_IMAGE_CONTAINER","onOpenRealGame","isCasinoGameIcon","playRealGameButton","GameTitleDefaultBox","TWO_LINES_TITLE","GameTitleCasino777Box","textContrast","GameTitleCipBox","GameTitleSIBox","GameTitleSICisBox","light","GameTitleMrGreenBox","GameTitleBox","GAME_GROUP_LIVE_CASINO","MinMaxBetAmountDefaultBox","dangerLight","mAndAbove","MinMaxBetAmountCasino777Box","MinMaxBetAmountSIBox","MinMaxBetAmountMrGreenBox","MinMaxBetAmountBox","InfoPageButtonComponent","infoIcon","onOpenInfoPage","margin","GameButtonsBox","GAME_BOX","PlayDemoButtonComponent","onOpenAnonymousGame","GameDetailsContainerDefaultBox","squareGameIcon","horizontalLineGlowPC","horizontalLineGlowMobile","GameDetailsContainerCasino777Box","GameDetailsContainerBox","JackpotAmountDefaultBox","JackpotAmountCasino777Box","JackpotAmountSiBox","small","JackpotAmountBox","GameInfoContainerBox","ENABLE_HOVER_ANIMATION","AmountContainerBox","TwoRowsGameTitleContainerBox","GameDetailsContainerComponent","disableGameInfoHover","allowHoverDetails","hasInfoPage","allowDemoButtonInSingleGame","_allowHoverDetails","_renderJackpot","formattedMinBaxBets","formatMinMaxBet","allowMinMaxBet","_renderMinBaxBet","hasDetails","_hasDetails","hasTwoLinesTitle","_renderAmount","_renderGameInfoSection","_renderGameButtons","SWIPER_MODE","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","GameNumberBadgeDefaultBox","GameNumberBadgeMrGreenBox","GameNumberBadgeBox","SingleGameRegularTemplateComponent","showNumberBadge","_renderGameNumberBadge","_renderPlayRealGameButton","CssClassNameBuilder","_classes","classes","c","verticalLineGlow","ultra","SingleGameJackpotTemplateComponent","GAME_BOX_JACKPOT_TEMPLATE","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","VideoTileStaticImageOverlayDefaultBox","VideoTileStaticImageOverlayMrGreenBox","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","prevProps","playsInline","muted","destroy","SkeletonAnimatedButton","borderRadius","SkeletonAnimatedRectangle","VideoTileFooterBox","VideoTileSkeletonbox","DummyTextBox","DummyTextBoxAbsolute","DummyTextBoxRelative","SingleGameSkeletonComponent","placeholderImageSrc","templateType","JACKPOTS_ITEM","_renderJackpotGameSkeleton","LIVE_STREAMING_ITEM","STATIC_VIDEO_ITEM","_renderVideoSkeleton","_renderRegularGameSkeleton","VideoRetryScreenTileBox","VideoRetryScreenIconBox","VideoRetryScreenTitleBox","VideoRetryScreenTextBox","VideoRetryScreenComponent","_retryAndSetError","retryFn","setHasError","BrokenLinkIcon","brokenLinkIcon","sizeUnit","SvgSizeUnit","Rem","sizeVariant","VideoThumbnailImageComponent","_getImageSource","videoThumbnailUrl","tableInfo","TableImage","gameArenaIcon","imageRandom","random","addQueryParam","filterBlur","VideoTileBettingRangeBox","VideoTileGameTitleBox","VideoTileFooterSectionBox","VideoListJackpotValueBox","VideoListJackpotContainerBox","VideoTileFooterComponent","_tableInfo","MinBet","MaxBet","Name","_renderMinMaxBet","_renderGameTitle","_renderSecondaryText","onClickPlay","VideoTileComponent","_posterImageLoadPromise","_retryFn","onPosterImageLoaded","setPosterImageLoaded","_onPlayClickHandler","_hasError","_posterImageLoaded","_isVideoLoading","firstTimeLoadingDone","_isFirstTimeLoading","_isWatchTimeLimitReached","statusText","setIsVideoLoading","setIsWatchTimeLimitReached","_renderVideoThumbnailImage","_renderPlayerOverlay","_renderTileOverlayComponent","_renderRetryScreen","videoItemType","STATIC","isLiveStreamOverlay","_renderPlayer","_renderFooter","_renderSkeleton","_renderStaticImageOverlay","VideoItemContainerBox","stepBackStyle","SingleGameVideoTemplate","_inSwiperIntersectionObserver","_viewportIntersectionObserver","_videoContainerElement","_captureVideoContainerRef","observe","unobserve","_inSwiperIntersectionObserverCallback","entries","entry","setIsInCenterStage","isIntersecting","_viewportIntersectionObserverCallback","setInViewport","_getVideoPlayingService","LIVE_STREAM","liveStreamPlaying","staticVideoPlaying","_inViewport","_isInCenterStage","onBringInCentralView","intersectionObserverOptions","threshold","root","rootMargin","IntersectionObserver","_triggerOnBringInCentralView","disconnect","_createViewportIntersectionObserver","intersectionTarget","_createSwiperIntersectionObserver","_destroySwiperIntersectionObserver","_destroyViewportIntersectionObserver","SingleGameComponent","animatedIconState","openRealGame","_openGame","openAnonymousGame","openInfoPage","setAnimatedIconState","lobbyGameInfoPreview","setGamePreview","openInRealMode","skipIntermediatePage","builder","append","isInsideSwiper","toCssClass","gameCategoryClassName","_buildComponentClasses","LIVE_CASINO_ITEM","JackpotThemeType","GamePlaceHolderBox","embededHybrid","GameImageBox","BaseGameImageBox","SingleGamePlaceholderComponent","SwiperWrapperDefaultBox","SwiperWrapperCasino777Box","SwiperWrapperBox","isTouchDevice","SwiperGamesListDefaultBox","SwiperGamesListSICisBox","SwiperGamesListBox","SwiperBox","OrbitSwiperComponent","_swiperGameListElement","_captureSwiperGameListElement","viewModel","swipeLogicHandler","setElement","_title","_swiperWrapperElement","showGameTitleOnMultipleLines","onGameBringInCentralView","numberOfGamesSkeletons","placeHolders","numberOfPlaceholders","numSkeletons","skeletons","_renderOneGame","lastGameType","_renderGamesSkeletons","prevState","snapshot","isVisible","renderListHeader","_captureSwiperWrapperElement","isTouch","renderSpecialWidgets","_renderGames","_renderPlaceholders","renderListNavigation","renderListFooter","RecentlyPlayedComponent","max","GamesListBaseModel","_isAISorted","getAiEngine","maxGamesToShowInList","_shouldBeDisplayed","_applyGameTypesTransformations","_getGameTypes","_reduceGameTypes","_sortGameTypes","_distinctGameTypes","sortGames","_numberOfGamesToBeIgnoredInAISorting","gamesFilter","Set","_forceRoundIcons","_useSquareIcons","_renderList","JACKPOT_WIDGET","RED_TIGER_JACKPOT","ListTitleIconDefaultBox","gamesListTitle","dailyJackpot","EXCLUSIVES_LIST_ICON","exclusive","ListTitleIconWsopCipBox","gamesListTitleOverride","ListTitleIconCisBox","ListTitleIconBox","JackpotWidgetDefaultBox","isClickable","JackpotWidgetBox","JackpotWidgetBgBox","shouldRenderSkeleton","JACKPOT_WIDGET_LAYOUT","LANDSCAPE","LANDSCAPE_WIDE","byType","jackpotType","handleBackgroundImage","JackpotWidgetLogoBox","PORTRAIT","handleAmountBoxFontSize","widgetWidth","JackpotWidgetAmountDefaultBox","Cold","JackpotWidgetAmountCasino777Box","themeType","Light","JackpotWidgetAmountSiBox","JackpotWidgetAmountBox","JackpotWidgetFooterBox","JackpotWidgetClockLabelDefaultBox","Hot","handleClockLabelFontSize","JackpotWidgetClockLabelCasino777Box","JackpotWidgetClockLabelSiBox","JackpotWidgetClockLabelBox","JackpotWidgetClockDefaultBox","clock","handleClockBoxFontSize","JackpotWidgetClockCasino777Box","brandPrimaryContrast","JackpotWidgetClockSiBox","JackpotWidgetClockBox","JackpotWidgetClockComponent","updateClockInterval","clockInit","getMustHitTime","clearClockInterval","updateClock","setInterval","serverDate","mustHitDate","remainingTimeMilis","getTime","remainingTimeTimeSp","fromMilliseconds","clockValue","useTotalHours","jackpotsWithState","getThemeType","JackpotWidgetAmountLabelDefaultBox","handleAmountLabelFontSize","JackpotWidgetAmountLabelCasino777Box","JackpotWidgetAmountLabelSiBox","JackpotWidgetAmountLabelBox","JackpotWidgetCollectingLabelDefaultBox","handleCollectingLabelFontSize","JackpotWidgetCollectingLabelCasino777Box","JackpotWidgetCollectingLabelSiBox","JackpotWidgetCollectingLabelBox","JackpotWidgetCollectingAmountDefaultBox","handleCollectingAmountFontSize","JackpotWidgetCollectingAmountCasino777Box","JackpotWidgetCollectingAmountSiBox","JackpotWidgetCollectingAmountBox","animationProps","JackpotWidgetBorderShine","startPos","BorderShineWidth","endPos","borderShineKeyframes","JackpotWidgetRadialShine","RadialShineWidth","radialShineKeyframes","JackpotWidgetAspectRatioBox","handlePaddingTop","JackpotWidgetAmountContainer","JackpotWidgetFooterElementSkeletonBox","JackpotWidgetClockLabelSkeletonBox","JackpotWidgetCollectingLabelSkeletonBox","JackpotWidgetFooterSkeletonBox","JackpotWidgetAmountSkeletonBox","AnimatedIconUnloadReason","JackpotWidgetComponent","_onWidgetClick","widgetConfig","listInfo","getGamesListByJackpotId","_isWidgetClickable","Party","aspectRatioBox","resizeObserverInstance","_captureJackpotWidgetAspectRatioBoxRef","refEl","ResizeObserver","setWidgetWidth","oldRefEl","readyState","imagesReady","Daily","jackpotHandler","currentJackpots","jackpotData","_isJackpotHandlerReady","logo","_setImagesReady","jackpotState","OffHours","Regular","_shouldRenderSkeleton","startGradual","lastWinAmount","WrapperBox","_getJackpotWidgetLayout","mustHitTimeFn","mustHitTime","jackpotAmount","_getCountDownTimerTranslationKey","elementRectangle","JackpotWidgetWrapperBox","RedTigerWidgetDefaultBox","RedTigerWidgetBox","RedTigerWidgetHitAreaDefaultBox","RedTigerWidgetHitAreaCasino777Box","RedTigerWidgetHitAreaBox","RedTigerWidgetFrameContainerDefaultBox","iframe","RedTigerWidgetFrameContainerBox","RedTigerWidgetComponent","redTiger","redirectToWidgetActionLink","actionLink","skin","_logMissingProps","frameBorder","scrolling","getWidgetUrl","GeneralTitleCasinoSIBox","GeneralTitleBox","ListTitleTextDefaultBox","redTigerJackpot","ListTitleTextCasino777Box","ListTitleTextCipBox","ListTitleTextCisBox","ListTitleTextSiBox","ListTitleTextMrGreenBox","ListTitleTextSICisBox","ListTitleTextBox","ListTitleDefaultBox","ListTitleCasino777Box","ListTitleMrGreenBox","ListTitleCipBox","ListTitleCisBox","ListTitleSICisBox","base08Shadow","ListTitleBox","GameListTitleComponent","cssClasses","SwiperButtonsDefaultBox","SwiperButtonsCasino777Box","SwiperButtonsBox","SwiperButtonBox","OrbitSwiperButtons","onSwiperButtonPrevClick","swiper","movePrevious","onSwiperButtonNextClick","moveNext","seeAllClickHandler","seeAllButtonUrl","allowNext","allowPrevious","fixedSize","backIcon","forwardIcon","reverseOnRTL","_renderMoveNextAndPreviousButtons","_renderSeeAllButton","SwipeLogicHandler","_gamesListViewModel","_resizeEventHandler","_isRTLLanguage","_isSwiperOnTheMove","_mobileScrollingTimeout","_onMobileSwipe","isRTLLanguage","_unsubscribe","_element","_setScrollWidth","scrollWidth","_currentTranslateAmount","getElementHorizontalTranslationAmount","resetScrollPosition","transform","resize","updateScrollWidth","addEventListener","removeEventListener","_maximumTranslationAmount","getElementWidth","_scrollWidth","_width","computeIncrement","currentTranslateAmount","increment","translateAmount","_slide","absoluteCurrentTranslationAmount","SwiperListBaseModel","listConfiguration","_swipeLogicHandler","apiListType","getTranslation","_getTitleTranslationParams","HourlyCaptain8","shouldInjectUsernameInTitle","ignoreNumberOfGamesInAISorting","seeAllConfig","seeAll","useAISortedList","isFilterOn","_getNumberOfGamesSkeletons","_reduceGameTypesForJackpotsItemTemplateInHomePage","isHomePage","forceListInLayout","redTigerWidget","forceRoundIcons","onClickHandler","_renderJackpotWidget","_renderRedTigerWidget","_renderHeaderIconAndText","_getTitleCssClasses","_renderSwiperButtons","_seeAllUrl","titleIconClassName","_isJackpotWidgetHost","_isRedTigerJackpotWidgetHost","_renderHeaderIcon","_renderHeaderText","ApiListBaseModel","RecentlyPlayedListModel","listKey","TopPicksComponent","TopPicksListModel","AiNewGamesListComponent","NewGamesListModel","aiNewEngine","aiNewRecommendedGames","PlayersLikeYouComponent","PlayersLikeYouListModel","_computeGameTypes","playersLikeYouGamesListTypeId","topCount","topNumber","countryName","StaticSwiperListModel","GamesGridBatchComponent","isResolved","_intersectionObserver","_intersectionObserverCallback","intersectionRatio","_destroyIntersectionObserver","_captureThresholdElement","_createIntersectionObserver","listTitleTranslationKey","nextBatchGameTypes","propsForNextBatch","batchIndex","batchIndexOffset","currentBatchGameTypes","_renderNextBatch","_renderCurrentBatch","GamesGridDefaultBox","GamesGridCasino777Box","GamesGridSICisBox","GamesGridBox","NoGamesFoundMessageBox","p","GamesGridContainerBox","CGP_GAME_OPEN","GamesGridComponent","GRID_GAMES_LIST","_renderNoGames","GamesGridListModel","gridConfig","_shouldSquareIconsBeUsed","LiveCasinoListModel","moveGamesThatOpenSoonToTheEnd","BecauseYouPlayedComponent","runningGame","BecauseYouPlayedPlayedListModel","listenForLastPlayedRealGame","becauseYouPlayed","lastPlayedGames","currentBecauseYouPlayedGames","gInfo","LiveStreamingListTitleBox","LiveStreamingTitleIconBox","LiveStreamSwipeLogicHandler","_services","_touchStartX","_swipeDirection","_touchDragThreshold","_swipeTransitionCss","_handleTouchStart","changedTouches","clientX","_handleTouchEnd","_handleTransitionEnd","firstElementChild","transition","_setIsNavigationAllowed","_currentGameIndex","allowed","overflow","moveOnVideoFinished","_reportSwipeToAnalytics","prepend","lastElementChild","requestAnimationFrame","swipeToLeft","isAutoSwipe","nextGame","swipeFromGameId","swipeFromGameIndex","swipeToGameId","LiveStreamingNavigationCommonBox","isActive","VideoListNavigationPrevButtonDefaultBox","VideoListNavigationNextButtonDefaultBox","VideoCutCommonBox","VideoListLeftCutDefaultBox","VideoListRightCutDefaultBox","VideoListNavigationPrevButtonBox","VideoListNavigationNextButtonBox","VideoListLeftCutBox","VideoListRightCutBox","VideoListComponent","_onGameBringInCentralView","setCurrentGameIndex","_getLastGameType","DefaultVideoListModel","_offsetStorageKey","storedValue","baseArray","_gameTypesOffsets","_getGameTypesOffsetFromLocalStorage","newOffset","gTypes","lastGame","unshift","PrevIcon","leftArrowIcon","NextIcon","viewBox","filterUnits","dx","dy","stdDeviation","in2","in","fill","LiveStreamingVideoListModel","_isLiveStreamDisabled","isVideoLiveStreamEnabled","isDisabledPrelogin","_cycleGamesAndIncrementOffset","hasVideoURL","tablesData","gType","openTablesIds","StaticVideoListModel","_isStaticVideoListDisabled","isStaticVideoListEnabled","setSwiperHandler","ListFactory","RECENTLY_PLAYED","TOP_PICKS","NEW_GAMES","PLAYERS_LIKE_YOU","LIVE_CASINO_VIDEO","STATIC_VIDEO","BECAUSE_YOU_PLAYED","ArenaBaseModel","_postLoginListsSortOrderStorage","_listFactory","_updateAIEngineSwipersSortOrder","Filters","useAdvancedFilters","_aiEngineListsSortOrder","_isUsingExternalAIForSwipersSorting","_getSwipersConfigurations","sw","_setAiEngineListsSortOrder","swipers","_getSwiperIdToPutOnTop","listIndex","originalSwipers","scores","notForcedInLayoutSortedSwipers","forceInLayout","s1","s2","sortedSwipersConfigs","gameList","mappedGameList","shift","_createAllLists","_sendGameListsAnalytics","_getGridsConfigurations","g","allLists","_appendGrids","_limitTheNumberOfSwipers","_saveSwipersPostLoginSortOrder","_sortSwipersByPostLoginOrder","_movePreferredSwiperOnTop","_sortSwipersByAI","_createSwipers","maxSwipersToShow","maxNumberOfSwipers","_renderListAndBanner","_renderPromotionalBanner","currentListPosition","saveSortOrder","sortLists","_createSwiper","_createGrid","createGrid","createSwiper","_getPromotionalBannerConfig","bannerMinHeight","_getBannerMinHeightInPixels","HomepageHeaderArenaMenuItemDefaultBox","HomepageHeaderArenaMenuItemMrGreenBox","HomepageHeaderArenaMenuItemBox","HomepageHeaderArenaMenuItemIconDefaultBox","HomepageHeaderArenaMenuItemIconBox","HomepageHeaderArenaMenuItemNameDefaultBox","HomepageHeaderArenaMenuItemNameBox","HomepageHeaderArenaTileDefaultBox","useSmallHeaderArenas","totalItemsCount","headerArenaTileDropShadow","HomepageHeaderArenaTileSIBox","HomepageHeaderArenaTileBox","HomepageHeaderArenaNameDefaultBox","HomepageHeaderArenaNameSIBox","brandSecondaryContrast","brandSecondaryLight","HomepageHeaderArenaNameBox","HomepageHeaderArenaBadgeDefaultBox","headerArenasStyleIsMenu","indicatorBadge","backgroundInGridLayout","HomepageHeaderArenaBadgeSIBox","HomepageHeaderArenaBadgeMrGreenBox","HomepageHeaderArenaBadgeBox","HomePageHeaderArenasContainerDefaultBox","headerArenasStyle","Menu","HomePageHeaderArenasContainerMrGreenBox","HomePageHeaderArenasContainerBox","HomepageHeaderArenaLinkBox","HomepageHeaderArenaSkeletonDefaultBox","HomepageHeaderArenaSkeletonSIBox","HomepageHeaderArenaSkeletonBox","HomePageHeaderArenaTileComponent","aspectRatioSizes","_handleDoneLoading","HomePageHeaderArenasComponent","menuButtonIconMap","Map","sideMenuLiveCasino","sideMenuSlots","sideMenuNewGames","sideMenuJackpots","sideMenuExclusive888","sideMenuScratchCards","sideMenuCasinoGames","_handleArenaAction","jsonAction","_handleArenaRedirect","iconKey","trim","has","prop","placeholder","dynamic","seoConfig","categories","preventDefault","newGamesIndication","homepage","newAddedGames","Icon","_getButtonIcon","enableTap","_handleArenaClick","headerArenasStyleIsSmallTiles","homePageArenaDefaultPlaceHolder","_getSeo","headerArenas","_renderOneHeaderArena","HomepageTopBannerBackgroundBox","homepageTopBannerPlaceholder","HomepageTopBannerDividerBox","FreeToPlayAnimatedIconDefaultBox","FreeToPlayAnimatedIconBox","GAME_ORIENTATION_IDS","AnimatedIconBaseService","observedTarget","reason","animationDisposer","loadingInProgress","abortLoading","resourceName","pixiApp","createPixiApp","onContextLost","attemptDisposeAnimation","CONTEXT_LOST","app","disposePixiApp","PixiSpine","canvas","loadResources","resources","spineAnimation","Spine","spineData","availableAnimations","animations","runAnimation","setAnimation","addListener","complete","animationSchedule","stage","addChild","appendChild","FreeToPlayAnimatedIconComponent","iconRequestOptions","freeToPlay","iconObservableTarget","_openBonusWheel","showPromotion","floatingIcon","REQUESTED","requestOptions","loadFreeToPlayAnimation","isPromotionEligible","isPromotionOpened","onPointerUp","_captureElementRefForIcon","playerRMSStatus","HomePageComponent","topBannerProps","getTopBannerProps","useAdminBanner","seoSection","linkToOffer","MOVE_TOP","headerArenasStyleIsBigTiles","_renderTopBanner","_renderHomePageArenaHeaders","_renderDailyDealBox","_renderSeoBanner","_renderLinkToOffer","HomePageArenaModel","postLoginListsSortOrderStorage","routeDefinition","resetNewAddedGames","gameGroupOrientation","userGameOrientation","groupId","listOnTop","promotionalBanner","displayPlace","gamesInfo","ArenaPictureBox","ArenaTitleBox","ArenaDescriptionTextBox","textMiddleDark","lobbyInfoKeyframes","LobbyGameInfoBox","STICKY","ArenaInfoPreviewComponent","arenaPictureLoading","arenaInfo","isSticky","previewImage","description","PcGamePreviewTitleComponent","gameTitle","GameInfoPreviewComponent","_onMouseEnter","pinCurrentGamePreview","_onMouseLeave","unPinCurrentGamePreview","PcGameInfoPreviewComponent","enableGamePreview","disableGamePreview","enabledOnPC","stickyHandler","ARENA_TYPES","CasinoArenaComponent","_stickyHandler","stickyHandlerFactory","createStickyHandler","classList","remove","getArenaConfig","sideBarInfo","infoSideBar","infoTitle","infoText","infoImage","topImage","showSearchIcon","arenaFiltersRenderingOptions","filtersConfigurationToMap","filtersConfiguration","toDictionary","ApplyGameFilterResult","GamesFilterStrategyBase","_filtersCategories","addReaction","_filterGames","_reportApplyFiltersAnalytics","_createFiltersCategories","filtersCategories","availableFilters","f","currentFilters","some","isApplied","_createEvaluator","game","filterResult","applyFilter","IncludeGame","FilterCategoryBox","FilterCategoryContentBox","FilterItemBox","InputBox","input","FilterItemTitleBox","isChecked","SubFiltersBox","FilterItemContainerBox","FilterCategoryItemComponent","_onFilterToggle","toggleFilter","subFilters","sf","filterCategoryId","inputType","checked","on","readOnly","gamesCount","_renderSubFilters","FilterCategoryContentComponent","visibleFilters","filterToRender","isMultiSelect","_renderFilters","TitleContainerBox","TitleBox","PreviewBox","FilterCategoryHeaderComponent","_onClickHandler","onCategoryToggle","activeFiltersTexts","getVisibleAppliedFilters","FilterCategoryComponent","FilterCategoriesListComponent","openFilterCategory","_onCategoryToggle","openFilterCategoryState","filtersEditor","visibleCategories","AdvancedGamesFilterBox","AdvancedGamesFilterFooterBox","AdvancedGamesFilterHeaderBox","AdvancedGamesFilterCloseButtonBox","AdvancedGamesFilterButtonBox","FilterByBox","large","AdvancedGamesFilterComponent","_onApply","applyFilters","back","_onCancel","analyticsReporter","reportCloseFilters","_onClearAll","clearFilters","reportClearFilters","reportOpenFilters","AdvancedGamesFilterDrawerRenderer","isMinimized","minOverlayZIndex","supportsCloseIntent","ArenaGameFilterEditor","arenaGameFilter","categoryEditor","_subFilters","_on","_setOn","_resetOtherFiltersInTheCategory","isAdhocFilter","ArenaGameSubFilterEditor","parent","ArenaGameFiltersCategoryEditor","arenaGameFilterCategory","_filters","shouldBeDisplayed","_getAllAppliedFilters","subFilter","EVENT_NAME","AdvancedFiltersAnalytics","filterEventData","substr","actionData","_sendEvent","AdvancedStrategyFiltersEditor","_categories","getAppliedFiltersIds","_getAppliedFiltersIds","AndGameFiltersEvaluator","_evaluators","NotApplicable","ExcludeGame","AND","FiltersMobileButtonDefaultBox","FiltersMobileButtonCasino777Box","FiltersMobileButtonMrGreenBox","FiltersMobileButtonBox","FiltersMobileIconDefaultBox","FiltersMobileIconCasino777Box","FiltersMobileIconBox","FiltersMobileButtonComponent","shouldHideFiltersButtonMobile","IndicatorContainerBox","family","AppliedFilterIndicatorBox","AppliedFiltersBox","RemoveFilterButtonBox","AppliedFilterNameBox","AppliedFiltersPcIndicatorForAdvancedFilteringComponent","_onRemoveFilter","filters","_getAppliedFilters","_renderOneAppliedFilter","_renderAppliedFilters","ArenaGameFiltersCategoryBase","categoryDefinition","selectMany","appliedFilters","_appliedFilters","appliedSubFilters","_appliedSubFilters","arenaFilter","filterDefinition","ArenaGameFilterBase","isFilterApplied","DynamicArenaGameFilter","allArenaGamesForFiltering","f1","f2","DynamicArenaGameFiltersCategory","hasItsOwnFiltersOrder","_getAvailableFilters","_createArenaGameFilter","uniqueGameTypes","add","OrGameFiltersEvaluator","OR","FilterCategoryDefinitionBase","_loadAvailableFilters","appliedSubFilter","filterEvaluators","appliedSubFiltersForCurrentFilter","_getAppliedSubFiltersForFilter","GameFilterDefinitionBase","HighVolatilityFilterDefinition","hasHighVolatility","LowVolatilityFilterDefinition","hasLowVolatility","MediumVolatilityFilterDefinition","hasMediumVolatility","VolatilityFiltersCategoryDefinition","GameFeatureFilterDefinitionBase","_shouldIncludeGame","OneToTwentyFiveFilterDefinition","TwentyFivePlusFilterDefinition","NewGameFilterDefinition","isNewGame","LowStakeFilterDefinition","hasLowStakes","HighStakeFilterDefinition","hasHighStakes","BonusGameFilterDefinition","FreeSpinsFilterDefinition","HasSideBetsFilterDefinition","IsMultiHandFilterDefinition","GameFeaturesFiltersCategoryDefinition","HasDailyJackpotFilterDefinition","hasDailyJackpot","HasTwilightJackpotFilterDefinition","hasTwilightJackpot","HasCaptain8JackpotFilterDefinition","hasCaptain8tJackpot","HasRedTigerJackpotFilterDefinition","hasRedTigerJackpot","HasJackpotFilterDefinition","HasNoJackpotFilterDefinition","HasJackpotFiltersCategoryDefinition","VendorFilterDefinition","_vendorName","vendorIds","_text","GameVendorFiltersCategoryDefinition","advancedFilters","preferredVendorFilters","exclusiveFilterBrandName","preferredVendorsFiltersIds","getAllPreferredVendorsFilters","allPreferredVendorsFiltersMap","_getPreferredVendorFiltersForCurrentSkin","preferredVendorsIds","otherVendorsIds","allVendorsIds","GameGroupFilterDefinitionBase","gameGroupsIdsToFilterFor","BaccaratFilterDefinition","BlackjackFilterDefinition","CrapsFilterDefinition","KenoFilterDefinition","LiveEliteLungeFilterDefinition","LiveEliteLoungeOrExclusiveFilterDefinition","isExclusiveGame","LiveGameFilterDefinitionBase","subgroupName","textToSearchInSubgroupName","LiveGameShowsFilterDefinition","PokerFilterDefinition","RouletteFilterDefinition","ScratchcardsFilterDefinition","SlotsFilterDefinition","OtherGameGroupFilterDefinition","gameTypesFilterDefinitions","categoriesInCurrentArena","LiveBaccaratFilterDefinition","LiveBlackjackFilterDefinition","LivePokerFilterDefinition","LiveRouletteFilterDefinition","GameGroupFiltersCategoryDefinition","GameThemeFilterDefinition","themeIds","themeId","GameThemeFiltersCategoryDefinition","preferredThemeFilters","_getPreferredThemeFilters","themesDictionary","FilterCategoryDefinitionFactory","categoryDefinitionId","createGameFeaturesCategoryDefinition","createVendorsCategoryDefinition","createGameGroupCategoryDefinition","AdvancedGamesFilterStrategy","_factory","_analyticsReporter","filterCategoryDef","createCategoryDefinition","_createArenaGameFiltersCategory","appliedFiltersInCategory","allAppliedFiltersAndSubFilters","filteredGamesCount","reportApplyFilters","NextToArenaTitle","reactElement","_createFiltersEditor","FilterLinkIconDefaultPCBox","FilterLinkIconDefaultMobileBox","FilterLinkIconDefaultBox","FilterLinkIconCasino777Box","MobileSIBox","FilterLinkIconSIBox","FilterLinkIconMrGreenBox","FilterLinkIconBox","FilterLinkDefaultBox","lAndAbove","FilterLinkCasino777Box","backgroundActive","FilterLinkSIBox","FilterLinkMrGreenBox","textActive","FilterLinkBox","FilterLinkComponent","_onFilterClick","onChange","CommonStyles","FiltersGamesListBox","FilterLinkListComponent","_toggleHandler","onToggle","_renderOneFilter","FiltersGamesMobilePopupBox","FiltersMobileButtonsBox","FiltersGamesListMobileComponent","_closePopup","_applyFilters","checkedFiltersIds","_clearFilters","_onToggleFilter","_renderPopupButtons","SimpleStrategyFiltersEditor","_sortFilters","filtersConfigurations","filtersConfigurationMap","OtherFilterDefinition","allOthersCategories","currentArenaCategories","isGameIncludedInThisCategory","OtherFiltersCategoryDefinition","otherAvailableCategories","StaticArenaGameFilter","StaticArenaGameFiltersCategory","_createFiltersForCurrentArena","currentArenaFiltersConfigurations","FiltersGameListPcBox","FiltersGamesListPcComponent","_toggleFilter","AdhocArenaGameFilter","CompanyFilterDefinitions","_companyName","removeSpaces","AdhocArenaGamesFiltersCategory","isApplicableForCurrentArena","_createDynamicFilters","appliedFilterId","dynamicFilterDefinition","_createDynamicFilterById","parts","SimpleGamesFilterStrategy","_vendorCategory","Lazy","_groupCategory","_featuresCategory","_othersCategory","_adhocCategory","mobileCenterHeader","applyMaxHeight","BelowArenaTitle","CasinoLobbyArenaModel","isCasinoGame","VoidArenaModel","POST_LOGIN_LISTS_ORDER_KEY","ListsSortOrderStorage","_listsSavedOrder","getJson","_createEmptyListsOrder","listsOrder","_getSavedListsOrder","setJson","arenaListsOrder","listsOrderMap","l1","l2","LiveCasinoFilterButtonIconDefaultBox","isActiveTab","LiveCasinoFilterIconSIBox","LiveCasinoFilterIconMrGreenBox","LiveCasinoFilterButtonIconBox","filterButtonLabel","LiveCasinoFilterButtonLabelDefaultBox","LiveCasinoFilterButtonLabelCasino777Box","LiveCasinoFilterButtonLabelSIBox","LiveCasinoFilterButtonLabelMrGreenBox","LiveCasinoFilterButtonLabelBox","LiveCasinoArenaNavbarButtonDefaultBox","Link","filterButtonBackground","ipad","LiveCasinoArenaNavbarButtonCasino777Box","LiveCasinoArenaNavbarButtonSIBox","iconBackgroundActive","LiveCasinoArenaNavbarButtonMrGreenBox","LiveCasinoArenaNavbarButtonBox","LiveCasinoArenaNavbarButton","buttonIconMap","topGamesIcon","rouletteIcon","pokerIcon","blackjackIcon","baccaratIcon","eliteLoungeIcon","gameShowsIcon","newGamesIcon","tripleEightExclusiveIcon","labelTranslationKey","currentTranslationKey","_getLabelTranslationKey","IconComponent","seoPage","onFilterClicked","buttonLabelRef","NewLiveCasinoArenaComponent","_topImageRef","updateAiRecommendedLiveGames","LIVE_CASINO_PAGE_WRAPPER","isNavbarVisible","liveArenaTabsConfiguration","FilterButtonComponent","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","marketing","appendSCutToUrl","createDomainCookie","onClickJs","Function","func","LanguageSwitcherSection","_fallbackTitleKey","_items","SelectedLanguageSwitcherItem","LanguageService","_defaultLanguageData","_lastUrlWithoutTheFragmentQueriedForLanguageSwitcher","_loadLanguageData","_isLanguageSwitcherEnabled","_setLanguageSwitcher","languageSwitcher","_updateLanguageSwitcher","getElementsByTagName","contains","textOverrides","_getDefaultTexts","_setTranslatedTexts","langSwitcherConfig","languagesSection","_extractLangSwitcherSection","languages","languageSettings","countriesSection","countries","countrySettings","items","itemsConfig","sectionConfig","fallbackTitleKey","cfg","cmsApi","getLanguageSwitcherConfiguration","isCustomLink","isCustomElement","SideMenuService","_linkAction","_setIsMobileMenuOpen","gameSearch","closeSearchResult","closeMobileLanguageSwitcher","flowResult","closeOverlay","isExternalLink","isInternalLink","_internalLink","_externalLink","proceedLink","tabState","useDirectLink","noConcatScut","openExternalBrand","isMobileLanguageSwitcher","SUGGESTED_CATEGORIES","ExternalLinksZIndexes","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","SearchGameImageBox","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","SearchInputArenaDefaultPCBox","SearchInputArenaDefaultMobileBox","SearchInputAreaDefaultBox","SearchInputAreaMutual","SearchInputAreaCasino777PCBox","SearchInputAreaCasino777MobileBox","SearchInputAreaCasino777Box","SearchInputArenaHarrahsPCBox","SearchInputArenaHarrahsBox","SearchInputMutual","SearchInputAreaPCBox","SearchInputAreaMobileBox","SearchInputAreaCasino888Box","SearchInputAreaBallysDoverPCBox","SearchInputAreaBallysDoverBox","SearchInputAreaDelawareParkPCBox","SearchInputAreaDelawareParkBox","SearchInputAreaHarringtonPCBox","SearchInputAreaHarringtonBox","SearchInputArenaSIPCBox","SearchInputArenaSIBox","SearchInputAreaMrGreenBox","SearchInputAreaBox","forCasino888","forHarrahs","forBallysDover","forDelawarePark","forHarrington","SearchInputArea","_onChangeHandlder","openSearchResult","searchInputRef","autoComplete","SearchInputMobileComponent","_onResetSearchTextHandler","focus","_showResetSearchIcon","SearchInputFormBox","SearchPCIconBoxDefault","SearchPCIconCasino777Box","SearchPCIconHarrahsBox","SearchPCIconWSOPBox","SearchPCIconBox","forWsop","SearchInputPCComponent","SearchIcon","searchIcon","GameSearchMobileDefaultBox","GameSearchPCDefaultBox","GameSearchBox","GameSearchComponent","_onUpdate","searchComponentRef","_renderSearchInput","GameSearchService","_closeMobileSideMenuOnSearchClose","_miniOrbitSearchBoxDialogHandler","_searchInputRef","_searchComponentRef","_searchResultComponentRef","_gamesSearchListCache","_documentClickSubscription","_closeMiniOrbitSearchDialog","_closeFullOrbitSearchResult","_disposeDocumentClickSubscription","_handleClickOutsideSearchComponent","_setIsSearchBoxOpened","_setCurrentSearchText","_setDefaultSearchResult","_resetGamesSearchListCache","_buildGamesSearchList","onClosed","forceFullscreenTablet","click","_openMiniOrbitSearchDialog","_openFullOrbitSearchResult","openMobileMenu","gamesSuggestions","aiSortingTypeForAnalytics","aiGames","quickLinks","quickLinkConfig","_setSearchResult","_getGameSuggestion","regEx","RegExp","_getSearchResult","_searchForGames","_getDefaultSuggestedCategories","_searchForSuggestedCategories","gameTypeToGameInfoObj","gamesSearchList","sortGamesByAI","suggestedCategoriesOptions","option","categoryConfig","_createSuggestedCategory","categorySuggestion","defaultSuggestedCategories","suggestion","gameID","ExternalLinksLegacyStrategy","onPlayerAction","_onPlayerActionHandler","actionName","openCashier","registration","StraightToCashier","marketingData","getMarketingData","sdkOpenParams","addCloseOption","priorityLevel","isCisOrCip","showRegisterButton","resolveByCallback","actionCallback","GNWP_SOURCES","PENDING_PLAY","rich","richPageUrl","PRIORITY_LEVEL","INTERNAL_OVER_EXTERNAL_LINK","externalBrandLink","stateOfResidenceIdentifier","prepareUrlForExternalBrand","tab","OMG","ExternalLinkInPopUp","OpenedWithinGame","openedWithinGame","Messages","messages","SESSION_STATUS","ExternalLinksModernStrategy","_handlers","myAccount","openRegistration","MEMBERSHIP","openMembership","MY_ACCOUNT","openOMG","Omg","OmgBehindTheGame","omg","openOmg","ExternalLinksService","_strategy","openResponsibleGamblingLink","openOldChat","openDownloadApp","openUploadDocument","openPendingPlayApplication","openSafeToPlay","openRichPage","openSport","openInternalUrl","openExternalUrl","openBankId","CmsApiService","_404PageContent","cmsPublicationId","getCMSOrigin","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","_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","actionType","next","isActionOfType","_findNextActionOfType","MyAccountDeepLinkAction","RedirectDeepLinkAction","TerminateDeepLinkAction","UploadDocumentDeepLinkAction","FreePlayDeepLinkAction","freePlay","registerActionToExecuteWhenFreePlayIsAvailable","hasVouchers","openRewards","OpenListDeeplinkAction","getListConfig","verticalGamesList","OpenListDeeplinkByTitleAction","getGamesListByTitle","OpenListDeeplinkByIdAction","getGamesListById","Number","ControlCenterDeeplinkAction","safezone","LOBBY","FreeToPlayDeeplinkAction","waitForEligibility","gameStage","specificParams","DeepLinkActionsFactoryService","_actionsPrototypes","my_account","terminate","parser","deepLinkParser","getParserFromCurrentRoute","_createActionsFromParser","actionInstance","actionPrototype","getParserFromDeepLinkObject","actionsDescriptors","getActionsDescriptors","getDeepLinkBuilder","actionDescriptor","SdkComponentFactoryService","StickyHandler","_onScrollSubscription","_scrollTopMinValue","onWindowScroll","_setIsSticky","scrollY","_updateHeaderHeight","scroll","_isSticky","getHeaderElement","offsetHeight","StickyHandlerFactoryService","BooleanGamePreviewFeature","_name","MoneyGamePreviewFeature","_shouldRenderWhenEmpty","_extractValue","NumericGamePreviewFeature","GamePreviewFeaturesSelectorService","_gameGroupToFeatureMapping","PF","disabledFeatures","GameRouteHandlerService","_onGameOpenSubscription","_onGameCloseSubscription","_currentUriAndGamesMapReaction","_shouldSkipNextCloseGameRedirect","_previousUri","_isOpenGameFromUrlInProgress","_subscribeToGameEvents","_subscribeToUriAndGamesMapChanges","isFirstSubscription","_isOpenGameUri","_tryOpenGameFromUrl","_onGameOpen","_onGameClose","startsWith","eventParams","_unsubscribeFromUriAndGamesMapChanges","_getOpenGameFragment","finally","urlToGoBack","lastAttemptToOpenGameFromUrl","currentFragment","fragmentParts","_setLastAttemptToOpenGameFromUrl","_unsubscribeFromGameEvents","redirectToHistory","LauncherOverridesReader","_storage","cgp_client","LAUNCHER_DATA_STORAGE_KEY","clientData","orbitSpecificOverrides","_getLauncherOverrides","_getOrbitSpecificConfigOverrides","LauncherService","launcherOverridesReader","addedGameTypesFromSdm","SpinnerService","_startTime","_setSpinningStartTime","performanceNow","isSpinning","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","routesToArenaTypesMapping","arenasRoutingOverride","_getCurrentRouteCssSelectors","selector","_cleanUpOldAbTestData","currentPathName","OverlayService","disableScrolling","enableScrolling","consumer","_overlayConsumers","zIndexes","needsOverlay","getOverlayZIndex","predicate","count","onOverlayClicked","TimeService","performance","dateAndTimeFormat","dateTime","dateTimeHistory","isUtc","getDateTimeHistoryFormat","AiNewGamesEngineService","_isAINewRecommendedGamesUpdateInProgress","_aiNewRecommendedGamesData","_updateAiNewRecommendedGames","getAINewRecommendations","_setAiNewRecommendedGames","_sendAINewRecommendationAnalytics","ThemeService","_setCurrentTheme","SDK_CSS_OVERRIDE","_currentThemeDefinition","popupsTheme","useSquareIconsForGames","createThemeCustomizer","StandardThemeCustomizer","themeDefinition","globalStyles","VoidCommunicationAdapter","openUrlInExternalBrowser","MiniOrbitService","_communicationAdapter","_onKickUserCount","_currentMiniOrbitConfig","_extractCurrentMiniOrbitConfig","splash","onSplashRemoved","onSiteLoaded","_reportAutologinResult","enableBasePathOverride","miniOrbitCommunicationAdapterFactory","createAdapter","onUserKicked","response","onAutologinSuccess","onAutologinFailed","currentLocationBasePath","miniOrbitConfigSection","basePaths","miniOrbitConfig","miniOrbitArenas","arenasHeaderButtons","openControlCenter","DialogConsumerContentDefaultBox","noPadding","disableFullscreenMobile","DialogConsumerContentCasino777Box","DialogConsumerContentBox","isHidden","transparentBackgroundOpacity","iPhoneVer10","DialogOverlayDefaultBox","DialogOverlayMrGreenBox","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","buttonWidthProportionOnPC","SimpleMessageButtonComponent","buttonOptions","DialogButtonClickHandleResultEnum","CloseDialogAndContinue","buttonPreset","numberOfButtons","SimpleMessageDialogIconContainerBox","SimpleMessageDialogComponent","DialogService","_onDialogCloseHook","closedHandler","_setCurrentOpenModalDialogs","_currentOpenModalDialogs","hasOpenDialogs","_enableScroll","_setCloseAllDialogsHook","newDialogs","dialogComponent","CGP_OVERLAY_OPEN","forceZOrder","modalZIndex","_getNextZIndex","gameFrameZIndex","ModalDialogHandler","showPopupAboveSecondWebViewHybrid","_disableScroll","showEmptyTitle","iconSvg","onClosedByXButton","_onCloseHook","_options","_isClosed","_applyCallbackAndCloseDialog","isClosedWithXButton","debugInfo","createAsHidden","_zIndex","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","IconTitleTextTooltipTextContainerDefaultBox","IconTitleTextTooltipTextContainerMrGreenBox","IconTitleTextTooltipTextContainerBox","IconTitleTextTooltipTitleDefaultBox","IconTitleTextTooltipTitleMrGreenBox","IconTitleTextTooltipTitleBox","IconTitleTextTooltipIconBox","SeparatorDefaultBox","Separator777Box","SeparatorMrGreenBox","SeparatorBox","IconTitleTextTooltip","IconContainerBox","IOSAddToHomeShareIconBox","MessageBodyContainerBox","MessageBodyBoldContainerBox","IosAddToHomeScreenComponent","logoIcon","appIcon","iosShareIcon","iosShare","BRAND","onClicked","ProgressiveWebAppService","_clickSubscription","_isPwaOnIOSShownThisSession","_gameWasOpen","_toolTip","_onToolTipClick","closeTooltip","_tryToShowPwaInstall","_shouldAutoPrompt","pwaEvent","PWA_PROMPT_EVENT","setGlobalProperty","PWA_PROMPT_CALLBACK","PWA_INSTALLED_CALLBACK","_onAppInstalled","isUKOrIrl","shouldAutoPopup","PWA_SHOULD_AUTO_POPUP_LOCAL_STORAGE_KEY","_subscribeToMainScreenClick","_initIOSPwa","isSafari","_onBeforeInstallEvent","onBeforeInstallEvent","isIphone","pwaEnabled","_isIOSPwaEligible","_showIOSTooltip","currentDialogs","shownTimes","PWA_IOS_SHOWN_INSTALL_OFFER_COUNT","createOnBoardingTooltip","styling","textColor","borderColor","showCloseButton","invertCloseButtonColors","closeOnClickOutside","showOverlay","modifiers","onTooltipRendered","_onTooltipRendered","onTooltipClosed","hasGlow","shouldPrompt","isAppBannerUKorIRL","_unsubscribeToMainScreenClick","outcome","PWAManifestService","_orbitExtraProperties","pwaResources","_isPwaEnabled","_setManifestHrefInHead","_initIOS","manifestUrl","_addManifestIOSIconsInHead","_loadManifestJSON","manifestJson","iconInfo","_addLinkTagToHead","rel","linkDOM","sizes","linkTag","POKER_COMMUNCATION_OBJECT_NAME","PokerCommunicationAdapter","_pokerCommunicationObject","adapter","_pokerSupportsSoftLogin","kickUser","SPORT_COMMUNCATION_OBJECT_NAME","SportCommunicationAdapter","_showCasinoNavbar","status","_sportCommunicationObject","showCasinoNavbar","performUCAction","sendTechnicalEvent","cleanUp","onUserKickedSuccessCallback","onUserKickedErrorCallback","MiniOrbitCommunicationAdapterFactoryService","LiveTableTabConfiguration","gridConfiguration","headerConfiguration","keyResolver","args","memoize","_memoize","LiveTableFeedsService","_liveTableUpdateSubscription","_getLiveCasinoGameRecommendationsForPlayer","getLiveCasinoGameRecommendationsForPlayer","engineType","_previousOpenTablesIds","_onLiveFeedsUpdate","_tablesData","_manipulateFeedData","_stop","liveArenaConfig","headerConfig","_isNavbarVisible","grid","isNull","currentAppliedFilter","_getCurrentAppliedFilter","tabConfig","_liveCasinoRecommendedGames","currentOpenTablesIds","tableData","IsOpen","arraysEqual","_setLiveCasinoRecommendedGames","GameTypes","Engine","_start","onLiveTableFeedsUpdate","OperationHoursStartTime","_convertTimeToLocalTimeZone","rouletteLastNumbers","RouletteLast5Numbers","rouletteLast5NumbersConverted","_updateOpenTimeToLocal","_verifyRouletteLastNumbers","evoLiveFeedResponseTime","computeSplashTimeInSeconds","timeUTC","toLocalTime","toHoursAndMinutesString","currentArenaTabConfiguration","filteredGameIds","liveGames","numberOfSortingExemptGames","_shouldSortGames","sortingOptions","maxGamesToShow","abTestingAiSortGamesLists","arenaHasAiSorting","startTime","currentDate","getCurrentDate","timeToOpen","gamesID","closeGamesArr","currentGame","_isGameOpenSoon","DrawerContentDecorator","_originalDrawerContent","_id","onClose","Drawer","itemIndex","getLastVisibleDrawerItemIndex","drawerItem","currentContent","currentDrawerContent","existingContentIndex","_drawerContentStack","contentIndexToRemove","_removeOneDrawerItems","clone","itemOnTheStackTop","_closeDrawerContentItem","_getNonMinimizedContents","nonClosableItems","drawerContent","DrawerService","_closeDrawers","DailyDealService","removeDailyDealIndicator","setDailyDealCampaignId","subscribe","_fetchDailyDealCampaign","onDailyDealRemoveIndication","dailyDeals","MarketingCampaignId","JackpotHandler","gradualIncreaseAmountHelper","onAuthChangeReaction","previousUpdateTime","gradualRealAmountInCents","isFastGradualIncreaseFinish","removeGradualIncreaseAmountHelper","jackpot","newState","createGradualIncreaseAmountHelper","updateAmount","amountInCents","useGradualAmountIncrease","setCurrentJackpotAmount","frequency","gradualIncreaseHelperFactory","create","updateAmountFunction","amount","restart","JackpotsWithStateService","updateCurrentJackpots","readJackpotsData","onJackpotsWithStateUpdate","jackpotsAddition","jpData","setJackpotData","rawJackpots","jpId","rawJackpot","Jackpot","readJackpotState","jpType","ThemeName","Casino777","Dark","JackpotsService","onJackpotsAmountsUpdate","jackpotsAmounts","amounts","currentJackpotAmounts","abTestingFeatureIsValid","featureObject","featureProperties","AbTestingFeatureDataProviderService","_playersLikeYouGamesListTypeId","_setIsVideoLiveStreamEnabled","_setIsStaticVideoListEnabled","_setIsBecauseYouPlayedEnabled","widgetFeatureName","_getFeature","FeatureName","testGroup","GroupName","testId","TestId","isEligible","featuretoggle","_getWidgetFeatureEnabled","_features","aiSortGamesListsFeatureData","_hasFeature","abTestingSearchGameSuggestionByAI","aitype","abTestingPlayersLikeYouGamesListTypeIdAIData","listid","abTestingListOnTopData","abTestingSafeZoneToggleData","enablesafezone","enabledForRegulation","SafezoneLoader","miniBannersFeature","componentid","isBecauseYouPlayedEnabled","abTestingAnimatedIcons","GradualIncreaseHelper","_params","realAmount","fakeAmount","stepAmount","amountIncreaseTimer","stopAmountIncreaseTimer","startAmount","steps","startAmountIncreaseTimer","updateFakeAmount","GradualIncreaseHelperFactoryService","SafezoneService","_safezoneObj","_fullSafezoneHandler","_miniSafezoneHandler","_onSafezoneReady","component","MINI","onReady","FULL","_onCallToActionFunc","actionId","openFullSafezone","correlationId","correlationID","closeMiniSafezone","closedFromSafezone","_kickUserAfterSelfExclude","enableSafeZone","safezoneObjectFactory","createFullSafezoneHandler","createMiniSafezoneHandler","_setHasError","createSafezoneObjectParams","onCallToActionCallback","onReadyCallback","createSafezoneObject","analyticsDataLayer","pushSafezoneInitParams","full","init","mini","_connectToSafezone","safeZoneDeeplink","resetOnLogout","FullSafezoneContentBox","OnErrorBox","OnErrorIconBox","OnErrorTitleBox","OnErrorMessageBox","OnErrorButtonsBox","OnErrorComponent","onRetryButtonClick","FullSafezoneComponent","onRender","_retryCreateSafeZone","reconnectToSafezone","_renderError","ARENA_IDS","SafezoneHandlerBase","_safezoneObject","_renderErrorInterval","_ready","_correlationId","_category","_openEventName","_readyEventName","_closeEventName","_containerId","_channel","safezoneObj","_clearRenderErrorInterval","_sendCloseEvent","safeZoneCloseSources","pushSafezoneEvent","_getEventParams","_sendRenderErrorEvent","session_status","Failure","Success","Partial","correlation_id","local_time","FullSafezoneHandler","FULL_SAFEZONE_CONTAINER_ID","_isOpen","_renderSafezone","_openFullSafezoneFromSource","_onFullSafezoneRender","_closeSafezone","CLIENT","MiniSafezoneHandler","MINI_SAFEZONE_CONTAINER_ID","_userMenuOpenReaction","_unsubscribeFromUserMenuOpenReaction","MINI_SZ","SafezoneObjectFactoryService","_safezoneFunc","_getSafezoneFunction","_getInitParams","initParams","safeZoneFunction","callToActionCallback","contextObj","userInfo","brandId","subBrandId","systemId","clientPlatform","clientVersion","locale","fontDomain","getFontsPath","onCallToAction","WalletProxyService","fetchAllData","plainNumberBankroll","CASH","BONUS","bType","onBalanceUpdated","bankrollType","_getData","setBankroll","NaN","GameViewBox","GameIconContainerBox","GameViewSectionCSS","MiddleSeparatorWrapperGameViewSectionPCBox","MiddleSeparatorWrapperGameViewSectionMobileBox","MiddleSeparatorWrapperGameViewSectionBox","GameWrapperGameViewSectionBox","ButtonWrapperGameViewSectionBox","SubTitleContainerBox","GameViewVerticalDividerBox","GameViewHorizontalDividerBox","MenuContainerBox","DescriptionContainerBox","SideMenuItemDefaultBox","hidden","SideMenuItemCasino777Box","SideMenuItemMrGreenBox","SideMenuItemBox","SideMenuItem","getConfig","hideElement","itemId","GenericSideMenuLinkDefaultBox","GenericSideMenuLinkCasino777Box","GenericSideMenuLinkHarrahsWsopBox","GenericSideMenuLinkSIBox","GenericSideMenuLinkMrGreenBox","GenericSideMenuLinkBox","GenericSideMenuLabelDefaultBox","GenericSideMenuLabelBox","GenericSideMenuIconCommonBox","GenericSideMenuIconDefaultBox","GenericSideMenuIconHarrahsBox","GenericSideMenuIconWsopBox","GenericSideMenuIconSIBox","GenericSideMenuIconMrGreenBox","GenericSideMenuIconBox","GenericSideMenuPreIconDefaultBox","GenericSideMenuPreIconSIBox","GenericSideMenuPreIconBox","GenericSideMenuImageDefaultBox","InternalNavSideMenuLink","getLinkAction","InternalNavIcon","buildFullUri","isLinkToCurrentPage","hasImage","decodeURI","encodeURI","withArrow","currentPath","candidate","LoyaltyBarWrapperComponent","loyaltyIndicator","LoyaltyBarSideMenuLink","DepositSideMenuLinkDefaultBox","DepositSideMenuLinkCasino777Box","DepositSideMenuLinkBox","SignupSideMenuLinkCasino888Box","SignupSideMenuLinkBox","ArrowSideMenuLinkDefaultIcon","ArrowSideMenuLinkCasino777Icon","ArrowSideMenuLinkIcon","SignupSideMenuLink","DepositSideMenuLink","SideMenuComponentDefaultBox","SideMenuComponentCasino777Box","SideMenuComponentCasinoMrGreenBox","SideMenuComponentBox","SideMenuListDefaultBox","SideMenuListCasino777Box","SideMenuListHarrahsWsopBox","SideMenuListMrGreenBox","SideMenuListBox","SideMenuLinksGroup","menuItems","pickSideMenuItems","menuItemIds","it","listStyleType","k","renderLink","sideMenuHome","sideMenuRoulette","sideMenuBlackjack","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","subTitleText","descriptionText","popupTitleText","onCloseHandler","_gameMap","openPopup","USER_GROUP_TO_HEADER_ARENAS_MAPPING","JACKPOTS","EXCLUSIVE888","GAME_SHOWS","CASINO_GAMES","LIVE_BLACKJACK","LIVE_ROULETTE","CASINO_SKILL","CASINO_SOFT","SCRATCH_CARDS","CASINO_MIXT","HomepageService","_setHeaderArenas","getHomePageHeaderArenas","group","_orderHeaderArenas","_updateNewAddedGames","_setNewAddedGames","_newAddedGames","newGamesCount","arenasNames","headerOrderedAreans","getHomePageHeaderArenasByUserOrientation","_sendUserOrientationArenasAnalytics","groupName","selfUpdatedByNewestGamesList","getSelfUpdatedByNewestGamesList","seenGames","_getNewAddedGamesFromLocalStorage","newGames","gi","_resetNewAddedGames","_setNewAddedGamesFromLocalStorage","_getNewAddedGamesLocalStorageKey","miniBannerComponentIdFromAB","miniTopBannerComponentID","miniBannerComponentIdFromConfig","topBanner","bannerAdminIDFromConfig","preferredStyle","SmallTiles","useMiniTopBanner","BigTiles","topBannerConfig","themeCustomizer","getHomePageTopBannerHeight","_getMiniBannerComponentID","AnalyticsDataLayerService","_push","intent","login_session_id","user_type","rm_status","rg_risk_level","sub_brand_name","sub_brand_id","registration_country","registration_date","product_package","SessionCooldownPopupBox","SessionCooldownPopupTextBox","DialogTextBox","SessionCooldownPopupTimerBox","DialogHighlightedTextBox","SessionCooldownPopupTimerRemainingBox","SessionCooldownPopupComponent","_prependZero","countdown","minutes","seconds","UK_TSR_OPTIONS","SESSION_COOLDOWN_STORAGE_KEY","SessionColldownService","_sessionCooldownConfig","getSessionCooldownConfig","_cooldownData","endDateMs","_dialogHandler","_timerUpdateEventHandler","_realityCheckOpenedEventHandler","_realityCheckClosedEventHandler","featureEnabled","_onUserLogin","_onUserLogout","_checkForValidStorageCooldownData","onSessionTimerUpdate","_handleTimerUpdate","onRealityCheckClosed","_showCooldownDialog","onRealityCheckOpened","_startSessionCooldown","_closeCooldownDialog","_disposeStorageCooldownData","_writeStorageCooldownData","_setCooldownCountdownValue","cooldownTime","_resetCooldownCountdown","_cooldownCountdown","_loadStorageCooldownData","currentTimeMs","cooldownData","timeMs","subtract","fromSeconds","_endSessionCooldown","_decreaseCooldownCountdown","MediaQueryListener","media","mediaQueryList","matchMedia","onChangeEventListener","onchange","removeListener","mQueryEventData","isMatched","matches","MediaQueryService","mediaQueryListeners","tempRecords","mediaQueries","mediaType","sExact","mExact","lExact","xxl","anyHover","anyHoverNone","pointer","pointerFine","pointerCoarse","pointerNone","anyPointer","anyPointerFine","anyPointerCoarse","anyPointerNone","OrbitApi","ORBIT_VERSION","fullVersion","gamesTypes","errorLogs","executeDeepLink","MAX_FIELD_SIZE","MAX_FIELDS_COUNT","fieldsCount","foundGames","missingGames","gameImage","gameImageAlt","ToolsService","uuidv4","VerticalGamesListBox","HeaderBox","GamesListBox","GameDetailsBox","GameDividerBox","ButtonWrapperBox","NO_JACKPOT","GameDetailsNameBox","GameDetailsJpBox","VerticalGamesListGameComponent","displayJackpotInfo","HeaderTitleBox","HeaderCloseButtonBox","DjWidgetBox","VerticalGamesListComponent","_onJackpotWidgetClicked","_closeDrawer","widgetConf","isMobileLandscape","_shouldMinimizeJackpotWidget","_shouldMinimizeWidget","scrollTop","onScroll","_onScroll","_renderHeader","_renderGamesList","SEO_CATEGORY","VerticalGamesListService","GAME_GROUP_COOKIE","UserGameOrientationService","_updateUserGameOrientation","orientation","userGameOrientationEnableConfig","User","enableUserGameOrientation","gameGroupCookie","_setUserOrientation","getUserGameOrientation","gameOrientation","_setGameOrientationCookie","setDate","getDate","ApiControllerBase","route","_getRoutePrefix","isUSRegulation","_buildApiRoute","BonusManagerController","_httpPost","ABTestingController","request","InsightController","req","NetPositionController","OMGController","OpenSessionsController","RestrictionRulerController","clientRequest","ThirdPartyFreePlayController","UserEligibilityController","GameController","HistoryController","UserController","ApiService","bonusManagerController","aBTestingController","netPositionController","oMGController","openSessionsController","restrictionRulerController","thirdPartyFreePlayController","userEligibilityController","historyController","TsrWithDropdownDefaultBox","TsrWithDropdownBox","TsrWithDropdownOptionSelectorBox","TsrWithDropdownMainTextDefaultBox","dialogHighlightedTextMixin","TsrWithDropdownMainTextCasino777Box","TsrWithDropdownMainTextBox","TsrWithDropdownSelectorContainerBox","LocalStorageKeys","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","closeRunningGame","_onReviewReminders","_onStopFurtherReminders","onStopReminders","_sendActionDataToElastic","messageActionTaken","CGPEventCategory","CGPEventAction","setTarget","messageDisplay","displayMessageID","DISPLAY_MESSAGE_IDS","timeSpentReminder","displayMessageName","GeoPermissionsPopupComponent","_onOkPressed","onOkPressed","headerText1","headerText2","TsrWithBalanceBox","TimeSpentReminderWithBalanceComponent","_executeContinueButtonAction","_executeCloseGameButtonAction","_getFormattedSessionBalance","balanceAbsoluteValue","totalNetLoss","_getFormattedPlayingTime","_getSessionBalanceText","isInGame","IdleRecommendationToasterBox","IdleRecommendationHeaderBox","iPhoneVer5","IdleRecommendationHeaderTitleWrapperBox","IdleRecommendationHeaderTitleBox","IdleRecommendationGameDetailsBox","IdleRecommendationToasterBackgroundBox","idleRecommendationToasterBg","IdleRecommendationComponent","onPlayRecommendedGameHandler","AboutBox","AboutInfoSectionBox","AboutFooterSectionBox","AboutComponent","_handleHelpTextClick","HELP","_renderHelpText","sectionTitleKey","valueClass","_renderAboutInfoSection","fiscalCode","openSessionsBalance","GeoDialogListBox","GeoDialogListItemBox","isLast","itemPrefix","GeoDialogColoredTextBox","GeoInstallPluginPopupComponent","downloadClicked","onDownloadPressed","_onFooterLinkPressed","onRestartDownloadPressed","SpacerBox","GeoFreezePopupComponent","OrbitComponentToSdkAdapterService","_renderComponent","displayStateSelectorPopup","locationIcon","PRIORITY_LEVEL_ZINDEX_MAPPER","TOUCH_ID","onMessageClosed","downloadPlugin","restartDownloadPlugin","installPopUpClosed","LocationIcon","GEO_FREEZE_WINDOW","timeSpentReminderClockIcon","_getTimeSpentReminderDialogOptions","isCip","businessCorrelationId","nightLimitWarning","DISPLAY_MESSAGE_NAMES","DISRUPTIVE_WARNING_MESSAGE_NAME","WarningIcon","warningSignIcon","showSimpleTextModal","buttonText","currentRenderedComponents","_setCurrentRenderedComponents","unmount","_unmountComponent","OmgMessageModel","rawMessage","inGame","messageType","displayInGame","OmgMessageCollection","_displayedMessages","_getPersistedMessages","existingMessageIndex","_allMessages","existingMessage","_removePersistedMessages","displayedMessages","messagesToPersist","msg","newMsg","msgId","uccMessages","alreadyDisplayedMessages","newMessagesToDisplay","OmgService","_routesToBeIgnored","_onAuthorizationStateChangedHandler","_readOmgMessagesFromServer","_showMessages","_messageCollection","getMessagesToDisplay","markAsDisplayed","_onExternalLinkClosedHandler","_onDepositWidgetClosedHandler","_onFirebaseOmgReceivedHandler","omgData","_openOMG","_parseRoutesToBeIgnored","onFirebaseOmgReceived","onExternalLinkClosed","onDepositWidgetClosed","ignorePopupURLs","ignorePopopURLs","getAwaitingMessages","MessagesJSON","messagesToDisplay","toXml","markMessagesAsDisplayed","_convertMessagesToXml","_shouldIgnoreOmgForCurrentRoute","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","stateID","stateId","getCasinofiedCommonAppContextParams","productPackageFromID","languageCode","currencyCode","gaClientID","clientThemeName","DeviceType","Tablet","SmartPhone","PC","CasinofiedZoidApplicationAdapter","applicationSdk","clonedInitParams","messageBrokerChannels","zoidInitParams","onInitSucceeded","payload","_onInitSucceeded","onInitFailed","_onInitFailed","openApp","_openApp","_onClose","performAction","_onPerformAction","closeIntentResult","_onCloseIntentResult","closeIntent","navigation","session","appInitSucceeded","appInitFailed","appClosed","CasinofiedRegularApplicationAdapter","applicationObject","messageBroker","launchInfo","applicationContext","CasinofiedApplicationBase","openAppData","_componentFactory","appSdkLoader","useZoidIntegration","appId","_openAppData","_sessionID","_topicsSubscriptions","_openPromise","_applicationAdapter","_isDisposed","_miniatureComponent","containerID","rootElement","firstChild","_appInitFailed","_isAnonymousModeAllowed","_setIsLoading","loadAppSdk","widgetUrl","appShowStartTime","isDisposed","timeoutValue","widgetLoadTimeoutMS","openTimeout","_setAppInitFailed","_unsubscribeFromTopics","onAppInitTimeout","appInitParams","errorDescription","_isCurrentApp","sessionID","onAppInitSuccess","loadingTime","onAppInitFailed","getAppInitParamsStartTime","_getAppInitCommonParams","commonParams","onGetAppInitParams","loadSubject","duration","_showApp","sdkObjectName","appObject","_getAppSdkObjectName","_createApplicationAdapter","onAppInitRequest","_getInitAppParams","_getUserInfo","geoInfo","productPackageToID","productPackageID","deviceInfo","_isMinimized","componentData","_getMiniatureComponentID","_setIsMinimized","waitForAppToOpen","createComponent","show","minimizeApp","appCloseParams","closeReason","appInitResultReportingDetails","appInitResult","reportData","reportDuration","appInitRequest","InsideDrawerApplication","_drawerContentHandler","_retryOpen","Message","retryButton","_shouldMinimizeOnDrawerClose","_publishMinimizeApp","Overlay","_getOnCloseReason","retryCloseDrawerMessage","ChatApplication","chatSpecificParams","SOF","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","FullCashier","appData","CashoutWidgetApplication","TransactionHistoryApplication","CustomerRelationsApplication","featureType","sourceAppID","CustomerRelations","FreeToPlayBonusGamesApplication","_bonusWheelContainerElement","setIsPromotionOpened","HelpCentreApplication","getInitAppParamsForControlCenter","getAppSpecificParamsForControlCenter","initialSource","sourcesEnum","LIMIT_NAMES","ControlCenterFullApplication","analyticsHelper","setCorrelationID","setSource","trackAppOpen","trackCloseExternal","trackAppInitSuccess","trackAppInitFailed","ControlCenterMiniApplication","trackCloseInternal","ControlCenterAnalyticsHelper","eventNames","sessionStatus","_pushSafezoneEvent","ready","closeExternal","closeInternal","safezoneEvent","CasinofiedAppFactory","CRChat","OpenBanking","UnifiedCashier","Redirect","UnifiedCashout","TransactionHistory","CasinoBonusGameWidget","ControlCenterFull","ControlCenterMini","CasinofiedAppLauncherService","_appFactory","_onBeforeOAuthStateChangedHandler","_closeAllApps","_openAppHandler","_onBrowserUnload","_sequentialCorrelationIdHandlers","_appClosedHandler","runningApp","_runningApps","_cleanUpBusinessCorrelationIdHandler","runningAppsGroupedByBusinessCorrelationId","groupByKey","_appMinimizedHandler","minimize","_appMaximizedHandler","maximize","_subscribeToTopics","_subscribeToReactions","_subscribeToSdkEvents","_subscribeToBrowserEvents","appMaximized","appMinimized","canClose","onBeforeOAuthStateChanged","unload","bussinesCorrelationId","SequentialCorrelationIdHandler","shouldReportOpenAppEvent","getSequentialCorrelationIdHandler","openAppRequest","createApplication","isOpeningInNewWindow","trigger","TriggerType","automaticFlow","sourceAppVersion","appIdentifier","sequentialCorrelationID","userSelection","_launchApp","isCis","actionID","ActionID","ActionHandlerBase","OpenBankingActionHandler","openBakingSpecificParams","ProductPackageToID","PAYMENTS_DEPOSIT","UploadDocumentsActionHandler","UploadDocuments","openVerifyId","OpenDepositActionHandler","OpenWithdrawActionHandler","OpenLinkActionHandler","openExternally","OpenChatActionHandler","OpenLinkWithFormPostActionHandler","_performFormPost","platformToken","formPostExtraParams","relatedAccountCid","registrationCategory","formPostParams","extraParams","_shouldOpenInSameWindow","performFormPost","isEmail","openEmail","OpenEmail","OpenOnlineHelp","OPEN_EMAIL","OPEN_ONLINE_HELP","OpenControlCenterFullActionHandler","OpenClientPageActionHandler","clientPageType","ClientPageType","rgPolicy","onlineHelp","LogoutActionHandler","CasinofiedActionHandlerService","_performActionHandler","actionHandler","_createActionHandler","handle","openBanking","uploadDocuments","deposit","withdraw","openOnlineHelp","openClientPage","FloatingBubblesService","BubbleContentDecorator","bubbles","bubbleToRemoveIndex","b","_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","_extractSequentialCorrelationID","setCorrelationId","setBusinessCorrelationID","openingMode","deviceTypeID","resolution","_getResolution","isOk","getLaunchInfo","getCurrentValue","appClosedParams","appCloseReason","screen","devicePixelRatio","closingReasonID","actionHandlerStep","actionResult","clientStateID","clientStateName","HttpWithRequestTimeMeasurement","_decoratedHttpService","fetchResponseWitLoadTimeReporting","fetchedResponse","parseResponseWitLoadTimeReporting","parsedResponse","_fetchResponse","_parseResponse","endTime","_reportDuration","finishTime","AbTestingAiSortGamesListsService","aiSortGamesLists","CashierService","_widgetEligibilityPromiseMap","_resetWidgetEligibilityPromiseMap","FULL_CASHIER_MOBILE","FULL_CASHIER_PC","eligibilityResult","abCheckActionHandlerEventData","eligibilityActionHandlerEventData","getEligibility","widgetConfigs","analyticsOptions","eligibility","force","testID","_getDepositWidgetEligibility","isEligibleForDepositWidget","appName","analyticsActionName","getAbEligibility","ntsEligibilityCallback","_ensureUserIsLoggedIn","LoginCountry","StateID","ntsEligibility","errorID","hasErrors","abEligibility","eligibilityData","_getCashierWidgetEligibility","performEligibility","_getWidgetEligibility","transactionHistoryWidget","transactionHistoryWidgetEligibility","depositWidget","cashoutWidget","cashoutWidgetEligibility","depositEligibility","_reportEligibilityEvents","openDepositWidget","promoCode","_getCashoutWidgetEligibility","openCashoutWidget","FULL_CASHIER_CDH","_getTransactionHistoryWidgetEligibility","openTransactionHistoryWidget","TRANSACTIONS_HISTORY","cashOutEligibility","_openCashierExternalLink","MOBILE_VERIFY_ID","CIPropRead","getProperty","ExternalLinkHandlerBase","getStringProperty","_parseMessageData","getNumericProperty","ExternalLinkIframeBox","ExternalLinkIframeContainerBox","maxWidth","maxHeight","ExternalLinkCloseButtonWrapperDefaultBox","ExternalLinkCloseButtonWrapperBox","ExternalLinkIframeComponent","_captureIframeElementRef","onIframeCreated","_onCloseClick","CloseIcon","closeIcon","allow","getIframeAllowAttributeValue","allowFullScreen","ExternalLinkIframeRenderer","getMaxWidth","_customMaxWidth","getMaxHeight","_customMaxHeight","iframeElement","formElement","urlBuilder","searchParams","paramValue","paramName","formField","submit","handleIframeCreation","iframeElementRef","httpVerb","_formPostInIframe","iframeScrolling","ExternalLinkInIframeHandlerBase","_handlePostMessage","_renderer","contentWindow","_onPostMessageReceived","externalLinkClosed","_getGnwpSource","_closeExternalLinkDialog","addSdkEventSubscription","onPostMessage","paramsOverride","_getIframeRendererParams","_getRenderer","RegistrationExternalLinkHandler","_getGnwpUrl","_showExternalLinkDialog","getRegistrationUrl","Membership","_shouldHideCloseButton","_extractActionId","_openDeposit","_openCashier","CASHIER_ACTIONS","_openLoginForm","_onRegistrationCompleted","UserInfo","SourceProductPackage","registrationCookiesData","_storeRegistrationCookie","_openUploadDocumentsV4","_openBankId","_openDownloadAppPage","channelElement","uploadDocumentsButton","registrationCompleted","Store","set","MyAccountExternalLinkHandler","getMyAccountUrl","MyAccount","_openQuickDeposit","promCode","_extractGameId","originDeepLinkID","_openRichPage","_openSport","internalUrl","_extractUrl","_openInternalUrl","externalUrl","_openExternalUrl","Header","CashierExternalLinkHandler","getCashierUrl","Cashier","OMG_POST_ACTIONS","OmgExternalLinkHandler","getOmgUrl","showMeMessageData","_onShowMe","omgDisplayed","_openMyAccount","cashierMessageData","setMaxSize","openCashierOptions","openDepositOptions","updateZIndex","ExternalLinksHandlersFactory","LoginButtonDefaultBox","LoginButtonSiBox","LoginButtonBox","HeaderWelcomeButtonsAnalyticsSender","gameContext","HeaderLoginButtonComponent","_onClick","specificDialogs","enforceHybridAppModal","RegisterButtonDefaultBox","RegisterButtonSiBox","RegisterButtonMrGreenBox","RegisterButtonBox","HeaderRegisterButtonComponent","RegulationComponentsCommon","LegacyRegulationWrapper","legacyRegulation","regulationType","REGULATION_NAMES","getRealityCheckIntervalExpectedByTheGame","getAgeResponsibleGamingLabel","updateRealityCheckInterval","nightLimitExpirationDate","showNightLimitMessage","postLoginActionsArePassed","openSelfExclusion","NAVIGATION_VIEWS","WINDOW","openSelfTest","GermanyRegulation","showConfirmLugasCoolingOffLogout","onAccept","onReject","MichiganRegistrationExternalLinkHandler","MichiganExternalLinksHandlersFactory","MichiganRegulationComponents","specificProps","MichiganRegulation","OntarioRegulationComponents","OntarioRegistrationExternalLinkHandler","OntarioExternalLinksHandlersFactory","OntarioRegulation","NetherlandsRegistrationExternalLinkHandler","NetherlandsExternalLinksHandlersFactory","NetherlandsRegulation","NewJerseyRegistrationExternalLinkHandler","NewJerseyExternalLinksHandlersFactory","NewJerseyRegulation","UkRegistrationExternalLinkHandler","UkExternalLinksHandlersFactory","UkRegulation","RegulationService","_createRegulation","sessionCooldownConfig","shouldShowPlayerLimitsToaster","getErrorMessage","regulationCode","REGULATION_CODE_TYPES","GERMANY","MICHIGAN","CANADA_ONTARIO","NETHERLANDS","NJ","UK","LimitsToasterService","_limitsData","DepositLimit","PlayTimeLimit","BankrollLimit","_subscriptions","_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","_burnoutMessageEventSubscription","_omgDisplayedEventSubscription","_currentRunningGameReaction","_onAuthStateChange","renderAnimation","showOmg","_currentlyDisplayedOmg","bringToFront","_clearCurrentDisplayOmg","checkIfOmgDisplayed","PlayerBurnout","isRealMoneyPrize","onBurnoutMessageReceived","_onBurnoutMessageReceivedEvent","_isRealMoneyPrize","onOmgDisplayed","_onOmgDisplayedEvent","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","THIRD_PARTY_BONUS_TYPE","PixiAppService","_pixiAppCreatorWithWebGlManager","webGlContextManager","makeCreator","resourcesUrls","loader","load","GameAnimatedIconsManagerService","intersectionObserver","observedTargets","isGameOpened","intersectionCallback","VIEWPORT_EXIT","selectAndLoadAnimations","debounceTimeout","selectionRunning","selectionRunAgainNeeded","alreadyRunningAnimationCount","eligibleTargets","remainingSlots","shuffle","loadAnimatedIcon","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","_calcRandomChance","randomChance","ceil","_isMessageCanBeShown","_openExitPopupMessage","playedGameType","_getCorrelatedGame","correlatedGame","_onPopupClosed","_onCloseButtonClicked","_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","getRegulatedCompany","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","UserGamingHistoryPaginatorModel","getHistory","GameTypeId","SessionGamingHistoryRecordModel","TotalBets","TotalWins","SessionBalance","SessionEndDateTime","GameSessionId","SessionGamingHistoryPaginatorModel","getGameSessionHistory","GamingHistoryService","maxPageSize","CompaniesService","companyIdentifier","_getCompanyConstructor","CompanyConstructor","_getCompany","applyRegulation","BECAUSE_YOU_PLAYED_LAST_REAL_GAME_LOCAL_STORAGE_KEY","BecauseYouPlayedService","_lastPlayedGames","_getLastPlayedGamesFromLocalStorage","lastPlayedGameByArena","_createDefaultPlayedGameByArenaObject","_setLastPlayedGame","_resetLastPlayedGames","_updateCurrentBecauseYouPlayedGames","currentValue","lastPlayedGameType","lastPlayedGame","_createEmptyLastPlayedGamesList","filterGamesByArenaType","lastGamePlayedGameTypeForArena","lastGamePlayedForCurrentArena","_getLastPlayedGameTypeForArena","_setCurrentBecauseYouPlayedGames","RunningGameBrowserTabController","_activeGameInAnotherTabDetectionTimer","_detectActiveGameInAnotherTab","isGameRunningInAnotherTab","_setActiveGame","_onGameClosed","activeGame","_currentBrowserTabId","_activeGameTabId","currentRunningGameTab","currentRunningGameType","GameLoadingIndicatorBaseModel","HybridEmbeddedGameLoadingIndicatorRootBox","HybridEmbeddedGameLoadingIndicatorHeaderBox","HybridEmbeddedGameLoadingIndicatorContentBox","HybridEmbeddedGameLoadingIndicatorSpinnerBox","HybridEmbeddedGameLoadingIndicatorProgressCircle1Box","HybridEmbeddedGameLoadingIndicatorProgressCircle2Box","angle","HybridEmbeddedGameLoadingIndicatorProgressCircle3Box","LoadingCircleLargeIcon","gradientUnits","x1","y1","x2","y2","gradientTransform","stopColor","stopOpacity","accumulate","additive","attributeType","calcMode","dur","repeatCount","to","HybridEmbeddedGameLoadingIndicatorComponent","_onCloseButtonClick","closeLoadingIndicator","totalPackages","packagesStatus","currentPackage","_renderPackageDownloadStatusLabel","downloadPercentage","_renderConnectingSpinner","_renderProgressIndicator","TOASTER_TIMEOUT","HybridEmbeddedGameLoadingIndicatorModel","_slowConnectionToasterTimer","_showToaster","MessageID","TIMED","ON_DEMAND","ON_DEMAND_CATEGORY","totalSeconds","_updateProgress","percentage","numberOfPackages","_clearToasterTimer","onHybridEmbeddedGameLoadingIndicatorUpdateV1","onHybridEmbeddedGameLoadingIndicatorUpdateV2","statusBar","closeGameLoadingIndicator","hybridGameLoadingIndicatorClosed","WebAppGameLoadingIndicatorComponent","WebAppGameLoadingIndicatorModel","GameRunnerService","gameTabController","_runGameStarted","_reOpenPendingGame","GAME_FRAME","persistedGameParams","SessionStorageKeys","currentGameParams","initialGameParams","_refreshCurrentGameBalance","gameCommunicationChannel","supportsBalanceRefresh","refreshBalance","initialRunGameParams","_openHistoryGame","_logOpenGameError","_showGameOpenError","messageText","error_code","getGeneralErrorMessage","errMsgToLog","logError","_runGame","openDemoGame","openHistoryGame","loadingIndicator","gameLoadingIndicator","Continue","_closeCurrentRunningGame","_setGameLoadingIndicator","_createGameLoadingIndicator","_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","freePlayId","freePlayType","VoucherBaseModel","voucherData","_voucherData","ID","FreePlayTypeId","CompanyID","gamesDictionary","GameTypeIDList","CurrentBalance","freePlayGames","ExpirationDate","isExpired","newVoucherData","OriginAmount","_formatVoucherAmount","timeToExpiration","timeToExpirationRoundedToSeconds","isCloseToExpiration","expiration","FreePlayVoucherModel","backgroundTypeFP","typeFP","JackpotFreePlayVoucherModel","backgroundTypeJFP","typeJFP","FreeSpinsVoucherModel","SpinBetAmount","backgroundTypeFS","typeFS","JackpotFreeSpinsVoucherModel","backgroundTypeJFS","typeJFS","VouchersProviderBase","FreePlay","FreeJackpotPlay","FreeSpin","FreeJackpotSpin","Tripe8FreePlayVouchersProvider","_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","_toolTipDisplayCount","_toolTipWasDisplayedOnCurrentSession","_shouldShowTooltip","translateService","FPGiftIcon","giftIcon","_onTooltipClicked","ReasonIsNotEligible","ThirdPartyVouchersProvider","refreshVouchers","newVouchers","getAllVouchers","FreePlayBonusList","_setVouchers","voucherModels","bonusDataFromBackend","_convertBackendBonusDataToClientVoucherData","clientVoucherData","CurrencyCode","FreePlayID","FreePlayTypeID","Voucher","_convertFreePlay","_convertVoucher","FreeSpinsInfo","spinBetAmount","BetPerSpin","_getGamesMaxBets","GameTypesIDs","NumberOfFreeSpinsLeft","Winnings","CurrentWinningAmount","NumberOfAwardedFreeSpins","VoucherInfo","RemainingFreePlayAmount","AwardedFreePlayAmount","FreePlayService","_actionsToExecuteWhenFreePlayIsAvailable","_toolTipHandler","_setVoucherProviders","setFreePlayIndicatorDOMElementRef","newProviders","_vouchersProviders","vp","allVouchers","provider","isValid","v1","v2","hasGame","RestrictionsService","FreeToPlayService","_checkEligibilityPromise","_isEnabled","_checkEligibility","_setIsPromotionEligible","shouldShowPromotion","crm","isPromotionRestricted","_isPromotionEligible","_isPromotionOpened","isOpened","CASINO_BONUS_GAME_WIDGET","domain","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","_onBannerClickedEvent","_onBannerShowedEvent","bannerDetails","IsFTD","IsAuthenticated","serials","states","getUserSelectedState","placeholderId","deviceCode","SessionTimerService","_onSessionTimerUpdate","currentSessionTimer","sessionTime","GeoLocationService","DialogResult","CrmService","_sdkLib","_initCrmPromise","_initService","onFirebaseGotNewToken","_connect","isAuth","_initCrm","_disconnect","CrmSdk","libUrl","executeInitCrm","_loadLib","initCrm","userToken","fbToken","onConnectedToFirebase","onDisconnectedFromFirebase","checkEligibility","_getEligibility","doNotShowPromotionReasons","PromotionRestricted","reasonIsNotEligible","IndicatorLayout","LugasActiveDialogBoxLine","LugasActivePopupComponent","LoginPopupBox","LoginPopupDialogText","LoginPopupComponent","onApprove","totalStakesText","netPositionText","loginPopup","getLoginPopupData","BankrollCurr","TotalStakes","NetPosition","SpecificDialogsService","analyticsOnClick","DownloadAppIcon","KeepDialogOpen","reportConfirmClicked","ACTION_TAKEN_NAMES","CONFIRM_ACTION","LUGAS_COOLDOWN_MESSAGE_NAME","ret","lugasCooldown","LUGAS_ACTIVE_MESSAGE_NAME","lugasActiveOnAnotherOperator","reportClick","LUGAS_LOGOUT_MESSAGE_NAME","CANCEL_ACTION","Rejected","Accepted","lugasLogout","confirmClicked","LOGIN_MESSAGE","loginMessage","TippingHistoryBaseModel","_setRecords","reset","loadAllRecords","TipHistory","GameTypeID","TipAmount","AvailableBalanceAfterAction","getTippingHistory","tipId","TipID","gameTypeId","imagePlaceHolderUrl","tipDate","TipDateTime","_getAmounts","TippingHistoryService","LoyaltyIndicatorModel","_clickHandler","LCChallenges","_loyaltyRef","LoyaltyIndicatorConstructor","LoyaltyIndication","loyaltyInitInfo","_createLoyaltyInfo","firebaseToken","FirebaseToken","CID","LanguageCode","ClientContext","BrandId","ClientPlatform","ClientVersion","ProductPackage","SubBrandId","Style","_createLoyaltyStyle","loyaltyStyleParams","BackgroundColor","ShowBoxShadow","ShowUnderline","FontSize","ArrowSize","Font","ProgressBarHeight","ArrowColor","LOLArrowContainerRigh","LOLArrowContainerLeft","LOLContentPaddingLeft","TextColor","ProgressBarColor","ProgressBarBackgroundColor","ProgressBarBorderRadius","LOLArrowTop","Terminate","LoyaltyService","_loadLoyaltyPromise","_loadLoyaltyScriptPromise","_loadLoyalty","_loadLoyaltyScript","_getFirebaseToken","fireBaseToken","Loyalty","scriptLink","StatePopupWrapperBox","StatePopupComponent","_onStateConfirmation","onStateSelect","_onStateNotInListClick","onStateNotInListClick","_getStateName","statePopup","stateName","THE_STATE","StatePopupErrorMessageBox","StatePopupSelectWrapperBox","StatePopupWithDropdownComponent","_defaultOption","currentStateID","shouldShowError","_renderOptions","defaultOption","stateOptions","_renderErrorMessage","isOneSiteEnabled","_renderStateSelector","RegularStatePopupStrategy","_popupDisplayedLocalStorageKey","forceDisplay","OneSiteStatePopupStrategy","_shouldShowLoginFormSessionStorageKey","saveStateInCookie","reload","getStateFromCookie","StateOfResidenceIdentifierService","_statePopupStrategy","_onReceivedUserStateQueryParam","urlWithoutUserState","_cookieKey","_displayLoginForm","statePopupStrategy","shouldDisplayStatePopup","StatePopup","getComponent","onStateConfirmation","onOtherStateClick","getPopupTitle","locationPopupClosed","removeStateCookie","oneSite","loginPopupAcknowledgeStorageKey","LoginPopupService","_loginPopupShown","_loginPopupPreviousCallPromise","showLoginGamePopup","fromRegistration","currentPromise","_skipPopupConditions","showLoginPopup","_onAcknowledge","isDocUploadRequired","ServiceFactory","sdkHooksProvider","windowService","domService","httpService","_appStartupConfigs","_languageData","_externalLinks","_userMenu","_pokerIntegration","_verticalGamesList","_lobbyGameInfoPreview","_aiEngine","_aiNewEngine","_deepLink","_gameRouteHandler","_gamesFilter","_runningGame","_becauseYouPlayed","_siteMap","_marketing","_cmsPages","_configuration","_spinner","_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","_omg","_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","_loginPopup","SplashService","forceInit","fireOrbitInitComplete","LogoContainerDefaultBox","LogoContainerCasino888Box","logoBackground","logoDecoration","LogoContainerCasino777Box","LogoContainerBox","LogoImageDefaultBoxCasino777","LogoImageDefaultBoxHarringtonDelaware","LogoImageDefaultBallysDover","LogoImageDefaultWSOP","LogoImageDefaultHarrash","LogoImageDefaultBox","LogoImageSiBox","LogoImageBox","LogoVipImageDefaultBox","LogoVipImageDefaultBoxCasino777","LogoVipImageDefaultBoxHarringtonDelawareBallysDover","LogoVipImageSIBox","LogoVipImageDefaultBoxHarrash","LogoVipImageDefaultBoxWSOP","LogoVipImageBox","LogoBox","withAnalytics","goHome","useDarkLogo","logoURL","configOverride","logoAltOverride","TheLogoImageBox","_getLogoImageURL","_getLogoAlt","shownData","selectedUserInfo","useSpanWrapper","ProfilePictureDefaultBox","ProfilePictureMrGreenBox","ProfilePictureBox","ProfileUserNameDefaultBox","ProfileUserNameCasino777Box","ProfileUserNameBox","avatarState","ProfilePicture","_openUserMenu","marketingDl","imageSize","_getAvatarUrl","_updateAvatarState","onMouseDown","onMouseUp","_renderUserName","avatarUrl","IndicatorDefaultBox","displayLayout","List","IndicatorCasino777Box","IndicatorCasinoMrGreenBox","IndicatorBox","IndicatorIconDefaultBox","IndicatorIconCasino777Box","IndicatorIconHarrahsWsopBox","IndicatorIconSIBox","IndicatorIconBox","pulseAnimation","IndicatorBadgeDefaultBox","backgroundInListLayout","IndicatorBadgeSIBox","IndicatorBadgeMrGreenBox","IndicatorBadgeBox","IndicatorTextDefaultBox","IndicatorTextCasino777Box","IndicatorTextBox","IndicatorIconWrapperDefaultBox","IndicatorIconWrapper777Box","IndicatorIconWrapperBox","ProfileBoxMessagesIndicator","_captureElementRef","indicatorIsActive","indicatorActive","iconComponent","numberOfMessagesIsDefinedAndGreaterThanZero","numberOfAwaitingMessages","hasAwaitingMessages","OmgIndicator","notificationIcon","openOmgAwaitingMessages","FreePlayIndicatorComponent","freeplayIcon","ProfileMessagesDividerDefaultBox","ProfileMessagesDividerCasino777Box","ProfileMessagesDividerHarrahsWsopBox","ProfileMessagesDividerBox","ProfileButtonsDefaultBox","ProfileButtonsHarrahsWsopBox","ProfileButtonsBox","ProfileCashierButtonDefaultBox","ProfileCashierButtonCasino777Box","ProfileCashierButtonCasino888Box","ProfileCashierButtonBallysDoverBox","ProfileCashierButtonHarringtonBox","ProfileCashierButtonWsopBox","ProfileCashierButtonHarrahsBox","ProfileCashierButtonMrGreenBox","ProfileCashierButtonBox","ProfileCashierAddButtonDefaultBox","ProfileCashierAddButtonWsopBox","ProfileCashierAddButtonHarrahsBox","ProfileCashierAddButtonMrGreenBox","ProfileCashierAddButtonBox","ProfileWrapperDefaultBox","ProfileWrapperMrGreenBox","ProfileWrapperBox","ProfileMessagesDefaultBox","ProfileMessagesCasino777Box","ProfileMessagesBox","MARKETING_DL","ProfileBox","_openLogin","plusButton","_renderLogin","_renderCashier","_renderProfileBoxMessages","AddIcon","addIcon","BrandSwitchListBox","BrandSwitchListItemBox","BrandSwitchListItemIconBox","BrandListComponent","_onBrandClick","brandConfig","class","_renderBrand","StoreButton","store_button","appLink","preventDefaultOnClick","imgSrc","imgSrcFallback","MenuLinksGroupsContainerBox","section","SideMenuContainerBox","MobileMenuItemContainerDefaultBox","MobileMenuItemContainerMrGreenBox","MobileMenuItemContainerBox","MobileMenuItemLinkDefaultBox","MobileMenuItemLinkCasino777Box","MobileMenuItemLinkCasinoMrGreenBox","MobileMenuItemLinkBox","MobileHelpCenterMenuItemComponent","_mobileHelpButtonHandler","openHelp","HamburgerMenu","HelpIcon","sideMenuHelp","_renderText","MobileLangSwitcherMenuItemSelectedLangBox","MobileLangSwitcherContainerBox","MobileLanguageMenuItemBox","MobileLangSwitcherMenuItemComponent","openMobileLanguageSwitcher","SideMenuHorizontalLineDefaultBox","horizontalLineBackgroundColor","horizontalLineBackgroundImage","SideMenuHorizontalLineMrGreenBox","SideMenuHorizontalLineBox","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","LanguageSwitcherItemCheckboxDefaultBox","LanguageSwitcherItemCheckboxBox","LanguageSwitcherSectionComponent","_selectItem","makeCurrent","htmlId","isCurrent","_renderOneItem","LanguageSwitcherSectionSeparatorDefaultBox","LanguageSwitcherSectionSeparatorBox","LanguageSwitcherDropdownComponent","_renderSection","MobileMenuHeaderDefaultBox","MobileMenuHeaderSiBox","MobileMenuHeaderBox","MobileBackDefaultBox","MobileBackSiBox","MobileBackBox","MobileBackLabelBox","MainNavCanvasDefaultBox","MainNavCanvasCasino777Box","MainNavCanvasSIBox","MainNavCanvasCasinoMrGreenBox","MainNavCanvasBox","MainNavBox","OPEN_MENU","DRAGGING","MainNavContentWrapperBox","MainNavMenuBox","MainNav","mainNavRef","_onLogoClick","dragProperties","isDragging","initialPointerX","initialNavMenuTransform","isNavigation","sideMenuDarkLogo","BackIcon","backButtonHandler","_hideMobileMenu","backButtonUseLabel","backButtonCyClass","isRTL","pointerX","touches","pointerXDelta","windowSize","innerWidth","minMainNavXToAutoClose","currentMainNavXPosition","removeProperty","onTouchMove","_onDrag","onTouchEnd","_onStopDragging","_renderMobileMenuHeader","_renderLogo","_renderProfileBox","UserMenuSectionDefaultBox","UserMenuSectionCasino777Box","UserMenuSectionCasino888Box","UserMenuSectionCasinoSIBox","UserMenuSectionMrGreenBox","UserMenuSectionBox","LoyaltyBarSectionBox","LoyaltyBar","showLoyaltyConfig","UserDetailsSectionDefaultBox","UserDetailsSectionCasino777Box","UserDetailsSectionHarrahsWsopBox","UserDetailsSectionBox","UserDetailsWrapperDefaultBox","UserDetailsWrapperCasino777Box","UserDetailsWrapperBox","UserMenuPictureDefaultBox","UserMenuPictureCasino777Box","UserMenuPictureBox","UserMenuTitleDefaultBox","UserMenuTitleCasino777Box","UserMenuTitleBox","UserMenuTitleAccountDefaultBox","UserMenuTitleAccountCasino777Box","UserMenuTitleAccountMrGreenBox","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","LogOutLinkMrGreenBox","LogOutLinkBox","UsefulLinks","userMenuService","doLogout","BonusAndCashBalanceBox","BalanceInnerBox","BalanceTitleInnerDefaultBox","BalanceTitleInnerCasino777Box","BalanceTitleInnerHarrahsWsopBox","BalanceTitleInnerBox","BalanceValueBonusAndCashDefaultBox","BalanceValueBonusAndCashCasino777Box","BalanceValueBonusAndCashHarrahsWsopBox","BalanceValueBonusAndCashBox","BonusAndCashBalance","BalanceButtonsGroupDefaultBox","BalanceButtonsGroupCasino777Box","BalanceButtonsGroupHarrahsWsopBox","BalanceButtonsGroupMrGreenWsopBox","BalanceButtonsGroupBox","UserBalanceButtons","onDeposit","onWithdraw","UserMenuBalanceTitleCasino777Box","UserMenuBalanceTitleBox","UserBalanceSectionBox","UserBalanceSectionIconDefaultBox","UserBalanceSectionIconCasino777Box","UserBalanceSectionIconBox","BalanceValuePrimaryDefaultBox","BalanceValuePrimaryCasino777Box","BalanceValuePrimaryBox","UserBalance","launchDeposit","launchWithdraw","UserChallengesContainerBox","UserChallengesTitleBox","UserChallengeComponent","launchDrawerLink","UserChallengesComponent","drawerBoxesConfig","drawerBoxes","MiniSafezoneDefaultBox","MiniSafezoneBox","MiniSafezoneComponent","iApplication","appLoadingInProgress","cancelLoadingApp","closeSafezoneReason","safezoneBoxClickHandler","loadControlCenterMini","disposeApplication","openControlCenterMini","safezoneHeaderButton","UserMenuScrollWrapperBox","UserMenuFakeIOSPaddingBox","UserMenuMobile","WelcomeUserBox","WelcomeGreetingDefaultBox","WelcomeGreetingCasino777Box","WelcomeGreetingBox","WelcomeUserInfoDefaultBox","WelcomeUserInfoCasino777Box","WelcomeUserInfoMrGreenBox","WelcomeUserInfoBox","WelcomeUser","greeting","showUserTitle","showFirstName","showLastName","_renderUserTitle","_renderUserInfo","userGenderTitle","genderTitle","infoType","UserMenuClosePCButtonBox","UserMenuCloseIconDefaultBox","UserMenuCloseIconCasino777Box","UserMenuCloseIconSiBox","UserMenuCloseIconBox","UserMenuHeaderBox","UserMenuPc","_renderUserMenuHeader","UserMenuRootDefaultBox","USER_MENU_OPEN","UserMenuRootCasino777Box","UserMenuRootBox","UserMenuWrapperDefaultBox","UserMenuWrapperBox","UserMenuHolderDefaultBox","UserMenuHolderBox","UserMenu","holderRef","_closeMenu","_renderMobileBackButton","_renderMenuContents","HelpButtonComponent","PCHeader","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","BurgerMenuContainerBox","MobileBurgerMenuComponent","MobileMenuIcon","mobileMenuIcon","HeaderLanguageSwitcherBox","HeaderLanguageSwitcherComponent","_timer","_toggleDropdown","_clearCollapseTimeout","_colapseDropdown","_startCollapseTimeout","earthGlobeIcon","DepositHeaderButtonBox","DepositHeaderButtonComponent","depositHeaderIcon","NavbarSeparatorDefaultBox","NavbarSeparatorSiBox","NavbarSeparatorBox","HeaderNavbarContainerDefaultBox","nav","HeaderNavbarContainerWsopBox","HeaderNavbarContainerHarrahsBox","HeaderNavbarContainerCasino777Box","HeaderNavbarContainerSIBox","HeaderNavbarContainerMrGreenBox","HeaderNavbarContainerBox","HeaderNavbarMobileWrapperDefaultBox","HeaderNavbarMobileWrapperSiBox","HeaderNavbarMobileWrapperBox","HeaderNavbarLeftContainerBox","HeaderNavbarRightContainerBox","HeaderComponent","_captureHeaderRef","setHeaderElement","_headerConfig","header_buttons","safeZoneIcon","help","_renderDeposit","secondaryLogoUrl","componentIDs","currentComponentID","_renderDesktopLanguageSwitcher","_renderDesktopHelpButton","_renderDesktopSafezoneButton","_renderDesktopStateSelectorButton","_renderResponsibleIcons","_renderSecondLogo","_renderDesktopSearchInput","_renderCrossBrand","el","responsibleIcons","_renderRelevantComponent","top_header_left","_renderInsideOrbitMenuContainerPC","top_header_right","_renderMobileNavbar","_renderDesktopLeftNavbar","_renderDesktopRightNavbar","DrawerBodyBox","DRAWER_WIDTH","DrawerContentBox","DrawerComponent","lastVisibleDrawerItemIndex","ReactDOM","createPortal","_renderDrawer","OverlayComponentDefaultBox","OverlayComponentMrGreenBox","boxBorderMediumDark","OverlayComponentBox","OverlayComponent","SpinnerBox","SpinnerBrandBox","spinnerAnimationKeyframes","SpinnerBackgroundDefaultBox","SpinnerBackgroundCasino777Box","SpinnerBackgroundCIPBox","SpinnerBackgroundCISBox","SpinnerBackgroundMrGreenBox","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","StickyNavigationMenuItemIconBox","StickyNavigationMenuLinkBox","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","_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","TooltipArrowMrGreenBox","TooltipArrowBox","TooltipCloseButtonBox","invertColors","TooltipContainerDefaultBox","isAnimated","TooltipContainerMrGreenBox","TooltipContainerBox","TooltipGlowDefaultBox","TooltipGlow777Box","TooltipGlowMrGreenBox","TooltipGlowBox","TooltipContentBox","ToolTipComponent","toolTip","onToolTipRendered","currentTooltip","shouldShowCloseButton","ToolTipContainerComponent","GameLoadingIndicatorRootBox","GameLoadingIndicatorComponent","CurrentGameContainerComponent","renderGame","AppComponent","removeSplash","splashTime","disableCSSOMInjection","stylisPlugins","RtlPlugin","renderGlobalStyles","renderApp","orbitElement","InMemoryLocalStorageService","_localStorageData","B2CFrameworkLoader","b2cConfig","_languageIso2","_cmsSource","overrides","jsFiles","customJsFiles","customCssFiles","cssFiles","jsFile","_loadScriptTag","_createTagId","cssFile","_loadStyleTag","_buildFilePath","scriptTag","styleTag","DEFAULT_CONFIGS","excludedFilters","casinoGames","exclusive888Games","resolveAssets","assetsContainer","assetLocationInfo","resolveLocation","getThemeName","storageService","baseUri","isMiniOrbitBasePath","ORBIT_LOCATION_OVERRIDE_BASE","selectTheme","storage","themeDefinitionModule","configure","enforceActions","createStorage","lsData","LocalStorageService","getLanguageData","languageIso3","languageDataModule","engLang","startApplication","WindowService","DomService","HttpService","loggerService","ConsoleLoggerService","configurationsReader","readApplicationConfigurations","languageData","process","REACT_APP_THEME_NAME","loadB2CFramework","promo","LobbyHeaderDefaultBox","stickOffset","LobbyHeaderCasino777Box","LobbyHeaderSiBox","LobbyHeaderMrGreenBox","LobbyHeaderBox","LobbyHeaderTitleDefaultBox","LobbyHeaderTitleSIBox","LobbyHeaderTitleMrGreenBox","LobbyHeaderTitleBox","LobbyHeaderLinePCBox","LobbyHeaderLineMobileBox","LobbyHeaderLineDefaultBox","LobbyHeaderLineCasino777Box","LobbyHeaderLineMrGreenBox","LobbyHeaderLineBox","LobbyHeaderButtonsContainerBox","LobbyHeaderDefaultButtonsBox","LobbyHeader777ButtonsBox","LobbyHeaderMrGreenButtonsBox","LobbyHeaderButtonsBox","LobbyHeaderTitleContainerBox","LobbyHeaderComponent","handleSearchClick","renderingOptions","lobbyHeaderClasses","_renderFiltersIndicatorNextToTheTitle","_renderFiltersIndicatorUnderTheTitle","Load","LoadingDotBox","animationDelay","LoadingDotsBox","LoadingDotsComponent","SeoBreadcrumbsContainerBox","SeoBreadCrumbsComponent","SdkComponent","_elementRef","_renderSdkComponent","_sdkComponentRenderer","sdkComponentFactory","sdkComponentRenderer","_disposeSdkComponent","sdkProps","_passOnClick","ClockComponent","datetime","ClockComponentBox","eName","eCallback","eContext","cleanFunctions","eventIdx","self","onceCallback","_originalCallback","subscriptions","getAllSubscriptions","cb","cleanFn","Svg","svg","flipOnRTL","SvgIcon","defaultSize","Px","Percent","ratio","version","xmlns","_default","_registry","override","Casino888","Casino888Cip","WsopCip","Casino888Cis","Harrahs","Wsop","BallysDover","Delawarepark","Harrington","SI","SICis","MrGreen","VOLATILITY_LIMITS","PLATFORM_TYPES","ALL","MOBILE","NONE","GameImageDefaultBox","TableSeatsComponent","Seats","SeatsTaken","Players","_isTableFull","_getTableIsFullTranslationKey","_getPlayersCountFormated","fullSeatIcon","seatIcon","_getTableIsFullText","_getSeatsIconSource","_templateID","_fallbackFileName","_areEqual","val1","val2","LayoutWrapperBox","LayoutWrapperDefaultBox","IntersectionSpyComponent","_captureIntersectionSpy","QA_ENV_URBAN_DEFAULT_SETTINGS","defaultIcon","defaultTitle","defaultActionURL","appKey","vapidPublicKey","GameHeaderBarCloseButtonBox","GAME_PC_BUTTON_WIDTH","GAME_PC_BUTTON_HEIGHT","GAME_MOBILE_BUTTON_WIDTH","GAME_MOBILE_BUTTON_HEIGHT","InfoIcon","VOUCHER_CARD_WIDTH","_relativePath","_brandsOverrides","_locationInfo","locationInfo","IFRAME","REDIRECT","SECOND_WEB_VIEW","LINK_DEFAULT_CONGIF","allowedViews","dimensions","isAuthRequired","isCloseBtnAllowed","immediateShow","isMobileFullScreen","macos","browsers","safari","isNotAuthRequired","backToView","SECONDARY_MESSAGE","COMPONENT_TYPES","DIRECTIVE","LiveCasinoGridItemInfobarDefaultBox","infobarBackground","LiveCasinoGridItemInfobarCasino777Box","LiveCasinoGridItemInfobarBox","LiveCasinoGridItemBetIntervalDefaultBox","LiveCasinoGridItemBetIntervalCasino777Box","LiveCasinoGridItemBetIntervalMrGreenBox","LiveCasinoGridItemBetIntervalSIBox","LiveCasinoGridItemBetIntervalBox","LiveCasinoGridItemClosedMessageDefaultBox","closedMessageBackground","LiveCasinoGridItemClosedMessageCasino777Box","LiveCasinoGridItemClosedMessageBox","LiveCasinoGridItemThumbnailOverlayBox","LiveCasinoGridItemThumbnailBox","LiveCasinoGridItemWrapperDefaultBox","LiveCasinoGridItemWrapperCasino777Box","LiveCasinoGridItemWrapperBox","LiveCasinoGridItemTitleDefaultBox","LiveCasinoGridItemTitleMrGreenBox","LiveCasinoGridItemTitleSIBox","LiveCasinoGridItemTitleBox","LiveCasinoGridItemBetBehindButtonDefaultBox","LiveCasinoGridItemBetBehindButtonCasino777Box","LiveCasinoGridItemBetBehindBox","LiveCasinoGridItemJackpotDefaultBox","LiveCasinoGridItemJackpotCasino777Box","LiveCasinoGridItemJackpotBox","LiveCasinoGridItemOpenAtBox","LiveCasinoArenaGridItem","isMobilePhone","Dealer","dealerIcon","jpValue","tableIsFull","BetBehind","_renderDealerName","_renderSeatsCount","_renderRouletteDraws","_renderBetBehindButton","_renderGameThumbnailImage","_renderGameInfobar","_renderGameIsClosed","_renderGameThumbnail","_renderGameItem","VoucherCardBox","VoucherCardSideBox","backgroundImageUrl","VoucherCardFaceBox","backSideShown","VoucherCardFaceContentBox","VoucherCardSideFooterBox","VoucherCardFaceFooterBox","VoucherCardFaceIconContainerBox","VoucherCardFaceDetailsBox","VoucherCardFaceOriginalAmountBox","VoucherCardFaceVoucherNameBox","VoucherCardFaceCurrentAmountContainerBox","VoucherCardFaceIconBox","iconUrl","VoucherCardFaceCurrentAmountBox","VoucherCardSideToggleButtonBox","VoucherCardSideFooterContentBox","VoucherCardFaceHeaderBox","VoucherCardFaceHeaderComponent","_expirationTimer","expirationMessage","VoucherCardFaceComponent","formattedOriginalAmount","formattedCurrentBalance","_renderOriginalAmount","voucherName","_renderCurrentAmount","onToggleSide","VoucherCardBackBox","VoucherCardBackHeaderBox","VoucherCardBackContentBox","VoucherCardBackFooterBox","VoucherCardBackComponent","voucherDescription","VoucherCardComponent","_onToggleSide","showBackSide","_onCardSideClickHandler","LiveCasinoFilterButtonsDefaultBox","LiveCasinoFilterButtonsCasino777Box","LiveCasinoFilterButtonsCasinoSICisBox","LiveCasinoFilterButtonsBox","LiveCasinoNavbarScrollBox","LiveCasinoNavbarOverflowBox","LiveCasinoNavbarDefaultBox","LiveCasinoNavbarCipBox","LiveCasinoNavbarCasino777Box","LiveCasinoNavbarCisBox","LiveCasinoNavbarSICisBox","LiveCasinoNavbarMrGreenBox","LiveCasinoNavbarBox","ButtonsActiveIndicatorDefaultBox","activeIndicatorBg","activeIndicatorWidth","activeIndicatorPosition","ButtonsActiveIndicatorSIBox","ButtonsActiveIndicatorBox","LiveCasinoArenaNavbar","navbarRef","buttonsRefs","scrollContainerRef","_scrollEventHandler","_onFilterClicked","setCurrentArenaTab","_updateActiveIndicatorPosition","activeButton","scrollContainer","activeIndicator","offsetWidth","widthOffset","_renderActiveIndicator","AnonymousButtonsContainerDefaultBox","AnonymousButtonsContainerHarrahsBox","AnonymousButtonsContainerBox","HeaderWelcomeButtonsForAnonymousUserComponent","separator","renderHeaderRegisterButton","renderHeaderLoginButton","MobileContainerBox","UserIconBox","welcomePostLoginMobile","UserBankrollBox","FreePlayDotIndicatorBox","HeaderWelcomeButtonsForAuthorizedUserMobileViewComponent","_renderFreePlayIndicator","totalBankroll","PCContainerBox","HeaderCashierButtonDefaultBox","HeaderCashierButtonMrGreenBox","HeaderCashierButtonBox","HeaderCashierButtonComponent","_onCashierClick","HeaderWelcomeButtonsForAuthorizedUserPcViewComponent","HeaderWelcomeButtonsForAuthorizedUserComponent","HeaderWelcomeButtonsBox","HeaderWelcomeButtonsComponent","FreePlayContainerBox","VouchersSwiperBox","VoucherSwiperArrowContainerBox","isPrev","swiperArrowPrev","swiperArrowNext","VouchersSwiperComponent","prevElement","nextElement","dir","slidesPerView","centeredSlides","pagination","clickable","nextEl","prevEl","modules","Pagination","Navigation","onBeforeInit","onActiveIndexChange","onCurrentVoucherIndexChanged","activeIndex","_vouchers","VoucherGamesListDefaultBox","VoucherGamesListSiBox","VoucherGamesListBox","VouchersSwiperTitleDefaultBox","VouchersSwiperTitleSIBox","thin","VouchersSwiperTitleBox","VouchersSwiperBackgroundBox","backgroundVouchersSlider","VouchersGamesListTitleDefaultBox","VouchersGamesListTitleCasino777Box","VouchersGamesListTitleCasinoSICisBox","VouchersGamesListTitleCasinoSIBox","VouchersGamesListTitleMrGreenBox","VouchersGamesListTitleBox","FreePlayContainerComponent","_renderVoucherGames","currentVoucher","currentVoucherIndex","voucherGame","marginBottom","_onCurrentVoucherChangedHandler","voucherIndex","GameItemContainerBox","GameItemImgWrapperBox","GameItemFpThumbBox","freePlayBgImage","GameItemDelimiterBox","GameItemDetailsWrapperBox","GameItemTitleDefaultBox","GameItemTitleCasino777Box","GameItemTitleBox","GameItemJackpotDefaultBox","GameItemJackpotSICisBox","GameItemJackpotBox","GameItemButtonsAreaBox","GameItemComponent","playBtnText","ClockLastLoginDefaultBox","ClockLastLoginCasino777Box","ClockLastLoginSiBox","ClockLastLoginBox","LastLoginDefaultBox","LastLoginSiBox","LastLoginSICisBox","base06","LastLoginBox","ClockAndLastLoginBoxComponent","ClockAndLastLoginBox","getTimeFormat","_renderLastLoginComponent","lastLoginDisplay","getDateTimeFormat","RegulatoryDataBox","GamblingWarningBox","GamblingWarningComponent","gamblingMessageConfig","gambling_message","Mobilebox","ResponsibleGamingIconsBox","ResponsibleIconsComponent","ageButtonConfig","iconType","responsibleIconsConfig","_renderAgeButton","ageButton","RegulatoryDataComponent","_captureHeaderUpperRef","setHeaderRegulationDataElement","_renderMobileLastLogin","_getRegulatoryContent","LiveCasinoGridItemDrawsBox","LiveCasinoGridItemDrawDefaultBox","drawColor","drawRedItemBackground","drawGreenItemFirstChildBackground","drawRedItemFirstChildBackground","LiveCasinoGridItemDrawCasino777Box","LiveCasinoGridItemDrawMrGreenBox","LiveCasinoGridItemDrawSIBox","LiveCasinoGridItemDrawSICisBox","LiveCasinoGridItemDrawBox","ROULETTE_NUMBERS_MAP","red","green","RouletteDrawsComponent","drawValue","_getDrawColor","LiveCasinoGridDefaultBox","LiveCasinoGridCasino777Box","LiveCasinoGridCasinoSICisBox","LiveCasinoGridBox","LiveCasinoGridItemSkeletonBox","LiveCasinoGridItemSkeletonTitleBox","LiveCasinoGridItemSkeletonWrapperBox","LiveCasinoArenaGrid","_gameElementRef","_gridElementRef","_captureGameElementRef","gameElement","_computeNumberOfGamesInARow","_captureGridElementRef","_cmsBannerPosition","_numberOfGamesPerRow","displayRowPlace","_setCMSBannerPosition","liveTabConfigs","shouldRenderPromoBanner","gameIds","getLiveGames","_renderGridSkeleton","_renderGridItem","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","UsefulLinksListDefaultBox","UsefulLinksListCipBox","UsefulLinksListBox","UsefulLinksListComponent","onItemClick","LiveCasinoGridItemInfoItemDefaultBox","LiveCasinoGridItemInfoItemSIBox","LiveCasinoGridItemInfoItemMrGreenBox","LiveCasinoGridItemInfoItemBox","EmptyBannerContainerBox","EmptyBannerComponent","MediaType","MediaOrientation","MediaPointer","breakpoints","MediaQueryBuilder","_mediaType","w","precision","xsMax","sMax","mMax","lMax","xlMax","minWidth","Portrait","Landscape","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","LobbyWrapperDefaultBox","LobbyWrapperWithoutBackgroundDefaultBox","LobbyWrapperCasino777Box","LobbyWrapperBox","ClockComponentDefaultBox","ClockComponentSICisBox","LobbyGridDefaultBox","LobbyGridBox","LiveCasinoGridItemBox","LiveCasinoGridItemInfobarIconBox","LiveCasinoGridItemThumbnailImageBox","negateNextRule","formatRule","EMBEDDED_HYBRID","MINI_ORBIT","BlankHorizontalSeparatorBox","KEY_NAME","FUNC","FUNC_CB","HYBRID_CB","HYBRID_CB_GLOBAL_NAME","HYBRID_CB_FEATURE_FUNC","SRV","MSG","ERROR","DATA","VAL","DISPLAY_ALSO_FACE_ID","LAZY_PUSH","ODR_DEL_GAMES","VERSION","LN_SERVER","LN_ORG_ID","LN_SESSION_ID","JS_LN_SERVER","TIME_OUT","TIME_OUT_BEFORE_DISPLAY","CLOSE_BY_TIME_OUT","CLOSE_BY_X","CLOSE_NO_CHILL","CLOSE_BY_LOW_DISK_SPACE","FOLDER_STRUCT","FOLDER_SHARED_NAME","CLOSE_X_POS_P","CLOSE_Y_POS_P","CLOSE_X_POS_L","CLOSE_Y_POS_L","MAIL_TO","PORT","KEYBORD","ROTATION","FORCE","WEB_ID","TYPE","PROGRESS_BAR_FAKE","PROGRESS_BAR_REAL","RESOURCE_NAME","X_OF_MENY","GAME_ID","SHARED_FOLDER","SERVICE","FEATURE_CB","ACTION","OPEN_LINK","DEBUG","RELOAD","AUTOLOGIN","SESSIONTIMER","HEADER_HEIGHT","BANK_ID","MIT_ID","PHONE","LEFT","RIGHT","TOP","BOTTOM","SHOW","DP_TO_PX","LOG_CATEGORY","LOG_ACTION","LOG_LABLE","LOG_VALUE","LOG_LEVEL","GAME_LOADING_START","GAME_LOADING_END","GAME_LOADING_CLOSE_BY_X","GAME_LOADING_CLOSE_BY_TIME_OUT","GAME_LOADING_CLOSE_BY_LOW_DISK_SPACE","GAME_LOADING_CLOSE_BY_NO_CHILL","GAME_LOADING_ERROR","CHILL_LOADING_ERROR","CHILL_LOADING","GAME_LOADING_REAL_ODR_STARTED","ON_DEMAND_DELETE_GAMES","LEXIS_NEXIS","SESSION_ID_LOAD_ERROR","SESSION_ID_LOAD_OK","SESSION_ID_REQUEST_SENT","SESSION_ID_CALL","SESSION_ID_LOAD_EMPTY","SESSION_ID_CLOSE_BY_TIME_OUT","LEXIS_NEXIS_CATEGORY","ODR_FOLDERS","SHARED_ONE_FOLDER","SHARED_MANY_FOLDER","SHARED_NONE","SHARED_GGP","ODR_SHARED_GAMES","EMPTY","RED_TIGER","PRAGMATIC_PLAY","PLAY_N_GO","PLAY_TECH","FEATURE_CB_FUNC","HYBRID_WEB_CALL","HYBRID_URL_SCHEME_CALL","HYBRID_PUSH_CALL","HYBRID_GEO_CALL","HYBRID_ON_DEMAND_CALL","HYBRID_ON_DEMAND_NYX_CALL","HYBRID_LOBBY_POP_UP_CALL","HYBRID_FIRE_BASE","HYBRID_NATIVE_LOGS","HYBRID_SERIAL_EXTENTIONS","SERIVCES_FUNC_LIST","WEB_VIEW_WEB_SHOW","WEB_VIEW_SAFARI","WEB_VIEW_SAFARI_PING","WEB_VIEW_ACCOMPLISHED","WEB_VIEW_IS_HTML_COMPILED_GAMES","WEB_VIEW_GET_DP_2_PX","GENERAL_INIT_HYBRID","GENERAL_ALERT","GENERAL_ALERT_D","GENERAL_SET_ROTATION","GENERAL_SET_CB","GENERAL_OPEN_MAIL","GENERAL_OPEN_EXTERNAL_LINK","GENERAL_OPEN_SETTINGS","SERIAL_GET_SERIAL","SERIAL_SET_CB","T3_D_TOUCH_INIT_SHORTCUTS","T3_D_TOUCH_UPDATE_SHORTCUT","T3_D_TOUCH_DELETE_SHORTCUT","T3_D_TOUCH_DEL_ALL_SHORTCUTS","T3_D_TOUCH_GET_LAUNCH_SHORTCUT","TOUCH_ID_SUPPORT_FACE_ID","TOUCH_ID_GET_TOKEN","TOUCH_ID_OPEN","TOUCH_ID_SET_TOKEN","TOUCH_ID_IS_SUPORTED","TOUCH_ID_CLEAR_ALL","TOUCH_ID_PARAMS_FOR_TOKEN","TOUCH_ID_IS_OPEN_SETTINGS_SUPPORTED","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","OPEN_SETTINGS","TOUCH_ID_IOS","TOUCH_ID_ANDROID","hex","opacity","ButtonBox","rounded","hasIcon","hasLabel","iconSize","strokeWidth","lateralPadding","colorSet","bg","elevated","shadow","I_WANT_THE_HOVER_COLORS","rotated45","hoverSet","setKey","ButtonLabelDefaultBox","fontSize","allowLabelWrap","ButtonLabelMrGreenBox","ButtonLabelBox","ButtonIconWrapperBox","$Button","stroke","otherProps","presetValues","baseUIComponents","themePresetDefaults","defaults","iconPlacement","strokeValues","sizeVariantValues","iconSizeValue","renderIcon","Em","withTheme","webpackAsyncContext","__webpack_require__","code","ids","exports","partyJackpotToaster","pendingPlay","urlParam","nightLimitKick","realityCheckGermany","DISRUPTIVE_KICKOFF_MESSAGE_NAME","REALITY_CHECK_GERMANY_MESSAGE_NAME","anchorRef","_getAnchorProps","_renderAnchor","BASE","POP_UP","OPEN_SESSION","FP","OMG_BEHIND","NEXT_GAME","GAME_LOADING_INDICATOR","GAME_FRAME_LOADER","GAME_FRAME_FP","MINI_CASHIER","LOGIN","EXTERNAL_LINK","TEMP_ACCOUNT","MESSAGE","TOUCH_ID_POPUP","LOCK","SPAIN_SUMMARY_MESSAGE","GAMES_QUESTIONNAIRE","WRAPPER_DEFAULT_INDEX","dialogTextMixin","DialogBoldTextBox","DialogDimmedTextBox","COM","ITALY","SPAIN","NEVADA","GIB","DELAWARE","DK","ROMANIA","PORTUGAL","SWEDEN","MALTA","SH","REGULATION_SUFFIX","TEMP_ACCOUNT_STATUS","APPROVED","DOCUMENTS_NOT_RECEIVED","PENDING_VERIFICATION","BRANDS","NJ888","CANADA","base01LightMedium","base07","base08","base09","base10","ClientThemeName","CasinoHarrahs","CasinoWsop","CasinoWsopCip","CasinoBallysDover","CasinoDelawarepark","CasinoHarrington","CasinoSI","CasinoSICis","CasinoMrGreen"],"mappings":"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hC,IACA,EACA,EACA,IAED,6BAA8B,CAC7B,IACA,EACA,EACA,IAED,4BAA6B,CAC5B,IACA,EACA,EACA,GACA,IAED,wBAAyB,CACxB,IACA,EACA,EACA,GACA,IAED,8BAA+B,CAC9B,IACA,EACA,EACA,IAED,0BAA2B,CAC1B,IACA,EACA,EACA,KAGF,SAAS80P,EAAoB1rG,GAC5B,IAAI2rG,EAAoBnwQ,EAAEob,EAAKopJ,GAC9B,OAAO7nJ,QAAQwa,UAAUpqB,MAAK,WAC7B,IAAIs3C,EAAI,IAAItwB,MAAM,uBAAyBywI,EAAM,KAEjD,MADAngH,EAAE+rN,KAAO,mBACH/rN,KAIR,IAAIgsN,EAAMj1P,EAAIopJ,GAAMjlJ,EAAK8wP,EAAI,GAC7B,OAAO1zP,QAAQokD,IAAIsvM,EAAI9wQ,MAAM,GAAG6b,IAAI+0P,EAAoB9rN,IAAIt3C,MAAK,WAChE,OAAOojQ,EAAoB5wP,MAG7B2wP,EAAoBxgP,KAAO,WAC1B,OAAO5wB,OAAO4wB,KAAKtU,IAEpB80P,EAAoB3wP,GAAK,IACzBiY,EAAO84O,QAAUJ,G,oBCpGjB,IAAI90P,EAAM,CACT,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,KAED,WAAY,CACX,KAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QA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","file":"static/js/orbit-main.301afb3a.chunk.js","sourcesContent":["import styled, { css } from \"styled-components\";\r\n\r\ntype FlexAlignItemsProp = \"flex-start\" | \"flex-end\" | \"stretch\" | \"center\" | \"baseline\";\r\ntype FlexJustifyContentProp = \"flex-start\" | \"flex-end\" | \"center\" | \"space-between\" | \"space-around\" | \"space-evenly\";\r\n\r\n/* styled components css interpolations */\r\n\r\nexport const flexRowContainerMixin = css`\r\n display: flex;\r\n flex-direction: row;\r\n`;\r\nexport const flexRowReverseContainerMixin = css`\r\n display: flex;\r\n flex-direction: row-reverse;\r\n`;\r\nexport const flexColumnContainerMixin = css`\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nexport const flexAlignItemsMixin = (props: {alignItems?: FlexAlignItemsProp;}) => css`\r\n align-items: ${props.alignItems || \"unset\"};\r\n`;\r\nexport const flexJustifyContentMixin = (props: {justifyContent?: FlexJustifyContentProp;}) => css`\r\n justify-content: ${props.justifyContent || \"unset\"};\r\n`;\r\nexport const flexCenterAlignItemsMixin = css`\r\n ${flexAlignItemsMixin({alignItems: \"center\"})}\r\n`;\r\n\r\nexport const flexGrowItem = (props: {flexBasis?: string;}) => css`\r\n flex: 1 0 ${props.flexBasis || \"auto\"};\r\n`;\r\nexport const flexFixedSizeItem = css`\r\n flex: 0 0 auto;\r\n`;\r\nexport const flexAdaptiveSizeItem = css`\r\n flex: 1 1 auto;\r\n`;\r\n\r\n/* styled based components, to be used as is or as Base to be extended */\r\n\r\nexport const FlexGrowItemBox = styled.div`\r\n ${flexGrowItem}\r\n`;\r\n\r\nexport const FlexContainerBox = styled.div<{\r\n alignItems?: FlexAlignItemsProp;\r\n justifyContent?: FlexJustifyContentProp;\r\n}>`\r\n ${flexRowContainerMixin}\r\n ${flexAlignItemsMixin}\r\n ${flexJustifyContentMixin}\r\n`;\r\n","export 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 enum GAME_GROUP {\r\n ARCADE = 209,\r\n BACCARAT = 11,\r\n BACKGAMMONN = 40,\r\n BLACKJACK = 12,\r\n CARRIBEAN_POKER = 18,\r\n CRAPS = 10,\r\n CRAZY_BLACKJACK = 20,\r\n HEAD_TO_HEAD = 207,\r\n HI_LO = 202,\r\n KENO = 16,\r\n LIVE_CASINO = 201,\r\n PAI_GOW_POKER = 17,\r\n POKER = 100,\r\n POKER_TEMPLATE_GAMES = 206,\r\n POOLS = 212,\r\n POWER_VIDEO_POKER = 19,\r\n ROULETTE = 13,\r\n ROULETTE_LIKE = 203,\r\n SCRATCH_CARD = 204,\r\n SLOT = 14,\r\n VIDEO_SLOT = 30,\r\n VIDEO_POKER = 15,\r\n VIDEO_SLOT_BONUS_GAME = 31\r\n}\r\n","export const LIVE_CASINO_ARENA_NAME = 'liveCasino';\r\nexport const NEW_LIVE_CASINO_ARENA_NAME = 'newLiveCasino';\r\nexport const CIP_ALL_GAMES_ARENA_NAME = 'cipAllGames';\r\nexport const SLOTS_ARENA_NAME = 'slots';\r\nexport const CASINO_GAMES_ARENA_NAME = 'casinoGames';\r\nexport const JACKPOTS_ARENA_NAME = 'jackpots';\r\nexport const EXCLUSIVE_ARENA_NAME = 'exclusive888Games';\r\nexport const SCRATCH_CARDS_ARENA_NAME = 'scratchCards';\r\nexport const VIDEO_POKER_ARENA_NAME = 'videoPoker';\r\nexport const INSTANT_WIN_GAMES_ARENA_NAME = 'instantWinGames';\r\nexport const BLACKJACK_ARENA_NAME = 'blackjack';\r\nexport const VIRTUAL_SPORT_ARENA_NAME = 'virtualSport';\r\nexport const ROULETTE_ARENA_NAME = 'roulette';\r\nexport const PROGRESSIVE_SLOTS_ARENA_NAME = 'progressiveSlots';\r\nexport const NEW_GAMES_ARENA_NAME = 'newGames';\r\nexport const HOME_PAGE_ARENA = 'homePage';\r\n\r\nexport const ALL_ARENAS = Array.of(\r\n LIVE_CASINO_ARENA_NAME,\r\n NEW_LIVE_CASINO_ARENA_NAME,\r\n CIP_ALL_GAMES_ARENA_NAME,\r\n SLOTS_ARENA_NAME,\r\n CASINO_GAMES_ARENA_NAME,\r\n JACKPOTS_ARENA_NAME,\r\n EXCLUSIVE_ARENA_NAME,\r\n SCRATCH_CARDS_ARENA_NAME,\r\n VIDEO_POKER_ARENA_NAME,\r\n INSTANT_WIN_GAMES_ARENA_NAME,\r\n BLACKJACK_ARENA_NAME,\r\n VIRTUAL_SPORT_ARENA_NAME,\r\n ROULETTE_ARENA_NAME,\r\n PROGRESSIVE_SLOTS_ARENA_NAME,\r\n NEW_GAMES_ARENA_NAME,\r\n HOME_PAGE_ARENA,\r\n);\r\n","import styled from 'styled-components';\r\nimport {flexColumnContainerMixin, flexRowReverseContainerMixin} from '../../../../themes/architecture/css-helpers/flex';\r\n\r\nexport const ButtonsWrapperDefaultBox = styled.div<{buttonsOnSeparateLines?: boolean;}>`\r\n max-width: 289px;\r\n width: 100%;\r\n margin: 5rem auto 0;\r\n ${({buttonsOnSeparateLines}) => buttonsOnSeparateLines ? flexColumnContainerMixin : flexRowReverseContainerMixin }\r\n`;\r\n","import styled from 'styled-components';\r\nimport {flexGrowItem, flexFixedSizeItem} from '../../../../themes/architecture/css-helpers/flex';\r\n\r\nexport const ButtonWrapperDefaultBox = styled.div<{buttonsOnSeparateLines?: boolean; flexBasis?: string;}>`\r\n ${flexGrowItem}\r\n width: ${({buttonsOnSeparateLines}) => buttonsOnSeparateLines ? \"100%\" : \"40%\" };\r\n`;\r\n\r\nexport const ButtonSpacerDefaultBox = styled.div`\r\n ${flexFixedSizeItem}\r\n width: 1rem;\r\n height: 1.5rem;\r\n`;\r\n","import styled from 'styled-components';\r\n\r\nexport const LinkActionBox = styled.button`\r\n margin: 0 auto;\r\n\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n background: transparent;\r\n padding: 5px 0px 0px;\r\n border: 0;\r\n border-radius: 0;\r\n line-height: 1;\r\n ${({theme}) => theme.font.presets.body};\r\n font-size: 1.6rem;\r\n font-weight: 700;\r\n color: ${({theme}) => theme.colors.brandPrimary};\r\n text-decoration: underline;\r\n cursor: pointer;\r\n`;\r\n","import styled from 'styled-components';\r\n\r\nexport const LinkWrapperDefaultBox = styled.div`\r\n width: 100%;\r\n margin-top: 3rem;\r\n text-align: center;\r\n`;\r\n","import React from 'react';\r\nimport { Button } from '../../basic-ui-components/button/base/button.component';\r\nimport {ButtonsWrapperDefaultBox} from './boxes/actions/buttons-wrapper.box';\r\nimport {ButtonWrapperDefaultBox, ButtonSpacerDefaultBox} from './boxes/actions/button-wrapper.box';\r\nimport {LinkActionBox} from './boxes/actions/link-action.box';\r\nimport {LinkWrapperDefaultBox} from './boxes/actions/link-wrapper.box';\r\nimport classNames from \"classnames\";\r\nimport {CyClass} from \"../../../common/cy-classes\";\r\n\r\n\r\nexport interface IModalDialogActionProps {\r\n text: string;\r\n onClick(): void;\r\n className?: string;\r\n disabled?:boolean;\r\n}\r\nexport interface IModalDialogButtonsComponentProps {\r\n buttonsOnSeparateLines?: boolean;\r\n primaryAction: IModalDialogActionProps;\r\n secondaryAction?: IModalDialogActionProps & {useWarningPreset?: boolean};\r\n linkAction?: IModalDialogActionProps;\r\n className?: string;\r\n}\r\n\r\nexport class ModalDialogActionsComponent extends React.Component {\r\n render() {\r\n return <>\r\n \r\n \r\n \r\n {this.props.primaryAction.text}\r\n \r\n \r\n {this.props.secondaryAction ? <>\r\n \r\n {this.props.secondaryAction.text}\r\n \r\n : null}\r\n \r\n {this.props.linkAction ? \r\n {this.props.linkAction.text}\r\n : null}\r\n ;\r\n }\r\n}\r\n","import {grayColors} from \"../../architecture/gray-colors\";\r\n\r\nexport const baseColors = {\r\n base01: \"#015536\",\r\n base01Contrast: \"#262627\",\r\n base01Dark: \"#05372C\",\r\n base01Light: \"#41B169\",\r\n\r\n base02: \"#047C4C\",\r\n base02Contrast: \"\",\r\n base02Dark: \"\",\r\n base02Light: \"\",\r\n\r\n base03: \"#EBEDEF\",\r\n base03Contrast: \"\",\r\n base03Dark: \"\",\r\n base03Light: \"\",\r\n\r\n base04: \"linear-gradient(90deg, #F1C141 0%, #F9F19A 48.96%, #F1C141 100%)\",\r\n base05: \"#F12727\",\r\n gold: \"#F1C141\",\r\n yellow: \"#F9F19A\",\r\n ...grayColors\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}","/** 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\tOleoScript_Bold_ttf: new Asset(\"fonts/OleoScript-Bold.ttf\", {}),\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\tMontserrat_VariableFont_ttf: new Asset(\"fonts/Montserrat-VariableFont.ttf\", {'mrgreen_ger': true,'mrgreen_se': 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\tdeposit_header_icon_png: new Asset(\"images/deposit_header_icon.png\", {'mrgreen_ger': true,'mrgreen_se': true}),\n\t\tempty_image_sq_gif: new Asset(\"images/empty-image-sq.gif\", {}),\n\t\tempty_image_gif: new Asset(\"images/empty-image.gif\", {}),\n\t\texclusives_list_icon_png: new Asset(\"images/exclusives_list_icon.png\", {'si_mi': true}),\n\t\tfull_screen_off_png: new Asset(\"images/full-screen-off.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\tfull_screen_on_png: new Asset(\"images/full-screen-on.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\tgame_default_background_png: new Asset(\"images/game_default_background.png\", {}),\n\t\thorizontal_line_glow_mobile_png: new Asset(\"images/horizontal-line-glow-mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\thorizontal_line_glow_png: new Asset(\"images/horizontal-line-glow.png\", {'777_com': true}),\n\t\tidle_recomm_toaster_bg_png: new Asset(\"images/idle-recomm-toaster-bg.png\", {}),\n\t\tinfoBTN_png: new Asset(\"images/infoBTN.png\", {}),\n\t\tios_share_svg: new Asset(\"images/ios-share.svg\", {}),\n\t\tjackpot_widget_title_crown_png: new Asset(\"images/jackpot_widget_title_crown.png\", {'777_com': true,'wsop_nj': true}),\n\t\tlamp_png: new Asset(\"images/lamp.png\", {}),\n\t\tlive_tables_top_border_png: new Asset(\"images/live-tables-top-border.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tparty_jackpot_logo_png: new Asset(\"images/party_jackpot_logo.png\", {}),\n\t\tplaceholder_game_icon_png: new Asset(\"images/placeholder_game_icon.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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\", {'si_mi': true}),\n\t\tsplash_page_logo_93_154_png: new Asset(\"images/splash_page_logo-93-154.png\", {'mrgreen_ger': true,'mrgreen_se': true}),\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_91_151_png: new Asset(\"images/splash_page_logo-cis-91-151.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,'mrgreen_ger': true,'mrgreen_se': 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_777logo_png: new Asset(\"images/777logo.png\", {'777_com': 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,'mrgreen_ger': true,'mrgreen_se': true,'si_mi': true,'wsop_nj': true}),\n\t\thome_content_banner_png: new Asset(\"images/home-content-banner.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\thome_page_top_banner_png: new Asset(\"images/home-page-top-banner.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrington_de': true,'si_mi': true}),\n\t\tinfo_img_png: new Asset(\"images/info-img.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tjackpots_bg_png: new Asset(\"images/jackpots-bg.png\", {'777_com': true}),\n\t\tlang_reg_icon_png: new Asset(\"images/lang_reg_icon.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tlang_selected_icon_png: new Asset(\"images/lang_selected_icon.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tletter_info_png: new Asset(\"images/letter-info.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tletter_play_png: new Asset(\"images/letter-play.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tletter_design_png: new Asset(\"images/letter_design.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tlive_arena_banner_png: new Asset(\"images/live-arena-banner.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrington_de': true,'si_mi': true}),\n\t\tlive_chat_png: new Asset(\"images/live-chat.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tlive_content_banner_png: new Asset(\"images/live-content-banner.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tnotification_off_png: new Asset(\"images/notification off.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tonly_real_money_game_warning_png: new Asset(\"images/only-real-money-game-warning.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrington_de': true,'si_mi': true}),\n\t\tpay_icon_png: new Asset(\"images/pay-icon.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tswiper_layout_bottom_shaddow_png: new Asset(\"images/swiper-layout-bottom-shaddow.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tuser_menu_box_icon_png: new Asset(\"images/user-menu-box-icon.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'mrgreen_ger': true,'mrgreen_se': true,'si_mi': true,'wsop_nj': true}),\n\t\tuser_png: new Asset(\"images/user.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t_888casinologo_dark_png: new Asset(\"images/888casinologo-dark.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\t_888casinologo_png: new Asset(\"images/888casinologo.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,'mrgreen_ger': true,'mrgreen_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\tmrgreenlogo_png: new Asset(\"images/mrgreenlogo.png\", {'mrgreen_ger': true,'mrgreen_se': true}),\n\t\tsi_island_resort_png: new Asset(\"images/si-island-resort.png\", {'si_mi': true}),\n\t\tsi_sports_book_png: new Asset(\"images/si-sports-book.png\", {'si_mi': true}),\n\t\tsi_logo_mobile_png: new Asset(\"images/si_logo_mobile.png\", {'si_mi': true}),\n\t\tsi_logo_pc_png: new Asset(\"images/si_logo_pc.png\", {'si_mi': true}),\n\t\tanimated_icons_poc: {\n\t\t\tmillionaire_genie_megaways: {\n\t\t\t\tgenie_megaways_v1_atlas: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v1.atlas\", {}),\n\t\t\t\tgenie_megaways_v1_json: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v1.json\", {}),\n\t\t\t\tgenie_megaways_v1_png: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v1.png\", {}),\n\t\t\t\tgenie_megaways_v2_atlas: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v2.atlas\", {}),\n\t\t\t\tgenie_megaways_v2_json: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v2.json\", {}),\n\t\t\t\tgenie_megaways_v2_png: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v2.png\", {}),\n\t\t\t\tgenie_megaways_v3_atlas: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v3.atlas\", {}),\n\t\t\t\tgenie_megaways_v3_json: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v3.json\", {}),\n\t\t\t\tgenie_megaways_v3_png: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v3.png\", {}),\n\t\t\t\tgenie_megaways_v4_atlas: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v4.atlas\", {}),\n\t\t\t\tgenie_megaways_v4_json: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v4.json\", {}),\n\t\t\t\tgenie_megaways_v4_png: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v4.png\", {})\n\t\t\t}\n\t\t},\n\t\tarena_link_to_offer: {\n\t\t\tClose_BTN_green_svg: new Asset(\"images/arena-link-to-offer/Close_BTN_green.svg\", {}),\n\t\t\tGift_BTN_green_svg: new Asset(\"images/arena-link-to-offer/Gift_BTN_green.svg\", {})\n\t\t},\n\t\tbrowser_icons: {\n\t\t\tchrome_icon_PNG: new Asset(\"images/browser-icons/chrome-icon.PNG\", {}),\n\t\t\tmicrosoft_edge_png: new Asset(\"images/browser-icons/microsoft-edge.png\", {}),\n\t\t\tmozilla_firefox_png: new Asset(\"images/browser-icons/mozilla-firefox.png\", {})\n\t\t},\n\t\tburnout: {\n\t\t\tburnout_animation_atlas: new Asset(\"images/burnout/burnout_animation.atlas\", {}),\n\t\t\tburnout_animation_json: new Asset(\"images/burnout/burnout_animation.json\", {}),\n\t\t\tburnout_animation_png: new Asset(\"images/burnout/burnout_animation.png\", {}),\n\t\t\tburnout_animation_last_frame_png: new Asset(\"images/burnout/burnout_animation_last_frame.png\", {})\n\t\t},\n\t\tdaily_deal: {\n\t\t\tdaily_deal_chest_glow_png: new Asset(\"images/daily-deal/daily-deal-chest-glow.png\", {}),\n\t\t\tdaily_deal_chest_halo_png: new Asset(\"images/daily-deal/daily-deal-chest-halo.png\", {}),\n\t\t\tdaily_deal_chest_text_strip_svg: new Asset(\"images/daily-deal/daily-deal-chest-text-strip.svg\", {}),\n\t\t\tdaily_deal_chest_png: new Asset(\"images/daily-deal/daily-deal-chest.png\", {})\n\t\t},\n\t\tf2p: {\n\t\t\tfreeToPlay_atlas: new Asset(\"images/f2p/freeToPlay.atlas\", {'si_mi': true}),\n\t\t\tfreeToPlay_json: new Asset(\"images/f2p/freeToPlay.json\", {'si_mi': true}),\n\t\t\tfreeToPlay_png: new Asset(\"images/f2p/freeToPlay.png\", {'si_mi': true})\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,'mrgreen_ger': true,'mrgreen_se': true,'si_mi': true}),\n\t\t\tfreeplay_indicator_selected_png: new Asset(\"images/game_frame/freeplay_indicator_selected.png\", {'777_com': true,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': true,'si_mi': true}),\n\t\t\treal_left_corner_png: new Asset(\"images/game_frame/real_left_corner.png\", {'777_com': true,'mrgreen_ger': true,'mrgreen_se': true,'si_mi': true}),\n\t\t\treal_right_corner_png: new Asset(\"images/game_frame/real_right_corner.png\", {'777_com': true,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': true,'si_mi': true}),\n\t\t\thistory_calendar_png: new Asset(\"images/history/history_calendar.png\", {'777_com': true,'mrgreen_ger': true,'mrgreen_se': 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\tuser: {\n\t\t\tpost_login_mobile_png: new Asset(\"images/user/post-login-mobile.png\", {'777_com': true,'ballysdover_de': true,'harrahs_nj': true,'mrgreen_ger': true,'mrgreen_se': true,'si_mi': true,'wsop_nj': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_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,'mrgreen_ger': true,'mrgreen_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,'mrgreen_ger': true,'mrgreen_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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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\texclusive_arena_banner_mobile_png: new Asset(\"images/banners/exclusive_arena_banner_mobile.png\", {'mrgreen_ger': true,'mrgreen_se': true}),\n\t\t\texclusive_arena_banner_pc_png: new Asset(\"images/banners/exclusive_arena_banner_pc.png\", {'mrgreen_ger': true,'mrgreen_se': true}),\n\t\t\texclusive_arena_banner_tablet_png: new Asset(\"images/banners/exclusive_arena_banner_tablet.png\", {'mrgreen_ger': true,'mrgreen_se': 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\tvip_diamond_logo_png: new Asset(\"images/logos/diamond-vip/vip-diamond-logo.png\", {'mrgreen_ger': true,'mrgreen_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\tvip_gold_logo_png: new Asset(\"images/logos/gold-vip/vip-gold-logo.png\", {'mrgreen_ger': true,'mrgreen_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\tvip_platinum_logo_png: new Asset(\"images/logos/platinum-vip/vip-platinum-logo.png\", {'mrgreen_ger': true,'mrgreen_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\tvip_regular_logo_png: new Asset(\"images/logos/reg-vip/vip-regular-logo.png\", {'mrgreen_ger': true,'mrgreen_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,'mrgreen_ger': true,'mrgreen_se': 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,'si_mi': 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,'si_mi': 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,'si_mi': 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,'si_mi': 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,'si_mi': 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,'si_mi': 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,'si_mi': 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,'si_mi': 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,'si_mi': 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,'si_mi': true})\n\t\t\t\t},\n\t\t\t\thistory: {\n\t\t\t\t\thistory_calendar_png: new Asset(\"images/mini_orbit/cis/history/history_calendar.png\", {'si_mi': true})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tvideos: {\n\t\tharmonium_mp4: new Asset(\"videos/harmonium.mp4\", {})\n\t},\n\tgames: {\n\t\tgame_icon_placeholder_png: new Asset(\"games/game_icon_placeholder.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'mrgreen_ger': true,'mrgreen_se': true,'si_mi': true,'wsop_nj': true}),\n\t\tabout: {\n\t\t\teng_about_json: new Asset(\"games/about/eng_about.json\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'mrgreen_ger': true,'mrgreen_se': true,'si_mi': true,'wsop_nj': true})\n\t\t},\n\t\tpreview_default_images: {\n\t\t\tdefault_game_strip_card_and_table_png: new Asset(\"games/preview_default_images/default_game_strip_card_and_table.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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,'mrgreen_ger': true,'mrgreen_se': 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};","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 enum CashierSessionTypes {\r\n DEPOSIT= 1,\r\n TRANSACTIONS_HISTORY= 2,\r\n WITHDRAWAL= 4,\r\n ReverseWithdrawal = 6,\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","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 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","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","export const ITEM_WRAPPER_BOX = 'item-wrapper-box';\r\nexport const RED = 'red';\r\nexport const GREEN = 'green';","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 * 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();","import styled from \"styled-components\";\r\n\r\nexport const GameJackpotDefaultBox = styled.div`\r\n width: 100%;\r\n color: ${props => props.theme.colors.moneyColor};\r\n font-weight: 600;\r\n`","import styled from \"styled-components\";\r\nimport {GameJackpotDefaultBox} from \"./game-jackpot.default.box\";\r\n\r\nexport const GameJackpotSIBox = styled(GameJackpotDefaultBox)`\r\n border-left: solid 5px ${props => props.theme.colors.brandSecondary};\r\n border-top-left-radius: 2px;\r\n border-bottom-left-radius: 2px;\r\n padding-left: 3px;\r\n`","import { GameJackpotDefaultBox } from \"./game-jackpot.default.box\";\r\nimport { styledByTheme } from \"../../../../themes/architecture/styled-by-theme\";\r\nimport { GameJackpotSIBox } from \"./game-jackpot.si.box\";\r\n\r\nexport const GameJackpotBox = styledByTheme(GameJackpotDefaultBox)\r\n .forSI(GameJackpotSIBox)\r\n .forSICis(GameJackpotSIBox)\r\n .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 background-color: ${props => props.theme.colors.brandSecondary};\r\n color: ${props => props.theme.colors.moneyColor};\r\n padding: 2px 0;\r\n border-top-right-radius: 2px;\r\n border-bottom-right-radius: 2px;\r\n`;","import styled from \"styled-components\";\r\nimport {GameJackpotValueDefaultBox} from \"./game-jackpot-value.default.box\";\r\n\r\nexport const GameJackpotValueMrGreenBox = styled(GameJackpotValueDefaultBox)`\r\n width: 100%;\r\n background: ${props => props.theme.colors.brandPrimaryDark};\r\n box-shadow: 0px 0px 0px rgba(1, 85, 54, 0.6), inset 0px 0px 20px rgba(255, 255, 255, 0.1), inset 0px 0px 10px ${props => props.theme.colors.brandSecondary};\r\n color: ${props => props.theme.colors.moneyColor};\r\n`;","import styled from \"styled-components\";\r\nimport { GameJackpotValueSIBox } from \"./game-jackpot-value.si.box\";\r\n\r\nexport const GameJackpotValueSICisBox = styled(GameJackpotValueSIBox)`\r\n font-size: 11px;\r\n letter-spacing: 0.44px;\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\nimport {GameJackpotValueMrGreenBox} from \"./game-jackpot-value.mrgreen.box\";\r\nimport { GameJackpotValueSICisBox } from \"./game-jackpot-value.siCis.box\";\r\n\r\nexport const GameJackpotValueBox = styledByTheme(GameJackpotValueDefaultBox)\r\n .forSI(GameJackpotValueSIBox)\r\n .forSICis(GameJackpotValueSICisBox)\r\n .forMrGreen(GameJackpotValueMrGreenBox)\r\n .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 {BannerContainerDefaultBox} from \"./banner-container.default.box\";\r\n\r\nexport const BannerContainerBox = BannerContainerDefaultBox;","import styled, {css} from \"styled-components\";\r\nimport {LOBBY_PAGE} from \"../../../themes/css-global-classes\";\r\n\r\nexport interface IBannerContainerBoxProps {\r\n minHeight?: string;\r\n}\r\n\r\nexport const BannerContainerDefaultBox = styled.div`\r\n position: relative;\r\n width: 100%;\r\n overflow-x: hidden;\r\n\r\n .${LOBBY_PAGE} & {\r\n z-index: 2;\r\n background-color: ${props => props.theme.colors.background}\r\n }\r\n\r\n ${props => props.minHeight && css`\r\n min-height: ${props.minHeight};\r\n`};\r\n`;\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {CmsBannerId} from '../../services/cms/cms-banners/cm-banner-id/cms-banner-id';\r\nimport {observer} from 'mobx-react';\r\nimport {EmptyBannerDefinition} from '../../services/cms/cms-banners/banner-definition/empty-banner-definition';\r\nimport {IBannerDefinition} from '../../services/cms/cms-banners/banner-definition/banner-definition.interface';\r\nimport {BannerContainerBox} from \"./banner-container/banner-container.box\";\r\n\r\nexport interface CmsBannerComponentProps {\r\n componentID: string;\r\n templateID: string;\r\n fallbackComponent: string;\r\n showPlaceholder: boolean;\r\n className?: string;\r\n minHeight?: string;\r\n}\r\n\r\n@observer\r\nexport class CmsBannerComponent extends OrbitComponent {\r\n componentDidMount() {\r\n super.componentDidMount();\r\n this.services.cmsBanners.loadBanner(this._bannerId);\r\n }\r\n\r\n componentDidUpdate() {\r\n this.services.cmsBanners.loadBanner(this._bannerId);\r\n }\r\n\r\n private get _bannerId(): CmsBannerId {\r\n return new CmsBannerId(this.props.componentID, this.props.templateID, this.props.fallbackComponent);\r\n }\r\n\r\n private get _bannerDefinition(): IBannerDefinition {\r\n let contentDefinition = this.services.cmsBanners.bannersMap[this._bannerId.key];\r\n if (contentDefinition) {\r\n return contentDefinition;\r\n }\r\n\r\n return new EmptyBannerDefinition();\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n \r\n {\r\n this._bannerDefinition.render({\r\n showPlaceholder: this.props.showPlaceholder,\r\n minHeight: this.props.minHeight\r\n })\r\n }\r\n \r\n );\r\n }\r\n}","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","export enum BalanceType {\r\n CASH = \"cash\",\r\n BONUS = \"bonus\",\r\n BOTH = \"both\"\r\n}\r\n","\r\nexport enum GermanyResponsibleGamingButtonPlacement {\r\n inGame = 0,\r\n inDetailedHistory = 1\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}","/**\r\n * Created by andreyna on 1/26/2017.\r\n */\r\nconst MEMBERSHIP_POST_ACTIONS = {\r\n PLAY: '1',\r\n DEPOSIT: '2',\r\n BACK: '3',\r\n UPLOAD_DOCUMENTS_CASHIER: '7',\r\n REGISTRATION_COMPLETED: '8',\r\n OPEN_BANK_ID: '64',\r\n DOWNLOAD_APP: '68',\r\n STORE_REGISTRATION_COOKIES_DATA:'69',\r\n SHOW_LOGIN: '73',\r\n UPLOAD_DOCUMENTS_IV: '75'\r\n};\r\n\r\nconst REGISTRATION_DATA_KEY = 'storeRegistrationData';\r\n\r\nexport {MEMBERSHIP_POST_ACTIONS, REGISTRATION_DATA_KEY};","import {ButtonSizeVariant} from \"../../../basic-ui-components/button/base/button-props.interface\";\r\nimport {IServiceFactory} from \"../../../services/service-factory.interface\";\r\nimport React from \"react\";\r\nimport {BlankHorizontalSeparatorBox} from \"../../../basic-components/blank-separator/blank-horizontal-separator.box\";\r\n\r\nexport function getButtonSizeVariant(services: IServiceFactory): ButtonSizeVariant {\r\n if(services.mediaQuery.lAndBelow) {\r\n return \"small\";\r\n } else {\r\n return \"regular\";\r\n }\r\n}\r\n\r\nexport function getButtonsSeparator(services: IServiceFactory): React.ReactElement {\r\n return ()\r\n}","import styled from \"styled-components\";\r\nimport {GAMING_HISTORY_PAGE, NEW_LIVE_CASINO_PAGE, TIPPING_HISTORY_PAGE} from \"../../../../themes/css-global-classes\";\r\n\r\nexport const TopBannerDefaultBox = styled.div`\r\n position: relative;\r\n width: 100%;\r\n transition: all 0.03s ease-in-out;\r\n padding-bottom: calc(200 / 1750 * 100%);\r\n\r\n .${NEW_LIVE_CASINO_PAGE} & {\r\n padding-bottom: calc(204 / 1712 * 100%);\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n padding-bottom: calc(165 / 1024 * 100%);\r\n .${NEW_LIVE_CASINO_PAGE} &, .${GAMING_HISTORY_PAGE} &, .${TIPPING_HISTORY_PAGE} &{\r\n padding-bottom: calc(122 / 1024 * 100%);\r\n }\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n padding-bottom: calc(105 / 414 * 100%);\r\n .${GAMING_HISTORY_PAGE} &, .${TIPPING_HISTORY_PAGE} &{\r\n padding-bottom: calc(77 / 600 * 100%);\r\n }\r\n .${NEW_LIVE_CASINO_PAGE} & {\r\n padding-bottom: calc(77 / 414 * 100%);\r\n }\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {NEW_LIVE_CASINO_PAGE} from \"../../../../themes/css-global-classes\";\r\n\r\nexport const TopBanner777Box = styled.div`\r\n position: relative;\r\n width: 100%;\r\n padding-bottom: calc(250 / 1750 * 100%);\r\n \r\n .${NEW_LIVE_CASINO_PAGE} & {\r\n padding-bottom: calc(200 / 1690 * 100%);\r\n }\r\n \r\n \r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n padding-bottom: calc(215 / 1024 * 100%);\r\n \r\n }\r\n \r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n padding-bottom: calc(155 / 414 * 100%);\r\n \r\n .${NEW_LIVE_CASINO_PAGE} & {\r\n padding-bottom: calc(77 / 375 * 100%);\r\n }\r\n }\r\n \r\n`;","import styled from \"styled-components\";\r\nimport { TopBannerDefaultBox } from './top-banner.default.box'\r\nimport {NEW_LIVE_CASINO_PAGE} from \"../../../../themes/css-global-classes\";\r\n\r\nexport const TopBannerSIBox = styled(TopBannerDefaultBox)`\r\n @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n padding-bottom: calc(165 / 1024 * 100%);\r\n .${NEW_LIVE_CASINO_PAGE} & {\r\n padding-bottom: calc(165 / 1024 * 100%);\r\n }\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n padding-bottom: calc(100 / 414 * 100%);\r\n .${NEW_LIVE_CASINO_PAGE} & {\r\n padding-bottom: calc(100 / 414 * 100%);\r\n }\r\n }\r\n\r\n background-color: ${({theme}) => theme.colors.backgroundDark};\r\n`;","import styled from \"styled-components\";\r\nimport {TopBannerDefaultBox} from \"./top-banner.default.box\";\r\nimport {NEW_LIVE_CASINO_PAGE} from \"../../../../themes/css-global-classes\";\r\n\r\nexport const TopBannerMrGreenBox = styled(TopBannerDefaultBox)`\r\n\r\n .${NEW_LIVE_CASINO_PAGE} & {\r\n padding-bottom: calc(200 / 1750 * 100%);\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n .${NEW_LIVE_CASINO_PAGE} &{\r\n padding-bottom: calc(260 / 1024 * 100%);\r\n }\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n .${NEW_LIVE_CASINO_PAGE} & {\r\n padding-bottom: calc(105 / 414 * 100%);\r\n }\r\n }\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\nimport {TopBannerMrGreenBox} from \"./top-banner.mrgreen.box\";\r\n\r\nexport const TopBannerBox = styledByTheme(TopBannerDefaultBox)\r\n .forCasino777(TopBanner777Box)\r\n .forSI(TopBannerSIBox)\r\n .forMrGreen(TopBannerMrGreenBox)\r\n .apply();","import {TopBannerImageDefaultBox} from \"./top-banner-image.default.box\";\r\n\r\nexport const TopBannerImageBox = TopBannerImageDefaultBox;","import styled from \"styled-components\";\r\nimport { Image } from \"../../../raw-components/image/image\";\r\n\r\nexport const TopBannerImageDefaultBox = styled(Image)`\r\n position: absolute;\r\n width: 100%;\r\n height: auto;\r\n bottom: 0;\r\n`;","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../themes/architecture/styled-by-device\";\r\nimport {NEW_LIVE_CASINO_PAGE} from \"../../../../themes/css-global-classes\";\r\nimport { Image } from \"../../../raw-components/image/image\";\r\n\r\nconst PCBox = styled(Image)``;\r\n\r\nconst MobileBox = styled(Image)`\r\n .${NEW_LIVE_CASINO_PAGE} & {\r\n max-height: 40px;\r\n }\r\n`;\r\n\r\nexport const TopBannerLogoImageDefaultBox = styledByDevice(PCBox, MobileBox);","import styled from \"styled-components\";\r\nimport {LIVE_CASINO_PAGE} from \"../../../../themes/css-global-classes\";\r\nimport {TopBannerLogoImageDefaultBox} from \"./top-banner-logo-image.default.box\";\r\n\r\nexport const TopBannerLogoImageCasino777Box = styled(TopBannerLogoImageDefaultBox)`\r\n .${LIVE_CASINO_PAGE} &{\r\n display:none;\r\n }\r\n`;","import {TopBannerLogoImageDefaultBox} from \"./top-banner-logo-image.default.box\";\r\nimport {styledByTheme} from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {TopBannerLogoImageCasino777Box} from \"./top-banner-logo-image.casino777.box\";\r\n\r\nexport const TopBannerLogoImageBox = styledByTheme(TopBannerLogoImageDefaultBox).forCasino777(TopBannerLogoImageCasino777Box).apply() ;\r\n","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../themes/architecture/styled-by-device\";\r\n\r\nconst DefaultBox = styled.h1`\r\n font-weight: 300;\r\n ${({theme}) => theme.font.presets.medium};\r\n color: ${props => props.theme.colors.textLight};\r\n`;\r\n\r\nconst PCBox = styled(DefaultBox)`\r\n font-size: 2rem;\r\n text-transform: capitalize;\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n font-size: 1.8rem;\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n font-size: 1.2rem;\r\n }\r\n`;\r\n\r\nexport const TopBannerTitleDefaultBox = styledByDevice(PCBox, MobileBox);","import styled from \"styled-components\";\r\nimport {LIVE_CASINO_PAGE} from \"../../../../themes/css-global-classes\";\r\nimport {TopBannerTitleDefaultBox} from \"./top-banner-title.default.box\";\r\n\r\nexport const TopBannerTitleCasino777Box = styled(TopBannerTitleDefaultBox)`\r\n ${({theme}) => theme.font.presets.bold};\r\n .${LIVE_CASINO_PAGE} &{\r\n display:none;\r\n }\r\n`;\r\n","import {TopBannerTitleDefaultBox} from \"./top-banner-title.default.box\";\r\nimport {styledByTheme} from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {TopBannerTitleCasino777Box} from \"./top-banner-title.casino777.box\";\r\n\r\nexport const TopBannerTitleBox = styledByTheme(TopBannerTitleDefaultBox).forCasino777(TopBannerTitleCasino777Box).apply();","import styled from \"styled-components\";\r\n\r\nexport const TopBannerLiveLogoDefaultBox = styled.div`\r\n position: absolute;\r\n width: 100%;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n display: flex;\r\n align-items: center;\r\n flex-direction: column;\r\n justify-content: center;\r\n`;\r\n","import styled from \"styled-components\";\r\nimport {TopBannerLiveLogoDefaultBox} from \"./top-banner-live-logo.default.box\";\r\n\r\nexport const TopBannerLiveLogoCasino777Box = styled(TopBannerLiveLogoDefaultBox)`\r\n`;","import {TopBannerLiveLogoDefaultBox} from \"./top-banner-live-logo.default.box\";\r\nimport {styledByTheme} from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {TopBannerLiveLogoCasino777Box} from \"./top-banner-live-logo.casino777.box\";\r\n\r\nexport const TopBannerLiveLogoBox = styledByTheme(TopBannerLiveLogoDefaultBox).forCasino777(TopBannerLiveLogoCasino777Box).apply();","import React, {RefObject} from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\nimport {TopBannerBox} from \"./boxes/top-banner/top-banner.box\";\r\nimport {TopBannerImageBox} from \"./boxes/top-banner-image/top-banner-image.box\";\r\nimport {TopBannerLogoImageBox} from \"./boxes/top-banner-logo-image/top-banner-logo-image.box\";\r\nimport {TopBannerTitleBox} from \"./boxes/top-banner-title/top-banner-title.box\";\r\nimport {TopBannerLiveLogoBox} from \"./boxes/top-banner-live-logo/top-banner-live-logo.box\";\r\nimport {ThemeProvider} from \"styled-components\";\r\n\r\nexport interface TopImageComponentProps {\r\n image: string;\r\n title?: string;\r\n altText?: string;\r\n className?: string;\r\n topImageRef?: RefObject;\r\n}\r\n\r\n@observer\r\nexport class TopImageComponent extends OrbitComponent {\r\n\r\n private _renderLogoAndTitle() {\r\n if(this.props.title) {\r\n const srcLogo = this.services.device.isMobile\r\n ? this.services.theme.currentTheme.images.liveArena.casinoLiveLogoMobile.toString()\r\n : this.services.theme.currentTheme.images.liveArena.casinoLiveLogoPC.toString();\r\n return (\r\n \r\n \r\n {this.services.translation.translate(this.props.title)}\r\n \r\n )\r\n }\r\n return null;\r\n }\r\n\r\n render() {\r\n\r\n if(!this.props.image) {\r\n return null;\r\n }\r\n\r\n // TODO: maybe get also an image placeholder to enable lazy loading\r\n return (\r\n \r\n \r\n \r\n {this._renderLogoAndTitle()}\r\n \r\n \r\n )\r\n\r\n }\r\n}\r\n","import styled from \"styled-components\";\r\nimport {ACTIVE} from \"../../../../../../themes/css-global-classes\";\r\n\r\nexport const PanicButtonBox = styled.div`\r\n width: 15.7rem;\r\n height: 2.7rem;\r\n\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: block;\r\n position: absolute;\r\n top: 3.9rem;\r\n width: 15rem;\r\n height: 0.8rem;\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.3rem;\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: 0.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 2rem 0 2rem;\r\n }\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\nimport {Image} from '../../../../raw-components/image/image';\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.device.os.isMobileOS){\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.device.os.isMobileOS) {\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.state.isTooltipVisible) {\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.sendOrbitUserFlowEvent(\"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.device.os.isMobileOS) {\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
\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 margin-bottom: 3rem;\r\n`;\r\n\r\nconst AdminBannerBoxMobile = styled.div`\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}","import styled from \"styled-components\";\r\n\r\nexport const XCloseButtonBox = styled.button`\r\n cursor: pointer;\r\n background-image: url(\"${props => props.theme.images.closeModalDialog.toString()}\");\r\n background-size: contain;\r\n background-repeat: no-repeat;\r\n background-position: center center;\r\n &:hover {\r\n opacity: 0.5;\r\n }\r\n`;","export enum MyAccountTab {\r\n ResponsibleGaming = 1,\r\n ChangePassword = 2,\r\n Bonuses = 3,\r\n PersonalDetails = 4,\r\n InviteAFriend = 5,\r\n Reports = 6,\r\n LCChallenges = 7, //LC I think it comes from something with Loyalty\r\n LCRedemption = 8,\r\n Tournament = 10,\r\n FreePlay = 11,\r\n FreeBets = 12,\r\n ComPoints = 13,\r\n MyChallenges = 16\r\n}\r\n\r\nexport interface IOpenMyAccountOptions {\r\n tabId?: MyAccountTab;\r\n}\r\nexport interface IMyAccountExternalLinkHandler {\r\n openMyAccount(options?: IOpenMyAccountOptions): Promise;\r\n}","\r\nexport enum HeaderArenasStyle {\r\n BigTiles,\r\n SmallTiles,\r\n Menu\r\n }\r\n\r\nexport interface IThemeLayout {\r\n headerArenasStyle?: HeaderArenasStyle;\r\n border: {\r\n radius: string;\r\n };\r\n}","export enum GamingHistoryType {\r\n UserHistory = 1,\r\n SessionHistory = 2\r\n}\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","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 { CashierSessionTypes } from './../const/cashier-session-types';\r\nimport { Check } from '@sparkware/app-utils';\r\n\r\nexport function isDepositSessionType(sessionType: number | string | null | undefined): boolean {\r\n if(Check.isNullOrUndefined(sessionType)) {\r\n return true;\r\n }\r\n\r\n sessionType = sessionType.toString();\r\n return sessionType === CashierSessionTypes.QUICK_DEPOSIT.toString()\r\n || sessionType === CashierSessionTypes.FULL_CASHIER.toString()\r\n || sessionType === CashierSessionTypes.DEPOSIT.toString();\r\n}\r\n\r\nexport function isCashoutSessionType(sessionType: number | string | null | undefined): boolean {\r\n // cashout should be open only when session type is defined and only if is withdrawal\r\n if(Check.isNullOrUndefined(sessionType)) {\r\n return false;\r\n }\r\n\r\n sessionType = sessionType.toString();\r\n return sessionType === CashierSessionTypes.WITHDRAWAL.toString();\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 {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 {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._shouldUseSquareIcons(), 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 private _shouldUseSquareIcons = () => {\r\n if (Check.isNullOrUndefined(this.props.useSquareIcons)) {\r\n return this.services.theme.shouldUseSquareIcons;\r\n }\r\n return this.props.useSquareIcons;\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._shouldUseSquareIcons()});\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 {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}","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.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 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 { 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","import {GameInfo} from '../games/game-info';\r\nimport React from \"react\";\r\nimport {Nullable} from \"../../../common/types/nullable-types\";\r\n\r\nexport interface IFiltersGroup {\r\n text: string;\r\n filters: ActiveFilter[];\r\n isMultiSelect: boolean;\r\n}\r\n\r\nexport interface ActiveFilter {\r\n readonly id: string;\r\n readonly text: string;\r\n readonly on: boolean;\r\n readonly isDynamic: boolean;\r\n}\r\n\r\n\r\n\r\nexport enum PcFilterIndicatorRenderingLocation {\r\n BelowArenaTitle,\r\n NextToArenaTitle\r\n}\r\nexport interface IPcFilterIndicatorRenderingOptions {\r\n reactElement: React.ReactElement;\r\n location: PcFilterIndicatorRenderingLocation;\r\n}\r\n\r\nexport interface IGamesFilterService {\r\n\r\n readonly filteredGamesMap: Record;\r\n readonly isFilterOn: boolean;\r\n readonly currentAppliedFiltersIds: string[];\r\n readonly isFilteringAvailable: boolean;\r\n isFilterApplied(filterId: string): boolean;\r\n applyFilters(filterIds: string[]): Promise;\r\n clearFilters(): Promise;\r\n renderMobileFiltersIndicator(): React.ReactElement;\r\n renderPCFiltersIndicator(): Nullable;\r\n showFiltersEditor(): void;\r\n}\r\n","export 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-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-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-open-filters-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-burnout-gift-button' |\r\n 'cy-tooltip-container' |\r\n 'cy-logo-container' |\r\n 'cy-navbar-container' |\r\n 'cy-user-profile-messages-indicator' |\r\n 'cy-free-play-indicator-dot' |\r\n 'cy-help-widget-app' |\r\n 'cy-header-help-button' |\r\n 'cy-form-post-form' |\r\n 'cy-michigan-responsible-gaming-button' |\r\n 'cy-free-to-play-icon' |\r\n 'cy-modal-dialog-link' |\r\n 'cy-italy-other-limit-radio' |\r\n 'cy-standard-limit-radio' |\r\n 'cy-jackpot-widget-collecting-amount' |\r\n 'cy-jackpot-widget-amount'|\r\n 'cy-transaction-history-init-params' |\r\n 'cy-transaction-history-widget' |\r\n 'cy-netherlands-ksa-button' |\r\n 'cy-vouchers-previous-button' |\r\n 'cy-vouchers-next-button' |\r\n 'cy-voucher-card-face' |\r\n 'cy-voucher-card-back' |\r\n 'cy-game-restriction-geo-location-primary-button' |\r\n 'cy-game-restriction-geo-location-secondary-button' |\r\n 'cy-header-control-center-button' |\r\n 'cy-control-center-mini-app' |\r\n 'cy-control-center-mini-widget-init-params' |\r\n 'cy-control-center-full-app' |\r\n 'cy-control-center-full-widget-init-params' |\r\n 'cy-header-state-selector-button' |\r\n 'cy-state-select-dropdown' |\r\n 'cy-state-select-other-button' |\r\n 'cy-login-popup-approve-button' |\r\n 'cy-login-modal-content' |\r\n 'cy-login-popup-total-stakes' |\r\n 'cy-login-popup-net-position' |\r\n 'cy-advanced-filters' |\r\n 'cy-applied-advanced-filters-indicator' |\r\n 'cy-applied-advanced-filter-name' |\r\n 'cy-remove-advanced-filter-x-button' |\r\n 'cy-close-advanced-filters-x-button';\r\n\r\n\r\n\r\nexport function CyClass(className: CyCssClass): string {\r\n return className.toString();\r\n}\r\n\r\nexport function CySelector(className: CyCssClass): string {\r\n return '.' + className.toString();\r\n}\r\n\r\nexport function CySelectors(...classNames: CyCssClass[]): string {\r\n return classNames.map(clsName => '.' + clsName).join(' ');\r\n}\r\n","export const FEATURE_GAME_RECOMMENDATIONS = 'GameRecommendations';\r\nexport const FEATURE_ROUTE_OVERWRITE = \"AbRouteOverwrite\";\r\nexport const FEATURE_DEPOSIT_WIDGET = \"DepositWidget\"; //used only on backend side\r\nexport const FEATURE_CASHOUT_WIDGET = \"CashoutWidget\"; //used only on backend side\r\nexport const FEATURE_TRANSACTION_HISTORY_WIDGET = \"TransactionHistoryWidget\";\r\nexport const FEATURE_NAME_SAFE_ZONE_TOGGLE = \"AbTestingSafeZoneToggle\";\r\nexport const FEATURE_NAME_LIST_ON_TOP = \"ListOnTop\";\r\nexport const FEATURE_NAME_PARTY_JACKPOTS = \"PartyJackpots\";\r\nexport const FEATURE_NAME_TOP_BANNER_REDESIGN = \"AbTopBannerRedesign\";\r\nexport const FEATURE_NAME_SEARCH_GAME_SUGGESTED_BY_AI = \"SearchGameSuggestionByAI\";\r\nexport const FEATURE_NAME_PLAYERS_LIKE_YOU_GAMES_LIST_TYPE_ID = \"PlayersLikeYouGamesListTypeId\";\r\nexport const FEATURE_NAME_VIDEO_LIVE_STREAM = \"LiveStreamEnabled\";\r\nexport const FEATURE_NAME_STATIC_VIDEO_LIST = \"StaticVideoListEnabled\";\r\nexport const FEATURE_NAME_AI_SORT_GAME_LIST = \"AbTestingAiSortGamesLists\";\r\nexport const FEATURE_NAME_BECAUSE_YOU_PLAYED_LIST = \"BecauseYouPlayedListEnabled\";\r\nexport const FEATURE_NAME_DISABLE_ANIMATED_GAME_ICONS = \"DisableAnimatedIcons\";\r\n","import {TimeSpan} from \"@sparkware/app-utils\";\r\n\r\nexport enum TSR_TYPE {\r\n SESSION_TIMER,\r\n GAME_TIMER\r\n}\r\n\r\nexport type ITimeSpentReminderOptions = ISessionTimeSpentReminderComponentProps | IGameTimeSpentReminderComponentProps;\r\n\r\nexport interface ITimeSpentReminderComponentBaseProps {\r\n playingTime: TimeSpan;\r\n}\r\n\r\ninterface ISessionTimeSpentReminderComponentProps extends ITimeSpentReminderComponentBaseProps {\r\n timerType: TSR_TYPE.SESSION_TIMER;\r\n}\r\n\r\ninterface IGameTimeSpentReminderComponentProps extends ITimeSpentReminderComponentBaseProps {\r\n timerType: TSR_TYPE.GAME_TIMER;\r\n onStopReminders: () => void;\r\n}\r\n\r\nexport interface ITimeSpentReminderWithBalanceComponentProps extends ITimeSpentReminderComponentBaseProps {\r\n totalNetLoss: number;\r\n isInGame: boolean;\r\n}","/**\r\n * Created by andreyna on 1/26/2017.\r\n */\r\nconst MY_ACCOUNT_POST_ACTIONS = {\r\n GAME: '1',\r\n CASHIER: '6',\r\n QUICK_DEPOSIT: '7',\r\n CASINO: '22',\r\n SPORT: '24',\r\n EXTERNAL_URL: '27',\r\n CLOSE: 'CloseMe',\r\n RICH: '56',\r\n\tINTERNAL_URL: '32'\r\n}\r\n\r\nexport {MY_ACCOUNT_POST_ACTIONS};","import styled from \"styled-components\";\r\nimport {Button} from \"../../../../basic-ui-components/button/base/button.component\";\r\n\r\nexport const HeaderStandardButtonBox = styled(Button)`\r\n min-width: 150px;\r\n height: 35px;\r\n \r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n min-width: 80px;\r\n height: 30px;\r\n }\r\n`","//This is the cookie name used in unified.\r\nexport const STATE_OF_RESIDENCE_COOKIE_KEY: string = 'userSelectedState';\r\n","import {OrbitComponent} from \"../base-components/orbit-component/orbit-component\";\r\nimport React from \"react\";\r\nimport {INSIDE_ORBIT_MENU_CONTAINER} from \"./inside-orbit-menu-container.consts\";\r\nimport {isInsideAutomation} from '../../../utils/automation-helpers';\r\n\r\n\r\nexport class InsideOrbitMenuContainerComponent extends OrbitComponent<{}> {\r\n render() {\r\n if(isInsideAutomation()) {\r\n return null;\r\n }\r\n return
\r\n }\r\n}","import React from 'react';\r\nimport {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 \"BRAND_EXCLUSIVE_FILTER\": \"{brandName} Exclusive\",\r\n \"EXCLUSIVE\": \"888 Exclusive\",\r\n \"SI_EXCLUSIVE\": \"SI Exclusive\",\r\n \"1-25_LINES\": \"1-25 lines\",\r\n \"25+_LINES\": \"25+ lines\",\r\n \"INFO_TITLE_ARENA_888_EXCLUSIVE_GAMES\": \"Exclusive Games\",\r\n \"INFO_TEXT_ARENA_888_EXCLUSIVE_GAMES\": \"888casino is home to an exclusive selection of online casino games. Play the hottest online slots from Section8, and enjoy fantastic casino games like online Roulette, online Blackjack and Video Poker. Our exclusive casino games also include Baccarat, Keno, and instant win games. Let’s get ready for some casino fun!\",\r\n \"INFO_TITLE_ARENA_SLOTS\": \"Online Slots\",\r\n \"INFO_TITLE_ARENA_VIDEO_SLOTS\": \"Video Slots\",\r\n \"INFO_TEXT_ARENA_SLOTS\": \"Choose from over 1000 of the best quality slot games, anywhere online. Enjoy a wide variety of features such as Bonus Games, Expanding Wilds, Free Spins and Huge Jackpots. Hunt for treasure in ancient Egypt, uncover the Leprechaun’s coveted pot o’ gold or spin for big wins on classic fruit machines. Whatever tickles your fancy, we’ve got it!\",\r\n \"INFO_TITLE_ARENA_CASINO\": \"Casino Games\",\r\n \"INFO_TEXT_ARENA_CASINO\": \"The cards are shuffled, the wheel is spinning and your seat is waiting. Play only the very best card and table games online. Choose from a variety of Roulette games including European, American, Low, High and Super Stakes. Prefer Blackjack? Play multiple hands at the same time. From Texas Hold’em to Caribbean, be sure to find your poker preference!\",\r\n \"INFO_TITLE_ARENA_ROULETTE\": \"Roulette Online\",\r\n \"INFO_TEXT_ARENA_ROULETTE\": \"Try to hit your lucky numbers at one of 888casino’s premier online roulette tables. Choose from our wide variety of top roulette game styles including European, American and French. Whether you’re a High Roller or prefer low stakes, there’s a roulette game for you. There’s nothing like the thrill of waiting for that ball to land when you play roulette!\",\r\n \"INFO_TITLE_ARENA_NEW_GAMES\": \"New Games\",\r\n \"INFO_TEXT_ARENA_NEW_GAMES\": \" \",\r\n \"INFO_TITLE_ARENA_BLACKJACK\": \"Online Blackjack\",\r\n \"INFO_TEXT_ARENA_BLACKJACK\": \"The cards are shuffled and your seat is waiting for some of the best online blackjack games you’ll find! Play blackjack at 888casino on your own terms with Super Stakes, Side Bets and more. One hand of blackjack not enough for you? Play our Multihand Blackjack game for three chances to hit 21, at the same time!\",\r\n \"INFO_TITLE_ARENA_VIDEO_POKER\": \"Video Poker Online\",\r\n \"INFO_TEXT_ARENA_VIDEO_POKER\": \"If you think you’re a real poker pro then you’ve come to the right casino! Go for that elusive Royal Flush in our various types of video poker games. If you’re into 5-card draw or prefer the ever-popular Texas Hold’em then you’re sure to find your new favourite online video poker game at 888casino.\",\r\n \"INFO_TITLE_ARENA_SCRATCH_CARDS\": \"Scratch Cards Online\",\r\n \"INFO_TEXT_ARENA_SCRATCH_CARDS\": \"There’s nothing like a quick win on one of 888casino’s exciting scratch card games. Ideal for some strategy-free fun, pick an online scratch card in the theme of your choice. Reveal your Irish riches or discover pharaoh’s fortune, it’s up to you. Simply choose the amount you want to bet and see if you’re a scratch card winner!\",\r\n \"INFO_TITLE_ARENA_JACKPOTS\": \"Jackpots\",\r\n \"INFO_TEXT_ARENA_JACKPOTS\": \"Jackpot games are bubbling over with unbelievably huge cash prizes. Play with our slots games and you’re in lots of joy and fun. These include daily jackpots, progressive jackpots, and pooled jackpots, you are one click away from the absolute perfect play; enjoy jackpot slots games like Millionaire Genie, Mermaid’s Millions, or Noche De Los Muertos. Click it to pick it. Spin it to try your luck to win it. The fun starts NOW!\",\r\n \"INFO_TITLE_ARENA_ALL_GAMES\": \"All Games\",\r\n \"VIRTUAL_SPORTS\": \"Virtual Sports\",\r\n \"INFO_TITLE_ARENA_VIRTUAL_SPORTS\": \"Virtual Sports\",\r\n \"INFO_TEXT_ARENA_VIRTUAL_SPORTS\": \"Virtual Sports brings you a wide variety of computer-generated sports games that you’ll be able to bet on. So, whether football's your thing, or darts, or anything else, you can be sure to find what you're looking for. Enter the world of virtual betting today.\",\r\n \"PROMO_ELIGIBLE_GAMES\": \"Promo Eligible Games\",\r\n \"NETENT_SLOTS\": \"NETENT SLOTS\",\r\n \"BONUS\": \"Bonus\",\r\n \"FREE_SPINS\": \"Free Spins\",\r\n \"CLEAR_ALL\": \"Clear All\",\r\n \"FILTER\": \"Filter\",\r\n \"APPLY\": \"Apply\",\r\n \"ROULETTE\": \"Roulette\",\r\n \"ELITE_LOUNGE\": \"Elite Lounge\",\r\n \"BLACKJACK\": \"Blackjack\",\r\n \"PROGRESSIVE_SLOTS\": \"Progressive Slots\",\r\n \"BACCARAT\": \"Baccarat\",\r\n \"POKER\": \"Poker\",\r\n \"KENO\": \"Keno\",\r\n \"CRAPS\": \"Craps\",\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 \"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 \"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 \"UPLOAD_DOCUMENTS\": \"Upload Documents\",\r\n \"BRAND_NEW\": \"Brand New\",\r\n \"HOTTEST_NEW_GAMES\": \"Hottest new games\",\r\n \"SINCE_LAST_MONTH\": \"Since Last Month\",\r\n \"SAFE_GAMBLING_TOOLTIP\": \"Safer Gambling Tools & Information\",\r\n \"PLAYER_LIMITS_TOASTER_TITLE\": \"Your Limits\",\r\n \"PLAYER_LIMITS_TOASTER_DAILY_LABEL\": \"Daily\",\r\n \"PLAYER_LIMITS_TOASTER_WEEKLY_LABEL\": \"Weekly\",\r\n \"PLAYER_LIMITS_TOASTER_MONTHLY_LABEL\": \"Monthly\",\r\n \"PLAYER_LIMITS_TOASTER_DEPOSIT_LABEL\": \"Deposit\",\r\n \"PLAYER_LIMITS_TOASTER_PLAY_TIME_LABEL\": \"Play Time\",\r\n \"PLAYER_LIMITS_TOASTER_BANKROLL_LABEL\": \"Bankroll\",\r\n \"PLAYER_LIMITS_TOASTER_HOUR_LABEL\": \"hour\",\r\n \"GAME_POPUP_TITLE\": \"Welcome back\",\r\n \"GAME_POPUP_SUB_TITLE\": \"Suggested game\",\r\n \"GAME_POPUP_DESCRIPTION\": \"Your 888slots activity:\",\r\n \"GAME_POPUP_GAME_UNAVAILABLE\": \"Sorry, this game is unavailable\",\r\n \"GAME_POPUP_MAY_LIKE\": \"You may also like\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_TITLE\": \"HOORAY! You’re about to play a {partyJackpotName} game!\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_TITLE_ALL_LIVE_CASINO\": \"LUCKY YOU!\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_SUB_TITLE_ALL_LIVE_CASINO\": \"All Live Casino games are part of our HOT NEW jackpot!\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_DESCRIPTION\": \"The Jackpot can be won on any cash balance bet.\\nAll Party Jackpot prizes are bonuses, which are instantly credited to your account.\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_DESCRIPTION_REAL\": \"Any real money bet on a Party Jackpot game could win a cash prize!\\nThe Party Jackpot will pay daily!\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_DESCRIPTION_REAL_HOURLY\": \"Any real money bet on a Party Jackpot game could win a cash prize!\\nThe Party Jackpot will pay hourly between {startHour} to {endHour}\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_DESCRIPTION_REAL_HOURLY_ALL_LIVE_CASINO\": \"Real money bets on any Live Casino game could win the jackpot!\\nThe Live Casino Jackpot must pay every hour, {startHour} - {endHour}, and is fully funded by us.\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_BOTTOM_NOTE\": \"Bonus: wager 30x (varies by game type), 90 day expiry, wins capped at $500, valid for selected games\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_BOTTOM_NOTE_REAL\": \"Funded players only\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_TERMS_AND_CONDITIONS_APPLY\": \"T&C Apply.\",\r\n \"PARTY_JACKPOT_WIN_TOASTER_TITLE\": \"The {jackpotName} just dropped at {winAmount}!\",\r\n \"PARTY_JACKPOT_WIN_TOASTER_SUBTITLE\": \"Didn’t win? No worries!\\n This jackpot drops every hour, {startHour}-{endHour}.\",\r\n \"PARTY_JACKPOT_WIN_POPUP_YOU_WON\": \"YOU WON THE {jackpotName}\",\r\n \"PARTY_JACKPOT_WIN_POPUP_AWESOME\": \"AWESOME!\",\r\n \"PARTY_JACKPOT_OUT_OF_CASH_TOASTER_TITLE\": \"Top up to play the Live Casino Jackpot\",\r\n \"PARTY_JACKPOT_OUT_OF_CASH_TOASTER_SUBTITLE\": \"The Live Casino Jackpot can only be won with real money\",\r\n \"JACKPOT-WIDGET-MUST-PAY\": \"Must Pay within:\",\r\n \"JACKPOT-WIDGET-DROPS-SOON\": \"DROPS SOON!\",\r\n \"JACKPOT-WIDGET-STARTS-SOON\": \"STARTS SOON\",\r\n \"JACKPOT-WIDGET-NEXT-JACKPOT\": \"Launching Next Jackpot\",\r\n \"JACKPOT-WIDGET-LAST-WIN\": \"Last win\",\r\n \"IN-GAME-WIDGET-STARTS-SOON\": \"Starts Soon\",\r\n \"FREEPLAY_INDICATOR\": \"FreePlay\",\r\n \"OMG_INDICATOR\": \"Notifications\",\r\n \"USER_LIKE_YOU\": \"TOP {topNumber} IN {countryName}\",\r\n \"YOUR_COUNTRY\": \"Your country\",\r\n \"SOURCE_OF_FUNDS_TITLE\": \"Important Info Needed\",\r\n \"SOURCE_OF_FUNDS_MESSAGE1\": \"Hi, welcome back!\",\r\n \"SOURCE_OF_FUNDS_MESSAGE2\": \"We just need some info from you. It won't take long at all!\",\r\n \"SOURCE_OF_FUNDS_OPEN_CHAT_BTN\": \"LET'S CHAT\",\r\n \"CLOSE\": \"Close\",\r\n \"LIVE_STREAM_WATCH_TIME_REACHED\": \"Ready to dive in and play?\",\r\n \"LIVE_STREAM_VIDEO_LOADING\": \"Loading…\",\r\n \"PLAY_NOW\": \"PLAY NOW\",\r\n \"CASINO\": \"CASINO\",\r\n \"UK_TSR_CONTINUE_OPT\": \"Continue\",\r\n \"UK_TSR_REVIEW_REMINDERS_OPT\": \"Review reminders\",\r\n \"UK_TSR_LOGOUT_OPT\": \"Logout\",\r\n \"UK_TSR_RESUME_GAME_OPT\": \"Resume Game\",\r\n \"UK_TSR_STOP_REMINDERS_OPT\": \"Stop all game time reminders\",\r\n \"UK_TSR_HISTORY_OPT\": \"View History\",\r\n \"UK_TSR_CLOSE_GAME_OPT\": \"Close Game\",\r\n \"TSR_CONFIRM\": \"OK\",\r\n \"TSR_SESSION_TIME_TEXT\": \"You have been logged in for:\",\r\n \"TSR_SUBTEXT\": \"What would you like to do?\",\r\n \"TSR_TITLE\": \"Time Spent Reminder\",\r\n \"TSR_MENU_LINK_LABEL\": \"Time Spent Reminder\",\r\n \"PAYMENTS_REDIRECT_FOCUS_TITLE\": \"Deposit in process\",\r\n \"PAYMENTS_REDIRECT_FOCUS_TEXT\": \"Your {mftName} screen is still open\",\r\n \"PAYMENTS_REDIRECT_FOCUS_CTA\": \"Continue\",\r\n \"VOLATILE_SLOTS\": \"Volatile Slots\",\r\n \"VOLATILE_GAMES\": \"Volatile Games\",\r\n \"HIGH_VOLATILITY_SLOTS\": \"High Volatility Slots\",\r\n \"LOW_VOLATILITY_SLOTS\": \"Low Volatility Slots\",\r\n \"STATE_POPUP_TITLE\": \"Verify Your Location\",\r\n \"STATE_POPUP_HEADER\": \"Please confirm that you're located in {THE_STATE}\",\r\n \"STATE_POPUP_OUTSIDE_TEXT\": \"I'm located outside of {THE_STATE}\",\r\n \"STATE_POPUP_CONFIRM\": \"Confirm\",\r\n \"BURNOUT_MESSAGE_LINE_1\": \"SURPRISE!\",\r\n \"BURNOUT_MESSAGE_LINE_2\": \"YOU GOT A BONUS!\",\r\n \"CONGRATS\": \"Congrats!\",\r\n \"YOUR_FP_ARE_WAITING\": \"Your FreePlay are waiting for you here\",\r\n \"EXIT_POPUP_TITLE\": \"We thought you’d like\",\r\n \"DONT_SHOW_AGAIN_TEXT\": \"Don't show again\",\r\n \"DAILY_DEAL_WIDGET_STRIP\": \"I GIORNALIERI\",\r\n \"GAMING_HISTORY_NO_RECORDS\": \"We were unable to locate any history records of your games\",\r\n \"GAMING_HISTORY_LAST_PAGE\": \"No more history records found.\",\r\n \"GAMING_HISTORY_BET\": \"Bet\",\r\n \"GAMING_HISTORY_WINNINGS\": \"Winnings\",\r\n \"GAMING_HISTORY_WINNINGS_BONUS_CAP\": \"Winnings*\",\r\n \"GAMING_HISTORY_BANKROLL\": \"Bankroll\",\r\n \"GAMING_HISTORY_MORE_DETAILS\": \"More Details\",\r\n \"GAMING_HISTORY_MORE_DETAILS_NOT_AVAILABLE_PC\": \"Available only on Mobile devices\",\r\n \"GAMING_HISTORY_MORE_DETAILS_NOT_AVAILABLE_MOBILE\": \"Available only on PC\",\r\n \"GAMING_HISTORY_FREE_PLAY_BET\": \"Bet*\",\r\n \"GAMING_HISTORY_FREE_PLAY_WINNINGS\": \"Winnings*\",\r\n \"GAMING_HISTORY_FREE_PLAY_REWARD_WINNINGS\": \"Reward winnings\",\r\n \"GAMING_HISTORY_FREE_PLAY_REWARD_BANKROLL\": \"Reward bankroll\",\r\n \"GAMING_HISTORY_FREE_PLAY_INDICATION\": \"*Played with rewards\",\r\n \"GAMING_HISTORY_FREE_PLAY_MAX_CUP_INDICATION\": \"*Maximum win\",\r\n \"GAMING_HISTORY_BIG_WIN_TAX_INDICATION\": \"Pending IRS form W-2G completion\",\r\n \"GAMING_HISTORY_DAYS_INTERVAL\": \"Last {numberOfDays} Days\",\r\n \"GAME_PARTICIPATION_ID\": \"Participation ID: {participationID}\",\r\n \"GAME_SESSION_ID\": \"Session ID: {sessionID}\",\r\n \"HISTORY_GAME_SESSION_TOTAL_BETS\": \"Total bets\",\r\n \"HISTORY_GAME_SESSION_TOTAL_WINNINGS\": \"Total wins\",\r\n \"HISTORY_GAME_SESSION_BALANCE\": \"Session Balance\",\r\n \"FILTER_GROUP_VENDOR_TYPE\": \"Vendor Name\",\r\n \"GAME_WINDOW_VENDOR_SESSION_ID\": \"Session ID: {sessionID}\",\r\n \"GAME_WINDOW_MODE_REAL_LABEL\": \"Real Money\",\r\n \"GAME_WINDOW_MODE_DEMO_LABEL\": \"Demo\",\r\n \"FREE_PLAY_VOUCHER_NAME_FPV\": \"FreePlay\",\r\n \"FREE_PLAY_VOUCHER_NAME_FSV\": \"Free Spins\",\r\n \"FREE_PLAY_VOUCHER_NAME_JPFPV\": \"Jackpot FreePlay\",\r\n \"FREE_PLAY_VOUCHER_NAME_JPFSV\": \"Jackpot Spins\",\r\n \"FREE_PLAY_VOUCHER_BALANCE_PREFIX\": \"Remaining:\",\r\n \"FREE_PLAY_VOUCHER_TITLE_FPV\": \"FreePlay Reward\",\r\n \"FREE_PLAY_VOUCHER_TITLE_FSV\": \"Free Spins Reward\",\r\n \"FREE_PLAY_VOUCHER_TITLE_JPFPV\": \"Jackpot FreePlay Reward\",\r\n \"FREE_PLAY_VOUCHER_TITLE_JPFSV\": \"Jackpot Spins Reward\",\r\n \"FREE_PLAY_VOUCHER_DESC_FPV\": \"Free play money to use on selected games in whichever way you wish!\",\r\n \"FREE_PLAY_VOUCHER_DESC_FSV\": \"Free Spins with pre-defined values to use on selected games!\",\r\n \"FREE_PLAY_VOUCHER_DESC_JPFPV\": \"Jackpot-only FreePlay money to use on selected games in whichever way you wish!\",\r\n \"FREE_PLAY_VOUCHER_DESC_JPFSV\": \"Jackpot-only Free Spins with pre-defined values to use on selected games!\",\r\n \"FREE_PLAY_VOUCHER_REWARD_AMOUNT\": \"{amount} {fp_voucher_name}\",\r\n \"FREE_PLAY_VOUCHER_REWARD_BALANCE\": \"{fp_voucher_remaining_prefix} {balance}\",\r\n \"FREE_PLAY_EXPIRES_IN_TIME\": \"Expires in {expiration}\",\r\n \"FREE_PLAY_EXPIRES_IN_EXPIRED\": \"Expired\",\r\n \"FREE_PLAY_EXPIRES_IN_DAY\": \"Expires in {expiration} days\",\r\n \"FREE_PLAY_MESSAGE_VOUCHER_TITLE_GOOD_LUCK\": \"Good Luck!\",\r\n \"FREE_PLAY_MESSAGE_LIST_TITLE\": \"You have rewards waiting for you. Good Luck!\",\r\n \"FREE_PLAY_MESSAGE_SELECTED_GAME_TITLE\": \"This game can also be played with the following rewards:\",\r\n \"FREE_PLAY_MESSAGE_GAMES_LIST_TITLE\": \"You can use this reward in the game(s) below.\",\r\n \"FREE_PLAY_MESSAGE_NO_VOUCHERS\": \"You have no rewards available\",\r\n \"FREE_PLAY_MESSAGE_BACK_TO_VOUCHERS\": \"Back\",\r\n \"FREE_PLAY_SHOW_MORE\": \"Show More\",\r\n \"FREE_PLAY_SHOW_LESS\": \"Show Less\",\r\n \"FREE_PLAY_USE_NOW_BUTTON\": \"Use Now\",\r\n \"FREE_PLAY_USE_LATER_BUTTON\": \"Use Later\",\r\n \"FREE_PLAY_SUGGESTION_DIALOG_TITLE\": \"You have rewards in this game!\",\r\n \"IDLE_RECOMMENDATIONS_TITLE\": \"Looking for your next game?\",\r\n \"IDLE_RECOMMENDATIONS_SECOND_TITLE\": \"What about\",\r\n \"BONUS_ABUSE_PREVENTION_TITLE\": \"Disconnected Game\",\r\n \"BONUS_ABUSE_PREVENTION_MESSAGE\": \"It looks like there's a game that was disconnected... Please complete {gameName} before you can start playing {newGameName}.\",\r\n \"BONUS_ABUSE_PREVENTION_NOT_NOW_BTN\": \"Not Now\",\r\n \"BONUS_ABUSE_PREVENTION_COMPLETE_BTN\": \"Complete Game\",\r\n \"OPEN_GAME_FROM_CHALLENGES\": \"Challenges can’t be completed using rewards.\",\r\n \"CANCEL\": \"Cancel\",\r\n \"YES\": \"Yes\",\r\n \"NO\": \"No\",\r\n \"ONE_GAME_PER_SESSION_DIALOG_TITLE\": \"Open Game\",\r\n \"ONE_GAME_PER_SESSION_DIALOG_MESSAGE\": \"It looks like there's a game that's still open....\\nWould you like to close {oldGameName} and start playing {newGameName}?\",\r\n \"GAMES_OF_THE_WEEK\": \"Games Of The Week\",\r\n \"THE_FISH_MARKET\": \"The Fish Market\",\r\n \"LETS_PLAY_POKER\": \"Lets Play Poker!\",\r\n \"HYBRID_EMBEDDED_GAME_LOADING_SLOW_CONNECTION_TOASTER_TITLE\": \"Slow connection\",\r\n \"HYBRID_EMBEDDED_GAME_LOADING_SLOW_CONNECTION_TOASTER_SUBTITLE\": \"We've detected a slow network connection. Opening the game may take a little longer than expected.\",\r\n \"HYBRID_EMBEDDED_GAME_LOADING_SPINNER_LABEL\": \"Connecting...\",\r\n \"HYBRID_EMBEDDED_GAME_LOADING_PACKAGES_PROGRESS\": \"Preparing game {packagesStatus}\",\r\n \"HELP_CENTER\": \"Help Centre\",\r\n \"GEO_PERMISSIONS_POPUP_TITLE\": \"Location Check\",\r\n \"GEO_PERMISSIONS_POPUP_TOP_TEXT\": \"Allow location verification\",\r\n \"GEO_PERMISSIONS_POPUP_MIDDLE_TEXT\": \"We need your location to verify that playing is allowed in your province\",\r\n \"GEO_PERMISSIONS_BUTTON\": \"OK\",\r\n \"ABOUT_HELP_SUPPORT\": \"For any support queries, please visit our online help\",\r\n \"ABOUT_TITLE\": \"Your Account Details\",\r\n \"ABOUT_FISCAL_CODE_TITLE\": \"Fiscal Code\",\r\n \"ABOUT_SUPPORT_ID_TITLE\": \"ID for support\",\r\n \"ABOUT_CLIENT_VERSION_TITLE\": \"Client Version\",\r\n \"ABOUT_OPEN_SESSION_TITLE\": \"Open session balance\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_TITLE\": \"Location check\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_HEADER_1\": \"Verify Your Location.\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_HEADER_2\": \"This site is dedicated for players in USA permitted states.\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_HEADER_3\": \"To verify your location and start playing, please install the\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_HEADER_4\": \"GeoComply plugin:\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_BODY_1\": \"Click the Download Plugin button below\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_BODY_2\": \"Open the file from the download bar\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_BODY_3\": \"Click Run to install the file\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_FOOTER\": \"Need to redownload the plugin?\",\r\n \"GEO_PLUGIN_DOWNLOAD_BUTTON\": \"DOWNLOAD\",\r\n \"GEO_FREEZE_POPUP_TOP_TEXT\": \"We're confirming your location.\",\r\n \"GEO_FREEZE_POPUP_MIDDLE_TEXT\": \"It should only take a few seconds. This window will close automatically after confirmation.\",\r\n \"GEO_FREEZE_POPUP_TITLE\": \"Location Verification\",\r\n \"GEO_GAME_RESTRICTION_TOP_TEXT\": \"Verify your location\",\r\n \"GEO_GAME_RESTRICTION_MIDDLE_TEXT\": \"That action requires location verification. To verify your location, please log out and retry. If the problem persists, please contact us.\",\r\n \"GEO_RETRY_GAME_RESTRICTION_MIDDLE_TEXT\": \"That action requires location verification. To verify your location please retry. If the problem persists, please contact us.\",\r\n \"ENFORCE_HYBRID_APP_TITLE\": \"Download the app\",\r\n \"ENFORCE_HYBRID_APP_TEXT\": \"To log in from your mobile device please download the app.\",\r\n \"ENFORCE_HYBRID_APP_CONTINUE_BUTTON\": \"GET THE APP\",\r\n \"ONE_HOUR\": \"1 hour\",\r\n \"X_HOURS\": \"{x} hours\",\r\n \"ONE_MINUTE\": \"1 minute\",\r\n \"X_MINUTES\": \"{x} minutes\",\r\n \"ONE_DAY\": \"1 day\",\r\n \"X_DAYS\": \"{x} days\",\r\n \"ONE_WEEK\": \"1 week\",\r\n \"ONE_MONTH\": \"1 month\",\r\n \"ADVANCED_MODE\": \"Advanced Mode\",\r\n \"SELECT\": \"Please select\",\r\n \"DONT_WANT_TO_BE_BLOCKED\": \"I don't want to be blocked\",\r\n \"START_PLAYING\": \"Start Playing\",\r\n \"ES_GAME_LIMIT_RESTRICTION_PERIOD_VALUE\": \"Be blocked for {time}\",\r\n \"ES_GAME_LOSS_LIMIT_VALUE\": \"{percent}% of bankroll ({loss})\",\r\n \"ES_TIME_LIMIT_DROP_DOWN_LABEL\": \"Maximum duration\",\r\n \"ES_LOSS_LIMIT_DROP_DOWN_LABEL\": \"Maximum loss\",\r\n \"ES_REMINDER_INTERVAL_DROP_DOWN_LABEL\": \"Reminder interval\",\r\n \"ES_RESTRICTION_PERIOD_DROP_DOWN_LABEL\": \"When my session ends, I’d like to:\",\r\n \"ES_GAME_TIME_LIMIT_REQUIRED_ERROR\": \"Please select a time limit\",\r\n \"ES_GAME_LOSS_LIMIT_REQUIRED_ERROR\": \"Please select a loss limit\",\r\n \"ES_GAME_LIMIT_REGULATORY_TEXT\": \"In 888casino.es we support and promote {responsibleGamblingLink} offering you the tools to control both the time you play and the money you bet. Before you start playing, configure your session according to your preferences\",\r\n \"ES_GAME_LIMIT_RESPONSIBLE_GAMING_LINK\": \"the responsible gaming\",\r\n \"ES_GAME_LIMIT_TIME_LOSS_CONFIRMATION_TEXT\": \"Note that you have set your maximum playing time at {time}.\",\r\n \"ES_GAME_LIMIT_TIME_LOSS_CONFIRMATION_QUESTION\": \"Do you want to continue?\",\r\n \"ES_GAME_LIMIT_RESTRICTION_BLOCK_CONFIRMATION_TEXT\": \"You have chosen to be blocked for {time}. This means that once your game session ends, you will not be able to play again for the time period you have selected.\",\r\n \"ES_GAME_LIMIT_RESTRICTION_BLOCK_CONFIRMATION_QUESTION\": \"Are you sure?\",\r\n \"ES_GAME_LIMIT_TITLE\": \"Set up your Game Session\",\r\n \"ATTENTION\": \"Attention!\",\r\n \"TOTAL_BANKROLL\": \"Full Bankroll:\",\r\n \"GAME_SESSION_BALANCE\": \"Session balance:\",\r\n \"TOTAL_WINS\": \"Total win amounts:\",\r\n \"TOTAL_BETS\": \"Total bet amounts:\",\r\n \"ES_SESSION_TIME_LIMIT_MESSAGE\": \"You are about to reach your maximum time. You can finish the session.\",\r\n \"ES_INTERVAL_REMINDER_MESSAGE\": \"You are playing for {timePassed}, your Total Bets are {totalBets} and Total Wins are {totalWins}\",\r\n \"ES_SESSION_LOSS_LIMIT_MESSAGE\": \"You are about to reach your maximum budget. You can finish the session.\",\r\n \"GAME_SESSION_SUMMARY_DIALOG_TITLE\": \"Session has ended\",\r\n \"GAME_SESSION_SUMMARY_DIALOG_MESSAGE\": \"Your session for {game_name} has ended\\n\\nTotal bets {total_bets_amount}\\n\\nTotal wins {total_wins_amount}\",\r\n \"OK\": \"OK\",\r\n \"INSUFFICIENT_FUNDS_TITLE\": \"Insufficient balance\",\r\n \"INSUFFICIENT_FUNDS_MESSAGE\": \"Your current balance is not sufficient for this game. To continue playing, you must first make a deposit to the cashier.\",\r\n \"OPEN_CASHIER\": \"Open Cashier\",\r\n \"GAME_LIMIT_REAL_MONEY_WARNING_MESSAGE\": \"This game can be played with cash balance only.\",\r\n \"SUGGEST_REAL_MODE_DIALOG_TITLE\": \"Demo Game\",\r\n \"SUGGEST_REAL_MODE_DIALOG_TEXT\": \"Please note that {game_name} will be opened in demo mode.

To play in real money mode, please register or log in.\",\r\n \"PLAY_DEMO\": \"Play Demo\",\r\n \"GAME_NET_POSITION_LABEL\": \"Game Balance\",\r\n \"GAME_DURATION_LABEL\": \"Game Duration\",\r\n \"GAME_LIMIT_TITLE\": \"Choose the money in the game\",\r\n \"REGULATORY_LIMIT_LABEL\": \"Regulatory limit\",\r\n \"OTHER_LIMIT_LABEL\": \"Other\",\r\n \"GAME_LIMIT_VALUE_ERROR\": \"Invalid amount. Please try again\",\r\n \"GAME_LIMIT_REGULATION_ERROR\": \"The maximum amount is {regulationLimit}. Please try again.\",\r\n \"GAME_LIMIT_MIN_BET_ERROR\": \"Amount below table minimum. Please try again\",\r\n \"AGE_ACKNOWLEDGE_POPUP_TITLE\": \"Acknowledgement\",\r\n \"AGE_ACKNOWLEDGE_POPUP_MESSAGE\": \"Persons under the age of 21 are not permitted to engage in interactive gaming.\\nPlease confirm that you are over 21 years old\",\r\n \"AGE_ACKNOWLEDGE_POPUP_CONFIRM_BUTTON\": \"Confirm\",\r\n \"AGE_ACKNOWLEDGE_POPUP_DECLINE_BUTTON\": \"Decline\",\r\n \"STATE_POPUP_DEFAULT_OPTION\": \"Select...\",\r\n \"STATE_POPUP_NO_STATE_SELECTED\": \"You must choose a state!\",\r\n \"CHOOSE_CONFIRM_STATE\": \"Please confirm that you're located in\",\r\n \"STATE_POPUP_OTHER_STATE\": \"I don't see my state\",\r\n \"STATE_SELECTOR_MENU_ITEM\": \"State Selector\",\r\n \"LUGAS_COOLING_OFF_LOGOUT_MESSAGE\": \"By logging out you will not be able to play any game for 5:00 mins.\",\r\n \"LUGAS_ACTIVE_TITLE\": \"Notification\",\r\n \"LUGAS_ACTIVE_TEXT_1\": \"It looks like you're currently playing on a different site. Per local regulations, please log out to continue here.\",\r\n \"LUGAS_ACTIVE_TEXT_2\": \"888 receives this information from the German system used to enforce regulations.\",\r\n \"LUGAS_COOLDOWN_TITLE\": \"Please wait\",\r\n \"LUGAS_COOLDOWN_TEXT\": \"According to Germany regulation there’s a five minute cool down period after logging out from another operator.\",\r\n \"LUGAS_OK_BTN\": \"OK\",\r\n \"LIVE_ROULETTE\": \"Live Roulette\",\r\n \"LIVE_BLACKJACK\": \"Live Blackjack\",\r\n \"LIVE_BACCARAT\": \"Live Baccarat\",\r\n \"LIVE_POKER\": \"Live Poker\",\r\n \"LIVE_GAME_SHOWS\": \"Live Game Shows\",\r\n \"LIVE_ELITE_LOUNGE\": \"Live Elite Lounge\",\r\n \"JOIN_NOW\": \"JOIN NOW\",\r\n \"Adventure\": \"Adventure\",\r\n \"Ancient Civilization\": \"Ancient Civilization\",\r\n \"Arabic\": \"Arabic\",\r\n \"Asian\": \"Asian\",\r\n \"Classic Style\": \"Classic Style\",\r\n \"Comics and Cartoons\": \"Comics and Cartoons\",\r\n \"Diamonds and Gems\": \"Diamonds and Gems\",\r\n \"Egyptian\": \"Egyptian\",\r\n \"Fantasy and Folklore\": \"Fantasy and Folklore\",\r\n \"Farm and Pets\": \"Farm and Pets\",\r\n \"Fish\": \"Fish\",\r\n \"Fruit and Candy\": \"Fruit and Candy\",\r\n \"Greek Mythology\": \"Greek Mythology\",\r\n \"Irish\": \"Irish\",\r\n \"Money and Leisure\": \"Money and Leisure\",\r\n \"Movies and Music\": \"Movies and Music\",\r\n \"Seasonal\": \"Seasonal\",\r\n \"Space and Sci-fi\": \"Space and Sci-fi\",\r\n \"Wildlife\": \"Wildlife\",\r\n \"GAME_STUDIOS\": \"Game studios\",\r\n \"THEMES\": \"Themes\",\r\n \"GAME_FEATURES\": \"Features\",\r\n \"GAME_CATEGORIES\": \"Categories\",\r\n \"FILTER_BY\": \"Filter by\",\r\n \"NO_JACKPOT\": \"No Jackpot\",\r\n \"HIGH_STAKES\": \"High Stakes\",\r\n \"LOW_STAKES\": \"Low Stakes\",\r\n \"MULTIHAND\": \"Multihand\",\r\n \"MEDIUM_VOLATILITY\": \"Medium volatility\",\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 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_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 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 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 TOAST_CREATED: 'TOAST_CREATED',\r\n TOAST_SHOW: 'TOAST_SHOW',\r\n TOAST_HIDE: 'TOAST_HIDE',\r\n TOAST_CLOSE_BUTTON: 'TOAST_CLOSE_BUTTON',\r\n TOAST_USER_DISMISS: 'USER_DISMISSED_TOAST',\r\n HYBRID_ALERT: 'HYBRID_ALERT',\r\n HYBRID_OPEN_MAIL: 'HYBRID_OPEN_MAIL',\r\n HYBRID_UPDATE_INFO_KEY : 'HYBRID_UPDATE_INFO_KEY',\r\n FIREBASE_GOT_NEW_TOKEN: 'FIREBASE_GOT_NEW_TOKEN',\r\n TOUCH_ID_GET_TOKEN_FROM_SRV: 'TOUCH_ID_GET_TOKEN_FROM_SRV',\r\n TOUCH_ID_INIT_SCREEN_SHOW: 'TOUCH_ID_INIT_SCREEN_SHOW',\r\n TOUCH_ID_TRY_AGAIN_SKIP: 'TOUCH_ID_TRY_AGAIN_SKIP',\r\n TOUCH_ID_CHECK_TOKEN_ENABLE: 'TOUCH_ID_CHECK_TOKEN_ENABLE',\r\n TOUCH_ID_TOKEN_ENABLE_RES: 'TOUCH_ID_TOKEN_ENABLE_RES',\r\n TOUCH_ID_CLEAR_TOKEN: 'TOUCH_ID_CLEAR_TOKEN',\r\n TOUCH_ID_NATIVE_CANCEL: 'TOUCH_ID_NATIVE_CANCEL',\r\n TOUCH_ID_LOGIN_ERROR: 'TOUCH_ID_LOGIN_ERROR',\r\n TOUCH_ID_AUTO_LOGIN: 'TOUCH_ID_AUTO_LOGIN',\r\n TOUCH_ID_STATE_CHANGED: 'TOUCH_ID_STATE_CHANGED',\r\n WEB_VIEW_NAVIGATE_GAME: 'WEB_VIEW_NAVIGATE_GAME',\r\n WEB_VIEW_NAVIGATE_DEPOSIT_WIDGET: 'WEB_VIEW_NAVIGATE_DEPOSIT_WIDGET',\r\n WEB_VIEW_NAVIGATE_MIT_ID: 'WEB_VIEW_NAVIGATE_MIT_ID',\r\n WEB_VIEW_NAVIGATE_CASHIER: 'WEB_VIEW_NAVIGATE_CASHIER',\r\n SECOND_WEB_VIEW_OLD_CALL: 'SECOND_WEB_VIEW_OLD_CALL',\r\n SECOND_WEB_VIEW_CLOSE: 'SECOND_WEB_VIEW_CLOSE',\r\n SECOND_WEB_VIEW_OPEN: 'SECOND_WEB_VIEW_OPEN',\r\n SECOND_WEB_VIEW_CLOSE_ALL: 'SECOND_WEB_VIEW_CLOSE_ALL',\r\n 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 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 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_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 SECOND_WEB_VIEW_NAVIGATE_SPORT: 'SECOND_WEB_VIEW_NAVIGATE_SPORT',\r\n TIME_UPDATED_FROM_SERVER: 'TIME_UPDATED_FROM_SERVER',\r\n ON_BROWSER_PAGE_HIDE: 'ON_BROWSER_PAGE_HIDE',\r\n\tTOKEN_LIFETIME_EXPIRED: 'TOKEN_LIFETIME_EXPIRED',\r\n\tLIVE_TABLES_UPDATE: 'LIVE_TABLES_UPDATE',\r\n LOADING_INDICATOR_EMBEDDED_UPDATE: 'LOADING_INDICATOR_EMBEDDED_UPDATE',\r\n LOADING_INDICATOR_EMBEDDED_UPDATE_V2: 'LOADING_INDICATOR_EMBEDDED_UPDATE_V2',\r\n LOADING_INDICATOR_EMBEDDED_CLOSED_BY_X: 'LOADING_INDICATOR_EMBEDDED_CLOSED_BY_X',\r\n GAMES_QUESTIONNAIRE_COMPLETED: 'GAMES_QUESTIONNAIRE_COMPLETED',\r\n GAME_SEQUENCE_FINISH: 'GAME_SEQUENCE_FINISH',\r\n GAME_POPUP_SHOW: 'GAME_POPUP_SHOW',\r\n USER_APPROVE_GAME_POPUP: 'USER_APPROVE_GAME_POPUP',\r\n BONUS_ABUSE_PARKING_MONEY : 'BONUS_ABUSE_PARKING_MONEY',\r\n SHOW_POPUP_ABOVE_HYBRID_SECOND_WEB_VIEW : 'SHOW_POPUP_ABOVE_HYBRID_SECOND_WEB_VIEW',\r\n CLOSE_POPUP_ABOVE_HYBRID_SECOND_WEB_VIEW : 'CLOSE_POPUP_ABOVE_HYBRID_SECOND_WEB_VIEW',\r\n DEPOSIT_WIDGET_CLOSED : 'DEPOSIT_WIDGET_CLOSED',\r\n DAILY_DEAL_REMOVE_INDICATION: 'DAILY_DEAL_REMOVE_INDICATION',\r\n LOCATION_POPUP_OPEN : 'LOCATION_POPUP_OPEN',\r\n LOCATION_POPUP_CLOSED : 'LOCATION_POPUP_CLOSED',\r\n PLAYER_MESSAGES_STRATEGY_READY: 'PLAYER_MESSAGES_STRATEGY_READY',\r\n CHANGE_OVERLAY_PRIORITY: 'CHANGE_OVERLAY_PRIORITY',\r\n OMG_DISPLAYED: 'OMG_DISPLAYED',\r\n LIVE_GAME_SWITCHED: 'LIVE_GAME_SWITCHED',\r\n PROMOTIONS_CHANGED: 'PROMOTIONS_CHANGED',\r\n ODR_CLEAR_ALL_GAMES: 'ODR_CLEAR_ALL_GAMES',\r\n SERIAL_UPDATE: 'SERIAL_UPDATE'\r\n};\r\n\r\n/**\r\n * Client event symbols, used internally for identifying events uniquely.\r\n */\r\nconst CLIENT_EVENTS = {\r\n MENU_CLICKED: 'MENU_CLICKED',\r\n LOGIN_BUTTON_CLICKED: 'LOGIN_BUTTON_CLICKED',\r\n REALITY_CHECK_OPENED: 'REALITY_CHECK_OPENED',\r\n REALITY_CHECK_CLOSED: 'REALITY_CHECK_CLOSED'\r\n};\r\n\r\nconst USER_EVENTS = {\r\n ON_CLICK: 'click',\r\n ON_DOUBLE_CLICK: 'dblclick',\r\n ON_SUBMIT: 'submit',\r\n ON_MOUSE_MOVE: 'mousemove',\r\n ON_MOUSE_DOWN: 'mousedown',\r\n ON_KEY_PRESS: 'keypress',\r\n ON_DOM_MOUSE_SCROLL: 'DOMMouseScroll',\r\n ON_MOUSE_WHEEL: 'mousewheel',\r\n ON_TOUCH_START: 'touchstart',\r\n ON_TOUCH_MOVE: 'touchmove',\r\n ON_TOUCH_END: 'touchend',\r\n ON_MSPOINTER_MOVE: 'MSPointerMove',\r\n ON_RESIZE: 'resize',\r\n ON_FOCUS: 'focus',\r\n ON_CHANGE: 'change',\r\n ON_BLUR: 'blur'\r\n};\r\n\r\nconst USER_ACTIVITY_EVENTS_ALL = [\r\n SYSTEM_EVENTS.MESSAGE_CLOSE,\r\n SYSTEM_EVENTS.FULL_SCREEN_CHANGE,\r\n SYSTEM_EVENTS.CLOSE_OVERLAY,\r\n SYSTEM_EVENTS.CLOSE_ALL_OVERLAY,\r\n SYSTEM_EVENTS.APP_RESUMED,\r\n SYSTEM_EVENTS.PLAYER_ACTION,\r\n SYSTEM_EVENTS.TOAST_USER_DISMISS,\r\n SYSTEM_EVENTS.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.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 {CasinoStartupConfigurations} from '../config-interfaces/casino-startup.configurations';\r\nimport {ApplicationStartupConfigurations} from '../config-interfaces/application-startup.configurations';\r\nimport {B2CStartupConfigurations} from '../config-interfaces/b2c-startup.configurations';\r\nimport {LauncherOverridesReader} from '../launcher-overrides-reader/launcher-overrides-reader';\r\nimport {LauncherOverrides} from '../config-interfaces/launcher-overrides';\r\nimport {IWindowService} from '../../services/window/window.service.interface';\r\nimport {IHttpService} from '../../services/http/http.service.interface';\r\nimport {ILoggerService} from '../../services/logger/logger.service.interface';\r\nimport {mockApplicationStartupConfigs} from '../../../utils/automation-helpers';\r\nimport {ALL_CONFIGS_KEY} from \"../../../app-consts\";\r\n\r\nconst overrideJson = require('json-override');\r\n\r\nexport class ApplicationStartupConfigurationsReader {\r\n constructor(private _defaultOrbitConfigurations: any,\r\n private _window: IWindowService,\r\n private _launcherOverridesReader: LauncherOverridesReader,\r\n private _http: IHttpService,\r\n private _logger: ILoggerService) {\r\n\r\n\r\n }\r\n\r\n private _launcherOverrides: LauncherOverrides | null;\r\n private _b2cConfigurations: B2CStartupConfigurations;\r\n\r\n async readApplicationConfigurations(): Promise {\r\n this._launcherOverrides = this._launcherOverridesReader.getOverrides();\r\n this._b2cConfigurations = this._getB2CConfigurations();\r\n let casinoConfigurations = await this._getCasinoConfigurations();\r\n\r\n const configs = {\r\n configurationPath: this._getConfigPath(casinoConfigurations),\r\n orbitServer: casinoConfigurations.sdk.config.ExtraProperties.paths.server,\r\n brandName: casinoConfigurations.sdk.config.ExtraProperties.brand,\r\n country: casinoConfigurations.country,\r\n orbit: casinoConfigurations.orbit,\r\n sdk: casinoConfigurations.sdk,\r\n admin: casinoConfigurations.adminConfig,\r\n b2c: this._b2cConfigurations,\r\n userSelectedState: casinoConfigurations.userSelectedState\r\n };\r\n\r\n return mockApplicationStartupConfigs(configs);\r\n }\r\n\r\n private _getConfigPath(casinoConfigurations: CasinoStartupConfigurations): string {\r\n\r\n let server = casinoConfigurations.sdk.config.ExtraProperties.paths.server;\r\n if(!server.endsWith('/')) {\r\n server += '/';\r\n }\r\n\r\n return server + 'configurations/' + casinoConfigurations.sdk.config.ExtraProperties.brand;\r\n }\r\n\r\n\r\n private async _getCasinoConfigurations(): Promise {\r\n\r\n let casinoConfigurations: CasinoStartupConfigurations = this._window.getGlobalProperty(ALL_CONFIGS_KEY);\r\n casinoConfigurations = await this._applyOrbitConfigsOverrides(casinoConfigurations);\r\n casinoConfigurations = this._applySdkConfigOverrides(casinoConfigurations);\r\n return casinoConfigurations;\r\n\r\n }\r\n\r\n\r\n async _applyOrbitConfigsOverrides(casinoConfigurations: CasinoStartupConfigurations): Promise {\r\n casinoConfigurations.orbit.config = overrideJson(this._defaultOrbitConfigurations, casinoConfigurations.orbit.config);\r\n if(this._launcherOverrides && this._launcherOverrides.orbit && this._launcherOverrides.orbit.configs) {\r\n overrideJson(casinoConfigurations.orbit.config, this._launcherOverrides.orbit.configs);\r\n }\r\n return casinoConfigurations;\r\n }\r\n\r\n\r\n\r\n private _applySdkConfigOverrides(casinoConfigurations: CasinoStartupConfigurations): CasinoStartupConfigurations {\r\n\r\n if(!(casinoConfigurations.sdk && casinoConfigurations.sdk.config)) { // if SDK configs are not here it probably means the app is loaded from a fallback file\r\n return casinoConfigurations;\r\n }\r\n\r\n overrideJson(casinoConfigurations, {\r\n sdk: {\r\n config: (this._launcherOverrides && this._launcherOverrides.sdk) || {}\r\n }\r\n });\r\n\r\n overrideJson(casinoConfigurations, {\r\n sdk: {\r\n config: {\r\n Language: {\r\n iso3: this._b2cConfigurations.language.iso3,\r\n iso2: this._b2cConfigurations.language.iso2\r\n }\r\n }\r\n }\r\n });\r\n\r\n let orbitLang = casinoConfigurations.orbit.lang;\r\n if(orbitLang && orbitLang.text && orbitLang.text.SDKTexts) {\r\n overrideJson(casinoConfigurations.sdk.config.Language.text, orbitLang.text.SDKTexts);\r\n }\r\n\r\n return casinoConfigurations;\r\n }\r\n\r\n\r\n\r\n\r\n private _applyB2COverrides(b2cConfigs: B2CStartupConfigurations): B2CStartupConfigurations {\r\n\r\n if(this._launcherOverrides?.orbit) {\r\n let languageIso3Override = this._launcherOverrides.orbit.language;\r\n let languageIso2Override = this._launcherOverrides.orbit.iso2;\r\n\r\n if(languageIso3Override) {\r\n b2cConfigs.language = {...b2cConfigs.language, iso3: languageIso3Override};\r\n }\r\n\r\n if(languageIso2Override) {\r\n b2cConfigs.language = {...b2cConfigs.language, iso2: languageIso2Override};\r\n }\r\n\r\n let publicationIdOverride = this._launcherOverrides.orbit.publicationID;\r\n if(publicationIdOverride) {\r\n b2cConfigs.publicationId = publicationIdOverride;\r\n }\r\n }\r\n\r\n\r\n let segmentsOverrides = this._launcherOverrides?.webData?.segments;\r\n\r\n if(segmentsOverrides) {\r\n b2cConfigs.segments = {...b2cConfigs.segments, ...segmentsOverrides};\r\n }\r\n\r\n return b2cConfigs;\r\n }\r\n\r\n private _getB2CConfigurations() : B2CStartupConfigurations {\r\n let b2cConfigs = this._window.getGlobalProperty('webData') || {} as B2CStartupConfigurations;\r\n\r\n b2cConfigs.language = b2cConfigs.language || {};\r\n b2cConfigs.language.iso3 = b2cConfigs.language.iso3 || 'eng';\r\n b2cConfigs.language.iso2 = b2cConfigs.language.iso2 || 'en';\r\n\r\n\r\n if(this._launcherOverrides) {\r\n return this._applyB2COverrides(b2cConfigs);\r\n }\r\n\r\n return b2cConfigs;\r\n }\r\n\r\n\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import ISdkHooksProvider from './sdk-hooks-provider.interface';\r\nimport {MINI_CIP_BASE_ROUTE, MINI_CIS_BASE_ROUTE} from '../../services/mini-orbit/mini-orbit-consts';\r\nimport {Uri} from '../../services/location/uri/uri';\r\nimport {IServiceFactoryExtended} from '../../services/service-factory-extended.interface';\r\nimport {IOrbitComponentToSdkAdapterService} from '../../../common/interfaces/orbit-component-to-sdk-adapter/orbit-component-to-sdk-adapter.service.interface';\r\nimport {ICashierService} from \"../../../common/interfaces/cashier.service.interface\";\r\nimport {IGameRunnerProxy} from \"../../../common/interfaces/game-runner-proxy.interface\";\r\nimport {ICasinofiedAnalyticsService} from \"../../../common/interfaces/casinofied-analytics-proxy.interface\";\r\nimport {IExternalLinksProxy} from \"../../../common/interfaces/external-links-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\r\n getExternalLinksProxyService(): IExternalLinksProxy {\r\n return this.services.externalLinks;\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 if(!subLists) {\r\n return statementsDefinition;\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 ExternalLinksProxy: this.getExternalLinksProxyOverrides()\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 private getExternalLinksProxyOverrides() {\r\n return {\r\n externalLinksService: () => this._sdkHooksProvider.getExternalLinksProxyService()\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 {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\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 sendOrbitUserFlowEvent(category:string, action: string, label: string): void {\r\n try {\r\n let data:ISendElasticEventOptions ={\r\n eventType:\"Orbit_User_Flow\",\r\n category:category,\r\n action:action,\r\n label:label\r\n }\r\n this.sendElasticInfoEvent(data, true);\r\n }\r\n catch (err){\r\n console.log(\"Error on Orbit sendOrbitUserFlowEvent : \" + err);\r\n }\r\n }\r\n\r\n sendElasticInfoEvent(options: ISendElasticEventOptions, sendToDWH?: boolean) {\r\n const logger: IStructuredLogger = this.services.sdk.structuredLoggingService\r\n .getLogger()\r\n .addCategory(options.category)\r\n .addAction(options.action)\r\n .addLabel(options.label)\r\n .addValue(options.value)\r\n .addCustomData(options.customData);\r\n\r\n if (!Check.isNullOrUndefined(options.appID)) {\r\n logger.setAppID(options.appID);\r\n }\r\n\r\n if (sendToDWH) {\r\n logger.setEventType(options.eventType,'Log', 'Analytics');\r\n }\r\n else {\r\n logger.setEventType(options.eventType, 'Log');\r\n }\r\n\r\n logger.info();\r\n }\r\n\r\n getLogger(eventData?: IElasticEventData): IStructuredLogger {\r\n return this.services.sdk.structuredLoggingService.getLogger(eventData);\r\n }\r\n\r\n getGoogleClientID(): string {\r\n return this.services.sdk.getGoogleClientID();\r\n }\r\n}\r\n","import {ILobbyGameInfoPreviewService} from './lobby-game-info-preview.service.interface';\r\nimport {action, observable} from 'mobx';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {GameInfo} from '../games/game-info';\r\n\r\nconst TIME_TO_HANDLE_SET_GAME_PREVIEW = 800;\r\nconst TIME_TO_HANDLE_CLEAR_GAME_PREVIEW = 5000;\r\n\r\n\r\nexport class LobbyGameInfoPreviewService extends ServiceBase implements ILobbyGameInfoPreviewService {\r\n\r\n constructor(serviceFactory: IServiceFactoryExtended) {\r\n super(serviceFactory);\r\n this.reaction(() => this.services.device.isMobile,\r\n () => this._resetGamePreview());\r\n\r\n this.reaction(() => this.services.routing.currentRoute,\r\n () => this._resetGamePreview());\r\n }\r\n\r\n\r\n @observable.ref currentPreviewedGame: GameInfo = null;\r\n\r\n @action.bound\r\n private _setCurrentPreviewedGame(gameType: number | null): void {\r\n if (gameType) {\r\n this.currentPreviewedGame = this.services.games.gamesMap[gameType];\r\n } else {\r\n this.currentPreviewedGame = null;\r\n }\r\n\r\n }\r\n\r\n\r\n private _setGamePreviewTimeout;\r\n private _clearGamePreviewTimeout;\r\n\r\n\r\n enableGamePreview(): void {\r\n this._allowPreview = true;\r\n }\r\n\r\n disableGamePreview(): void {\r\n this._allowPreview = false;\r\n }\r\n\r\n private _allowPreview = false;\r\n get allowGamePreview(): boolean {\r\n return this._allowPreview && !this.services.device.isMobile;\r\n }\r\n\r\n private _currentGamePreviewPinned = false;\r\n\r\n pinCurrentGamePreview() {\r\n this._currentGamePreviewPinned = true;\r\n clearTimeout(this._clearGamePreviewTimeout);\r\n }\r\n\r\n unPinCurrentGamePreview() {\r\n this._currentGamePreviewPinned = false;\r\n // basically when unPinCurrentGamePreview is called it means user mouse leave from the game preview\r\n this.clearGamePreview();\r\n }\r\n\r\n\r\n public setGamePreview(gameType: number): void {\r\n if(!this.allowGamePreview) {\r\n return;\r\n }\r\n clearTimeout(this._clearGamePreviewTimeout);\r\n clearTimeout(this._setGamePreviewTimeout);\r\n this._setGamePreviewTimeout = setTimeout(() => {\r\n this._setCurrentPreviewedGame(gameType);\r\n }, TIME_TO_HANDLE_SET_GAME_PREVIEW);\r\n }\r\n\r\n public clearGamePreview(): void {\r\n if(!this.allowGamePreview) {\r\n return;\r\n }\r\n\r\n clearTimeout(this._setGamePreviewTimeout);\r\n clearTimeout(this._clearGamePreviewTimeout);\r\n this._clearGamePreviewTimeout = setTimeout(() => {\r\n !this._currentGamePreviewPinned && this._setCurrentPreviewedGame(null);\r\n }, TIME_TO_HANDLE_CLEAR_GAME_PREVIEW);\r\n }\r\n\r\n private _resetGamePreview() {\r\n clearTimeout(this._setGamePreviewTimeout);\r\n clearTimeout(this._clearGamePreviewTimeout);\r\n this._setCurrentPreviewedGame(null);\r\n }\r\n\r\n\r\n}\r\n","import { action, observable } from 'mobx';\r\nimport { GameInfo } from '../games/game-info';\r\nimport { OnGameCloseParams, OnGameOpenParams } from '../sdk/sdk-events';\r\nimport { ServiceBase } from '../ServiceBase';\r\nimport { IRunningGameService } from './running-game.service.interface';\r\n\r\nexport class RunningGameService extends ServiceBase implements IRunningGameService {\r\n\r\n get isGameRunning(): boolean {\r\n return this.services.sdk.isGameRunning();\r\n }\r\n\r\n continuePlayingCurrentGame(): void {\r\n this.services.sdk.continuePlayingCurrentGame();\r\n }\r\n\r\n stopCurrentGameAutoplay(): void {\r\n this.services.sdk.stopCurrentGameAutoplay();\r\n }\r\n\r\n closeRunningGame(): void {\r\n this.services.gameRunner.currentRunningGame?.closeGame({\r\n shouldSuggestNextGame: false\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\nimport styled from \"styled-components\";\r\n\r\nexport const DialogTitleMrGreenBox = styled(DialogTitleDefaultBox)`\r\n color: ${props => props.theme.colors.textDark};\r\n`;","import {DialogTitleDefaultBox} from './dialog-title.default.box';\r\nimport {styledByTheme} from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {DialogTitleMrGreenBox} from \"./dialog-title.mrgreen.box\";\r\n\r\nexport const DialogTitleBox = styledByTheme(DialogTitleDefaultBox)\r\n .forMrGreen(DialogTitleMrGreenBox)\r\n .apply();","import {DialogCloseButtonDefaultBox} from './dialog-close-button.default.box';\r\n\r\nexport const DialogCloseButtonBox = DialogCloseButtonDefaultBox;","import styled from 'styled-components';\r\nimport {XCloseButtonBox} from \"../../../../basic-ui-components/x-close-button/x-close-button.box\";\r\nexport const DialogCloseButtonDefaultBox = styled(XCloseButtonBox)`\r\n width: ${props => props.theme.components.modalDialog.closeButtonSize};\r\n height: ${props => props.theme.components.modalDialog.closeButtonSize};\r\n`;","export const APPLY_BORDERS = 'apply-borders';\r\nexport const APPLY_ANIMATION = 'apply-animation';\r\nexport const MOBILE_CENTERED_HEADER = 'mobile-centered-header';\r\nexport const FORCE_TRANSPARENT_BACKGROUND = 'force-transparent-background';\r\nexport const FORCE_TRANSPARENT_CONTENT_BACKGROUND = 'force-transparent-content-background';\r\nexport const DISABLE_FULLSCREEN_MOBILE = 'disable-fullscreen-mobile';\r\nexport const FORCE_CENTRALIZATION = 'force-centralization';\r\nexport const APPLY_MAX_HEIGHT = 'apply-max-height';\r\nexport const FORCE_FULLSCREEN_TABLET = 'force-fullscreen-tablet';\r\nexport const APPLY_MODAL_CLOSING_ANIMATION = 'apply-modal-closing-animation';","import styled from 'styled-components';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {MOBILE_CENTERED_HEADER} from \"../../css-classes\";\r\n\r\nexport interface DialogHeaderDefaultBoxProps {\r\n className?: string;\r\n height?: number;\r\n}\r\n\r\nexport const DialogHeaderDefaultBox = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: center;\r\n background-color: ${props => props.theme.colors.backgroundLight};\r\n padding: 10px 15px;\r\n min-height: 30px;\r\n height: ${props => Check.isNullOrUndefined(props.height) ? 'auto' : props.height + 'px'};\r\n width: 100%;\r\n\r\n &.${MOBILE_CENTERED_HEADER} .dialog-header-title {\r\n text-align: center;\r\n margin: 0;\r\n }\r\n\r\n border-top-left-radius: 7px;\r\n border-top-right-radius: 7px;\r\n`;","import styled from 'styled-components';\r\nimport {DialogHeaderDefaultBox} from './dialog-header.default.box';\r\n\r\nexport const DialogHeaderCipBox = styled(DialogHeaderDefaultBox)`\r\n position: relative;\r\n\r\n &::after {\r\n content: \"\";\r\n position: absolute;\r\n left: 0;\r\n bottom: 0;\r\n width: 100%;\r\n height: 1px;\r\n background: linear-gradient(90deg, transparent, white, transparent);\r\n }\r\n`;","import {styledByTheme} from '../../../../themes/architecture/styled-by-theme';\r\nimport {DialogHeaderDefaultBox} from './dialog-header.default.box';\r\nimport {DialogHeaderCipBox} from './dialog-header.cip.box';\r\n\r\nexport const DialogHeaderBox = styledByTheme(DialogHeaderDefaultBox)\r\n .forCip(DialogHeaderCipBox)\r\n .forWsopCip(DialogHeaderCipBox).apply();","import styled from \"styled-components\";\r\n\r\nexport const HeaderButtonsContainerBox = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: flex-end;\r\n \r\n \r\n`","import React from 'react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {DialogHeaderBox} from '../../boxes/header/dialog-header.box';\r\nimport {DialogTitleBox} from '../../boxes/title/dialog-title.box';\r\nimport {DialogCloseButtonBox} from '../../boxes/close-button/dialog-close-button.box';\r\nimport {CyClass} from '../../../../../common/cy-classes';\r\nimport {HeaderButtonsContainerBox} from \"../../boxes/header-buttons/header-buttons-container.box\";\r\n\r\nexport interface ModalDialogHeaderComponentProps {\r\n title?: string;\r\n hideCloseButton?: boolean;\r\n onCloseButtonClick?: () => void;\r\n className?: string;\r\n renderExtraButtons?: () => React.ReactElement;\r\n}\r\nexport class DialogHeaderComponent extends OrbitComponent {\r\n\r\n private _renderTitle() {\r\n if(!this.props.title) {\r\n return null;\r\n }\r\n\r\n return (\r\n {this.props.title}\r\n );\r\n }\r\n\r\n private _renderCloseButton() {\r\n if(this.props.hideCloseButton) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _renderExtraButtons() {\r\n if(this.props.renderExtraButtons) {\r\n return this.props.renderExtraButtons();\r\n }\r\n return null;\r\n }\r\n\r\n private _renderButtons() {\r\n if(this.props.hideCloseButton && !this.props.renderExtraButtons) {\r\n return null;\r\n }\r\n return (\r\n \r\n {this._renderExtraButtons()}\r\n {this._renderCloseButton()}\r\n \r\n )\r\n\r\n }\r\n\r\n private _renderContent() {\r\n if (this.props.children) {\r\n return this.props.children\r\n }\r\n\r\n return (\r\n <>\r\n {this._renderTitle()}\r\n {this._renderButtons()}\r\n \r\n );\r\n }\r\n\r\n render() {\r\n if(!this.props.title && this.props.hideCloseButton && !this.props.children) {\r\n return null;\r\n }\r\n\r\n let height: number | null = null;\r\n if(this.services.miniOrbit.isEnabled) {\r\n height = this.services.header.headerHeight;\r\n }\r\n\r\n return (\r\n \r\n {this._renderContent()}\r\n \r\n )\r\n }\r\n\r\n}","import React from 'react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {GameInfo} from '../../../../services/games/game-info';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {observer} from 'mobx-react';\r\nimport {IModalDialogHandler} from '../../../../services/dialog/dialog.service.interface';\r\nimport {GameInfoButtonBox} from './boxes/game-info-button/game-info-button.box';\r\nimport {DialogTitleBox} from '../../../modal-dialog/boxes/title/dialog-title.box';\r\nimport {DialogCloseButtonBox} from '../../../modal-dialog/boxes/close-button/dialog-close-button.box';\r\nimport {Image} from '../../../raw-components/image/image';\r\nimport {DialogHeaderComponent} from '../../../modal-dialog/parts/header/dialog-header.component';\r\n\r\nexport interface MobileGamePreviewTitleComponentProps {\r\n gameInfo: GameInfo;\r\n arenaName?: string;\r\n dialogHandler: IModalDialogHandler;\r\n}\r\n\r\n@observer\r\nexport class TitleComponent extends OrbitComponent {\r\n\r\n _openGameInfo = () => {\r\n const gameInfo = this.props.gameInfo;\r\n this._closeInfoMobile();\r\n\r\n if (this.props.arenaName) {\r\n //TODO: Do we need it?\r\n this.services.analytics.sendAnalytics(this.props.arenaName, \"Open_Game_Info\", `SEO_${gameInfo.gameType}`);\r\n }\r\n\r\n this.services.location.push(gameInfo.infoPageURL);\r\n };\r\n\r\n _closeInfoMobile = () => {\r\n this.props.dialogHandler?.close();\r\n };\r\n\r\n private _renderOpenInfoButton(gameInfo: GameInfo) {\r\n\r\n if (Check.isEmpty(gameInfo.infoPageURL) || this.services.miniOrbit.isEnabled) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n render() {\r\n let gameInfo = this.props.gameInfo;\r\n return (\r\n \r\n {gameInfo.title}\r\n {this._renderOpenInfoButton(gameInfo)}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n\r\n","import styled from 'styled-components';\r\nimport {styledByDevice} from '../../../../../../../themes/architecture/styled-by-device';\r\nimport { Image } from '../../../../../../raw-components/image/image';\r\n\r\n\r\n//.info-image-wrapper + info-image\r\n\r\nconst DefaultBox = styled(Image)`\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n margin-bottom: 1.1rem;\r\n`;\r\n\r\nconst PcBox = styled(DefaultBox)`\r\n width: 375px;\r\n height: 121px;\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n width: 285px;\r\n height: 92px;\r\n }\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n opacity: 0.7;\r\n`;\r\n\r\nexport const StripeImageDefaultBox = styledByDevice(PcBox, MobileBox);","import {StripeImageDefaultBox} from './stripe-image.default.box';\r\n\r\nexport const StripeImageBox = StripeImageDefaultBox;","import React from 'react';\r\nimport {OrbitComponent} from '../../../../base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\nimport {GameInfo} from '../../../../../services/games/game-info';\r\nimport {StripeImageBox} from './boxes/stripe-image/stripe-image.box';\r\n\r\nexport interface GameImagePreviewComponentProps {\r\n gameInfo: GameInfo;\r\n}\r\n\r\n@observer\r\nexport class GameStripeImageComponent extends OrbitComponent {\r\n\r\n render() {\r\n let gameInfo = this.props.gameInfo;\r\n let imageSrc = gameInfo.stripImage ? gameInfo.stripImage : gameInfo.stripeImageFallback;\r\n // I noticed that sometimes react doesn't re render this component even if a different gameInfo is provided.\r\n // Setting key={gameInfo.gameType} seems to overcome this issue\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\n","import {TrailerDefaultBox} from './trailer.default.box';\r\n\r\nexport const TrailerBox = TrailerDefaultBox;","import styled from 'styled-components';\r\n\r\n//.info-video-wrapper + info-movie\r\nexport const TrailerDefaultBox = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n margin-bottom: 1.1rem;\r\n`;","import React from 'react';\r\nimport {OrbitComponent} from '../../../../base-components/orbit-component/orbit-component';\r\nimport {GameStripeImageComponent} from '../stripe-image/game-stripe-image.component';\r\nimport {observer} from 'mobx-react';\r\nimport {GameInfo} from '../../../../../services/games/game-info';\r\nimport {TrailerBox} from './boxes/trailer/trailer.box';\r\n\r\nexport interface GameTrailerPreviewComponentProps {\r\n gameInfo: GameInfo;\r\n}\r\n@observer\r\nexport class GameTrailerComponent extends OrbitComponent {\r\n\r\n render() {\r\n let gameInfo = this.props.gameInfo;\r\n\r\n //we used here key={gameInfo.gameType} to make react re render the component when a different gameInfo is provided\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import * as React from 'react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {GameStripeImageComponent} from './stripe-image/game-stripe-image.component';\r\nimport {GameTrailerComponent} from './trailer/game-trailer.component';\r\nimport {observer} from 'mobx-react';\r\nimport {GameInfo} from '../../../../services/games/game-info';\r\n\r\nexport interface GameImageContainerComponentProps {\r\n gameInfo: GameInfo;\r\n}\r\n\r\n@observer\r\nexport class TrailerOrStripeImageComponent extends OrbitComponent {\r\n render() {\r\n if (this.props.gameInfo.hasVideoTrailer) {\r\n return (\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n );\r\n }\r\n }\r\n}\r\n","import styled from 'styled-components';\r\n\r\n//check-div\r\nexport const CellValueBoolDefaultBox = styled.div`\r\n width: 13px;\r\n height: 13px;\r\n float: right;\r\n background-image: url(\"${props => props.theme.images.checkMark.toString()}\");\r\n background-repeat: no-repeat;\r\n`;","export enum GAMES_CATEGORIES {\r\n SLOTS = 'slots',\r\n CARD_AND_TABLE = 'card-and-table',\r\n LIVE = 'live'\r\n};\r\n","import {CellValueBoolDefaultBox} from './cell-value-bool.default.box';\r\n\r\nexport const CellValueBoolBox = CellValueBoolDefaultBox;","import styled from 'styled-components';\r\n\r\n//game-info-text\r\nexport const CellValueTextDefaultBox = styled.span`\r\n color: ${props => props.theme.colors.brandSecondary};\r\n ${({theme}) => theme.font.presets.bold};\r\n`;","import styled from 'styled-components';\r\nimport {CellValueTextDefaultBox} from './cell-value-text.default.box';\r\n\r\nexport const CellValueTextCasino777Box = styled(CellValueTextDefaultBox)`\r\n color: ${props => props.theme.colors.dangerDark};\r\n`;","import styled from 'styled-components';\r\nimport {CellValueTextDefaultBox} from './cell-value-text.default.box';\r\n\r\nexport const CellValueTextMrGreenBox = styled(CellValueTextDefaultBox)`\r\n color: ${props => props.theme.colors.textLight};\r\n`;","import {CellValueTextDefaultBox} from './cell-value-text.default.box';\r\nimport {CellValueTextCasino777Box} from './cell-value-text.casino777.box';\r\nimport {CellValueTextMrGreenBox} from './cell-value-text.mrgeen.box';\r\nimport {styledByTheme} from '../../../../../../../../themes/architecture/styled-by-theme';\r\n\r\nexport const CellValueTextBox = styledByTheme(CellValueTextDefaultBox)\r\n.forCasino777(CellValueTextCasino777Box)\r\n.forMrGreen(CellValueTextMrGreenBox)\r\n.apply();","import styled from 'styled-components';\r\n\r\nexport const CellTitleDefaultBox = styled.span`\r\n color: ${props => props.theme.colors.boxBorderLight};\r\n ${({theme}) => theme.font.presets.body};\r\n`;","import styled from 'styled-components';\r\nimport {CellTitleDefaultBox} from './cell-title.default.box';\r\n\r\nexport const CellTitleMrGreenBox = styled(CellTitleDefaultBox)`\r\n color: ${props => props.theme.colors.textLight};\r\n`;","import {CellTitleDefaultBox} from './cell-title.default.box';\r\nimport {styledByTheme} from '../../../../../../../../themes/architecture/styled-by-theme';\r\nimport {CellTitleMrGreenBox} from './cell-title.mrgeen.box'\r\n\r\nexport const CellTitleBox = styledByTheme(CellTitleDefaultBox)\r\n.forMrGreen(CellTitleMrGreenBox)\r\n.apply();","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-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 styled from 'styled-components';\r\nimport {TableContainerDefaultBox} from './table-container.default.box';\r\n\r\nexport const TableContainerBoxMrGreenBox = styled(TableContainerDefaultBox)`\r\n & tr { \r\n &:nth-of-type(odd){\r\n background: transparent;\r\n }\r\n }\r\n\r\n & td {\r\n border-bottom: 1px solid ${props => props.theme.colors.boxBorderLight};\r\n border-top: none\r\n }\r\n`;","import {TableContainerDefaultBox} from './table-container.default.box';\r\nimport {TableContainerBoxCasino777Box} from './table-container.casino777.box';\r\nimport {TableContainerBoxMrGreenBox} from './table-container.mrgreen.box';\r\nimport {styledByTheme} from '../../../../../../../../themes/architecture/styled-by-theme';\r\n\r\nexport const TableContainerBox = styledByTheme(TableContainerDefaultBox)\r\n.forCasino777(TableContainerBoxCasino777Box)\r\n.forMrGreen(TableContainerBoxMrGreenBox)\r\n.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 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 {GameDescriptionDefaultTextBox} from './game-description-text.default.box';\r\nimport {styledByTheme} from \"../../../../../../../themes/architecture/styled-by-theme\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const GameDescriptionSIBox = styled(GameDescriptionDefaultTextBox)`\r\n color: ${props => props.theme.colors.textDark};\r\n`;\r\n\r\nexport const GameDescriptionTextBox = styledByTheme(GameDescriptionDefaultTextBox).forSI(GameDescriptionSIBox).apply();","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\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 styled from 'styled-components';\r\nimport {JackpotAmountPreviewDefaultBox} from './jackpot-amount-preview.default.box';\r\n\r\nexport const JackpotAmountPreviewCasinoSIBox = styled(JackpotAmountPreviewDefaultBox)`\r\n padding: 0 0.5rem;\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\nimport {JackpotAmountPreviewCasinoSIBox} from \"./jackpot-amount-preview.si.box\";\r\n\r\nexport const JackpotAmountPreviewBox = styledByTheme(JackpotAmountPreviewDefaultBox)\r\n .forCasino777(JackpotAmountPreviewCasino777Box)\r\n .forSI(JackpotAmountPreviewCasinoSIBox)\r\n .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 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 {IntermediatePageDefaultBox} from './intermediate-page.default.box';\r\nimport {styledByTheme} from \"../../../../../themes/architecture/styled-by-theme\";\r\nimport styled from \"styled-components\";\r\n\r\nconst IntermediatePageSIBox = styled(IntermediatePageDefaultBox)`\r\n background-color: ${props => props.theme.colors.backgroundContrast};\r\n`;\r\n\r\nexport const IntermediatePageBox = styledByTheme(IntermediatePageDefaultBox).forSI(IntermediatePageSIBox).apply();","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 {IRunningGameHandler} from './running-game-handler.interface';\r\nimport {MarketingParams} from \"../../../common/interfaces/marketing-params.interface\";\r\nimport {\r\n OpenGameIntermediatePageComponent\r\n} from \"../../components/lobby-game-info-preview/intermediate-page/open-game-intermediate-page.component\";\r\nimport React from \"react\";\r\nimport {GameIconAnimationState} from '../../components/single-game/common/parts/game-image/game-image.component';\r\nimport {\r\n IRunningGameControllerViewModel\r\n} from \"../game-runner/interfaces/game-controller/running-game-controller.interface\";\r\nimport {GameModeEnum} from \"../game-runner/interfaces/game-context/game-context-view-model.interface\";\r\nimport {IOpenFreePlayGameParams} from \"../game-runner/game-runner.service.interface\";\r\nimport {IGameRestriction} from \"../restrictions/game-restriction.interface\";\r\nimport {NoGameRestriction} from \"../restrictions/no-game-restriction\";\r\nimport {GAME_GROUP} from \"../../../common/const/game_groups_consts\";\r\nimport {NullableNumber, NullableString} from \"../../../common/types/nullable-types\";\r\nimport {GAMES_CATEGORIES} from \"./games-categories.enum\";\r\nimport {IGameInfo} from '../../../common/const/game-info.interface';\r\nimport {GAME_VOLATILITY} from '../../../sdk/src/services/games_information/games_information_service_interface';\r\n\r\nexport interface OpenGameParameters {\r\n isRealMode: boolean;\r\n pageName?: string;\r\n listTitle?: string;\r\n listPosition?: number;\r\n AdminListID?: number;\r\n marketingParams?: MarketingParams;\r\n gameIndex?: number;\r\n aiEngine?: string;\r\n aiSortingType?: string;\r\n AIListTypeID?: number;\r\n openFromDrawer?:boolean;\r\n showIntermediatePage?: boolean;\r\n isCalledFromIntermediatePage?: boolean;\r\n animatedIconState?: GameIconAnimationState;\r\n freePlayParams?: IOpenFreePlayGameParams;\r\n skipFreePlaySuggestion?: boolean;\r\n referrerId?: NullableNumber;\r\n}\r\n\r\n\r\n\r\nexport function gameInfoComparerByTitle(game1: GameInfo, game2: GameInfo): number {\r\n if(game1.title < game2.title) {\r\n return -1\r\n } else if(game1.title > game2.title) {\r\n return 1\r\n }\r\n\r\n return 0;\r\n}\r\n\r\n\r\nexport class GameInfo {\r\n constructor(private _rawGameData: IGameInfo,\r\n private services: IServiceFactoryExtended,\r\n private _aboutText: string) {\r\n\r\n Object.defineProperty(this._rawGameData, 'allowSwitchGameMode', {\r\n get: () => this.allowSwitchGameMode,\r\n configurable: true\r\n });\r\n }\r\n\r\n @computed\r\n private get _isMobile(): boolean {\r\n return this.services.device.isMobile;\r\n }\r\n\r\n @computed\r\n private get _isAuthorized(): boolean {\r\n return this.services.user.isAuthorized;\r\n }\r\n\r\n get gameType(): number {\r\n return this._rawGameData.gameType;\r\n }\r\n\r\n get title(): string {\r\n return this._rawGameData.title;\r\n }\r\n\r\n get numberOfLines(): number {\r\n return this._rawGameData.numberOfLines;\r\n }\r\n\r\n\r\n get hasJackpot(): boolean {\r\n return this._rawGameData.hasJackpot || false;\r\n }\r\n\r\n get isNewGame(): boolean {\r\n return this._hasCustomFilter('new');\r\n }\r\n\r\n get isExclusiveGame(): boolean {\r\n return this._hasCustomFilter('exclusive');\r\n }\r\n\r\n private _hasCustomFilter(filterName: string): boolean {\r\n if (!filterName) {\r\n return false;\r\n }\r\n\r\n if (!Check.isArray(this._rawGameData.filtersList)) {\r\n return false;\r\n }\r\n\r\n filterName = filterName.toLowerCase();\r\n\r\n return 0 <= this._rawGameData.filtersList.findIndex(filter => filter.toLowerCase() === filterName);\r\n\r\n }\r\n\r\n get hasBonusGames(): boolean {\r\n return this._rawGameData.hasBonusGames || false;\r\n }\r\n\r\n get numberOfDecks(): number {\r\n return this._rawGameData.numberOfDecks;\r\n }\r\n\r\n get isMultiHand(): boolean {\r\n return this._rawGameData.isMultiHand || false;\r\n }\r\n\r\n get hasFreeSpins(): boolean {\r\n return this._rawGameData.hasFreeSpins || false;\r\n }\r\n\r\n get subGroupName(): string {\r\n return this._rawGameData.subGroupName;\r\n }\r\n\r\n get isEliteLounge(): boolean {\r\n return this._rawGameData.isEliteLounge || false;\r\n }\r\n\r\n get hasSideBets(): boolean {\r\n return this._rawGameData.hasSideBets || false;\r\n }\r\n\r\n get maxBetPerSpot(): number {\r\n return this._rawGameData.maxBetPerSpot;\r\n }\r\n\r\n get allowWithdrawOnlyFromReal(): boolean {\r\n return this._rawGameData.allowWithdrawOnlyFromReal;\r\n }\r\n\r\n get hasLowStakes(): boolean {\r\n return this._hasCustomFilter('lowStakes');\r\n }\r\n\r\n get hasHighStakes(): boolean {\r\n return this._hasCustomFilter('highStakes');\r\n }\r\n\r\n get ClassicSlots(): boolean {\r\n return this._rawGameData.ClassicSlots;\r\n }\r\n\r\n get allowMinMaxBet(): boolean {\r\n let isAllowedCategory = this.isCardOrTableGame || this.isLiveCasino;\r\n\r\n return !this.hasJackpot && isAllowedCategory;\r\n }\r\n\r\n\r\n @computed\r\n get allowHoverDetails(): boolean {\r\n\r\n if (this.gameGroup === 'Live Casino') {\r\n return false;\r\n }\r\n\r\n return !this._isAuthorized || this._rawGameData.forceDemoButton;\r\n }\r\n\r\n @computed\r\n get allowTap(): boolean {\r\n return this._isMobile;\r\n }\r\n\r\n\r\n get hasInfoPage(): boolean {\r\n if (this.infoPageURL) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n @computed\r\n get allowDemoButtonInSingleGame(): boolean {\r\n\r\n if (!this._rawGameData.isAnonymousSupported) {\r\n return false;\r\n }\r\n\r\n if (this._rawGameData.forceDemoButton) {\r\n return true;\r\n }\r\n\r\n\r\n if (this._isMobile) {\r\n return false;\r\n }\r\n\r\n\r\n return (this._rawGameData.demoSettings\r\n && this._rawGameData.demoSettings.demoCTAAnonymous\r\n && this._rawGameData.demoSettings.demoCTAAnonymous.pc);\r\n }\r\n\r\n\r\n @computed\r\n get allowDemoButtonInIntermediatePage(): boolean {\r\n if (!this._rawGameData.isAnonymousSupported) {\r\n return false;\r\n }\r\n\r\n if (this._rawGameData.forceDemoButton) {\r\n return true;\r\n }\r\n\r\n if (this.services.user.isAuthorized) {\r\n return this._rawGameData.demoSettings && this._rawGameData.demoSettings.demoCTAAuthorized && this._rawGameData.demoSettings.demoCTAAuthorized.mobile;\r\n }\r\n\r\n return this._rawGameData.demoSettings && this._rawGameData.demoSettings.demoCTAAnonymous && this._rawGameData.demoSettings.demoCTAAnonymous.mobile;\r\n }\r\n\r\n get infoPageURL(): string {\r\n\r\n if (!this._rawGameData.infoPageURL) {\r\n return '';\r\n }\r\n\r\n if (!this.services.siteMap.isUrlInSiteMap(this._rawGameData.infoPageURL)) {\r\n this.services.logger.debug(`Page info '${this._rawGameData.infoPageURL}' for game ${this.gameType} - ${this.title} is not in the site map`);\r\n return '';\r\n }\r\n\r\n return this._rawGameData.infoPageURL\r\n }\r\n\r\n //Can be either a live stream URL or a static video URL.\r\n get videoURL(): string {\r\n if (!this._rawGameData.videoURL) {\r\n return '';\r\n }\r\n\r\n return this._rawGameData.videoURL;\r\n }\r\n\r\n get hasVideoURL(): boolean {\r\n return Boolean(this.videoURL);\r\n }\r\n\r\n get gameGroup(): string {\r\n return this._rawGameData.gameGroup;\r\n }\r\n\r\n get gameGroupId(): GAME_GROUP {\r\n return this._rawGameData.gameGroupId;\r\n }\r\n\r\n get gameCategory(): string {\r\n if(this.isVideoSlot || this.isScratchCards) {\r\n return GAMES_CATEGORIES.SLOTS;\r\n }\r\n\r\n if(this.isLiveCasino) {\r\n return GAMES_CATEGORIES.LIVE;\r\n }\r\n\r\n if(this.isCardOrTableGame) {\r\n return GAMES_CATEGORIES.CARD_AND_TABLE;\r\n }\r\n\r\n return '';\r\n\r\n }\r\n\r\n get gameCategoryClassName(): string {\r\n return 'game-category-' + this.gameCategory;\r\n }\r\n\r\n get companyName(): string {\r\n return this._rawGameData.companyName;\r\n }\r\n\r\n get vendorId(): number {\r\n return this._rawGameData.vendorId;\r\n }\r\n\r\n get vendorName(): string {\r\n return this._rawGameData.vendorName;\r\n }\r\n\r\n getGameImage(options?: {squareIcon?: boolean; animatedIcon?: boolean;}): string {\r\n let opts = {\r\n squareIcon: options?.squareIcon || false,\r\n animatedIcon: options?.animatedIcon || false,\r\n }\r\n let images = this._rawGameData && this._rawGameData.images;\r\n if (!images) {\r\n return '';\r\n }\r\n\r\n if (opts.squareIcon && images.hybrid_icon) {\r\n if (opts.animatedIcon) {\r\n return (images.animated_square) ? this.getAnimatedJsonUrl(this._getResolvedGameImagePath(images.animated_square)) : '';\r\n }\r\n return this._getResolvedGameImagePath(images.hybrid_icon);\r\n }\r\n\r\n if (opts.animatedIcon) {\r\n return (images.animated_round) ? this.getAnimatedJsonUrl(this._getResolvedGameImagePath(images.animated_round)) : '';\r\n }\r\n return this._getResolvedGameImagePath(images.icon);\r\n }\r\n\r\n getBackgroundImage(): string {\r\n let background = this._rawGameData?.images?.background;\r\n if (!background) {\r\n return '';\r\n }\r\n\r\n return this._getResolvedGameImagePath(background);\r\n }\r\n\r\n private getAnimatedJsonUrl(pngImagePath: string) {\r\n if (!pngImagePath.endsWith('.png')) {\r\n this.services.logger.error(\"Animated icon path does not end in '.png': \" + pngImagePath);\r\n return '';\r\n }\r\n // we don't expect for substring '.png' to exist in other place than the end of the string, so we do a simple replace\r\n return pngImagePath.replace('.png', '.json');\r\n }\r\n\r\n getAnimatedImageTimings() {\r\n const animatedImageTimings = this._rawGameData && this._rawGameData.animatedImageTimings\r\n return {\r\n delay: animatedImageTimings?.delay || 2000,\r\n interval: animatedImageTimings?.interval || 3000,\r\n }\r\n }\r\n\r\n get gameImageInsideIntermediatePage(): string {\r\n let images = this._rawGameData && this._rawGameData.images;\r\n if (!images) {\r\n return '';\r\n }\r\n\r\n return this._getResolvedGameImagePath(images.icon);\r\n }\r\n\r\n get gameImageInHistoryPage(): string {\r\n let images = this._rawGameData && this._rawGameData.images;\r\n if (!images) {\r\n return '';\r\n }\r\n\r\n let image: string = images.icon;\r\n if (this.services.theme.shouldUseSquareIcons && images.hybrid_icon) {\r\n image = images.hybrid_icon;\r\n }\r\n\r\n return this._getResolvedGameImagePath(image);\r\n }\r\n\r\n get badge(): string | null {\r\n return this._rawGameData.badge;\r\n }\r\n\r\n get videoThumbnailUrl(): string {\r\n let images = this._rawGameData.images;\r\n if (!images) {\r\n return '';\r\n }\r\n\r\n return this._getResolvedGameImagePath(images.video_thumbnail);\r\n }\r\n\r\n @computed\r\n get badgeUrl(): string | null {\r\n if (this.badge) {\r\n return this.services.configuration.data.generalSettings.gamesSettings.gameBadgePath + this.badge + '.png';\r\n }\r\n\r\n return null;\r\n }\r\n\r\n get minBet(): number {\r\n return this._rawGameData.minBet;\r\n }\r\n\r\n get maxBet(): number {\r\n return this._rawGameData.maxBet;\r\n }\r\n\r\n get maxBetPerBrand(): number {\r\n return this._rawGameData.maxBetPerBrand;\r\n }\r\n\r\n getGameImagePlaceHolderUrl(useSquareIcon?: boolean): string {\r\n if (useSquareIcon) {\r\n return this.services.theme.currentTheme.images.gameIconPlaceHolderSq.toString();\r\n }\r\n return this.services.theme.currentTheme.images.gameIconPlaceHolder.toString();\r\n }\r\n\r\n getImageSeoAlt() {\r\n\r\n let seoValue = this.services.configuration.data?.seo?.games?.images?.alt;\r\n\r\n return this.services.translation.translate(seoValue, {\r\n gameName: this.title,\r\n categoryName: this.gameCategory\r\n });\r\n };\r\n\r\n private _getResolvedGameImagePath(imagePath: string): string {\r\n return this.services.configuration.resolveGameImagePath(imagePath);\r\n }\r\n\r\n @computed\r\n get stripImage(): string {\r\n let images = this._rawGameData.images;\r\n if (!images) {\r\n return '';\r\n }\r\n\r\n return this._isMobile ? this._getResolvedGameImagePath(images.strip_mobile) :\r\n this._getResolvedGameImagePath(images.strip_pc);\r\n }\r\n\r\n @computed\r\n get stripeImageFallback(): string {\r\n let generalSettings = this.services.configuration.data.generalSettings;\r\n let previewDefaultImage = generalSettings && generalSettings.gamesSettings && generalSettings.gamesSettings.gamesPreviewDefaultImages;\r\n\r\n if (previewDefaultImage && this.gameCategory) {\r\n //Replace the game category dash to under score (like the image name for example card-and-table category name should be default_game_strip_card_and_table)\r\n let gameCategoryWithUnderScores = this.gameCategory.replace(/-/g, '_');\r\n previewDefaultImage = previewDefaultImage.replace(/{arena-category}/g, gameCategoryWithUnderScores);\r\n //Add _mobile if we are in mobile\r\n\r\n if (this.services.device.isMobile) {\r\n return previewDefaultImage.replace('.png', '_mobile.png');\r\n }\r\n\r\n return previewDefaultImage;\r\n }\r\n\r\n return ''\r\n }\r\n\r\n get hasVideoTrailer(): boolean {\r\n return this.gameType === 130136;\r\n }\r\n\r\n get aboutText(): string {\r\n return this._aboutText;\r\n }\r\n\r\n get multiplayer(): number {\r\n return this._rawGameData.multiplayer;\r\n }\r\n\r\n get isClassicSlot(): boolean {\r\n return this._hasCustomFilter('ClassicSlots');\r\n }\r\n\r\n get hasHighVolatility(): boolean {\r\n return this.volatility === GAME_VOLATILITY.High;\r\n }\r\n\r\n get hasLowVolatility(): boolean {\r\n return this.volatility === GAME_VOLATILITY.Low;\r\n }\r\n\r\n get hasMediumVolatility(): boolean {\r\n return this.volatility === GAME_VOLATILITY.Medium;\r\n }\r\n\r\n get hasDailyJackpot(): boolean {\r\n return this._hasCustomFilter('DailyJackpot');\r\n }\r\n\r\n get hasTwilightJackpot(): boolean {\r\n return this._hasCustomFilter('TwilightJackpot');\r\n }\r\n\r\n get hasCaptain8tJackpot(): boolean {\r\n return this._hasCustomFilter('Captain8Jackpot');\r\n }\r\n\r\n get hasRedTigerJackpot(): boolean {\r\n return this._hasCustomFilter('RedTigerJackpot');\r\n }\r\n\r\n @computed\r\n get shouldShowIntermediatePage(): boolean {\r\n if (!this._isMobile) {\r\n return false;\r\n }\r\n\r\n if (!this._rawGameData.isAnonymousSupported) {\r\n return false;\r\n }\r\n\r\n if (this.isLiveCasino) {\r\n return false;\r\n }\r\n\r\n if (this._rawGameData.forceDemoButton) {\r\n return true;\r\n }\r\n\r\n let demoSettings = this._rawGameData.demoSettings;\r\n if (this._isAuthorized) {\r\n if ((this._rawGameData?.forceIntermediatePageForAutorizedUsers) || (demoSettings && demoSettings.intermediatePageAuthorized && demoSettings.intermediatePageAuthorized.mobile)) {\r\n return true;\r\n }\r\n } else {\r\n if (demoSettings?.intermediatePageAnonymous?.mobile) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n get isDemoModeSupported(): boolean {\r\n return Boolean(this._rawGameData.isAnonymousSupported);\r\n }\r\n\r\n @computed\r\n get allowSwitchGameMode(): boolean {\r\n\r\n if(!this.isDemoModeSupported) {\r\n return false;\r\n }\r\n\r\n let demoSettings = this._rawGameData.demoSettings;\r\n if (!demoSettings) {\r\n return false;\r\n }\r\n\r\n if (this._isAuthorized) {\r\n return Boolean(demoSettings?.demoCTAAuthorized?.pc);\r\n } else {\r\n return Boolean(demoSettings?.demoCTAAnonymous?.pc);\r\n }\r\n }\r\n\r\n async open(params: OpenGameParameters): Promise {\r\n\r\n if(this._showIntermediatePage(params)) {\r\n return;\r\n }\r\n\r\n if (this._shouldRedirectToMembership(params)) {\r\n this._openMembership();\r\n return {\r\n closeGame: () => {\r\n }\r\n };\r\n }\r\n\r\n this._sendOpenGameAnalytics(params);\r\n\r\n let gameController: IRunningGameControllerViewModel | null = null;\r\n if (params.isRealMode) {\r\n if(params.marketingParams) {\r\n this.services.sdk.eventsTrigger.updateMarketingParams(params.marketingParams);\r\n }\r\n gameController = await this.services.gameRunner.openGame({\r\n gameMode: GameModeEnum.Real,\r\n gameInfo: this,\r\n freePlayParams: params.freePlayParams,\r\n skipFreePlaySuggestion: params.skipFreePlaySuggestion,\r\n referrerId: params.referrerId\r\n });\r\n } else {\r\n gameController = await this.services.gameRunner.openGame({\r\n gameMode: GameModeEnum.Demo,\r\n gameInfo: this\r\n });\r\n }\r\n\r\n return {\r\n closeGame: async () => {\r\n await gameController?.closeGame({\r\n shouldSuggestNextGame: false\r\n })\r\n }\r\n }\r\n\r\n }\r\n\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\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\r\n private _openMembership() {\r\n this.services.analytics.sendAnalytics('Conversion', 'Play', 'PreGamePopUp');\r\n this.services.externalLinks.openLink({ source: 'membership' }, { dl: \"20614\" });\r\n }\r\n\r\n private _sendOpenGameAnalytics(params: OpenGameParameters): void {\r\n if (!params.pageName || !params.listTitle) {\r\n return;\r\n }\r\n const listTitle = this._replaceUnderscore(params.listTitle);\r\n\r\n const analyticsLabel = (params.isRealMode ? 'Real' : 'Anonymous') + '_' + this.gameType.toString() + '_' + this.title + '_' + params.gameIndex + '_' + (this._isAuthorized ? 'isAuth' : 'isNotAuth');\r\n const analyticsAction = listTitle +\r\n (params.openFromDrawer ? '_Drawer' : '') +\r\n (Check.isNumber(params.listPosition) ? '_' + params.listPosition : '') +\r\n '_' + (params.aiEngine ? params.aiEngine : 'NoAI') +\r\n (params.AIListTypeID ? '_' + params.AIListTypeID : '') +\r\n (params.AdminListID ? '_' + params.AdminListID : '');\r\n\r\n this.services.analytics.sendAnalytics(params.pageName, analyticsAction, analyticsLabel, this.gameType, true);\r\n this.services.analytics.sendElasticInfoEvent({eventType:\"CGP_Game_Click\",category: params.pageName, action: 'game_click', label: listTitle, value: this.gameType.toString(), customData: params}, true);\r\n }\r\n\r\n\r\n isAllWordsMatch(words: RegExp[]) {\r\n let text = this.title + ' ' + this.vendorName;\r\n for (let index = 0; index < words.length; index++) {\r\n if (!text.match(words[index])) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n get gameArenaIcon(): string {\r\n let images = this._rawGameData.images;\r\n if (!images) {\r\n return '';\r\n }\r\n\r\n return this._getResolvedGameImagePath(images.arena_icon);\r\n }\r\n\r\n /**\r\n * @description BI/BA request not to send the underscore as part of the list title since they split by underscore to get all the data on the label\r\n * @param listTitle\r\n * @private\r\n */\r\n private _replaceUnderscore(listTitle): string {\r\n return listTitle.replace(/_/g, '-');\r\n }\r\n\r\n get restriction(): IGameRestriction {\r\n\r\n if(this._rawGameData.restriction) {\r\n return this._rawGameData.restriction as IGameRestriction;\r\n }\r\n return new NoGameRestriction();\r\n }\r\n\r\n get isVideoSlot(): boolean {\r\n return this.gameGroupId === GAME_GROUP.VIDEO_SLOT\r\n || this.gameGroupId === GAME_GROUP.SLOT\r\n }\r\n\r\n //same as isCardOrTableGame() besides ARCADE, PAI_GOW_POKER, ROULETTE_LIKE\r\n get isCasinoGame() {\r\n const casinoGamesGroups = [\r\n GAME_GROUP.BACCARAT,\r\n GAME_GROUP.BLACKJACK,\r\n GAME_GROUP.CARRIBEAN_POKER,\r\n GAME_GROUP.CRAPS,\r\n GAME_GROUP.KENO,\r\n GAME_GROUP.POKER,\r\n GAME_GROUP.POKER_TEMPLATE_GAMES,\r\n GAME_GROUP.ROULETTE,\r\n GAME_GROUP.SCRATCH_CARD,\r\n GAME_GROUP.VIDEO_POKER\r\n ];\r\n\r\n return casinoGamesGroups.includes(this.gameGroupId);\r\n }\r\n\r\n get isVideoPoker(): boolean {\r\n return this.gameGroupId === GAME_GROUP.VIDEO_POKER;\r\n }\r\n\r\n get isScratchCards(): boolean {\r\n return this.gameGroupId === GAME_GROUP.SCRATCH_CARD;\r\n }\r\n\r\n get isBlackJack(): boolean {\r\n return this.gameGroupId === GAME_GROUP.BLACKJACK;\r\n }\r\n\r\n get isRoulette(): boolean {\r\n return this.gameGroupId === GAME_GROUP.ROULETTE;\r\n }\r\n\r\n get isLiveCasino(): boolean {\r\n return this.gameGroupId === GAME_GROUP.LIVE_CASINO;\r\n }\r\n\r\n get isBaccarat(): boolean {\r\n return this.gameGroupId === GAME_GROUP.BACCARAT;\r\n }\r\n\r\n\r\n get isCardOrTableGame(): boolean {\r\n\r\n return this.isBlackJack\r\n || this.isRoulette\r\n || this.isBaccarat\r\n || this.isVideoPoker\r\n || this.gameGroupId === GAME_GROUP.CRAPS\r\n || this.gameGroupId === GAME_GROUP.KENO\r\n || this.gameGroupId === GAME_GROUP.CARRIBEAN_POKER\r\n || this.gameGroupId === GAME_GROUP.POKER_TEMPLATE_GAMES\r\n || this.gameGroupId === GAME_GROUP.ROULETTE_LIKE\r\n || this.gameGroupId === GAME_GROUP.ARCADE\r\n || this.gameGroupId === GAME_GROUP.POWER_VIDEO_POKER\r\n || this.gameGroupId === GAME_GROUP.PAI_GOW_POKER\r\n || this.gameGroupId === GAME_GROUP.CRAZY_BLACKJACK\r\n }\r\n\r\n get externalGameCode(): NullableString {\r\n return this._rawGameData.externalGameCode;\r\n }\r\n\r\n get themeIds(): number[] {\r\n return this._rawGameData.gameThemes ?? [];\r\n }\r\n\r\n get volatility(): GAME_VOLATILITY {\r\n return this._rawGameData.volatility;\r\n }\r\n}\r\n","import {AdminArenaConfiguration} from \"../../app-bootstrap/config-interfaces/casino-startup.configurations\";\r\nimport {createStatementsDefinition} from './create-statements-definition';\r\nimport {HOME_PAGE_ARENA, LIVE_CASINO_ARENA_NAME, NEW_LIVE_CASINO_ARENA_NAME} from '../arenas/arena-consts';\r\nimport {Check} from \"@sparkware/app-utils\";\r\n\r\nenum List_Type {\r\n Swipers = \"swipers\",\r\n Grids = \"grids\",\r\n PopularTables = \"popularTables\"\r\n}\r\n\r\nexport function injectAdminArenas(\r\n originalConfigData: any,\r\n adminArenaConfigData: {[key: string]: AdminArenaConfiguration}\r\n): void {\r\n\r\n if (originalConfigData.homePage) {\r\n originalConfigData.homePage.gamesLists = getAdminArenaLists(\r\n adminArenaConfigData,\r\n HOME_PAGE_ARENA,\r\n List_Type.Swipers\r\n );\r\n }\r\n\r\n if (originalConfigData.arenas) {\r\n Object.keys(originalConfigData.arenas).forEach(arenaKey => {\r\n\r\n if (arenaKey === 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 } else if (arenaKey === NEW_LIVE_CASINO_ARENA_NAME) {\r\n originalConfigData.arenas[arenaKey].allGamesGrid = getAdminArenaLists(\r\n adminArenaConfigData,\r\n arenaKey,\r\n List_Type.Grids\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 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\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 = list.Metadata ?? {};\r\n\r\n currentList.display = Check.isNullOrUndefined(currentList.display) ? true : currentList.display;\r\n\r\n let segmentation = createStatementsDefinition(list.SubLists);\r\n currentList.gamesId = {};\r\n currentList.gamesId.defaultValue = segmentation.defaultValue;\r\n currentList.gamesId.statements = segmentation.statements;\r\n\r\n adminLists.push(currentList);\r\n });\r\n }\r\n\r\n return adminLists;\r\n}\r\n","import {GamesMap, IGameImageSize, IGamesService, RecentlyPlayedGames} from './games.service.interface';\r\nimport {GameInfo} from './game-info';\r\nimport {action, observable} from 'mobx';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\n\r\nexport class GamesService extends ServiceBase implements IGamesService {\r\n\r\n constructor(serviceFactory: IServiceFactoryExtended) {\r\n super(serviceFactory);\r\n\r\n this.reaction(\r\n () => this.services.user.isAuthorized,\r\n () => this._updateGamesMap(),\r\n {\r\n fireImmediately: true\r\n });\r\n\r\n this.services.sdk.events.onRecentlyPlayedGamesUpdated(this._updateRecentlyPlayedGames);\r\n }\r\n\r\n\r\n @observable.ref gamesMap: GamesMap = {};\r\n @action.bound\r\n private _setGamesMap(gamesMap: GamesMap): void {\r\n this.gamesMap = gamesMap;\r\n }\r\n\r\n @observable.ref\r\n recentlyPlayedGames: RecentlyPlayedGames = {\r\n isInitialized: false,\r\n gameTypes: []\r\n };\r\n\r\n @action.bound\r\n private _updateRecentlyPlayedGames(gameTypes: number[]): void {\r\n if(!this.recentlyPlayedGames.isInitialized\r\n || !this.services.sdk.getUtils().arraysAreEqual(this.recentlyPlayedGames.gameTypes, gameTypes)) {\r\n this.recentlyPlayedGames = {\r\n isInitialized: true,\r\n gameTypes: gameTypes\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n private async _buildGamesMap(sdkGamesInfo: any): Promise {\r\n\r\n let aboutTexts = await this._getGamesAboutTexts();\r\n\r\n let gamesMap: GamesMap = {};\r\n\r\n const usedGameTypesBySiteMap = this.services.configuration.usedGameTypesBySite.reduce((accumulator, gt) => {\r\n accumulator[gt] = true;\r\n return accumulator;\r\n }, {});\r\n\r\n Object.keys(sdkGamesInfo).forEach(gameType => {\r\n try {\r\n // filter only in-layout games\r\n if (usedGameTypesBySiteMap[gameType]) {\r\n let sdkInfo = sdkGamesInfo[gameType];\r\n let generalSettings = this.services.configuration.data.generalSettings;\r\n let gameTagInfo = (generalSettings && generalSettings.gamesSettings && generalSettings.gamesSettings.gamesTags && generalSettings.gamesSettings.gamesTags[gameType]) || {};\r\n\r\n // for now, rawGameData will contain also gameTagInfo properties - which are read by adminClient settings\r\n // moreover, we'll add a new property on it regarding allowSwitchToDemo\r\n let rawGameData = Object.assign(sdkInfo, gameTagInfo);\r\n let gameInfo = new GameInfo(rawGameData, this.services, aboutTexts[gameType]);\r\n gamesMap[gameInfo.gameType] = gameInfo;\r\n }\r\n } catch(err) {\r\n this.services.logger.error(`Failed to generate GameInfo for game type ${gameType}`, err);\r\n }\r\n\r\n });\r\n\r\n return gamesMap;\r\n }\r\n\r\n private _gamesAboutTexts: {[key: string]: string} | null = null;\r\n\r\n private async _getGamesAboutTexts(): Promise<{[key: string]: string}> {\r\n if(this._gamesAboutTexts) {\r\n return this._gamesAboutTexts;\r\n }\r\n let gamesAboutTextConfigPath = this.services.configuration.data.generalSettings.gamesSettings.gamesAboutTextPath;\r\n\r\n //if there is no about path (not supported in this regulation) - we prevent the http call\r\n if(!gamesAboutTextConfigPath){\r\n this._gamesAboutTexts = {};\r\n return this._gamesAboutTexts;\r\n }\r\n\r\n let gamesAboutTextUrl = '';\r\n\r\n try {\r\n gamesAboutTextUrl = gamesAboutTextConfigPath.replace('{currentLanguage}', this.services.language.currentLanguage);\r\n let aboutTextsJson = await this.services.http.get(gamesAboutTextUrl);\r\n\r\n if(Check.isNullOrUndefined(aboutTextsJson) || Object.keys(aboutTextsJson).length === 0) {\r\n this.services.logger.warning(`No games about texts returned from ${gamesAboutTextUrl}`);\r\n }\r\n this._gamesAboutTexts = aboutTextsJson || {};\r\n\r\n return this._gamesAboutTexts!;\r\n } catch (err) {\r\n if(err && ('statusCode' in err) && err.statusCode === 404) {\r\n // NB: Ignore 404s, usually for things like spa_about.json that actually shouldn't exist.\r\n return {};\r\n }\r\n this.services.logger.error(`Failed to read games about texts from ${gamesAboutTextUrl}`, err);\r\n return {};\r\n }\r\n\r\n\r\n }\r\n\r\n private async _updateGamesMap(): Promise {\r\n let usedGameTypesBySite = this.services.configuration.usedGameTypesBySite || [];\r\n if(usedGameTypesBySite.length === 0) {\r\n this.services.logger.error(`configuration.usedGameTypesBySite returned empty array`);\r\n return;\r\n }\r\n\r\n const gamesMap = await this._getGamesInfoMap(usedGameTypesBySite);\r\n this._setGamesMap(gamesMap);\r\n }\r\n\r\n async _getGamesInfoMap(gameTypes: number[]): Promise {\r\n try {\r\n let sdkGamesInfo = await this.services.sdk.getGamesInfo(gameTypes);\r\n return await this._buildGamesMap(sdkGamesInfo);\r\n } catch (err) {\r\n this.services.logger.error(`sdk.getGamesInfo failed in GamesService.getGamesInfo`, err);\r\n return {};\r\n }\r\n }\r\n\r\n async getGamesInfoMap(gameTypes: number[]): Promise {\r\n if (!gameTypes || gameTypes.length === 0) {\r\n return {};\r\n }\r\n\r\n // fill data from cache (if cache found)\r\n if (Object.keys(this.gamesMap).length > 0) {\r\n const inCacheGames = gameTypes.filter((gt) => this.gamesMap[gt]);\r\n const result = inCacheGames.reduce((acc, gt) => {acc[gt] = this.gamesMap[gt]; return acc;}, {});\r\n return result;\r\n } else {\r\n // otherwise fill it from SDK\r\n return this._getGamesInfoMap(gameTypes);\r\n }\r\n }\r\n\r\n async getGamesInfoForHistory(gameTypes: number[]): Promise {\r\n let sdkGamesInfo = await this.services.sdk.getGamesInfoForHistory(gameTypes);\r\n\r\n let gamesMap: GamesMap = {};\r\n Object.keys(sdkGamesInfo).forEach(gameType => {\r\n let rawGameData = Object.assign(sdkGamesInfo[gameType], this.gamesMap[gameType]);\r\n gamesMap[gameType] = new GameInfo(rawGameData, this.services, '')\r\n });\r\n return gamesMap;\r\n }\r\n\r\n async getGamesInfoArray(gameTypes: number[]): Promise {\r\n let gamesMap = await this.getGamesInfoMap(gameTypes);\r\n\r\n const result: GameInfo[] = [];\r\n for(let i = 0; i < gameTypes.length; i++) {\r\n const gameType = gameTypes[i];\r\n if (gamesMap[gameType]) {\r\n result.push(gamesMap[gameType]);\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n async getGameInfo(gameType: number) {\r\n const gamesMap = await this.getGamesInfoMap([gameType]);\r\n if(gamesMap) {\r\n return gamesMap[gameType];\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n async getCorrelatedGames(gameType: number, numberOfGames: number): Promise {\r\n try {\r\n return await this.services.sdk.getCorrelatedGames(gameType, numberOfGames);\r\n } catch (err) {\r\n this.services.logger.error(`Failed to get from SDK the correlated games for game type ${gameType}`, err);\r\n return [];\r\n }\r\n }\r\n\r\n getGameImageExpectedSizes(useSquareIcons?: boolean, animated?: boolean): IGameImageSize {\r\n if (useSquareIcons) {\r\n if (animated) {\r\n return {\r\n width: 210,\r\n height: 292\r\n };\r\n }\r\n return {\r\n width: 400,\r\n height: 555\r\n };\r\n }\r\n\r\n return {\r\n width: 210,\r\n height: 210\r\n };\r\n }\r\n}\r\n","import {ConfigurationEvaluationContext} from './evaluation/configuration-evaluation-context/configuration-evaluation-context';\r\nimport {PropertiesEvaluator} from './evaluation/properties-evaluator/properties-evaluator';\r\nimport {IConfigurationData} from './configuration-data.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IConfigurationService} from './configuration.service.interface';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {LIVE_CASINO_ARENA_NAME, NEW_GAMES_ARENA_NAME, NEW_LIVE_CASINO_ARENA_NAME} from '../arenas/arena-consts';\r\nimport {observable, runInAction} from 'mobx';\r\nimport {ApplicationStartupConfigurations} from '../../app-bootstrap/config-interfaces/application-startup.configurations';\r\nimport {IConfigurationEvaluationDataProvider} from './evaluation/configuration-evaluation-context/configuration-evaluation-data-provider';\r\nimport {injectAdminArenas} from './inject-admin-arenas';\r\nimport {HomePageHeaderArena} from \"./config-data-sections/home-page.configuration\";\r\nimport {IServicesConfigurations} from './config-data-sections/services-configurations';\r\nimport {SideMenuLinkConfiguration} from './config-data-sections/side-menu.configuration';\r\nimport {ListConfiguration, SwiperGamesListConfiguration} from \"./config-data-sections/arenas.configuration\";\r\n\r\n\r\ntype GameTypesMap = {[key: number]: number};\r\n\r\n\r\nexport class ConfigurationsService extends ServiceBase implements IConfigurationService {\r\n\r\n startupConfiguration: ApplicationStartupConfigurations;\r\n\r\n constructor(services: IServiceFactoryExtended, startupConfigs: ApplicationStartupConfigurations) {\r\n super(services);\r\n this.startupConfiguration = startupConfigs;\r\n\r\n this._createConfigData();\r\n }\r\n\r\n private _getConfigEvaluationContextServices(): IConfigurationEvaluationDataProvider {\r\n return {\r\n admin: this.startupConfiguration.admin,\r\n configurationPath: this.startupConfiguration.configurationPath,\r\n getLauncherGames: () => this.services.launcher.getTestedGames(),\r\n getSegmentValue: (segmentName) => this.services.segmentation.getSegmentValue(segmentName),\r\n logger: this.services.logger\r\n };\r\n }\r\n\r\n private _createConfigData(): void {\r\n let originalConfigData = this.startupConfiguration.orbit.config;\r\n if (this.startupConfiguration.admin && this.startupConfiguration.admin.arenas) {\r\n injectAdminArenas(originalConfigData, this.startupConfiguration.admin.arenas);\r\n }\r\n\r\n let context = new ConfigurationEvaluationContext(this._getConfigEvaluationContextServices());\r\n let configEvaluator = PropertiesEvaluator.fromRoot(originalConfigData, context);\r\n let data = configEvaluator.evaluate(context);\r\n this._defineCustomConfigProperty(data,\r\n 'allGamesTypes',\r\n () => {\r\n let gameTypes: number[] = [];\r\n let gamesTags = (data.generalSettings && data.generalSettings.gamesSettings && data.generalSettings.gamesSettings.gamesTags) || {};\r\n Object.getOwnPropertyNames(gamesTags).forEach(gt => {\r\n let gameType = parseInt(gt);\r\n if (!isNaN(gameType)) {\r\n gameTypes.push(gameType);\r\n }\r\n });\r\n return gameTypes;\r\n });\r\n\r\n\r\n runInAction(() => {\r\n this.data = data as IConfigurationData;\r\n });\r\n }\r\n\r\n\r\n private _defineCustomConfigProperty(configData: unknown, propertyName: string, evaluator: () => unknown) {\r\n Object.defineProperty(configData, propertyName, {\r\n get: evaluator,\r\n configurable: false\r\n });\r\n\r\n }\r\n\r\n @observable.ref\r\n data: IConfigurationData;\r\n\r\n get userSelectedState(): string {\r\n return this.startupConfiguration.userSelectedState;\r\n }\r\n\r\n get cmsPublicationId(): number {\r\n return this.startupConfiguration.b2c.publicationId;\r\n }\r\n\r\n get usedGameTypesBySite(): number[] {\r\n\r\n let gameTypesMap = {...this._getUsedGamesByHomePage(), ...this._getUsedGamesByArenas(), ...this._getUsedGameTypesByLiveGamesArena(), ...this._getUsedGameTypesByNewLiveGamesArena()};\r\n\r\n return Object.values(gameTypesMap);\r\n }\r\n\r\n private _getUsedGamesByHomePage(): GameTypesMap {\r\n let result: GameTypesMap = {};\r\n (this.data.homePage.gamesLists || []).forEach(gamesList => {\r\n if (gamesList.display) {\r\n let gamesIds = gamesList.gamesId || [];\r\n if (Check.isArray(gamesIds)) {\r\n gamesIds.forEach(gameType => {\r\n result[gameType] = gameType;\r\n })\r\n }\r\n\r\n }\r\n });\r\n\r\n return result;\r\n }\r\n\r\n private _getUsedGamesByArenas(): GameTypesMap {\r\n let result: GameTypesMap = {};\r\n Object.keys(this.data.arenas).forEach(arenaName => {\r\n let arenaConfig = this.data.arenas[arenaName];\r\n // game types from swipers\r\n (arenaConfig.swiperGamesList || []).forEach(swiperConfig => {\r\n if (swiperConfig.display) {\r\n let gamesIds = swiperConfig.gamesId || [];\r\n if (Check.isArray(gamesIds)) {\r\n gamesIds.forEach(gameType => {\r\n result[gameType] = gameType;\r\n });\r\n }\r\n\r\n }\r\n });\r\n\r\n // game types from all games grid\r\n (arenaConfig.allGamesGrid || []).forEach(gamesGridConfig => {\r\n if (gamesGridConfig.display) {\r\n let gamesIds = gamesGridConfig.gamesId || [];\r\n if (Check.isArray(gamesIds)) {\r\n gamesIds.forEach(gameType => {\r\n result[gameType] = gameType;\r\n });\r\n }\r\n }\r\n });\r\n });\r\n\r\n return result;\r\n }\r\n\r\n private _getUsedGameTypesByLiveGamesArena(): GameTypesMap {\r\n let result: GameTypesMap = {};\r\n\r\n let liveCasinoArenaConfig = this.data.arenas[LIVE_CASINO_ARENA_NAME];\r\n if (!liveCasinoArenaConfig) {\r\n return result;\r\n }\r\n\r\n let gamesIds = liveCasinoArenaConfig.arenas && liveCasinoArenaConfig.arenas.gamesId;\r\n\r\n if (Check.isArray(gamesIds)) {\r\n gamesIds.forEach(gameTypeConfig => {\r\n if (gameTypeConfig.display) {\r\n result[gameTypeConfig.gameId] = gameTypeConfig.gameId;\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n let popularTablesConfig = liveCasinoArenaConfig.popularTables;\r\n if (Check.isArray(popularTablesConfig)) {\r\n popularTablesConfig.forEach(tableConfig => {\r\n let tableGamesIds = tableConfig.gamesId || [];\r\n if (Check.isArray(tableGamesIds)) {\r\n tableGamesIds.forEach(gameType => result[gameType] = gameType);\r\n }\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private _getUsedGameTypesByNewLiveGamesArena(): GameTypesMap {\r\n let result: GameTypesMap = {};\r\n\r\n let liveCasinoArenaConfig = this.data.arenas[NEW_LIVE_CASINO_ARENA_NAME];\r\n if (!liveCasinoArenaConfig) {\r\n return result;\r\n }\r\n\r\n let gamesIds = liveCasinoArenaConfig.arenas && liveCasinoArenaConfig.arenas.gamesId;\r\n\r\n if (Check.isArray(gamesIds)) {\r\n gamesIds.forEach(gameTypeConfig => {\r\n if (gameTypeConfig.display) {\r\n result[gameTypeConfig.gameId] = gameTypeConfig.gameId;\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n let popularTablesConfig = liveCasinoArenaConfig.popularTables;\r\n if (Check.isArray(popularTablesConfig)) {\r\n popularTablesConfig.forEach(tableConfig => {\r\n let tableGamesIds = tableConfig.gamesId || [];\r\n if (Check.isArray(tableGamesIds)) {\r\n tableGamesIds.forEach(gameType => result[gameType] = gameType);\r\n }\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n\r\n resolveConfigurationValue(fullPath: string): string {\r\n let objectValue: any = this.data;\r\n let fullPathArray = fullPath.split('.');\r\n\r\n for (let objectKey of fullPathArray) {\r\n objectValue = objectValue[objectKey];\r\n }\r\n\r\n return (objectValue as string) || '';\r\n }\r\n\r\n\r\n buildConfigUrl(fileName: string): string {\r\n let configurationPath = this.startupConfiguration.configurationPath;\r\n if (!configurationPath.endsWith('/')) {\r\n configurationPath += '/';\r\n }\r\n return configurationPath + fileName;\r\n }\r\n\r\n resolveGameImagePath(imageFileName: string): string {\r\n if (Check.isEmpty(imageFileName)) {\r\n return '';\r\n }\r\n\r\n let imagesBasePath = this.startupConfiguration.sdk.config.ExtraProperties.paths.gamesImages; //paths.gamesImages is used by cypress environment\r\n if (imagesBasePath) {\r\n if (!imagesBasePath.endsWith('/')) {\r\n imagesBasePath += '/';\r\n }\r\n return imagesBasePath + imageFileName;\r\n } else {\r\n let serverPath = this.startupConfiguration.sdk.config.ExtraProperties.paths.server;\r\n if (!serverPath.endsWith('/')) {\r\n serverPath += '/';\r\n }\r\n return serverPath + 'gamesImages/' + imageFileName;\r\n }\r\n }\r\n\r\n resolveJsFilePath(fileName: string): string {\r\n if (Check.isEmpty(fileName)) {\r\n return '';\r\n }\r\n let serverPath = this.startupConfiguration.sdk.config.ExtraProperties.paths.server;\r\n let path = serverPath ? serverPath : this.services.window.origin;\r\n if (!path.endsWith('/')) {\r\n path += '/';\r\n }\r\n return (path + `js/${fileName}`);\r\n }\r\n\r\n getFontsPath(): string {\r\n return new URL(this.startupConfiguration.sdk.config.ExtraProperties.paths.server + \"/assets/fonts/\").href;\r\n }\r\n\r\n getGamesListByJackpotId(id: string): SwiperGamesListConfiguration {\r\n\r\n const homePageGamesLists = this.data.homePage.gamesLists || [];\r\n for (let i = 0; i < homePageGamesLists.length; i++) {\r\n let gamesList = homePageGamesLists[i];\r\n if (gamesList.jackpotWidget?.jackpotId) {\r\n let gamesIds = gamesList.gamesId || [];\r\n if (Check.isArray(gamesIds) && gamesList.jackpotWidget.jackpotId.toString() === id) {\r\n return gamesList;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n getSelfUpdatedByNewestGamesList(): ListConfiguration {\r\n const newGameArenaConfig = this.data.arenas[NEW_GAMES_ARENA_NAME];\r\n if (!newGameArenaConfig) {\r\n return null;\r\n }\r\n\r\n const gamesLists: ListConfiguration[] = (newGameArenaConfig.swiperGamesList || []).concat(newGameArenaConfig.allGamesGrid || []);\r\n const firstSelfUpdatedByNewest = gamesLists.find(listConfig => listConfig.display && listConfig.isSelfUpdatedByNewest);\r\n return firstSelfUpdatedByNewest;\r\n }\r\n\r\n private _getCurrentArenaLists() {\r\n const arenaType = this.services.routing.currentRoute.data?.arenaType;\r\n const lists = Check.isNullOrUndefined(arenaType) || arenaType === \"homePage\" ?\r\n this.data.homePage.gamesLists :\r\n this.services.configuration.data.arenas[arenaType].swiperGamesList;\r\n return lists;\r\n }\r\n\r\n getGamesListByTitle(title: string): SwiperGamesListConfiguration {\r\n const lists = this._getCurrentArenaLists();\r\n return lists?.find(list => list.title.toUpperCase() === title.toUpperCase());\r\n }\r\n\r\n getGamesListById(id: number): SwiperGamesListConfiguration {\r\n const lists = this._getCurrentArenaLists();\r\n return lists?.find(list => list.listId === id);\r\n }\r\n\r\n getHomePageHeaderArenas(): HomePageHeaderArena[] {\r\n let homePageHeaderArenas: HomePageHeaderArena[] = [];\r\n this.data.homePage.headerArenasOrder.forEach(name => {\r\n const arenaHeader = this.data.arenas[name].homepageHeader;\r\n if (arenaHeader) {\r\n homePageHeaderArenas.push(arenaHeader);\r\n }\r\n });\r\n return homePageHeaderArenas;\r\n }\r\n\r\n getHomePageHeaderArenasByUserOrientation(arenaNames: string[]): HomePageHeaderArena[] {\r\n let orderedArenas: HomePageHeaderArena[] = [];\r\n arenaNames.forEach(arenaName => {\r\n const arenaConfig: HomePageHeaderArena = this.data.arenas[arenaName] && this.data.arenas[arenaName].homepageHeader;\r\n if (arenaConfig) {\r\n orderedArenas.push(arenaConfig);\r\n }\r\n });\r\n return orderedArenas;\r\n }\r\n\r\n get servicesConfigs(): IServicesConfigurations {\r\n return this.services.sdk.getConfigs();\r\n }\r\n\r\n pickSideMenuItems(keys: string[]) {\r\n const allLinks = this.services.configuration.data.sideMenu.menu_links;\r\n\r\n const reducer = function (accumulator: Array<{key: string, config: SideMenuLinkConfiguration}>, key: string) {\r\n if (key in allLinks) {\r\n accumulator.push({key, config: allLinks[key]});\r\n }\r\n return accumulator;\r\n };\r\n\r\n return keys.reduce(reducer, []);\r\n }\r\n}\r\n","export enum LIST_TYPE_ID {\r\n STICKINESS = 0,\r\n BETS = 2,\r\n ACTIVE_USERS = 1\r\n}","import {IUserService} 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\n\r\nconst AUTOLOGIN_QUERY_PARAM = 'UserInfo';\r\n\r\nexport class UserService extends ServiceBase implements IUserService {\r\n\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n this.waitForAutoLogin();\r\n this._updateUserData({});\r\n this.services.sdk.events.onOAuthStateChanged(this._updateUserData);\r\n\r\n }\r\n\r\n @observable.ref isAuthorized: boolean = false;\r\n @observable.ref logoutReason: number = null;\r\n\r\n @observable.ref\r\n private _userData: UserData = {};\r\n\r\n @action.bound\r\n private _updateUserData(params: OnOauthStateChangedParams) {\r\n\r\n params = params || {};\r\n\r\n this.isAuthorized = this.services.sdk.isAuthorized;\r\n\r\n if (Check.isNullOrUndefined(params.logoutReason)) {\r\n this.logoutReason = null;\r\n } else {\r\n this.logoutReason = params.logoutReason;\r\n }\r\n\r\n const userData = (this.services.sdk.userData || {}) as UserData;\r\n\r\n if (!this.isAuthorized) {\r\n const playerStatus = this.services.localStorage.getItem('playerStatus');\r\n this.services.window.scrollTo(0,0);\r\n this._userData = {...userData, statusGroupId: (playerStatus ? parseInt(playerStatus): undefined)};\r\n } else {\r\n this._userData = userData;\r\n this.services.localStorage.setItem('playerStatus', userData.statusGroupId);\r\n\r\n this._checkForFaultyCStatus();\r\n }\r\n\r\n this._updateSegments();\r\n }\r\n\r\n // REQUIREMENT 1627624 - check if cStatus if false but user is logged in or FTD\r\n private _checkForFaultyCStatus() {\r\n const cStatus = this.services.cmsSegmentation.isCstatus;\r\n\r\n //cStatus is CMS segmentation indicates if the user is registered or FDL\r\n if (this.isAuthorized && cStatus === false) {\r\n //this.services.analytics.sendAnalytics(\"ERROR\", \"LOGGED_IN_CSTATUS_FALSE\", this.userData.cid);\r\n console.log('_checkForFaultyCStatus: ' + cStatus);\r\n }\r\n }\r\n\r\n @action.bound\r\n private _updateSegments() {\r\n this.segments = {\r\n IsAuthorized: this.isAuthorized,\r\n statusGroupId: this._userData.statusGroupId || 0,\r\n IsVIP: this._userData.IsVIP || false,\r\n GenderId: this._userData.GenderId || null,\r\n DaysSinceRegistration: this.daysSinceRegistration,\r\n RegistrationCountry: this.registrationCountry?.toLowerCase()\r\n }\r\n }\r\n\r\n @observable.ref segments = {};\r\n\r\n\r\n get hasActiveChallenges(): boolean {\r\n return this.services.sdk.activeChallengeCount > 0;\r\n }\r\n\r\n\r\n get name(): string {\r\n return this._userData.userName || '';\r\n }\r\n\r\n\r\n get cid(): string {\r\n return this._userData.cid || '';\r\n }\r\n\r\n get registrationCountry(): string {\r\n return this._userData.registrationCountry;\r\n }\r\n\r\n get joinDate(): string {\r\n return this._userData.joinDate;\r\n }\r\n\r\n get userData() {\r\n return this._userData;\r\n }\r\n\r\n get isVip(): boolean {\r\n return (this._userData.statusGroupId > 0 && this._userData.statusGroupId !== 4);\r\n }\r\n\r\n get timeSinceRegistration(): TimeSpan {\r\n if (!this._userData)\r\n return null;\r\n if (!this._userData.timeSinceRegistration)\r\n return null;\r\n return TimeSpan.parse(this._userData.timeSinceRegistration);\r\n }\r\n\r\n get daysSinceRegistration(): number {\r\n if (this.timeSinceRegistration)\r\n return this.timeSinceRegistration.totalDays;\r\n\r\n return Infinity;\r\n }\r\n\r\n get playerRMSStatus(): number {\r\n return this._userData.playerRMStatus;\r\n }\r\n\r\n get 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(marketingParams?: MarketingParams): Promise {\r\n await this.services.sdk.openLoginForm(marketingParams);\r\n }\r\n\r\n isDocUploadRequired(): boolean {\r\n return this.services.sdk.getAccountData()?.IsDocUploadRequired;\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","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.sendElasticInfoEvent({\r\n category: SEO_CATEGORIES.AI_GAMES_RECOMMENDATIONS,\r\n action: JSON.stringify(analyticsObject),\r\n label: this.aiRecommendedGames.engine,\r\n eventType:\"Orbit_AI_Feature\"\r\n }, true);\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 {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 {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 {ISdkMessageButtonOptions} from '../../../common/interfaces/sdk-message-button-options';\r\nimport IStateOfResidence from \"../../../common/interfaces/state-of-residence.interface\";\r\nimport {MarketingParams} from \"../../../common/interfaces/marketing-params.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 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 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 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 inCasino: 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 shouldEnforceHybridAppForMobileWebOnLoginAttempt(): 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 isLoginPopupEnabled(): 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 countPlayerChallenges(): number;\r\n getRegulationDateAndTimeFormat(): DateAndTimeFormat;\r\n createComponentRenderer(componentId: string): any;\r\n device(): DeviceInfo;\r\n displayHybrid?: () => void;\r\n isHybridEmbeddedGame(gameType: number): boolean;\r\n openHybridLink(url: string): void;\r\n format$$$(value: number, withDecimal: boolean);\r\n getBalance();\r\n getAIList(maxGames: number, filterOutRecentlyPlayedGames: boolean, numberOfRecentlyPlayedGameToFilterOut: number): Promise;\r\n getAINewGamesList(maxGames: number, filterOutRecentlyPlayedGames: boolean, numberOfRecentlyPlayedGameToFilterOut: number): Promise;\r\n getAutoLoginToken(): Promise;\r\n getPlatformToken(): Promise;\r\n getFirebaseToken(): string;\r\n getBrandID(): number;\r\n getCorrelatedGames(gameType: number, numberOfGames: number): Promise;\r\n getExternalBrandCallbackURL(): string;\r\n getExternalBrandCallbackURLMethod(): string;\r\n getGamesInfo(gameTypes: number[]): Promise;\r\n getGamesThemes(): Record;\r\n getGamesVendors(): Record;\r\n getGamesCompanies(): Record;\r\n getGamesInfoForHistory(gameTypes: number[]): Promise;\r\n getGRSEnvironments(): Promise;\r\n getDepositWidgetEligibilityDetails(): ICashierWidgetsEligibilityDetails;\r\n getCashoutWidgetEligibilityDetails(): ICashierWidgetsEligibilityDetails;\r\n getSourceSubBrandName(): string;\r\n getSubBrandID(): number;\r\n dateAndTimeFormat(): DateAndTimeFormat;\r\n getUserData(): any;\r\n getUsername(): string;\r\n getSessionId(): string;\r\n getUserSegments(): CmsUserSignature;\r\n isAuthorized(): boolean;\r\n isLoginFromRegistration():boolean;\r\n getCGPMaxOverlayZIndex(): number;\r\n structuredLoggingService():IStructuredLoggingService;\r\n isVIP(): boolean;\r\n logout(): Promise;\r\n menuActionExecute(key: string): void;\r\n menuJSON(): Promise;\r\n onEvent(params: OnEventParams): CGPEventSubscription;\r\n routeChanged(): void;\r\n openExternalLink(params: any): Promise;\r\n openResponsibleGamingLink(view?:number):void;\r\n isGameRunning(): boolean;\r\n openGame(options: any): Promise;\r\n openInNewWindow(url: string, features?: string): void;\r\n openLoginForm(marketingParams?: MarketingParams): Promise;\r\n sendAnalytics(params: SendAnalyticsParams);\r\n setAutoLoginToken(autologinToken: any): void;\r\n startLiveTableFeeds(): void;\r\n stopLiveTableFeeds(): void;\r\n getAbTestingDataForFeature(featureName: string): IAbTestingFeatureProperties;\r\n getAbTestingData(): { [key: string]: IAbTestingFeatureProperties };\r\n waitForAnonymousAbTestingData(): Promise;\r\n getCurrentServerDate(): Date;\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\r\n loadSafezoneSdk(): Promise;\r\n getProductPackage(): number;\r\n\r\n getSkin(): CgpSkinInfo;\r\n runAutoLogin(autoLoginParams: IAutoLoginParams):unknown;\r\n\r\n getUtils(): ISdkUtils;\r\n onOrbitInitComplete(): void;\r\n\r\n getEnvironment(): string;\r\n pushDataToDataLayer(data:{}): void;\r\n getCountryName(): string;\r\n getCountryIso3(): string;\r\n getSupportedStates(): IStateOfResidence[];\r\n getWrongLocationDetectionPath(): string;\r\n getTrendingRecommendedGamesForPlayer(listTypeId: number[]):Promise<{[key:number] : number[]}>;\r\n\r\n showToaster(toasterData: {}): unknown;\r\n getRegulationService(): ISdkRegulationService;\r\n\r\n waitForAutologin(): Promise;\r\n httpPost(url: string, requestData: unknown): Promise;\r\n httpGet(url: string, requestData: unknown): Promise;\r\n getConfigs(): any;\r\n loadScript(url: string, tagId?: string): Promise;\r\n getRefreshToken(): string;\r\n getCurrencyIso3(): string;\r\n readonly overlayZIndex: SdkOverlayZIndex;\r\n getGoogleClientID(): string;\r\n isInAutologin(): boolean;\r\n fireDepositWidgetClosed(): void;\r\n getToken(): ITokenInfo | null;\r\n\r\n continuePlayingCurrentGame(): void;\r\n stopCurrentGameAutoplay(): void;\r\n openHistoryLink(): void;\r\n isDepositWidgetSupportedByHybrid(): boolean;\r\n getGeoLocationInfo(): Promise;\r\n getDownloadAppLink(): string;\r\n promptPushNotificationPermissionRequest(): void;\r\n openPopUpOnSecondWebView(content : string, timeout : number) : void;\r\n closePopUpOnSecondWebView() : void;\r\n getBurnoutAnimationZIndex(): number;\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 startAutoRetryGeoProcess(): Promise;\r\n extractTokenProperty(tokenProperty: string);\r\n isLoginPopupEnabled(): boolean;\r\n getAccountData(): any;\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\nimport {IOMGParsedData} from \"../../../sdk/src/services/player_messages_service/firebase/handlers/messages_handler\";\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 fromRegistration?: boolean;\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: SYSTEM_EVENTS.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\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 onAppResumed(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.APP_RESUMED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onAppPaused(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.APP_PAUSED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onExternalLinkClosed(callback: (linkSource: string) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.EXTERNAL_LINK_CLOSED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onTouchIDActiveStateChanged(callback: (state: boolean) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.TOUCH_ID_STATE_CHANGED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onOmgDisplayed(callback: (state: unknown) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.OMG_DISPLAYED,\r\n callback,\r\n context: this\r\n });\r\n }\r\n\r\n onBurnoutMessageReceived(callback: (state: unknown) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.SESSION_EVENT_PLAYER_BURNOUT_MESSAGE_RECEIVED,\r\n callback,\r\n context: this\r\n });\r\n }\r\n\r\n onLiveGameSwitched(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.LIVE_GAME_SWITCHED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onPromotionsChanged(callback: (data: {Cid: number, IsPromotionDisplayedInClient: boolean, IndicationInClientPromotionsIds: number[]}) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.PROMOTIONS_CHANGED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onDepositWidgetClosed(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.DEPOSIT_WIDGET_CLOSED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onPostMessage(callback: (message: MessageEvent) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.POST_MESSAGE_ARRIVE,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onHybridPostMessage(callback: (message: MessageEvent) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.HYBRID_POST_MESSAGE_ARRIVE,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onFreePlayBatchAdded(callback: (data: IFreePlayVoucherData[]) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.SESSION_EVENT_FREE_PLAY_BATCH_ADDED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onFreePlayBatchUpdated(callback: (data: IFreePlayVoucherDelta[]) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.SESSION_EVENT_FREE_PLAY_BATCH_UPDATED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onFreePlayBatchRemoved(callback: (voucherIds: string[]) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.SESSION_EVENT_FREE_PLAY_BATCH_REMOVED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n\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 onFirebaseOmgReceived(callback: (omgData: IOMGParsedData) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.SESSION_EVENT_OMG_RECEIVED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n\r\n}\r\n","import {CallToActionFunc, ISpecificSafezoneObject, ReadyFunc} from \"./safezone-object-factory.service.interface\";\r\n\r\nexport interface ISafezoneService {\r\n readonly hasError: boolean;\r\n reconnectToSafezone(): void;\r\n openFullSafezone(safeZoneDeeplink?: SafeZoneDeeplink): void;\r\n readonly isEnabled: boolean;\r\n}\r\n\r\nexport interface ISafezoneContext{\r\n userInfo: string,\r\n brandId: number,\r\n subBrandId: number,\r\n productPackage: number,\r\n systemId: number,\r\n lang: string,\r\n clientPlatform: string,\r\n clientVersion: string,\r\n locale: string,\r\n fontDomain: string,\r\n}\r\n\r\nexport interface ISafezoneInitParams{\r\n context: ISafezoneContext,\r\n onReady: ReadyFunc,\r\n onError(error: string): void,\r\n onCallToAction: CallToActionFunc,\r\n}\r\n\r\nexport interface ISafezoneHandler{\r\n closedFromSafezone:boolean;\r\n init(safezoneObj:ISpecificSafezoneObject):void,\r\n onReady():void;\r\n resetOnLogout():void\r\n}\r\n\r\nexport interface IFullSafezoneHandler extends ISafezoneHandler{\r\n openFullSafezone(params?: IOpenFullSafezoneParams):void\r\n}\r\n\r\nexport interface IOpenFullSafezoneParams {\r\n source?:OPEN_SAFEZONE_SOURCE_VALUES;\r\n correlationId?:string;\r\n safeZoneDeeplink?: SafeZoneDeeplink;\r\n}\r\n\r\nexport interface IMiniSafezoneHandler extends ISafezoneHandler{\r\n closeMiniSafezone():void,\r\n correlationID: string;\r\n}\r\n\r\nexport const SAFEZONE_FUNCTION: string = \"SafeZone\";\r\n\r\nexport enum SAFEZONE_CONTAINERS_ID{\r\n FULL_SAFEZONE_CONTAINER_ID = \"FullSafeZoneContainer\",\r\n MINI_SAFEZONE_CONTAINER_ID = \"MiniSafeZoneContainer\"\r\n}\r\n\r\nexport enum COMPONENT_NAMES{\r\n FULL = \"FullSafeZone\",\r\n MINI = \"MiniSafeZone\"\r\n}\r\n\r\n/**\r\n * In the \"OpenSafeZoneSource\" control center will put values like this that we send back at init\r\n{\r\n Boss: \"boss\"\r\n Cashier: \"cashier\"\r\n Email: \"email\"\r\n Lobby: \"lobby\"\r\n Membership: \"membership\"\r\n Pending_action: \"pending_action\"\r\n Promotion: \"promotion\"\r\n Rg_policy: \"rg_policy\"\r\n UserArea: \"mini\"\r\n} */\r\nexport const OPEN_SAFEZONE_SOURCE: string = \"OpenSafeZoneSource\"; // window.OpenSafeZoneSource\r\nexport enum OPEN_SAFEZONE_SOURCE_VALUES {\r\n LOBBY = \"Lobby\",\r\n USER_AREA = \"UserArea\"\r\n}\r\n\r\nexport enum CHANNEL {\r\n LOBBY = \"lobby\",\r\n MINI = \"mini\"\r\n}\r\n\r\nexport const CLOSE_SAFEZONE_SOURCE: string = \"CloseSafeZoneSource\";\r\nexport enum CLOSE_SAFEZONE_SOURCE_VALUES {\r\n CLIENT = \"ClientPage\",\r\n MINI_SZ = \"MiniSafeZone\"\r\n}\r\n\r\nexport interface ICallToActionParams {\r\n actionId: number;\r\n url?: string;\r\n}\r\n\r\nexport enum SafeZoneDeeplink {\r\n TimeSpentReminderPage = 1\r\n}\r\n\r\nexport const ACTIONS = {\r\n OPEN_FULL: 66,\r\n CLOSE_FULL: 67,\r\n OPEN_EXTERNAL_LINK: 27,\r\n OPEN_RESPONSIBLE_GAMING: 69,\r\n OPEN_CONTACT_US: 70,\r\n LOG_OUT:71, // @TODO: is this used by RG or not? Based on their CallToAction definition, this doesn't exists\r\n KICK_OUT: 68\r\n};\r\n\r\nexport const SAFEZONE_EVENTS = {\r\n MINI_OPEN: \"sz_mini_open\", //01010101\r\n MINI_READY: \"sz_mini_ready\",\r\n MINI_CLOSE_INTERNAL: \"sz_mini_close_internal\",\r\n MINI_CLOSE_EXTERNAL: \"sz_mini_close_external\", //01010104\r\n FULL_OPEN: \"sz_full_open\", //01020101\r\n FULL_READY: \"sz_full_ready\",\r\n FULL_CLOSE_EXTERNAL: \"sz_full_close_external\", //01020104\r\n CATEGORY_MINI: \"mini\",\r\n CATEGORY_FULL: \"full\"\r\n};\r\n\r\n\r\n","import Event from \"../../../sdk/src/utils/event\";\r\nimport {SYSTEM_EVENTS} from \"../../../sdk/src/events/events\";\r\nimport {GNWP_SOURCES} from \"../../../sdk/src/components/external_links/external_links_consts\";\r\nimport {IOmgHandlerHook} from \"../external-links/handlers/omg/omg-handler.hook.interface\";\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\r\n registrationCompleted(params: {UserInfo: string, SourceProductPackage: string}) {\r\n Event.fire(SYSTEM_EVENTS.REGISTRATION_COMPLETED, params);\r\n }\r\n\r\n externalLinkClosed(params: {gnwpSource: GNWP_SOURCES}): void {\r\n Event.fire(SYSTEM_EVENTS.EXTERNAL_LINK_CLOSED, params.gnwpSource)\r\n }\r\n\r\n omgDisplayed(omgHook: IOmgHandlerHook): void {\r\n Event.fire(SYSTEM_EVENTS.OMG_DISPLAYED, omgHook)\r\n }\r\n\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} from './cgp-sdk.interface';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IRunningGameHandler} from '../games/running-game-handler.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 { 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 {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(marketingParams?: MarketingParams): Promise {\r\n\r\n await this.CGP.openLoginForm(marketingParams);\r\n }\r\n\r\n createComponentRenderer(componentId: string): ISdkComponentRenderer {\r\n return this.CGP.createComponentRenderer(componentId) as ISdkComponentRenderer;\r\n }\r\n\r\n getGamesInfoForHistory(gameTypes: number[]): Promise {\r\n return this.CGP.getGamesInfoForHistory(gameTypes);\r\n }\r\n\r\n getGamesInfo(gameTypes: number[]): Promise {\r\n return this.CGP.getGamesInfo(gameTypes);\r\n }\r\n\r\n getGamesThemes(): Record {\r\n return this.CGP.getGamesThemes();\r\n }\r\n\r\n getGamesVendors(): Record {\r\n return this.CGP.getGamesVendors();\r\n }\r\n\r\n getGamesCompanies(): Record {\r\n return this.CGP.getGamesCompanies();\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 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 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 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 shouldEnforceHybridAppForMobileWebOnLoginAttempt: () => this.CGP.getSkin().shouldEnforceHybridAppForMobileWebOnLoginAttempt(),\r\n shouldPreventOpenGameForMobileWebApp: () => this.CGP.getSkin().shouldPreventOpenGameForMobileWebApp(),\r\n getBrandName: () => this.CGP.getSkin().getBrandName(),\r\n getMinimumAge: () => this.CGP.getSkin().getMinimumAge(),\r\n getSafeToPlayURL: () => this.CGP.getSkin().getSafeToPlayURL()\r\n }\r\n }\r\n\r\n getUtils(): ISdkUtils {\r\n return this.CGP.getUtils();\r\n };\r\n\r\n fireOrbitInitComplete(): void {\r\n this.CGP.onOrbitInitComplete();\r\n }\r\n\r\n getEnvironment(): string {\r\n return this.CGP.getEnvironment();\r\n }\r\n\r\n pushDataToDataLayer(data: {}): void {\r\n this.CGP.pushDataToDataLayer(data);\r\n }\r\n\r\n getCountryName() {\r\n return this.CGP.getCountryName();\r\n }\r\n\r\n getCountryIso3(): string {\r\n return this.CGP.getCountryIso3();\r\n }\r\n\r\n getSupportedStates(): IStateOfResidence[] {\r\n return this.CGP.getSupportedStates();\r\n }\r\n\r\n getWrongLocationDetectionPath(): string {\r\n return this.CGP.getWrongLocationDetectionPath();\r\n }\r\n\r\n httpPost(url: string, requestData: unknown): Promise {\r\n return this.CGP.httpPost(url, requestData);\r\n }\r\n\r\n httpGet(url: string, requestData: unknown): Promise {\r\n return this.CGP.httpGet(url, requestData);\r\n }\r\n\r\n getConfigs(): any {\r\n return this.CGP.getConfigs();\r\n }\r\n\r\n loadScript(url: string, tagId?: string): Promise {\r\n return this.CGP.loadScript(url, tagId);\r\n }\r\n\r\n getRefreshToken(): string {\r\n return this.CGP.getRefreshToken();\r\n }\r\n\r\n getCurrencyIso3(): string {\r\n return this.CGP.getCurrencyIso3();\r\n }\r\n\r\n get overlayZIndex() {\r\n return this.CGP.overlayZIndex;\r\n }\r\n\r\n getGoogleClientID(): string {\r\n return this.CGP.getGoogleClientID();\r\n }\r\n\r\n isInAutologin(): boolean {\r\n return this.CGP.isInAutologin();\r\n }\r\n\r\n fireDepositWidgetClosed(): void {\r\n this.CGP.fireDepositWidgetClosed();\r\n }\r\n\r\n get tokenInfo(): ITokenInfo | null {\r\n return this.CGP.getToken() || null;\r\n }\r\n\r\n redirectToHistory(): void {\r\n return this.CGP.openHistoryLink();\r\n }\r\n\r\n continuePlayingCurrentGame(): void {\r\n this.CGP.continuePlayingCurrentGame();\r\n }\r\n\r\n stopCurrentGameAutoplay(): void {\r\n this.CGP.stopCurrentGameAutoplay();\r\n }\r\n\r\n getGeoLocationInfo(): Promise {\r\n return this.CGP.getGeoLocationInfo();\r\n }\r\n\r\n getDownloadAppLink(): string {\r\n return this.CGP.getDownloadAppLink();\r\n }\r\n\r\n isDepositWidgetSupportedByHybrid(): boolean {\r\n return this.CGP.isDepositWidgetSupportedByHybrid();\r\n }\r\n\r\n promptPushNotificationPermissionRequest() {\r\n return this.CGP.promptPushNotificationPermissionRequest();\r\n }\r\n\r\n openPopUpOnSecondWebView(content: string, timeout: number): void {\r\n this.CGP.openPopUpOnSecondWebView(content, timeout);\r\n }\r\n\r\n closePopUpOnSecondWebView(): void {\r\n this.CGP.closePopUpOnSecondWebView();\r\n }\r\n\r\n getBurnoutAnimationZIndex() {\r\n return this.CGP.getBurnoutAnimationZIndex();\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\r\n startAutoRetryGeoProcess(): Promise {\r\n return this.CGP.startAutoRetryGeoProcess();\r\n }\r\n\r\n extractTokenProperty(tokenProperty: string) {\r\n return this.CGP.extractTokenProperty(tokenProperty);\r\n }\r\n\r\n isLoginPopupEnabled(): boolean {\r\n return this.CGP.isLoginPopupEnabled();\r\n }\r\n\r\n getAccountData(): any {\r\n return this.CGP.getAccountData();\r\n }\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 React from 'react';\r\nimport {IGamesFilterStrategy} from \"../games-filter-strategy.interface\";\r\nimport {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {GamesMap} from \"../../../games/games.service.interface\";\r\nimport {Nullable} from \"../../../../../common/types/nullable-types\";\r\nimport {IPcFilterIndicatorRenderingOptions} from \"../../games-filter.service.interface\";\r\n\r\nexport class NoGamesFilterStrategy implements IGamesFilterStrategy {\r\n constructor(private readonly services: IServiceFactoryExtended) {\r\n }\r\n get filteredGamesMap(): GamesMap {\r\n return this.services.games.gamesMap;\r\n }\r\n readonly isFilteringAvailable: boolean = false;\r\n\r\n renderMobileFiltersIndicator(): React.ReactElement {\r\n return null;\r\n }\r\n\r\n renderPCFiltersIndicator(): Nullable {\r\n return null;\r\n }\r\n\r\n showFiltersEditor(): void {\r\n }\r\n\r\n dispose(): void {\r\n }\r\n}","import {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {\r\n IGamesFilterService,\r\n IPcFilterIndicatorRenderingOptions\r\n} from './games-filter.service.interface';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IGamesFilterStrategy} from \"./strategies/games-filter-strategy.interface\";\r\nimport {GameInfo} from \"../games/game-info\";\r\nimport React from \"react\";\r\nimport {action, computed} from \"mobx\";\r\nimport {Nullable} from \"../../../common/types/nullable-types\";\r\nimport {NoGamesFilterStrategy} from \"./strategies/no-filter/no-games-filter.strategy\";\r\nimport {IArenaViewModel} from '../arenas/models/arenas/arena-view-model.interface';\r\n\r\nexport class GamesFilterService extends ServiceBase implements IGamesFilterService {\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n\r\n this._currentFilteringStrategy = new NoGamesFilterStrategy(this.services);\r\n\r\n this.reaction(() => this.services.routing.currentRoute, () => {\r\n this._setCurrentStrategy(this.services.arenas.getCurrentArena())\r\n }, {\r\n fireImmediately: true\r\n });\r\n }\r\n\r\n @action.bound\r\n private _setCurrentStrategy(currentArena: IArenaViewModel) {\r\n if (this._currentFilteringStrategy) {\r\n this._currentFilteringStrategy.dispose();\r\n }\r\n\r\n if(currentArena) {\r\n this._currentFilteringStrategy = currentArena.getGamesFilteringStrategy();\r\n } else {\r\n this._currentFilteringStrategy = new NoGamesFilterStrategy(this.services);\r\n }\r\n }\r\n\r\n\r\n get filteredGamesMap(): Record {\r\n return this._currentFilteringStrategy.filteredGamesMap;\r\n }\r\n\r\n\r\n @computed\r\n get currentAppliedFiltersIds(): string[] {\r\n const urlHash = this.services.location.currentUri.hash?.value;\r\n if(urlHash) {\r\n let params = urlHash.split('=');\r\n if(params[0]?.toLowerCase() === 'filters') {\r\n return params[1].split(',');\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","import {RedTigerJackpotWidgetConfiguration} from './red-tiger-jackpot-widget.configuration';\r\nimport {JackpotWidgetConfiguration} from './jackpot-widget.configuration';\r\nimport {HomePageHeaderArena} from \"./home-page.configuration\";\r\nimport {LinkToOfferConfiguration} from \"./link-to-offer.configuration\";\r\nimport {NullableUndefined} from \"../../../../common/types/nullable-types\";\r\nimport {\r\n CategoryDefinitionId\r\n} from \"../../games-filter/filters-categories-definitions/filter-category-definition.interface\";\r\n\r\nexport interface InfoSideBarConfiguration {\r\n readonly infoImage: string;\r\n readonly infoTitle: string;\r\n readonly infoText: string;\r\n}\r\n\r\nexport enum ApiListType {\r\n TOP_PICKS = \"TOP_PICKS\",\r\n NEW_GAMES = \"NEW_GAMES\",\r\n PLAYERS_LIKE_YOU = \"PLAYERS_LIKE_YOU\",\r\n RECENTLY_PLAYED = \"RECENTLY_PLAYED\",\r\n STATIC_VIDEO = \"STATIC_VIDEO\",\r\n LIVE_CASINO_VIDEO = \"LIVE_CASINO_VIDEO\",\r\n BECAUSE_YOU_PLAYED = \"BECAUSE_YOU_PLAYED\",\r\n}\r\n\r\nexport interface ListConfiguration {\r\n readonly title: string;\r\n readonly display: boolean;\r\n readonly gamesId: number[];\r\n readonly isSelfUpdatedByNewest?: boolean;\r\n readonly forceRoundIcons?: boolean;\r\n}\r\n\r\n\r\n\r\nexport interface SeoSectionConfiguration {\r\n display: boolean;\r\n componentID: string;\r\n templateID: string;\r\n fallbackComponent: string;\r\n}\r\n\r\nexport interface HeaderArenaConfiguration {\r\n display: boolean;\r\n title: string;\r\n image: string;\r\n link: string;\r\n}\r\n\r\n\r\n\r\nexport interface ArenaCommonConfiguration {\r\n topImage: string;\r\n title: string;\r\n seoSection: SeoSectionConfiguration;\r\n}\r\n\r\nexport interface CasinoArenaPromotionalBannerConfiguration {\r\n templateID: string;\r\n componentID: string;\r\n displayRowPlace?: number;\r\n displayTablePlace?: number;\r\n fallbackComponent?: string;\r\n}\r\n\r\nexport interface CasinoArenaConfiguration extends ArenaCommonConfiguration {\r\n promotionalBanner?: CasinoArenaPromotionalBannerConfiguration\r\n linkToOffer?: LinkToOfferConfiguration;\r\n filters: NullableUndefined;\r\n advancedFilters?: {\r\n categories: [{\r\n id: CategoryDefinitionId;\r\n }];\r\n };\r\n infoSideBar: InfoSideBarConfiguration;\r\n swiperGamesList: SwiperGamesListConfiguration[];\r\n allGamesGrid: ArenaGamesGridConfiguration[];\r\n orderListsByAI?: boolean;\r\n arenaType?: string;\r\n homepageHeader?: HomePageHeaderArena;\r\n}\r\n\r\nexport interface 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 LiveCasinoHeaderConfiguration {\r\n display: boolean;\r\n gameId: number;\r\n image: string;\r\n}\r\n\r\nexport interface LiveCasinoPromotionalBannerConfiguration {\r\n displayTablePlace: number;\r\n displayRowPlace: number;\r\n componentID: string;\r\n templateID: string;\r\n bannerAdminPlaceholderId?: string;\r\n}\r\n\r\nexport interface LiveCasinoConfiguration extends ArenaCommonConfiguration {\r\n promotionalBanner: LiveCasinoPromotionalBannerConfiguration;\r\n linkToOffer?: LinkToOfferConfiguration\r\n arenas: {\r\n gamesId: LiveCasinoHeaderConfiguration[];\r\n },\r\n popularTables: LiveCasinoPopularTableConfiguration[];\r\n customLayout: string;\r\n}\r\n\r\nexport interface NewLiveCasinoConfiguration extends ArenaCommonConfiguration {\r\n promotionalBanner: LiveCasinoPromotionalBannerConfiguration;\r\n arenas: HeaderFilterConfiguration[],\r\n allGamesGrid: ArenaGamesGridConfiguration[];\r\n customLayout: string;\r\n useAISortedList: boolean;\r\n linkToOffer?: LinkToOfferConfiguration;\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 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 ignoreNumberOfGamesInAISorting?: number;\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 HeaderFilterConfiguration {\r\n display: boolean;\r\n title: string;\r\n image: string;\r\n filter: string;\r\n seoPage: string;\r\n isActiveTabDefault?: boolean;\r\n maxGamesToShow?: number;\r\n banners?: {\r\n promotionalBanner: {\r\n templateID: string,\r\n componentID: string,\r\n bannerAdminPlaceholderId?: string\r\n }\r\n }\r\n}\r\n\r\nexport type ArenaConfiguration = CasinoArenaConfiguration & LiveCasinoConfiguration & NewLiveCasinoConfiguration;\r\n\r\nexport type ArenasConfiguration = {[key: string]: ArenaConfiguration};\r\n\r\n","import {IUsefulLinkConfiguration} from \"../configurations/config-data-sections/drawer.configuration\";\r\nimport {IServiceFactoryExtended} from \"../service-factory-extended.interface\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {AppIdentifiers, AreaType} from \"@sparkware/uc-sdk-core\";\r\nimport {OPEN_SAFEZONE_SOURCE_VALUES} from \"../safezone/safezone.service.interface\";\r\nimport {CHANNEL_ELEMENTS, CHANNEL_SOURCE} from \"../../../common/const/casinofied-analytics-consts\";\r\nimport {MyAccountTab} from \"../external-links/handlers/my-account/my-account.external-link-handler.interface\";\r\nimport {ControlCenterDeeplink} from \"@sparkware/uc-sdk-core/lib/apps/control-center/control-center.interfaces\";\r\nimport {CashierSessionTypes} from \"../../../common/const/cashier-session-types\";\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: CashierSessionTypes.ReverseWithdrawal});\r\n }\r\n\r\n onUploadDocuments() {\r\n this.services.cashier.openOldCashier({sessionType: CashierSessionTypes.VERIFY_ID});\r\n }\r\n\r\n onCompPoints() {\r\n this.services.externalLinks.openMyAccount({\r\n tabId: MyAccountTab.ComPoints\r\n });\r\n }\r\n\r\n onContactUs(link: IUsefulLinkConfiguration) {\r\n this.services.externalLinks.openContactUs({view: link.target});\r\n }\r\n\r\n onHelpCenter(link: IUsefulLinkConfiguration) {\r\n // If not enabled, we shouldn't show the link, but how do I do that?\r\n if (this.services.configuration.servicesConfigs.AppLauncher.apps.CR_HELP_CENTER.enabled) {\r\n this._openHelpWidget();\r\n } else {\r\n this.onContactUs(link);\r\n }\r\n }\r\n\r\n on888club(link: IUsefulLinkConfiguration) {\r\n this._openLinkAction(link);\r\n }\r\n\r\n onBeGambleAware(link: IUsefulLinkConfiguration) {\r\n this._openLinkAction(link);\r\n }\r\n\r\n onGameCare(link: IUsefulLinkConfiguration) {\r\n this._openLinkAction(link);\r\n }\r\n\r\n onSafeZone(link: IUsefulLinkConfiguration) {\r\n this.services.appLauncher.openControlCenterFull({\r\n businessCorrelationID: this.services.tools.getGuid(),\r\n channel: {\r\n area: AreaType.UserArea,\r\n element: CHANNEL_ELEMENTS.safezoneUsefulLink,\r\n source: CHANNEL_SOURCE.casinoClient\r\n },\r\n appSpecificParameters: {\r\n source: OPEN_SAFEZONE_SOURCE_VALUES.USER_AREA\r\n }\r\n });\r\n\r\n }\r\n\r\n onTimeSpentReminder(link: IUsefulLinkConfiguration) {\r\n this.services.appLauncher.openControlCenterFull({\r\n businessCorrelationID: this.services.tools.getGuid(),\r\n\r\n channel: {\r\n area: AreaType.UserArea,\r\n element: CHANNEL_ELEMENTS.safezoneUsefulLink,\r\n source: CHANNEL_SOURCE.casinoClient\r\n },\r\n appSpecificParameters: {\r\n deeplink: ControlCenterDeeplink.TimeSpentReminderPage,\r\n source: OPEN_SAFEZONE_SOURCE_VALUES.USER_AREA\r\n }\r\n });\r\n }\r\n\r\n onHelp() {\r\n this.services.externalLinks.openHelpPage();\r\n }\r\n\r\n private _openHelpWidget() {\r\n this.services.appLauncher.openHelpWidget({\r\n businessCorrelationID: this.services.tools.getGuid(),\r\n channel: {\r\n area: AreaType.NavigationMenu,\r\n element: AppIdentifiers.CRHelpCenter,\r\n source: AppIdentifiers.CasinoClient\r\n }\r\n });\r\n }\r\n\r\n private _openLinkAction({local:shouldOpenLocal, link}: IUsefulLinkConfiguration){\r\n if(shouldOpenLocal) {\r\n this.services.location.push(link);\r\n } else {\r\n this.services.externalLinks.openLink({\r\n sourceLink: link,\r\n view: 'window'\r\n })\r\n }\r\n }\r\n}\r\n","import styled, {css} from 'styled-components';\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\nimport {CssRule} from '../../../../themes/architecture/css-helpers/css-rule';\r\n\r\ninterface IUsefulLinksItemBoxProps {\r\n hideArrow?: boolean;\r\n icon?: string,\r\n}\r\n\r\nconst DefaultBox = styled.li`\r\n position: relative;\r\n width: 100%;\r\n /*\r\n The border-bottom is intentionally set to theme.colors.itemTopBorder and also border-top set to theme.colors.itemBottomBorder\r\n The reason is that the bottom border of the useful link item is actually the top border of the divider\r\n and top border of the useful link item is actually the bottom border of the divider\r\n\r\n */\r\n border-bottom: 1px solid ${props => props.theme.colors.boxBorder};\r\n border-top: 1px solid ${props => props.theme.colors.boxBorderDark};\r\n padding-left: 1rem;\r\n white-space: nowrap;\r\n cursor: pointer;\r\n color: ${props => props.theme.colors.text};\r\n background-color: ${props => props.theme.colors.background};\r\n \r\n &:hover {\r\n color: ${props => props.theme.colors.textHover};\r\n background-color: ${props => props.theme.colors.backgroundHover};\r\n }\r\n\r\n &:last-child {\r\n border-bottom: 0;\r\n }\r\n\r\n &:after {\r\n content: \"\";\r\n position: absolute;\r\n right: 5px;\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-repeat: no-repeat;\r\n ${CssRule.For.RTL.build()} & {\r\n transform: scaleX(-1);\r\n }\r\n }\r\n\r\n &:before {\r\n display: inline-block;\r\n margin-right: 5px;\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n }\r\n`;\r\n\r\n\r\nexport const PcBox = styled(DefaultBox)`\r\n height: 3.75rem;\r\n font-weight: 500;\r\n font-size: 1.3rem;\r\n line-height: 3.5rem;\r\n\r\n &:first-child {\r\n margin-top: 3px;\r\n }\r\n\r\n\r\n\r\n ${({hideArrow}) => !hideArrow && css`\r\n &:after {\r\n top: 1.5rem;\r\n width: 5px;\r\n height: 9px;\r\n background-position: -785px -657px;\r\n }\r\n `}\r\n\r\n ${({icon}) => icon && css`\r\n &:before {\r\n content: \"\";\r\n position:relative;\r\n top: 3px;\r\n width: 21px;\r\n height: 21px;\r\n background-image: url(\"${icon.toString()}\");\r\n }\r\n `}\r\n`;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\r\n display: flex;\r\n align-items: center;\r\n height: 5rem;\r\n font-weight: 300;\r\n font-size: 1.7rem;\r\n line-height: 5rem;\r\n color: ${props => props.theme.colors.textLight};\r\n ${({theme}) => theme.font.presets.regular};\r\n\r\n &:first-child {\r\n margin-top: 5px;\r\n }\r\n\r\n ${({hideArrow}) => !hideArrow && css`\r\n &:after {\r\n top: 2rem;\r\n width: 15px;\r\n height: 15px;\r\n background-position: -751px -655px;\r\n }\r\n `}\r\n\r\n ${({icon}) => icon && css`\r\n &:before {\r\n content: \"\";\r\n width: 21px;\r\n height: 21px;\r\n background-image: url(\"${icon.toString()}\");\r\n }\r\n `}\r\n`;\r\n\r\n\r\nexport const UsefulLinksItemDefaultBox = styledByDevice(PcBox, MobileBox);","import styled, { css } from 'styled-components';\r\nimport {PcBox as BasePcBox, MobileBox as BaseMobileBox} from './useful-links-item.default.box'\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\n\r\nconst common = css`\r\n margin: 1rem 0;\r\n border: none;\r\n &:after {\r\n right: 15px;\r\n background-size: 1036px;\r\n }\r\n`;\r\n\r\nconst PcBox = styled(BasePcBox)`\r\n ${common}\r\n font-size: 1.4rem;\r\n &:first-child {\r\n margin-top: 1rem;\r\n }\r\n &:after {\r\n background-position: -446px -370px;\r\n top: 1.15rem;\r\n width: 10px;\r\n height: 15px;\r\n }\r\n`;\r\n\r\nconst MobileBox = styled(BaseMobileBox)`\r\n ${common}\r\n ${({theme}) => theme.font.presets.body};\r\n &:after {\r\n background-position: -629px -525px;\r\n background-size: auto;\r\n height: 2rem;\r\n }\r\n`;\r\n\r\nexport const UsefulLinksItemCasino777Box = styledByDevice(PcBox, MobileBox);","import styled from 'styled-components';\r\n\r\nimport {PcBox as BasePcBox, MobileBox as BaseMobileBox} from './useful-links-item.default.box'\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\n\r\nconst PcBox = BasePcBox;\r\n\r\nconst MobileBox = styled(BaseMobileBox)`\r\n padding-left: 0;\r\n\r\n text-transform: uppercase;\r\n ${({theme}) => theme.font.presets.medium};\r\n &:after {\r\n content: none;\r\n }\r\n\r\n &:first-child {\r\n margin-top: 0;\r\n border-top: 0;\r\n }\r\n`;\r\n\r\nexport const UsefulLinksItemCipBox = styledByDevice(PcBox, MobileBox);","import styled from 'styled-components';\r\nimport {UsefulLinksItemDefaultBox} from \"./useful-links-item.default.box\";\r\n\r\n\r\nexport const UsefulLinksItemMrGreenBox = styled(UsefulLinksItemDefaultBox)`\r\n border-bottom: none;\r\n\r\n &:hover {\r\n background-color: ${props => props.theme.colors.background};\r\n }\r\n`;\r\n","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\nimport {UsefulLinksItemMrGreenBox} from \"./useful-links-item.mrgreen.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 .forMrGreen(UsefulLinksItemMrGreenBox)\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\";\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.sendOrbitUserFlowEvent(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.sendOrbitUserFlowEvent(ANALYTICS_CATEGORY, USEFUL_LINKS_ACTION, translation);\r\n this.closeMenu();\r\n }\r\n\r\n doLogout() {\r\n this.services.analytics.sendOrbitUserFlowEvent(ANALYTICS_CATEGORY, USEFUL_LINKS_ACTION, 'Logout');\r\n this.services.regulation.current.logoutUser();\r\n this.closeMenu();\r\n }\r\n\r\n get greeting() {\r\n const now = new Date();\r\n const hour = now.getHours();\r\n const minute = now.getMinutes();\r\n\r\n const {defaultMessage, conditions} = this.services.configuration.data.drawer.welcomeMessage;\r\n let result = defaultMessage;\r\n for (const rule of conditions) {\r\n const [ruleHour, ruleMinute] = rule.time.split(':').map(parseInt);\r\n\r\n if (hour > ruleHour) {\r\n result = rule.text;\r\n } else if (hour === ruleHour) {\r\n // NB: only if the current hour is strictly equal to the rule hour do we need to check the minutes\r\n if (minute >= ruleMinute) {\r\n result = rule.text;\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n launchMyAccount(): void {\r\n this.services.analytics.sendOrbitUserFlowEvent(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.sendOrbitUserFlowEvent(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.sendOrbitUserFlowEvent(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.sendOrbitUserFlowEvent('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)\r\n .forCasino777(GameBadgeCasino777Box)\r\n .forSI(GameBadgeSIBox)\r\n .forMrGreen(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","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 styled from \"styled-components\";\r\nimport { GameTitleDefaultBox } from \"./game-title.default.box\";\r\n\r\nexport const GameTitleSICisBox = styled(GameTitleDefaultBox)`\r\n ${({theme}) => theme.font.presets.light}; \r\n\r\n @media ${({ theme }) => theme.mediaQuery.sAndBelow} {\r\n font-size: 12px;\r\n padding-bottom: 3px;\r\n }\r\n`\r\n","import styled from 'styled-components';\r\nimport {GameTitleDefaultBox} from './game-title.default.box';\r\n\r\nexport const GameTitleMrGreenBox = styled(GameTitleDefaultBox)`\r\n ${({theme}) => theme.font.presets.light}\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\nimport { GameTitleSICisBox } from './game-title.siCis.box';\r\nimport {GameTitleMrGreenBox} from './game-title.mrgreen.box';\r\n\r\nexport const GameTitleBox = styledByTheme(GameTitleDefaultBox)\r\n .forCip(GameTitleCipBox)\r\n .forWsopCip(GameTitleCipBox)\r\n .forSI(GameTitleSIBox)\r\n .forSICis(GameTitleSICisBox)\r\n .forCasino777(GameTitleCasino777Box)\r\n .forMrGreen(GameTitleMrGreenBox).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 styled from 'styled-components';\r\nimport {MinMaxBetAmountDefaultBox} from './min-max-bet-amount.default.box';\r\nimport {GAME_GROUP_LIVE_CASINO} from '../../../css-constants';\r\nimport {baseColors} from '../../../../../themes/definitions/mrgreen/base-colors';\r\n\r\nexport const MinMaxBetAmountMrGreenBox = styled(MinMaxBetAmountDefaultBox) `\r\n color: ${baseColors.gray033};\r\n\r\n .${GAME_GROUP_LIVE_CASINO} & {\r\n color: ${props => baseColors.gray033};\r\n }\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\nimport {MinMaxBetAmountMrGreenBox} from './min-max-bet-amount.mrgreen.box';\r\n\r\nexport const MinMaxBetAmountBox = styledByTheme(MinMaxBetAmountDefaultBox)\r\n .forCasino777(MinMaxBetAmountCasino777Box)\r\n .forSI(MinMaxBetAmountSIBox)\r\n .forMrGreen(MinMaxBetAmountMrGreenBox)\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?: boolean;\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.6rem;\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 = 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 background-size: 96%;\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 GameNumberBadgeDefaultBox = 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 styled from \"styled-components\";\r\nimport {GameNumberBadgeDefaultBox} from \"./game-number-badge.default.box\";\r\n\r\nexport const GameNumberBadgeMrGreenBox = styled(GameNumberBadgeDefaultBox)`\r\n font-size: 110px;\r\n font-family: \"Oleo-Script-Bold\", verdana, sans-serif;\r\n text-shadow: none;\r\n color: white;\r\n -webkit-text-fill-color: white;\r\n -webkit-text-stroke-width: 3px;\r\n -webkit-text-stroke-color: ${props => props.theme.colors.brandPrimary};\r\n`;\r\n","import {styledByTheme} from \"../../../../../themes/architecture/styled-by-theme\";\r\nimport {GameNumberBadgeDefaultBox} from \"./game-number-badge.default.box\";\r\nimport {GameNumberBadgeMrGreenBox} from \"./game-number-badge.mrgreen.box\";\r\n\r\nexport const GameNumberBadgeBox = styledByTheme(GameNumberBadgeDefaultBox).forMrGreen(GameNumberBadgeMrGreenBox).apply();\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 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 styled from \"styled-components\";\r\nimport { hexToRgba } from \"../../../../themes/hex-to-rgba\";\r\nimport {VideoTileStaticImageOverlayDefaultBox} from \"./video-tile-static-image-overlay-default.box\";\r\n\r\nexport const VideoTileStaticImageOverlayMrGreenBox = styled(VideoTileStaticImageOverlayDefaultBox)`\r\n background-color: ${props => hexToRgba(props.theme.colors.backgroundMiddleDark, 0.85)};\r\n`;\r\n","import {VideoTileStaticImageOverlayDefaultBox} from \"./video-tile-static-image-overlay-default.box\";\r\nimport {styledByTheme} from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {VideoTileStaticImageOverlayMrGreenBox} from \"./video-tile-static-image-overlay.mrgreen.box\";\r\n\r\nexport const VideoTileStaticImageOverlayBox = styledByTheme(VideoTileStaticImageOverlayDefaultBox)\r\n .forMrGreen(VideoTileStaticImageOverlayMrGreenBox)\r\n .apply();\r\n","import {VideoTileSkeletonContainerDefaultBox} from \"./video-tile-skeleton-container-default.box\";\r\n\r\nexport const VideoTileSkeletonContainerBox = VideoTileSkeletonContainerDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoTileSkeletonContainerDefaultBox = styled.div`\r\n position: absolute;\r\n top: 0px;\r\n left: 0px;\r\n width: 100%;\r\n`;\r\n","import styled from \"styled-components\";\r\n\r\nconst DefaultBox = styled.video`\r\n width: 100%;\r\n height: 100%;\r\n`;\r\n\r\nexport const VideoDefaultBox = DefaultBox;\r\n","import { VideoDefaultBox } from './video-default.box';\r\nimport { styledByTheme } from '../../../../../themes/architecture/styled-by-theme';\r\n\r\nexport const VideoBox = styledByTheme(VideoDefaultBox).apply();\r\n","import { VideoPlayButtonDefaultBox } from './video-play-button.default.box';\r\n\r\n\r\nexport const VideoPlayButtonBox = VideoPlayButtonDefaultBox;\r\n","import styled from 'styled-components';\r\n\r\n\r\nexport const VideoPlayButtonDefaultBox = styled.button`\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-position: -544px -409px;\r\n background-size: 1200px;\r\n background-repeat: no-repeat;\r\n position: absolute;\r\n cursor: pointer;\r\n right: 0;\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n margin: auto;\r\n width: 6rem;\r\n height: 6rem;\r\n opacity: 0.9;\r\n transform: scale(1.5);\r\n transform: translateY(0);\r\n transition: all 0.35s ease-in-out;\r\n`;\r\n","import styled from 'styled-components';\r\n\r\ninterface LiveStreamingVideoContainerBoxProps {\r\n videoIsLoading: boolean;\r\n videoWatchTimeLimitReached: boolean;\r\n displayVideo: boolean;\r\n}\r\n\r\nconst DefaultBox = styled.div`\r\n display: ${props => props.displayVideo ? 'block' : 'none'};\r\n width: 100%;\r\n height: 100%;\r\n ${props => props.videoIsLoading || props.videoWatchTimeLimitReached ? 'filter: blur(2px)' : null};\r\n`;\r\n\r\nexport const VideoContainerDefaultBox = DefaultBox;\r\n","import { styledByTheme } from '../../../../themes/architecture/styled-by-theme';\r\nimport { VideoContainerDefaultBox } from './video-container-default.box';\r\n\r\nexport const VideoContainerBox = styledByTheme(VideoContainerDefaultBox).apply();\r\n","import React from 'react';\r\nimport { observer } from 'mobx-react';\r\nimport { CyClass } from '../../../../../common/cy-classes';\r\nimport { OrbitComponent } from '../../../base-components/orbit-component/orbit-component';\r\nimport { IVideoPlayer } from '../../../../services/video-live-stream/video-players/video-player.interface';\r\nimport { action, observable } from 'mobx';\r\nimport { VideoBox } from './boxes/video.box';\r\nimport { VideoPlayButtonBox } from \"../video-play-button/video-play-button.box\";\r\nimport {GameInfo} from \"../../../../services/games/game-info\";\r\nimport {VideoContainerBox} from '../video-container/video-container.box';\r\nimport {IVideoPlayingService} from \"../../../../services/video-live-stream/video-playing.service.interface\";\r\n\r\ninterface VideoComponentProps {\r\n gameInfo: GameInfo;\r\n muted: boolean;\r\n onError?: (hasError: boolean, retryFn?: (() => void) | undefined) => void;\r\n onLoading?: (isLoading: boolean) => void;\r\n onWatchTimeLimitReached?: (watchTimeLimitReached: boolean) => void;\r\n isInCenterStage: boolean;\r\n inViewport: boolean;\r\n display: boolean;\r\n videoPlayingService: IVideoPlayingService;\r\n isLastGametype?: boolean;\r\n}\r\n\r\n@observer\r\nexport class VideoComponent extends OrbitComponent {\r\n\r\n @observable\r\n private _videoPlayer: IVideoPlayer = null;\r\n @action.bound\r\n setLiveStreamPlayer(player: IVideoPlayer) {\r\n this._videoPlayer = player;\r\n }\r\n\r\n private _videoElement: HTMLVideoElement | null = null;\r\n private _isAppVisible = true;\r\n\r\n private _captureVideoRef = (mediaElement: HTMLVideoElement | null) => {\r\n if (mediaElement) {\r\n this._videoElement = mediaElement;\r\n }\r\n }\r\n\r\n private async _createVideoPlayer() {\r\n const liveStreamPlayer = await this.props.videoPlayingService.getVideoPlayer(this.props.gameInfo, this._videoElement, this.props.isLastGametype);\r\n this.setLiveStreamPlayer(liveStreamPlayer);\r\n }\r\n\r\n private _playVideo = async () => {\r\n if (!this._videoPlayer) {\r\n await this._createVideoPlayer();\r\n }\r\n\r\n this._videoPlayer.play();\r\n }\r\n\r\n private _pauseVideo = () => {\r\n if (this._videoPlayer) {\r\n this._videoPlayer.pause();\r\n }\r\n }\r\n\r\n private _detectIfVideoIsInFocus = () => {\r\n if (this._isAppVisible && this.props.isInCenterStage && this.props.inViewport) {\r\n this._playVideo();\r\n } else {\r\n this._pauseVideo();\r\n }\r\n }\r\n\r\n private _handlePlayVideoClick = () => {\r\n if (this._isAppVisible && this.props.isInCenterStage && this.props.inViewport) {\r\n this._playVideo();\r\n this._videoPlayer.logUIAction('info', 'VideoPlayClick');\r\n const gaCategory = this.props.videoPlayingService.gaCategory;\r\n this.services.analytics.sendAnalytics(gaCategory, \"AUTOPLAY\", \"VIDEO_PLAY_CLICK\", this.props.gameInfo.gameType, true);\r\n }\r\n }\r\n\r\n private _renderPlayerControls = () => {\r\n return this._videoPlayer?.autoplayAllowed ? null : (\r\n \r\n );\r\n }\r\n\r\n @action\r\n private _destroyPlayer = () => {\r\n if (this._videoPlayer) {\r\n this._videoPlayer.destroy();\r\n this._videoPlayer = null;\r\n }\r\n };\r\n\r\n private _retryPlay = () => {\r\n this._destroyPlayer();\r\n this._detectIfVideoIsInFocus();\r\n };\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n\r\n this._detectIfVideoIsInFocus();\r\n\r\n this.reaction(() => this._videoPlayer?.hasError, (hasError) => {\r\n this.props.onError(hasError, hasError ? this._retryPlay : undefined);\r\n });\r\n this.reaction(() => this._videoPlayer?.isLoading, (isLoading) => {\r\n this.props.onLoading(isLoading);\r\n });\r\n this.reaction(() => this._videoPlayer?.watchTimeLimitReached, (watchTimeLimitReached) => {\r\n this.props.onWatchTimeLimitReached(watchTimeLimitReached);\r\n });\r\n this.reaction(() => this.props.videoPlayingService.isAppVisible, (isAppVisible) => {\r\n this._isAppVisible = isAppVisible;\r\n this._detectIfVideoIsInFocus();\r\n });\r\n }\r\n\r\n componentDidUpdate(prevProps: VideoComponentProps) {\r\n if (this.props.isInCenterStage !== prevProps.isInCenterStage || this.props.inViewport !== prevProps.inViewport) {\r\n this._detectIfVideoIsInFocus();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n super.componentWillUnmount();\r\n\r\n this._destroyPlayer();\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n {this._renderPlayerControls()}\r\n \r\n )\r\n }\r\n};\r\n","import styled from \"styled-components\";\r\n\r\ninterface SkeletonAnimatedButtonProps {\r\n width: string;\r\n height: string;\r\n borderRadius?: string;\r\n}\r\n\r\nexport const SkeletonAnimatedButton = styled.div`\r\n\r\n width: ${({width}) => width};\r\n height: ${({height}) => height};\r\n margin-left: auto;\r\n\r\n background: rgba(255, 255, 255, 0.25);\r\n\r\n border-radius: ${({borderRadius}) => borderRadius || \"5px\"};\r\n animation: PulsatingAnimation 2.5s alternate infinite;\r\n\r\n @keyframes PulsatingAnimation {\r\n 0% {\r\n opacity: 1;\r\n }\r\n 100% {\r\n opacity: 0.25;\r\n }\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\n\r\ninterface SkeletonAnimatedRectangleProps {\r\n top?: boolean;\r\n left?: boolean;\r\n right?: boolean;\r\n bottom?: boolean;\r\n width: string;\r\n height: string;\r\n borderRadius?: string;\r\n}\r\n\r\nexport const SkeletonAnimatedRectangle = styled.div`\r\n\r\n position: absolute;\r\n\r\n top: ${({top}) => top ? \"1rem\" : \"initial\"};\r\n left: ${({left}) => left ? \"1rem\" : \"initial\"};\r\n right: ${({right}) => right ? \"1rem\" : \"initial\"};\r\n bottom: ${({bottom}) => bottom ? \"1rem\" : \"initial\"};\r\n\r\n width: ${({width}) => width};\r\n height: ${({height}) => height};\r\n\r\n background: rgba(0, 0, 0, 0.25);\r\n\r\n border-radius: ${({borderRadius}) => borderRadius || \"5px\"};\r\n animation: PulsatingAnimation 2s alternate infinite;\r\n\r\n @keyframes PulsatingAnimation {\r\n 0% {\r\n opacity: 1;\r\n }\r\n 100% {\r\n opacity: 0.5;\r\n }\r\n }\r\n`;\r\n","import {VideoTileFooterDefaultBox} from \"./video-tile-footer-default.box\";\r\n\r\nexport const VideoTileFooterBox = VideoTileFooterDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoTileFooterDefaultBox = styled.div`\r\n display: flex;\r\n position: relative;\r\n padding: 2rem 1rem;\r\n align-items: center;\r\n justify-content: space-between;\r\n background: ${({theme}) => theme.colors.backgroundLight.toString()};\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove } {\r\n padding: 3rem 2.5rem;\r\n }\r\n\r\n &::after {\r\n content: \"\";\r\n position: absolute;\r\n width: 100%;\r\n height: 1px;\r\n left: 0;\r\n bottom: 0;\r\n background: linear-gradient(90deg, transparent 10%, rgba(255, 255, 255, 0.85), transparent 90%);\r\n }\r\n`;\r\n","import {VideoTileSkeletonDefaultbox} from \"./video-tile-skeleton.defaultbox\";\r\n\r\nexport const VideoTileSkeletonbox = VideoTileSkeletonDefaultbox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoTileSkeletonDefaultbox = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n height: 100%;\r\n background: ${({theme}) => theme.colors.backgroundLight.toString()};\r\n`;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport {Image} from \"../raw-components/image/image\";\r\nimport {GameBox} from \"../single-game/regular-template/boxes/game/game.box\";\r\nimport {GameBox as JackpotGameBox} from \"../single-game/jackpot-template/boxes/game/game.box\";\r\nimport {GameTitleBox} from \"../single-game/regular-template/boxes/game-title/game-title.box\";\r\nimport {OrbitComponent} from \"../base-components/orbit-component/orbit-component\";\r\nimport {GameImageContainerBox} from \"../single-game/regular-template/boxes/game-image-container/game-image-container.box\";\r\nimport {GameImageContainerBox as JackpotGameImageContainerBox} from \"../single-game/jackpot-template/boxes/game-image-container/game-image-container.box\";\r\nimport {GameDetailsContainerBox} from \"../single-game/regular-template/boxes/game-details-container/game-details-container.box\";\r\nimport {GameDetailsContainerBox as JackpotGameDetailsContainerBox} from \"../single-game/jackpot-template/boxes/game-details-container/game-details-container.box\";\r\nimport {AspectRatioContainerComponent} from \"../raw-components/aspect-ratio-container/aspect-ratio-container.component\";\r\nimport {JACKPOTS_ITEM, LIVE_STREAMING_ITEM, STATIC_VIDEO_ITEM} from \"../../themes/css-global-classes\";\r\nimport {VideoTileBox} from \"../live-streaming-tile/video-common-components/video-tile/boxes/video-tile.box\";\r\nimport {SkeletonAnimatedButton} from \"../live-streaming-tile/video-common-components/video-tile-skeleton/skeleton-animated-button.box\";\r\nimport {SkeletonAnimatedRectangle} from \"../live-streaming-tile/video-common-components/video-tile-skeleton/skeleton-animated-rectangle.box\";\r\nimport {VideoTileFooterBox} from \"../live-streaming-tile/video-common-components/video-tile-footer/boxes/video-tile-footer.box\";\r\nimport {VideoTileSkeletonbox} from \"../live-streaming-tile/video-common-components/video-tile-skeleton/video-tile.skeletonbox\";\r\nimport { CyClass } from \"../../../common/cy-classes\";\r\nimport { AmountContainerBox } from \"./regular-template/boxes/amount-container/amount-container.box\";\r\n\r\nconst DummyTextBox = styled.div`\r\n background: linear-gradient(90deg, rgba(255, 255, 255, 0.25), rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.25));\r\n background-size: 400px 100%;\r\n border-radius: 5px;\r\n animation: TextLoadingAnimation 1s linear infinite;\r\n\r\n @keyframes TextLoadingAnimation {\r\n 0% {\r\n background-position-x: -200px;\r\n }\r\n 100% {\r\n background-position-x: 200px;\r\n }\r\n }\r\n`;\r\n\r\nconst DummyTextBoxAbsolute = styled(DummyTextBox)`\r\n position: absolute;\r\n top: 0;\r\n left: 25%;\r\n right: 25%;\r\n bottom: 0;\r\n`;\r\n\r\ninterface IDummyTextBoxRelativeProps {\r\n small?: boolean;\r\n}\r\n\r\nconst DummyTextBoxRelative = styled(DummyTextBox)`\r\n position: relative;\r\n width: ${({small}) => small ? \"50%\" : \"80%\"};\r\n height: 2rem;\r\n margin-bottom: 1rem;\r\n`;\r\n\r\nexport interface ISingleGameSkeletonComponentProps {\r\n templateType: string;\r\n useSquareIcons: boolean;\r\n placeholderImageSrc: string;\r\n}\r\n\r\nexport class SingleGameSkeletonComponent extends OrbitComponent {\r\n\r\n private _renderRegularGameSkeleton() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n  \r\n \r\n \r\n  \r\n \r\n \r\n );\r\n }\r\n\r\n private _renderJackpotGameSkeleton() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private _renderVideoSkeleton() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.services.mediaQuery.xlAndAbove ?\r\n :\r\n }\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n render () {\r\n\r\n if (this.props.templateType === JACKPOTS_ITEM) {\r\n return this._renderJackpotGameSkeleton();\r\n }\r\n\r\n if ([LIVE_STREAMING_ITEM, STATIC_VIDEO_ITEM].includes(this.props.templateType)) {\r\n return this._renderVideoSkeleton();\r\n }\r\n\r\n return this._renderRegularGameSkeleton();\r\n }\r\n}\r\n","import {VideoRetryScreenTileDefaultBox} from \"./video-retry-screen-tile-default.box\";\r\n\r\nexport const VideoRetryScreenTileBox = VideoRetryScreenTileDefaultBox;\r\n","import styled from \"styled-components\";\r\nimport { hexToRgba } from \"../../../../../themes/hex-to-rgba\";\r\n\r\nexport const VideoRetryScreenTileDefaultBox = styled.div`\r\n position: absolute;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n height: 100%;\r\n background: ${({theme}) => hexToRgba(theme.colors.background.toString(), 0.6)};\r\n`;\r\n","import {VideoRetryScreenIconDefaultBox} from \"./video-retry-screen-icon-default.box\";\r\n\r\nexport const VideoRetryScreenIconBox = VideoRetryScreenIconDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoRetryScreenIconDefaultBox = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 5rem;\r\n height: 5rem;\r\n background: ${({theme}) => theme.colors.background.toString()};\r\n border-radius: 50%;\r\n`;\r\n","import {VideoRetryScreenTitleDefaultBox} from \"./video-retry-screen-title-default.box\";\r\n\r\nexport const VideoRetryScreenTitleBox = VideoRetryScreenTitleDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoRetryScreenTitleDefaultBox = styled.div`\r\n margin: 1rem 0;\r\n font-size: 2rem;\r\n color: ${({theme}) => theme.colors.textLight.toString()};\r\n`;\r\n","import {VideoRetryScreenTextDefaultBox} from \"./video-retry-screen-text-default.box\";\r\n\r\nexport const VideoRetryScreenTextBox = VideoRetryScreenTextDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoRetryScreenTextDefaultBox = styled.div`\r\n margin-bottom: 1rem;\r\n font-size: 1.6rem;\r\n line-height: 1.5;\r\n color: ${({theme}) => theme.colors.textLight.toString()};\r\n`;\r\n","import {OrbitComponent} from \"../../../base-components/orbit-component/orbit-component\";\r\nimport React from 'react';\r\nimport {VideoRetryScreenTileBox} from \"./video-retry-screen-boxes/video-retry-screen-tile.box\";\r\nimport {VideoRetryScreenIconBox} from \"./video-retry-screen-boxes/video-retry-screen-icon.box\";\r\nimport {SvgSizeUnit} from \"../../../../basic-ui-components/icon/svg-icon/svg.icon\";\r\nimport {VideoRetryScreenTitleBox} from \"./video-retry-screen-boxes/video-retry-screen-title.box\";\r\nimport {VideoRetryScreenTextBox} from \"./video-retry-screen-boxes/video-retry-screen-text.box\";\r\nimport {Button} from \"../../../../basic-ui-components/button/base/button.component\";\r\n\r\nexport interface VideoRetryScreenComponentProps {\r\n retryFn: () => void;\r\n setHasError: (value: boolean, retryFn?: (() => void) | undefined) => void;\r\n}\r\n\r\nexport default class VideoRetryScreenComponent extends OrbitComponent {\r\n\r\n private _retryAndSetError = () => {\r\n if (this.props.retryFn) {\r\n this.props.retryFn();\r\n }\r\n this.props.setHasError(false);\r\n };\r\n\r\n render(): React.ReactNode {\r\n const BrokenLinkIcon = this.services.theme.currentTheme.icons.brokenLinkIcon;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {this.services.translation.translate('CANT_CONNECT_ERROR_TITLE')}\r\n \r\n \r\n {this.services.translation.translate('CANT_CONNECT_ERROR_MESSAGE')}\r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n","import {OrbitComponent} from \"../../../base-components/orbit-component/orbit-component\";\r\nimport {GameInfo} from \"../../../../services/games/game-info\";\r\nimport React from 'react';\r\nimport {LiveCasinoGridItemThumbnailImageBox} from \"../../../arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/thumbnail/live-casino-grid-item-thumbnail-image.box\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {addQueryParam} from \"../../../../../utils/url-utils\";\r\n\r\nexport interface VideoThumbnailImageComponentProps {\r\n onLoad: () => void;\r\n onSettled: () => void;\r\n gameInfo: GameInfo;\r\n filterBlur: boolean;\r\n}\r\n\r\nexport default class VideoThumbnailImageComponent extends OrbitComponent {\r\n\r\n //Priority for game video thumbnail image(takes the 1st that exists):\r\n // gameinfo.videoThumbnailUrl\r\n // tableinfo.TableImage\r\n // gameinfo.gameArenaIcon\r\n\r\n private _getImageSource = (): string => {\r\n const gameInfo: GameInfo = this.props.gameInfo;\r\n\r\n if (gameInfo?.videoThumbnailUrl) {\r\n return gameInfo?.videoThumbnailUrl;\r\n }\r\n\r\n const tableInfo = this.services.liveTableFeeds.getTableInfo(gameInfo.gameType);\r\n\r\n if (Check.isEmpty(tableInfo) || !tableInfo.TableImage) {\r\n return gameInfo?.gameArenaIcon;\r\n } else {\r\n // We need this random because we want to force react to reload the image because the url of the image is identical but the image changed.\r\n let imageRandom = Math.random();\r\n\r\n return addQueryParam(tableInfo.TableImage, imageRandom.toString());\r\n }\r\n };\r\n\r\n render(): React.ReactNode {\r\n return ();\r\n }\r\n}\r\n","import {VideoTileBettingRangeDefaultBox} from \"./video-tile-betting-range-default.box\";\r\n\r\nexport const VideoTileBettingRangeBox = VideoTileBettingRangeDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\n\r\nexport const VideoTileBettingRangeDefaultBox = styled.div`\r\n font-size: 1.2rem;\r\n color: ${({theme}) => theme.colors.brandPrimary.toString()};\r\n line-height: 1;\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove } {\r\n margin: 12px 0 0 0rem;\r\n font-size: 1.3rem;\r\n }\r\n`;\r\n","import {VideoTileGameTitleDefaultBox} from \"./video-tile-game-title-default.box\";\r\n\r\nexport const VideoTileGameTitleBox = VideoTileGameTitleDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoTileGameTitleDefaultBox = styled.div`\r\n text-overflow: ellipsis;\r\n font-size: 1rem;\r\n color: ${({theme}) => theme.colors.textLight.toString()};\r\n line-height: 1.1;\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove } {\r\n font-size: 1.3rem;\r\n }\r\n`;\r\n","import {VideoTileFooterSectionDefaultBox} from \"./video-tile-footer-section-default.box\";\r\n\r\nexport const VideoTileFooterSectionBox = VideoTileFooterSectionDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoTileFooterSectionDefaultBox = styled.div<{width?: string;}>`\r\n width: ${({width}) => width ? width : \"auto\"};\r\n margin-right: 1rem;\r\n`;\r\n","import styled from \"styled-components\";\r\n\r\nconst VideoListJackpotValueDefaultBox = styled.span`\r\n color: ${({theme}) => theme.colors.brandPrimary.toString()};\r\n margin-left: 0.5rem;\r\n`;\r\n\r\nexport const VideoListJackpotValueBox = VideoListJackpotValueDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nconst VideoListJackpotContainerDefaultBox = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n font-size: 1.2rem;\r\n margin-top: 5px;\r\n`;\r\n\r\nexport const VideoListJackpotContainerBox = VideoListJackpotContainerDefaultBox;","import {OrbitComponent} from \"../../../base-components/orbit-component/orbit-component\";\r\nimport React, {ReactNode} from 'react';\r\nimport {GameInfo} from \"../../../../services/games/game-info\";\r\nimport {ILiveTableInfo} from \"../../../../services/live-table-feeds-service/live-table-feeds.service.interface\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {VideoTileBettingRangeBox} from \"../video-tile-betting-range/video-tile-betting-range.box\";\r\nimport {VideoTileGameTitleBox} from \"../video-tile-game-title/video-tile-game-title.box\";\r\nimport {VideoTileFooterBox} from \"./boxes/video-tile-footer.box\";\r\nimport {CyClass} from \"../../../../../common/cy-classes\";\r\nimport {VideoTileFooterSectionBox} from \"./boxes/video-tile-footer-section.box\";\r\nimport {Button} from \"../../../../basic-ui-components/button/base/button.component\";\r\nimport {GameJackpotComponent} from \"../../../game-jackpot/game-jackpot.component\";\r\nimport {\r\n VideoListJackpotValueBox\r\n} from \"../../static-video-specific-components/video-list-jackpot-value/video-list-jackpot-value.box\";\r\nimport {\r\n VideoListJackpotContainerBox\r\n} from \"../../static-video-specific-components/video-list-jackpot-container/video-list-jackpot-container.box\";\r\n\r\nexport type VideoTileFooterType = \"jackpot\" | \"bets\";\r\n\r\nexport interface VideoTileFooterComponentProps {\r\n onClickPlay: () => void;\r\n gameInfo: GameInfo;\r\n type: VideoTileFooterType;\r\n}\r\n\r\nexport default class VideoTileFooterComponent extends OrbitComponent {\r\n\r\n //Information from GetLiveTables request feed, for live casino games only.\r\n private get _tableInfo(): ILiveTableInfo | null {\r\n return this.services.liveTableFeeds.getTableInfo(this.props.gameInfo.gameType);\r\n }\r\n\r\n private _renderMinMaxBet(): ReactNode {\r\n\r\n let minBet: number;\r\n let maxBet: number;\r\n\r\n if(Check.isNullOrUndefined(this._tableInfo?.MinBet) || Check.isNullOrUndefined(this._tableInfo?.MaxBet)){\r\n minBet = this.props.gameInfo.minBet;\r\n maxBet = this.props.gameInfo.maxBet;\r\n } else {\r\n minBet = this._tableInfo.MinBet;\r\n maxBet = this._tableInfo.MaxBet;\r\n }\r\n\r\n return (\r\n \r\n {this.services.currency.formatMinMaxBet(minBet, maxBet)}\r\n \r\n );\r\n }\r\n\r\n private _renderGameTitle(): ReactNode {\r\n\r\n let title = this.props.gameInfo?.title || \"\\xa0\";\r\n\r\n if (this._tableInfo?.Name?.length > 0) {\r\n title = this._tableInfo.Name;\r\n }\r\n\r\n return (\r\n \r\n {title}\r\n \r\n );\r\n }\r\n\r\n private _renderJackpot() {\r\n if(!this.props.gameInfo.hasJackpot) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n {this.services.translation.translate(\"JACKPOT\")}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private _renderSecondaryText() {\r\n switch (this.props.type) {\r\n case \"bets\":\r\n return this._renderMinMaxBet();\r\n case \"jackpot\":\r\n return this._renderJackpot();\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n render(): React.ReactNode {\r\n return (\r\n \r\n \r\n {this._renderGameTitle()}\r\n {this._renderSecondaryText()}\r\n \r\n \r\n \r\n {this.services.translation.translate(\"PLAY_NOW\")}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { imagePreload, ImagePreloadPromiseResponse } from \"../../../../../common/utils/image-preload\";\r\nimport {CyClass} from \"../../../../../common/cy-classes\";\r\nimport {OrbitComponent} from \"../../../base-components/orbit-component/orbit-component\";\r\nimport {VideoTileBox} from \"./boxes/video-tile.box\";\r\nimport {AspectRatioContainerComponent} from \"../../../raw-components/aspect-ratio-container/aspect-ratio-container.component\";\r\nimport {VideoTileOverlayComponent} from \"../video-tile-overlay/video-tile-overlay.component\";\r\nimport {VideoTileOverlayBox} from \"../video-tile-overlay/boxes/video-tile-overlay.box\";\r\nimport {VideoTileStaticImageOverlayBox} from \"../video-tile-static-image-overlay/video-tile-static-image-overlay.box\";\r\nimport {VideoTileSkeletonContainerBox} from \"../video-tile-skeleton-container/video-tile-skeleton-container.box\";\r\nimport {VideoComponent} from \"../video-component/video.component\";\r\nimport {action, observable} from \"mobx\";\r\nimport {observer} from \"mobx-react\";\r\nimport {GameInfo} from \"../../../../services/games/game-info\";\r\nimport {SingleGameSkeletonComponent} from \"../../../single-game/single-game-skeleton.component\";\r\nimport {LIVE_STREAMING_ITEM} from \"../../../../themes/css-global-classes\";\r\nimport {TableSeatsComponent} from \"../../../arena-host/new-live-casino-arena/live-casino-arena-grid/shared-components/table-seats.component\";\r\nimport {RouletteDrawsComponent} from \"../../../arena-host/new-live-casino-arena/live-casino-arena-grid/shared-components/roulette-draws.component\";\r\nimport {IVideoPlayingService} from \"../../../../services/video-live-stream/video-playing.service.interface\";\r\nimport VideoRetryScreenComponent from \"../video-retry-screen/video-retry-screen.component\";\r\nimport {VIDEO_ITEM_TYPE} from \"../../../single-game/video-template/single-game-video-template.component\";\r\nimport VideoThumbnailImageComponent from \"../video-thumbnail-image/video-thumbnail-image.component\";\r\nimport VideoTileFooterComponent from \"../video-tile-footer/video-tile-footer.component\";\r\n\r\nexport interface VideoTileComponentProps {\r\n gameInfo: GameInfo;\r\n isInCenterStage: boolean;\r\n inViewport: boolean;\r\n onOpenRealGame: () => void;\r\n videoPlayingService: IVideoPlayingService;\r\n videoItemType: VIDEO_ITEM_TYPE;\r\n isLastGametype?: boolean;\r\n}\r\n\r\n@observer\r\nexport class VideoTileComponent extends OrbitComponent {\r\n private _posterImageLoadPromise: Promise | undefined = undefined;\r\n\r\n @observable\r\n private _hasError: boolean = false;\r\n\r\n private _retryFn: (() => void) | undefined;\r\n\r\n @action.bound\r\n setHasError(value: boolean, retryFn?: (() => void) | undefined) {\r\n this._hasError = value;\r\n this._retryFn = retryFn;\r\n }\r\n\r\n @observable\r\n private _posterImageLoaded = false;\r\n\r\n @action\r\n private setPosterImageLoaded(value: boolean) {\r\n this._posterImageLoaded = value;\r\n }\r\n private onPosterImageLoaded = () => {\r\n this.setPosterImageLoaded(true);\r\n }\r\n\r\n @observable\r\n private _isVideoLoading: boolean = true;\r\n\r\n @observable\r\n private _isFirstTimeLoading: boolean = true;\r\n\r\n @action.bound\r\n setIsVideoLoading(value: boolean) {\r\n this._isVideoLoading = value;\r\n if (value === false) {\r\n this.firstTimeLoadingDone();\r\n }\r\n }\r\n @action.bound\r\n firstTimeLoadingDone() {\r\n if (this._isFirstTimeLoading === true) {\r\n this._isFirstTimeLoading = false;\r\n }\r\n }\r\n\r\n @observable\r\n private _isWatchTimeLimitReached: boolean = false;\r\n\r\n @action.bound\r\n setIsWatchTimeLimitReached(value: boolean) {\r\n this._isWatchTimeLimitReached = value;\r\n }\r\n\r\n private _onPlayClickHandler = () => {\r\n this.props.onOpenRealGame();\r\n const gaCategory = this.props.videoPlayingService.gaCategory;\r\n this.services.analytics.sendAnalytics(gaCategory, \"PLAY_GAME\", \"CLICK\", this.props.gameInfo.gameType, true);\r\n };\r\n\r\n componentDidMount() {\r\n if (this.props.gameInfo.videoThumbnailUrl) {\r\n this._posterImageLoadPromise = imagePreload(this.props.gameInfo.videoThumbnailUrl);\r\n this._posterImageLoadPromise.then(this.onPosterImageLoaded);\r\n }\r\n }\r\n componentWillUnmount() {\r\n if (this._posterImageLoadPromise) {\r\n this._posterImageLoadPromise = undefined;\r\n }\r\n }\r\n\r\n private _renderPlayerOverlay() {\r\n if (!this._isWatchTimeLimitReached && !this._isVideoLoading) {\r\n return null;\r\n }\r\n\r\n let statusText = '';\r\n if (this._isWatchTimeLimitReached) {\r\n statusText = this.services.translation.translate('LIVE_STREAM_WATCH_TIME_REACHED');\r\n } else if (this._isVideoLoading) {\r\n statusText = this.services.translation.translate('LIVE_STREAM_VIDEO_LOADING');\r\n }\r\n\r\n return {statusText};\r\n }\r\n\r\n private _renderRetryScreen() {\r\n return (\r\n \r\n )\r\n }\r\n\r\n private _renderPlayer() {\r\n return (\r\n \r\n {/* For the video element I cannot conditionally render it for this.props.isInCenterStage because when the video reaches end and the user\r\n swipes right/left it renders again and starts again */}\r\n \r\n {((this.services.mediaQuery.xlAndAbove && !this.props.isInCenterStage) || this._hasError || (this.props.isInCenterStage && this._isFirstTimeLoading && this._posterImageLoaded)) ? this._renderVideoThumbnailImage(this._hasError && this.props.isInCenterStage) : this._renderPlayerOverlay()}\r\n {this._renderTileOverlayComponent()}\r\n {(this._hasError && this.props.isInCenterStage) ? this._renderRetryScreen() : null}\r\n \r\n );\r\n }\r\n\r\n private _renderTileOverlayComponent(): React.ReactNode {\r\n if (this.props.videoItemType === VIDEO_ITEM_TYPE.STATIC) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n const tableInfo = this.services.liveTableFeeds.getTableInfo(this.props.gameInfo.gameType);\r\n\r\n return (\r\n }\r\n bottomRightComponent={}\r\n videoPlaying={this.props.isInCenterStage && !this._hasError}\r\n />\r\n )\r\n\r\n }\r\n\r\n private _renderVideoThumbnailImage(filterBlur: boolean) {\r\n return \r\n }\r\n\r\n private _renderFooter() {\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _renderSkeleton() {\r\n if (this._isFirstTimeLoading && !this._posterImageLoaded) {\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n }\r\n\r\n private _renderStaticImageOverlay() {\r\n if (this.props.isInCenterStage || this.services.mediaQuery.lAndBelow) {\r\n return null;\r\n }\r\n return ;\r\n }\r\n\r\n\r\n render() {\r\n\r\n return (\r\n \r\n {this._renderPlayer()}\r\n {this._renderFooter()}\r\n {this._renderSkeleton()}\r\n {this._renderStaticImageOverlay()}\r\n \r\n );\r\n }\r\n}\r\n","import {VideoItemContainerDefaultBox} from \"./video-item-container-default.box\";\r\n\r\nexport const VideoItemContainerBox = VideoItemContainerDefaultBox;\r\n","import styled from \"styled-components\";\r\nimport {flexFixedSizeItem} from \"../../../../themes/architecture/css-helpers/flex\";\r\n\r\nexport const VideoItemContainerDefaultBox = styled.div<{stepBackStyle: boolean;}>`\r\n width: 100%;\r\n ${flexFixedSizeItem}\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove} {\r\n width: 33.33%;\r\n transition: transform 0.5s ease-in-out;\r\n transform: ${({stepBackStyle}) => stepBackStyle ? \"scale(0.7)\" : \"scale(1)\"};\r\n }\r\n`;\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {SingleGameRegularTemplateComponent} from './regular-template/single-game-regular-template.component';\r\nimport {GameInfo, OpenGameParameters} from '../../services/games/game-info';\r\nimport {CssClassNameBuilder} from '../../../utils/css-class-name-builder';\r\nimport {observer} from 'mobx-react';\r\nimport {GAME_BOX, SWIPER_MODE} from './css-constants';\r\nimport {SingleGameJackpotTemplateComponent} from './jackpot-template/single-game-jackpot-template.component';\r\nimport {JACKPOTS_ITEM, LIVE_CASINO_ITEM, LIVE_STREAMING_ITEM, STATIC_VIDEO_ITEM} from '../../themes/css-global-classes';\r\nimport {CyClass} from '../../../common/cy-classes';\r\nimport {SingleGameLiveTemplateComponent} from './live-template/single-game-live-template.component';\r\nimport {SingleGameVideoTemplate, VIDEO_ITEM_TYPE} from './video-template/single-game-video-template.component';\r\nimport {GameIconAnimationState} from './common/parts/game-image/game-image.component';\r\n\r\nexport interface SingleGameComponentProps {\r\n gameType: number;\r\n seoCategory: string;\r\n listTitle: string;\r\n listPosition?: number,\r\n AdminListID?: number,\r\n AIListTypeID?: number;\r\n templateType?: any;\r\n gameIndex?: number;\r\n skipIntermediatePage?: boolean;\r\n disableGameInfoHover: boolean;\r\n isInsideSwiper?: boolean;\r\n aiEngine?: string;\r\n useSquareIcons?: boolean;\r\n showNumberBadge?: boolean;\r\n intersectionTarget?: HTMLDivElement;\r\n hasTwoLinesTitle?: boolean;\r\n isLastGametype?: boolean;\r\n onBringInCentralView?: (gameIndex: number) => void;\r\n}\r\n\r\n@observer\r\nexport class SingleGameComponent extends OrbitComponent {\r\n private animatedIconState: GameIconAnimationState = \"static\";\r\n\r\n get gameInfo(): GameInfo {\r\n return this.services.games.gamesMap[this.props.gameType];\r\n }\r\n\r\n private openRealGame = () => {\r\n this._openGame(true);\r\n };\r\n\r\n private openAnonymousGame = () => {\r\n this._openGame(false);\r\n };\r\n\r\n private openInfoPage = () => {\r\n this.services.location.push(this.gameInfo.infoPageURL);\r\n this.sendAnalytics(`SEO_${this.gameInfo.gameType}`);\r\n };\r\n\r\n private _openGame(openInRealMode: boolean): void {\r\n\r\n\r\n const openGameParams: OpenGameParameters = {\r\n isRealMode: openInRealMode,\r\n pageName: this.props.seoCategory,\r\n listTitle: this.props.listTitle,\r\n listPosition: this.props.listPosition,\r\n AdminListID: this.props.AdminListID,\r\n AIListTypeID: this.props.AIListTypeID,\r\n gameIndex: this.props.gameIndex,\r\n aiEngine: this.props.aiEngine,\r\n showIntermediatePage: !this.props.skipIntermediatePage,\r\n animatedIconState: this.animatedIconState\r\n };\r\n\r\n this.gameInfo.open(openGameParams)\r\n }\r\n\r\n private get _allowPreview(): boolean {\r\n return this.services.lobbyGameInfoPreview.allowGamePreview\r\n && !this.props.disableGameInfoHover;\r\n }\r\n\r\n private sendAnalytics(label: string) {\r\n this.services.analytics.sendAnalytics(this.props.seoCategory, this.props.listTitle, label);\r\n }\r\n\r\n private setAnimatedIconState = (state: GameIconAnimationState) => {\r\n this.animatedIconState = state;\r\n }\r\n\r\n private onMouseEnter = () => {\r\n if (this._allowPreview) {\r\n this.services.lobbyGameInfoPreview.setGamePreview(this.props.gameType);\r\n }\r\n };\r\n\r\n\r\n private onMouseLeave = () => {\r\n if (this._allowPreview) {\r\n this.services.lobbyGameInfoPreview.clearGamePreview();\r\n }\r\n };\r\n\r\n\r\n private _buildComponentClasses(gameInfo: GameInfo): string {\r\n let builder = new CssClassNameBuilder();\r\n\r\n builder.append(GAME_BOX);\r\n\r\n if(this.props.isInsideSwiper) {\r\n builder = builder.append(SWIPER_MODE);\r\n }\r\n\r\n if (gameInfo) {\r\n builder = builder.append(`game-group-${toCssClass(gameInfo.gameGroup)}`)\r\n .append(gameInfo.gameCategoryClassName)\r\n .append(`game-company-${toCssClass(gameInfo.companyName)}`)\r\n .append(`game-type-${gameInfo.gameType}`);\r\n }\r\n\r\n if(this.props.skipIntermediatePage) {\r\n builder.append(CyClass('cy-skip-intermediate-page'));\r\n }\r\n\r\n return builder.build();\r\n\r\n }\r\n\r\n render() {\r\n\r\n let gameInfo = this.gameInfo;\r\n\r\n if(!gameInfo) {\r\n return null;\r\n }\r\n\r\n try {\r\n\r\n const classes = this._buildComponentClasses(gameInfo);\r\n\r\n switch (this.props.templateType) {\r\n\r\n case JACKPOTS_ITEM:\r\n return (\r\n \r\n );\r\n\r\n case LIVE_CASINO_ITEM:\r\n return (\r\n \r\n );\r\n\r\n case LIVE_STREAMING_ITEM:\r\n return (\r\n \r\n );\r\n\r\n case STATIC_VIDEO_ITEM:\r\n return (\r\n \r\n );\r\n\r\n default:\r\n return (\r\n \r\n );\r\n }\r\n\r\n } catch (err) {\r\n this.services.logger.error(`Failed to render SingleGameComponent for game ${gameInfo.gameType} - ${gameInfo.title} in list ${this.props.listTitle}`, err);\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nfunction toCssClass(str: string){\r\n try{\r\n return str.replace(/\\s+/g, '-').toLowerCase();\r\n }\r\n catch(e){\r\n return '';\r\n }\r\n}\r\n\r\n","import styled from 'styled-components';\r\nimport {GameBox} from '../../../single-game/regular-template/boxes/game/game.box';\r\nimport { CssRule } from '../../../../themes/architecture/css-helpers/css-rule';\r\n\r\n\r\nexport const GamePlaceHolderDefaultBox = styled(GameBox)`\r\n ${CssRule.For.mobile.embededHybrid.build()} & , ${CssRule.For.mobile.miniOrbit.build()} & {\r\n display: none;\r\n }\r\n`;","import { IJackpotHandler } from \"./jackpot-handler/jackpot-handler.interface\";\r\nimport {JACKPOT_STATE, JackpotType} from '../../../common/const/jackpot_map_ids';\r\n\r\nexport enum JackpotThemeType {\r\n Light,\r\n Dark\r\n}\r\n\r\nexport interface IJackpotData {\r\n amountInCents: number;\r\n jackpotId: string;\r\n jackpotState: JACKPOT_STATE;\r\n lastWinAmount: number;\r\n mustHitTime: Date;\r\n}\r\n\r\nexport interface IJackpotsWithStateService {\r\n readonly currentJackpots: Record;\r\n getThemeType(jpType: JackpotType): JackpotThemeType;\r\n}\r\n","import {GamePlaceHolderDefaultBox} from './game-placeholder.default.box';\r\n\r\nexport const GamePlaceHolderBox = GamePlaceHolderDefaultBox;","import {GameImageDefaultBox} from './game-image.default.box';\r\n\r\nexport const GameImageBox = GameImageDefaultBox;","import styled from 'styled-components';\r\nimport {GameImageBox as BaseGameImageBox} from '../../../single-game/common/boxes/game-image/game-image.box';\r\n\r\nexport const GameImageDefaultBox = styled(BaseGameImageBox)`\r\n cursor: default;\r\n`;\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {GamePlaceHolderBox} from './boxes/placeholder/game-placeholder.box';\r\nimport {GameImageBox} from './boxes/game-image/game-image.box';\r\nimport {GameImageContainerBox} from '../single-game/regular-template/boxes/game-image-container/game-image-container.box';\r\nimport {observer} from 'mobx-react';\r\nimport {GAME_IMAGE_CONTAINER, SWIPER_MODE} from '../single-game/css-constants';\r\nimport classNames from 'classnames';\r\n\r\nexport interface SingleGamePlaceholderComponentProps {\r\n isInsideSwiper: boolean\r\n}\r\n\r\n@observer\r\nexport class SingleGamePlaceholderComponent extends OrbitComponent {\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import styled from 'styled-components';\r\nimport {HOME_PAGE, JACKPOTS_ITEM, LIVE_STREAMING_ITEM, STATIC_VIDEO_ITEM} from '../../../../themes/css-global-classes';\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\n\r\n\r\nconst DefaultBox = styled.div`\r\n position: relative;\r\n width: 100%;\r\n padding: 0;\r\n margin: 0 auto;\r\n overflow: hidden;\r\n`;\r\n\r\n//Temporary duplicate style for STATIC_VIDEO_ITEM and LIVE_STREAMING_ITEM\r\nexport const PcBox = styled(DefaultBox)`\r\n .${HOME_PAGE} & {\r\n width: 90%;\r\n &.${JACKPOTS_ITEM} {\r\n width: 100%;\r\n }\r\n }\r\n\r\n &.${LIVE_STREAMING_ITEM},\r\n &.${STATIC_VIDEO_ITEM} {\r\n width: 104%;\r\n padding-bottom: 2.5rem;\r\n padding-top: 1.5rem;\r\n margin-left: -2%;\r\n clip-path: polygon(8% 0, 92% 0%, 92% 100%, 8% 100%);\r\n overflow: unset;\r\n }\r\n`;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\r\n padding: 0;\r\n`;\r\n\r\nexport const SwiperWrapperDefaultBox = styledByDevice(PcBox, MobileBox);\r\n","import styled from 'styled-components';\r\nimport {PcBox as BasePcBox, MobileBox as BaseMobileBox} from './swiper-wrapper.default.box';\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\n\r\nconst PcBox = styled(BasePcBox)`\r\n padding-top: 0.5rem;\r\n`;\r\n\r\nconst MobileBox = styled(BaseMobileBox)`\r\n padding-top: 0;\r\n`;\r\n\r\n\r\nexport const SwiperWrapperCasino777Box = styledByDevice(PcBox, MobileBox);","import {styledByTheme} from '../../../../themes/architecture/styled-by-theme';\r\nimport {SwiperWrapperDefaultBox} from './swiper-wrapper.default.box';\r\nimport {SwiperWrapperCasino777Box} from './swiper-wrapper.casino777.box';\r\n\r\nexport const SwiperWrapperBox = styledByTheme(SwiperWrapperDefaultBox).forCasino777(SwiperWrapperCasino777Box).apply();","import styled, { css } from 'styled-components';\r\nimport {JACKPOTS_ITEM} from '../../../../themes/css-global-classes';\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\n\r\n\r\ninterface SwiperGamesListBoxProp {\r\n isTouchDevice: boolean;\r\n}\r\n\r\nconst DefaultBox = styled.div`\r\n position: relative;\r\n display: flex;\r\n justify-content: flex-start;\r\n transition: transform .5s ease-in-out;\r\n will-change: transform;\r\n width: 100%;\r\n height: 100%;\r\n margin-top: 10px;\r\n\r\n -webkit-overflow-scrolling: touch;\r\n -ms-overflow-style: -ms-autohiding-scrollbar;\r\n overflow: -moz-scrollbars-none;\r\n &::-webkit-scrollbar {\r\n display: none;\r\n }\r\n\r\n ${({isTouchDevice}) => !isTouchDevice? css`\r\n overflow: visible;\r\n ` : css`\r\n overflow-x: scroll;\r\n overflow-y: hidden;\r\n `}\r\n`;\r\n\r\nconst PcBox = styled(DefaultBox)`\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n margin-top: 5px;\r\n margin-bottom: 20px;\r\n\r\n .${JACKPOTS_ITEM} & {\r\n display: flex;\r\n flex-wrap: wrap;\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n flex-direction: column;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndAbove} {\r\n flex-direction: row;\r\n }\r\n }\r\n`;\r\n\r\nexport const SwiperGamesListDefaultBox = styledByDevice(PcBox, MobileBox);\r\n","import styled from \"styled-components\";\r\nimport { SwiperGamesListDefaultBox } from \"./swiper-games-list.default.box\";\r\n\r\nexport const SwiperGamesListSICisBox = styled(SwiperGamesListDefaultBox)`\r\n background: ${props => props.theme.colors.backgroundLight};\r\n margin-top: 0;\r\n padding-bottom: 1.2rem;\r\n box-shadow: 0px 0px 8px #00000059;\r\n`;","import { styledByTheme } from '../../../../themes/architecture/styled-by-theme';\r\nimport { SwiperGamesListDefaultBox } from './swiper-games-list.default.box';\r\nimport { SwiperGamesListSICisBox } from './swiper-games-list.siCis.box';\r\n\r\nexport const SwiperGamesListBox = styledByTheme(SwiperGamesListDefaultBox)\r\n .forSICis(SwiperGamesListSICisBox)\r\n .apply();","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.theme.shouldUseSquareIcons || this._useSquareIcons;\r\n }\r\n\r\n render(listPosition: number): React.ReactElement | null {\r\n return this._renderList(listPosition);\r\n }\r\n\r\n}","export const JACKPOT_WIDGET = 'daily-jackpot';\r\nexport const RED_TIGER_JACKPOT = 'red-tiger-jackpot';","import styled from 'styled-components';\r\nimport { flexFixedSizeItem } from '../../../../themes/architecture/css-helpers/flex';\r\nimport { CssRule } from '../../../../themes/architecture/css-helpers/css-rule';\r\nimport {JACKPOT_WIDGET} from '../../constants';\r\nimport {EXCLUSIVES_LIST_ICON} from \"../../../../themes/css-global-classes\";\r\n\r\nexport const ListTitleIconDefaultBox = styled.span`\r\n ${flexFixedSizeItem}\r\n display: inline-block;\r\n width: 3rem;\r\n height: 2.5rem;\r\n margin: 0 1rem 0 0;\r\n background-position: center center;\r\n background-repeat: no-repeat;\r\n background-size: contain;\r\n ${CssRule.For.mobile.build()} & {\r\n width: 2rem;\r\n height: 2rem;\r\n }\r\n\r\n .${JACKPOT_WIDGET} & {\r\n background-image: url(\"${props => props.theme.images.gamesListTitle.dailyJackpot.toString()}\")\r\n }\r\n\r\n .${EXCLUSIVES_LIST_ICON} & {\r\n background-image: url(\"${props => props.theme.images.gamesListTitle.exclusive.toString()}\")\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\nimport {ListTitleIconDefaultBox} from \"./list-title-icon.default.box\";\r\nimport {JACKPOT_WIDGET} from '../../constants';\r\n\r\nexport const ListTitleIconWsopCipBox = styled(ListTitleIconDefaultBox)`\r\n .${JACKPOT_WIDGET} & {\r\n background-image: url(\"${props => props.theme.images.miniOrbit.gamesListTitleOverride.dailyJackpot.toString()}\");\r\n }\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const ListTitleIconCisBox = styled.span``;","import {styledByTheme} from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {ListTitleIconDefaultBox} from \"./list-title-icon.default.box\";\r\nimport {ListTitleIconWsopCipBox} from \"./list-title-icon.wsop.cip.box\";\r\nimport {ListTitleIconCisBox} from \"./list-title-icon.cis.box\";\r\n\r\nexport const ListTitleIconBox = styledByTheme(ListTitleIconDefaultBox)\r\n .forCis(ListTitleIconCisBox)\r\n .forWsopCip(ListTitleIconWsopCipBox)\r\n .apply();","import styled from 'styled-components';\r\n\r\nexport const JackpotWidgetDefaultBox = styled.div<{isClickable?: boolean}>`\r\n cursor: ${({isClickable}) => isClickable ? \"pointer\" : \"default\"};\r\n\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n top: 0;\r\n bottom: 0;\r\n`;\r\n","import {JackpotWidgetDefaultBox} from './jackpot-widget.default.box';\r\nimport {styledByTheme} from '../../../themes/architecture/styled-by-theme';\r\n\r\nexport const JackpotWidgetBox = styledByTheme(JackpotWidgetDefaultBox).apply();","import styled, {css} from 'styled-components';\r\nimport { JackpotType } from '../../../../../common/const/jackpot_map_ids';\r\nimport {JACKPOT_WIDGET_LAYOUT} from '../../jackpot-widget.component';\r\nimport {OrbitTheme} from '../../../../themes/architecture/orbit-theme.interface';\r\n\r\nexport interface IJackpotWidgetBgBoxProps {\r\n jackpotType: JackpotType;\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n shouldRenderSkeleton?: boolean;\r\n}\r\n\r\nconst handleBackgroundImage = (props: IJackpotWidgetBgBoxProps, theme: OrbitTheme) => {\r\n if (props.shouldRenderSkeleton) {\r\n return 'none';\r\n }\r\n if (\r\n (props.layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE || props.layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE_WIDE) &&\r\n theme.images.jackpotWidget.byType[props.jackpotType].landscape?.background\r\n ) {\r\n return 'url(' + theme.images.jackpotWidget.byType[props.jackpotType].landscape.background.toString() + ')';\r\n }\r\n return 'url(' + theme.images.jackpotWidget.byType[props.jackpotType].background.toString() + ')';\r\n}\r\n\r\nexport const JackpotWidgetBgBox = styled.div`\r\n background-image: ${props => handleBackgroundImage(props, props.theme) };\r\n background-size: cover;\r\n width: 100%;\r\n height: 100%;\r\n background-position-y: bottom;\r\n\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n\r\n border-radius: 10px;\r\n\r\n ${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE_WIDE && css`\r\n flex-direction: row;\r\n align-items: center;\r\n `}\r\n\r\n animation: JackpotBackgroundLoadingAnimation 1.5s linear infinite;\r\n\r\n @keyframes JackpotBackgroundLoadingAnimation {\r\n 0% {\r\n background-color: #000000;\r\n }\r\n 50% {\r\n background-color: #171717;\r\n }\r\n 100% {\r\n background-color: #000000;\r\n }\r\n }\r\n`;\r\n","import styled, {css} from 'styled-components';\r\nimport {JACKPOT_WIDGET_LAYOUT} from '../../jackpot-widget.component';\r\n\r\nexport interface IJackpotWidgetLogoBoxProps {\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n};\r\n\r\nexport const JackpotWidgetLogoBox = styled.img`\r\n /* In a widget of 468px wide, logo should be 222px wide */\r\n width: 47.436%;\r\n margin: 0rem auto;\r\n display: block;\r\n\r\n ${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.PORTRAIT && css`\r\n\t width: 78%;\r\n\t padding-top: 1rem;\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n width: 83%;\r\n }\r\n `}\r\n\r\n ${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE_WIDE && css`\r\n width: 25%;\r\n padding-left: 1rem;\r\n `}\r\n`;\r\n","import styled, { css } from \"styled-components\";\r\nimport { styledByTheme } from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {JACKPOT_STATE} from '../../../../../common/const/jackpot_map_ids';\r\nimport { JackpotThemeType } from \"../../../../services/jackpots-with-state/jackpots-with-state.service.interface\";\r\nimport {JACKPOT_WIDGET_LAYOUT} from \"../../jackpot-widget.component\";\r\n\r\ninterface IJackpotWidgetAmountBox {\r\n state: JACKPOT_STATE;\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n widgetWidth: number;\r\n themeType: JackpotThemeType;\r\n}\r\n\r\nconst handleAmountBoxFontSize = (layout: JACKPOT_WIDGET_LAYOUT, widgetWidth: number, mAndBelow: boolean = false) => {\r\n switch (layout) {\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE:\r\n /** In desktop view at a widget width of 468px, the amount should be of font-size 35px */\r\n return widgetWidth * 35 / 468 + \"px\";\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE_WIDE:\r\n /** In minimized view at a widget width of 375px, the amount should be of font-size 16px */\r\n return widgetWidth * 16 / 375 + \"px\";\r\n case JACKPOT_WIDGET_LAYOUT.PORTRAIT:\r\n default:\r\n if (mAndBelow) {\r\n /** In mobile view at a widget width of 131px, the amount should be of font-size 16px */\r\n return widgetWidth * 16 / 131 + \"px\";\r\n } else {\r\n /** In mobile view at a widget width of 131px, the amount should be of font-size 19px */\r\n return widgetWidth * 19 / 131 + \"px\";\r\n }\r\n }\r\n};\r\n\r\nconst JackpotWidgetAmountDefaultBox = styled.div`\r\n text-align: center;\r\n width: 100%;\r\n color: ${({state, theme}) => state === JACKPOT_STATE.Cold ? theme.colors.textLight : theme.colors.brandSecondary };\r\n text-shadow: 0px 2px 3px ${({theme}) => theme.colors.backgroundMiddleDark};\r\n /* font-preset: a standardized combination of font-family + font-weight + font-style + font-stretch */\r\n ${({state, theme}) => state === JACKPOT_STATE.Cold ? theme.font.presets.bold : theme.font.presets.black }\r\n ${({state}) => state === JACKPOT_STATE.Cold ? css`\r\n opacity: 0.8;\r\n ` : null };\r\n font-size: ${({layout, widgetWidth}) => handleAmountBoxFontSize(layout, widgetWidth)};\r\n /* bugfix: 2039067 */\r\n padding-bottom: 0.8rem;\r\n line-height: 1.2;\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n font-size: ${({layout, widgetWidth}) => handleAmountBoxFontSize(layout, widgetWidth, true)};\r\n }\r\n`;\r\n\r\nconst JackpotWidgetAmountCasino777Box = styled(JackpotWidgetAmountDefaultBox)`\r\n color: ${({state, theme, themeType}) => (themeType === JackpotThemeType.Light ? (state === JACKPOT_STATE.Cold ? theme.colors.textContrast : theme.colors.danger) : theme.colors.brandSecondary) };\r\n text-shadow: none;\r\n`;\r\n\r\nconst JackpotWidgetAmountSiBox = styled(JackpotWidgetAmountDefaultBox)`\r\n color: ${({theme}) => theme.colors.moneyColor };\r\n text-shadow: none;\r\n`;\r\n\r\nexport const JackpotWidgetAmountBox = styledByTheme(JackpotWidgetAmountDefaultBox)\r\n .forCasino777(JackpotWidgetAmountCasino777Box)\r\n .forSI(JackpotWidgetAmountSiBox)\r\n .apply();\r\n","import styled, { css } from \"styled-components\";\r\nimport {JACKPOT_WIDGET_LAYOUT} from \"../../jackpot-widget.component\";\r\n\r\nexport interface IJackpotWidgetFooterBoxProps {\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n};\r\n\r\nexport const JackpotWidgetFooterBox = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 0 2rem;\r\n\r\n ${({layout}) => (layout === JACKPOT_WIDGET_LAYOUT.PORTRAIT) && css`\r\n\t flex-direction: column;\r\n\t padding: 0rem 0rem 0.6rem;\r\n\t`}\r\n\r\n\t${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE_WIDE && css`\r\n\t\tflex-direction: column;\r\n\t\tjustify-content: center;\r\n\t\twidth: 35%;\r\n\t\tpadding: 0 1rem 0 0;\r\n\t`}\r\n`;\r\n","import styled from \"styled-components\";\r\nimport { styledByTheme } from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport {JACKPOT_STATE} from '../../../../../../../common/const/jackpot_map_ids';\r\nimport { JackpotThemeType } from \"../../../../../../services/jackpots-with-state/jackpots-with-state.service.interface\";\r\nimport {JACKPOT_WIDGET_LAYOUT} from \"../../../../jackpot-widget.component\";\r\n\r\ninterface IJackpotWidgetClockLabelBox{\r\n state: JACKPOT_STATE;\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n widgetWidth: number;\r\n themeType: JackpotThemeType;\r\n}\r\n\r\nconst handleClockLabelFontSize = (layout: JACKPOT_WIDGET_LAYOUT, widgetWidth: number) => {\r\n switch (layout) {\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE:\r\n /** In landscape view at a widget width of 468px, the amount should be of font-size 14px */\r\n return widgetWidth * 14 / 468 + \"px\";\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE_WIDE:\r\n /** In minimized view at a widget width of 375px, the amount should be of font-size 9px */\r\n return widgetWidth * 9 / 375 + \"px\";\r\n case JACKPOT_WIDGET_LAYOUT.PORTRAIT:\r\n default:\r\n /** In portrait view at a widget width of 131px, the amount should be of font-size 9px */\r\n return widgetWidth * 9 / 131 + \"px\";\r\n }\r\n};\r\n\r\nconst JackpotWidgetClockLabelDefaultBox = styled.div`\r\n ${({theme}) => theme.font.presets.body};\r\n text-transform: uppercase;\r\n color: ${({state, theme}) => state === JACKPOT_STATE.Hot ? theme.colors.brandSecondary : theme.colors.textLight };\r\n letter-spacing: 0.02rem;\r\n\r\n width: ${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE ? \"74%\" : \"100%\" };\r\n text-align: ${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE ? \"left\" : \"center\" };\r\n font-size: ${({widgetWidth, layout}) => handleClockLabelFontSize(layout, widgetWidth)};\r\n`;\r\n\r\nconst JackpotWidgetClockLabelCasino777Box = styled(JackpotWidgetClockLabelDefaultBox)`\r\n color: ${({state, theme, themeType}) => themeType === JackpotThemeType.Light ? (state === JACKPOT_STATE.Hot ? theme.colors.danger : theme.colors.textContrast) : theme.colors.brandSecondary};\r\n`;\r\n\r\nconst JackpotWidgetClockLabelSiBox = styled(JackpotWidgetClockLabelDefaultBox)`\r\n color: ${({theme}) => theme.colors.textContrast };\r\n`;\r\n\r\nexport const JackpotWidgetClockLabelBox = styledByTheme(JackpotWidgetClockLabelDefaultBox)\r\n .forCasino777(JackpotWidgetClockLabelCasino777Box)\r\n .forSI(JackpotWidgetClockLabelSiBox)\r\n .apply();\r\n","import styled from \"styled-components\";\r\nimport { styledByTheme } from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport { JackpotThemeType } from \"../../../../../../services/jackpots-with-state/jackpots-with-state.service.interface\";\r\nimport {JACKPOT_WIDGET_LAYOUT} from \"../../../../jackpot-widget.component\";\r\n\r\nexport interface IJackpotWidgetClockBoxProps {\r\n className?: string;\r\n widgetWidth?: number;\r\n themeType: JackpotThemeType;\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n}\r\n\r\nconst handleClockBoxFontSize = (layout: JACKPOT_WIDGET_LAYOUT, widgetWidth: number): string => {\r\n switch (layout) {\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE:\r\n /** In landscape view at a widget width of 468px, the amount should be of font-size 30px */\r\n return widgetWidth ? (widgetWidth * 30 / 468 + \"px\") : \"30px\";\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE_WIDE:\r\n /** In minimized view at a widget width of 375px, the amount should be of font-size 15px */\r\n return widgetWidth ? (widgetWidth * 15 / 375 + \"px\") : \"15px\";\r\n case JACKPOT_WIDGET_LAYOUT.PORTRAIT:\r\n default:\r\n /** In portrait view at a widget width of 131px, the amount should be of font-size 15px */\r\n return widgetWidth ? (widgetWidth * 15 / 131 + \"px\") : \"15px\";\r\n }\r\n};\r\n\r\nconst JackpotWidgetClockDefaultBox = styled.div`\r\n color: ${({theme}) => theme.colors.textLight};\r\n font-family: ${({theme}) => theme.components.jackpotWidget.font.clock};\r\n\r\n width: ${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE ? \"26%\" : \"100%\" };\r\n text-align: ${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE ? \"right\" : \"center\" };\r\n\r\n /** For the floating clock shown in game, no need to compute relative (fluid) font-size */\r\n font-size: ${({widgetWidth, layout}) => handleClockBoxFontSize(layout, widgetWidth)};\r\n /* bugfix: 2039067 */\r\n line-height: 1.0;\r\n padding-bottom: 0.5rem;\r\n`;\r\n\r\nconst JackpotWidgetClockCasino777Box = styled(JackpotWidgetClockDefaultBox)`\r\n color: ${({themeType, theme}) => themeType === JackpotThemeType.Light ? theme.colors.brandPrimaryContrast : theme.colors.brandSecondary};\r\n`;\r\n\r\nconst JackpotWidgetClockSiBox = styled(JackpotWidgetClockDefaultBox)`\r\n color: ${({theme}) => /* theme.colors.textContrast */ theme.colors.moneyColor };\r\n`;\r\n\r\nexport const JackpotWidgetClockBox = styledByTheme(JackpotWidgetClockDefaultBox)\r\n .forCasino777(JackpotWidgetClockCasino777Box)\r\n .forSI(JackpotWidgetClockSiBox)\r\n .apply();\r\n","import React from 'react';\r\nimport { observable, action } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport { TimeSpan } from '@sparkware/app-utils';\r\nimport { OrbitComponent } from '../base-components/orbit-component/orbit-component';\r\nimport { JackpotWidgetClockBox } from './boxes/footer/clock/box/jackpot-widget-clock.box';\r\nimport {JACKPOT_STATE, JackpotType} from '../../../common/const/jackpot_map_ids';\r\nimport {JACKPOT_WIDGET_LAYOUT} from './jackpot-widget.component';\r\n\r\ninterface IDailyJackpotWidgetClockComponentProps {\r\n jackpotState: JACKPOT_STATE;\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n getMustHitTime: () => Date; \r\n widgetWidth?: number;\r\n jackpotType: JackpotType;\r\n}\r\n\r\n@observer\r\nexport class JackpotWidgetClockComponent extends OrbitComponent {\r\n private updateClockInterval: number | undefined = undefined;\r\n @observable\r\n private clockValue: string = \"\";\r\n\r\n componentDidMount() {\r\n this.clockInit();\r\n }\r\n\r\n componentDidUpdate(prevProps: IDailyJackpotWidgetClockComponentProps) {\r\n if (prevProps.getMustHitTime() !== this.props.getMustHitTime()) {\r\n this.clearClockInterval();\r\n this.clockInit();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.clearClockInterval();\r\n }\r\n\r\n private clockInit() {\r\n this.updateClock();\r\n this.updateClockInterval = setInterval(() => {\r\n this.updateClock();\r\n }, 1000);\r\n }\r\n\r\n private clearClockInterval() {\r\n if (this.updateClockInterval) {\r\n clearInterval(this.updateClockInterval);\r\n this.updateClockInterval = undefined;\r\n }\r\n }\r\n\r\n @action\r\n private updateClock() {\r\n const serverDate = this.services.time.getCurrentServerDate();\r\n if(!serverDate) {\r\n this.services.logger.warning('Server date is invalid');\r\n return;\r\n }\r\n\r\n const mustHitDate = this.props.getMustHitTime();\r\n\r\n // round it to 1 second\r\n const remainingTimeMilis = Math.round((mustHitDate.getTime() - serverDate.getTime()) / 1000) * 1000;\r\n const remainingTimeTimeSp = TimeSpan.fromMilliseconds(Math.max(0, remainingTimeMilis));\r\n this.clockValue = remainingTimeTimeSp.toString({useTotalHours: true});\r\n }\r\n\r\n render() {\r\n return \r\n { this.clockValue }\r\n ;\r\n }\r\n}\r\n","import styled from \"styled-components\";\r\nimport { styledByTheme } from \"../../../../../themes/architecture/styled-by-theme\";\r\nimport { JackpotThemeType } from \"../../../../../services/jackpots-with-state/jackpots-with-state.service.interface\";\r\nimport {JACKPOT_WIDGET_LAYOUT} from \"../../../jackpot-widget.component\";\r\n\r\ninterface IJackpotWidgetAmountLabelBox {\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n widgetWidth: number;\r\n themeType: JackpotThemeType;\r\n}\r\n\r\nconst handleAmountLabelFontSize = (layout: JACKPOT_WIDGET_LAYOUT, widgetWidth: number) => {\r\n switch (layout) {\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE:\r\n /** In landscape view at a widget width of 468px, the amount should be of font-size 15px */\r\n return widgetWidth * 15 / 468 + \"px\";\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE_WIDE:\r\n /** In minimized view at a widget width of 375px, the amount should be of font-size 9px */\r\n return widgetWidth * 9 / 375 + \"px\";\r\n case JACKPOT_WIDGET_LAYOUT.PORTRAIT:\r\n default:\r\n /** In portrait view at a widget width of 131px, the amount should be of font-size 9px */\r\n return widgetWidth * 9 / 131 + \"px\";\r\n }\r\n};\r\n\r\n/**\r\n * This is the \"PAID\" label shown above the amount at cold state\r\n */\r\nconst JackpotWidgetAmountLabelDefaultBox = styled.div`\r\n width: 100%;\r\n margin: 0 auto;\r\n text-align: center;\r\n letter-spacing: 0.2rem;\r\n\r\n text-transform: uppercase;\r\n color: ${({theme}) => theme.colors.textLight};\r\n ${({theme}) => theme.font.presets.ultra};\r\n\r\n font-size: ${({widgetWidth, layout}) => handleAmountLabelFontSize(layout, widgetWidth)};\r\n`;\r\n\r\nconst JackpotWidgetAmountLabelCasino777Box = styled(JackpotWidgetAmountLabelDefaultBox)`\r\n color: ${(props) => props.themeType === JackpotThemeType.Light ? props.theme.colors.brandPrimaryContrast : props.theme.colors.brandSecondary};\r\n`;\r\n\r\nconst JackpotWidgetAmountLabelSiBox = styled(JackpotWidgetAmountLabelDefaultBox)`\r\n color: ${({theme}) => theme.colors.textContrast };\r\n`;\r\n\r\nexport const JackpotWidgetAmountLabelBox = styledByTheme(JackpotWidgetAmountLabelDefaultBox)\r\n .forCasino777(JackpotWidgetAmountLabelCasino777Box)\r\n .forSI(JackpotWidgetAmountLabelSiBox)\r\n .apply();\r\n","import styled from \"styled-components\";\r\nimport { styledByTheme } from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport { JackpotThemeType } from \"../../../../../../services/jackpots-with-state/jackpots-with-state.service.interface\";\r\nimport {JACKPOT_WIDGET_LAYOUT} from \"../../../../jackpot-widget.component\";\r\n\r\ninterface IJackpotWidgetCollectingLabelBox {\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n widgetWidth: number;\r\n themeType: JackpotThemeType;\r\n}\r\n\r\nconst handleCollectingLabelFontSize = (layout: JACKPOT_WIDGET_LAYOUT, widgetWidth: number) => {\r\n switch (layout) {\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE:\r\n return widgetWidth * 16 / 468 + \"px\";\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE_WIDE:\r\n return widgetWidth * 10 / 375 + \"px\";\r\n case JACKPOT_WIDGET_LAYOUT.PORTRAIT:\r\n default:\r\n return widgetWidth * 10 / 131 + \"px\";\r\n }\r\n};\r\n\r\nconst JackpotWidgetCollectingLabelDefaultBox = styled.div`\r\n ${({theme}) => theme.font.presets.body};\r\n color: ${({theme}) => theme.colors.brandSecondary};\r\n letter-spacing: 0.02rem;\r\n\r\n width: ${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE ? \"62%\" : \"100%\" };\r\n text-align: ${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE ? \"left\" : \"center\" };\r\n font-size: ${({widgetWidth, layout}) => handleCollectingLabelFontSize(layout, widgetWidth)};\r\n`;\r\n\r\nconst JackpotWidgetCollectingLabelCasino777Box = styled(JackpotWidgetCollectingLabelDefaultBox)`\r\n color: ${({theme, themeType}) => themeType === JackpotThemeType.Light ? theme.colors.danger : theme.colors.brandSecondary};\r\n`;\r\n\r\nconst JackpotWidgetCollectingLabelSiBox = styled(JackpotWidgetCollectingLabelDefaultBox)`\r\n color: ${({theme}) => theme.colors.textContrast };\r\n`;\r\n\r\nexport const JackpotWidgetCollectingLabelBox = styledByTheme(JackpotWidgetCollectingLabelDefaultBox)\r\n .forCasino777(JackpotWidgetCollectingLabelCasino777Box)\r\n .forSI(JackpotWidgetCollectingLabelSiBox).apply();\r\n","import styled from \"styled-components\";\r\nimport { styledByTheme } from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport { JackpotThemeType } from \"../../../../../../services/jackpots-with-state/jackpots-with-state.service.interface\";\r\nimport {JACKPOT_WIDGET_LAYOUT} from \"../../../../jackpot-widget.component\";\r\n\r\ninterface IJackpotWidgetCollectingAmountBox{\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n widgetWidth: number;\r\n themeType: JackpotThemeType;\r\n}\r\n\r\nconst handleCollectingAmountFontSize = (layout: JACKPOT_WIDGET_LAYOUT, widgetWidth: number) => {\r\n switch (layout) {\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE:\r\n /** In landscape view at a widget width of 468px, the amount should be of font-size 25px */\r\n return widgetWidth * 25 / 468 + \"px\";\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE_WIDE:\r\n /** In minimized view at a widget width of 375px, the amount should be of font-size 12px */\r\n return widgetWidth * 12 / 375 + \"px\";\r\n case JACKPOT_WIDGET_LAYOUT.PORTRAIT:\r\n default:\r\n /** In portrait view at a widget width of 131px, the amount should be of font-size 12px */\r\n return widgetWidth * 12 / 131 + \"px\";\r\n }\r\n};\r\n\r\nconst JackpotWidgetCollectingAmountDefaultBox = styled.div`\r\n ${({theme}) => theme.font.presets.bold};\r\n color: ${({theme}) => theme.colors.brandSecondary};\r\n\r\n width: ${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE ? \"38%\" : \"100%\" };\r\n text-align: ${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE ? \"right\" : \"center\" };\r\n font-size: ${({widgetWidth, layout}) => handleCollectingAmountFontSize(layout, widgetWidth)};\r\n`;\r\n\r\nconst JackpotWidgetCollectingAmountCasino777Box = styled(JackpotWidgetCollectingAmountDefaultBox)`\r\n color: ${({theme, themeType}) => themeType === JackpotThemeType.Light ? theme.colors.danger : theme.colors.brandSecondary};\r\n`;\r\n\r\nconst JackpotWidgetCollectingAmountSiBox = styled(JackpotWidgetCollectingAmountDefaultBox)`\r\n color: ${({theme}) => theme.colors.moneyColor };\r\n`;\r\n\r\nexport const JackpotWidgetCollectingAmountBox = styledByTheme(JackpotWidgetCollectingAmountDefaultBox)\r\n .forCasino777(JackpotWidgetCollectingAmountCasino777Box)\r\n .forSI(JackpotWidgetCollectingAmountSiBox).apply();\r\n","import styled, { keyframes, css } from \"styled-components\";\r\n\r\nconst animationProps = \"2s ease-in-out 0s normal infinite none running\";\r\n\r\n/**\r\n * The leftmost position of the sparkle (the center of the sparkle) in percentage\r\n */\r\nconst ShineLeftPosition = 20;\r\n/**\r\n * The rightmost position of the sparkle (the center of the sparkle) in percentage\r\n */\r\nconst ShineRightPosition = 80;\r\n\r\nconst BorderShineHeight = 2;\r\nconst BorderShineWidth = 30;\r\nfunction borderShineKeyframes(rtl?: boolean) {\r\n const startPos = (rtl ? ShineRightPosition : ShineLeftPosition) - (BorderShineWidth / 2);\r\n const endPos = (rtl ? ShineLeftPosition : ShineRightPosition) - (BorderShineWidth / 2);\r\n return keyframes`\r\n 0% {\r\n opacity: 0;\r\n left: ${startPos}%;\r\n }\r\n 20%, 30% {\r\n opacity: 0.5;\r\n left: ${startPos}%;\r\n }\r\n 50%, 60% {\r\n opacity: 1;\r\n left: ${endPos}%;\r\n }\r\n 80% {\r\n opacity: 0;\r\n left: ${endPos}%;\r\n }\r\n 100% {\r\n opacity: 0;\r\n left: ${startPos}%;\r\n }\r\n `;\r\n}\r\nexport const JackpotWidgetBorderShine = styled.div<{bottom?: boolean}>`\r\n position: absolute;\r\n width: ${BorderShineWidth}%;\r\n ${({bottom}) => bottom ? css`\r\n bottom: ${-(BorderShineHeight / 2)}px;\r\n ` : css`\r\n top: ${-(BorderShineHeight / 2)}px;\r\n `}\r\n height: ${BorderShineHeight}px;\r\n z-index: 10;\r\n background-color: transparent;\r\n background-image: linear-gradient(90deg, #00000000 0%, #FFFFFF 50%, #00000000 100%);\r\n\r\n animation: ${({bottom}) => borderShineKeyframes(bottom)} ${animationProps};\r\n`;\r\n\r\nconst RadialShineHeight = 22;\r\nconst RadialShineWidth = 20;\r\nfunction radialShineKeyframes(rtl?: boolean) {\r\n const startPos = (rtl ? ShineRightPosition : ShineLeftPosition) - (RadialShineWidth / 2);\r\n const endPos = (rtl ? ShineLeftPosition : ShineRightPosition) - (RadialShineWidth / 2);\r\n return keyframes`\r\n 0% {\r\n opacity: 0;\r\n left: ${startPos}%;\r\n }\r\n 20%, 30% {\r\n opacity: 0.1;\r\n left: ${startPos}%;\r\n }\r\n 50%, 60% {\r\n opacity: 1;\r\n left: ${endPos}%;\r\n }\r\n 80% {\r\n opacity: 0;\r\n left: ${endPos}%;\r\n }\r\n 100% {\r\n opacity: 0;\r\n left: ${startPos}%;\r\n }\r\n `;\r\n}\r\nexport const JackpotWidgetRadialShine = styled.div<{bottom?: boolean}>`\r\n position: absolute;\r\n width: ${RadialShineWidth}%;\r\n ${({bottom}) => bottom ? css`\r\n bottom: ${-(RadialShineHeight / 2)}px;\r\n ` : css`\r\n top: ${-(RadialShineHeight / 2)}px;\r\n `}\r\n height: ${RadialShineHeight}px;\r\n z-index: 10;\r\n background-color: transparent;\r\n background-image: radial-gradient(closest-side at 50% 50%, #FFFFFF 0%, #FFFFFF61 35%, #00000000 100%);\r\n\r\n animation: ${({bottom}) => radialShineKeyframes(bottom)} ${animationProps};\r\n`;\r\n","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {JACKPOT_STATE, JackpotInternalId, JackpotType} from '../../../common/const/jackpot_map_ids';\r\nimport {JackpotWidgetConfiguration} from '../../services/configurations/config-data-sections/jackpot-widget.configuration';\r\nimport {JackpotWidgetBox} from './boxes/jackpot-widget.box';\r\nimport {JackpotWidgetBgBox} from './boxes/bg/jackpot-widget-bg.box';\r\nimport {JackpotWidgetLogoBox} from './boxes/logo/jackpot-widget-logo.box';\r\nimport {JackpotWidgetAmountBox} from './boxes/amount/jackpot-widget-amount.box';\r\nimport {JackpotWidgetFooterBox} from './boxes/footer/jackpot-widget-footer.box';\r\nimport {JackpotWidgetClockLabelBox} from './boxes/footer/clock/label/jackpot-widget-clock-label.box';\r\nimport {JackpotWidgetClockComponent} from './jackpot-widget-clock.component';\r\nimport {JackpotWidgetAmountLabelBox} from './boxes/amount/label/jackpot-widget-amount-label.box';\r\nimport {JackpotWidgetCollectingLabelBox} from './boxes/footer/collecting/label/jackpot-widget-collecting-label';\r\nimport {JackpotWidgetCollectingAmountBox} from './boxes/footer/collecting/amount/jackpot-widget-collecting-amount';\r\nimport {JackpotWidgetBorderShine, JackpotWidgetRadialShine} from './boxes/shine/jackpot-widget-shine.box';\r\nimport {JackpotWidgetAspectRatioBox} from './boxes/aspect-ratio/jackpot-widget-aspect-ratio.box';\r\nimport {JackpotWidgetAmountContainer} from './boxes/amount/jackpot-widget-amount-container.box';\r\nimport {JackpotWidgetClockLabelSkeletonBox} from \"./skeleton/boxes/footer/jackpot-widget-clock-label-skeleton.box\";\r\nimport {JackpotWidgetCollectingLabelSkeletonBox} from \"./skeleton/boxes/footer/jackpot-widget-collecting-label-skeleton.box\";\r\nimport {JackpotWidgetFooterSkeletonBox} from \"./skeleton/boxes/footer/jackpot-widget-footer-container-skeleton.box\";\r\nimport {JackpotWidgetAmountSkeletonBox} from \"./skeleton/boxes/jackpot-widget-amount-skeleton.box\";\r\nimport {action, observable} from \"mobx\";\r\nimport { imagePreload } from '../../../common/utils/image-preload';\r\nimport {ResizeObserver, ResizeObserverEntry} from '@juggle/resize-observer';\r\nimport { IJackpotHandler } from '../../services/jackpots-with-state/jackpot-handler/jackpot-handler.interface';\r\nimport { IJackpotData } from '../../services/jackpots-with-state/jackpots-with-state.service.interface';\r\nimport {CyClass} from \"../../../common/cy-classes\";\r\n\r\n\r\nexport enum JACKPOT_WIDGET_LAYOUT {\r\n PORTRAIT,\r\n LANDSCAPE,\r\n LANDSCAPE_WIDE\r\n}\r\n\r\nexport interface IJackpotWidgetLayout {\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n}\r\n\r\nexport interface JackpotWidgetComponentProps {\r\n\t/**\r\n\t * We send the wrapper as prop because if the widget is not rendered, then we don't want to render the Wrapper either\r\n\t */\r\n WrapperBox?: React.ComponentType;\r\n\twidgetConfig?: JackpotWidgetConfiguration;\r\n layout?: JACKPOT_WIDGET_LAYOUT;\r\n seoCategory?: string;\r\n onClick?: () => void;\r\n}\r\n\r\n@observer\r\nexport class JackpotWidgetComponent extends OrbitComponent {\r\n\r\n\tprivate _onWidgetClick = () => {\r\n //Product want to check how many users click on the widgets even if it's not clickable\r\n this.services.analytics.sendOrbitUserFlowEvent(\"Navigation\",\"Jackpot_Widget\", `${this.services.routing.currentRoute?.data?.arenaType}, ${this.props.widgetConfig?.jackpotType}`);\r\n\r\n\r\n if (this.props.onClick) {\r\n const listInfo = this.services.configuration.getGamesListByJackpotId(this.props.widgetConfig.jackpotId);\r\n this.services.analytics.sendAnalytics(this.props.seoCategory ?? \"List_Widget\", \"Widget_Clicked\", this.props.widgetConfig.jackpotType + (listInfo?.title? \"_\" + listInfo.title : \"\"));\r\n this.props.onClick();\r\n }\r\n }\r\n\r\n private _isWidgetClickable = () => {\r\n return !!this.props.onClick || this.props.widgetConfig.jackpotType === JackpotType.Party;\r\n }\r\n\r\n @observable\r\n private imagesReady = false;\r\n\r\n @action\r\n private _setImagesReady(readyState: boolean) {\r\n this.imagesReady = readyState;\r\n }\r\n\r\n private get _isJackpotHandlerReady(): boolean {\r\n const jackpotId = this.props.widgetConfig?.jackpotId ?? JackpotInternalId.Daily;\r\n const jackpotHandler = this.services.jackpotsWithState.currentJackpots[jackpotId];\r\n return !Check.isNullOrUndefined(jackpotHandler?.jackpotData);\r\n }\r\n\r\n private get _shouldRenderSkeleton() {\r\n return (!this.imagesReady || !this._isJackpotHandlerReady);\r\n }\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n\r\n const jackpotType = this.props.widgetConfig?.jackpotType ?? JackpotType.Daily;\r\n\r\n if (!this.services.theme.currentTheme.images.jackpotWidget.byType[jackpotType]) {\r\n // this can happen if in Orbit Admin metadata has jackpotType has unknown value for Orbit - for example \"HourlyCaptain8\"\r\n this.services.logger.warning(`Unknown JP type ${jackpotType} found!`)\r\n return;\r\n }\r\n\r\n Promise.all([\r\n imagePreload(this.services.theme.currentTheme.images.jackpotWidget.byType[jackpotType].logo.toString()),\r\n imagePreload(this.services.theme.currentTheme.images.jackpotWidget.byType[jackpotType].background.toString())\r\n ]).then(() => {\r\n this._setImagesReady(true);\r\n });\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.resizeObserverInstance) {\r\n this.resizeObserverInstance.disconnect();\r\n this.resizeObserverInstance = null;\r\n }\r\n }\r\n\r\n @observable\r\n private widgetWidth: number;\r\n private aspectRatioBox: HTMLDivElement | null;\r\n private resizeObserverInstance: ResizeObserver;\r\n private disposer: undefined | ((oldRefEl: HTMLDivElement) => void);\r\n\r\n @action\r\n private setWidgetWidth = (entries: ResizeObserverEntry[]) => {\r\n // We know we are only watching the aspect ratio box element so we take the first element in the array.\r\n // We are not using this.aspectRatioBox directly because from a typescript point of view that could be null\r\n // and from a react component lifecycle perspective it could be null as well\r\n let targetElement = entries[0].target;\r\n const elementRectangle = targetElement.getBoundingClientRect();\r\n this.widgetWidth = elementRectangle.width;\r\n };\r\n\r\n private _captureJackpotWidgetAspectRatioBoxRef = (refEl: HTMLDivElement | null) => {\r\n if (this.disposer) {\r\n this.disposer(this.aspectRatioBox);\r\n this.disposer = undefined;\r\n }\r\n this.aspectRatioBox = refEl;\r\n if (this.aspectRatioBox) {\r\n if (!this.resizeObserverInstance) {\r\n this.resizeObserverInstance = new ResizeObserver(this.setWidgetWidth);\r\n }\r\n this.resizeObserverInstance.observe(this.aspectRatioBox);\r\n this.disposer = (oldRefEl: HTMLDivElement) => {\r\n // At unmount, the resizeObserverInstance will be destroyed and the disposer will be called too late.\r\n // In that case, we don't do anything since the observer was disconnected at unmount\r\n if (this.resizeObserverInstance) {\r\n this.resizeObserverInstance.unobserve(oldRefEl);\r\n }\r\n }\r\n }\r\n };\r\n\r\n private _getCountDownTimerTranslationKey(jackpotState: JACKPOT_STATE) {\r\n let translationKey = '';\r\n switch (jackpotState) {\r\n case JACKPOT_STATE.Hot:\r\n translationKey = 'JACKPOT-WIDGET-DROPS-SOON';\r\n break;\r\n\r\n case JACKPOT_STATE.OffHours:\r\n translationKey = 'JACKPOT-WIDGET-STARTS-SOON';\r\n break;\r\n\r\n case JACKPOT_STATE.Regular:\r\n default:\r\n translationKey = 'JACKPOT-WIDGET-MUST-PAY';\r\n break;\r\n }\r\n\r\n return translationKey;\r\n }\r\n\r\n private _getJackpotWidgetLayout(): JACKPOT_WIDGET_LAYOUT {\r\n return this.props.layout || JACKPOT_WIDGET_LAYOUT.PORTRAIT;\r\n }\r\n\r\n render() {\r\n\t\tif (!this.props.widgetConfig || !this.props.widgetConfig.display) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst jackpotId = String(this.props.widgetConfig.jackpotId ?? JackpotInternalId.Daily);\r\n\t\tconst jackpotType: JackpotType = this.props.widgetConfig.jackpotType ?? JackpotType.Daily;\r\n\r\n\t\tconst jackpotHandler: IJackpotHandler = this.services.jackpotsWithState.currentJackpots[jackpotId];\r\n const jackpotData = (jackpotHandler?.jackpotData || {}) as IJackpotData;\r\n\r\n if(!this._shouldRenderSkeleton) {\r\n jackpotHandler.startGradual(jackpotData);\r\n }\r\n\r\n const {jackpotState, lastWinAmount} = jackpotData || {};\r\n\r\n\t\tconst WrapperBox = this.props.WrapperBox || React.Fragment;\r\n\r\n const layout = this._getJackpotWidgetLayout();\r\n\r\n const themeType = this.services.jackpotsWithState.getThemeType(jackpotType);\r\n\r\n let mustHitTimeFn: () => Date = jackpotData ? () => {\r\n return jackpotData.mustHitTime;\r\n } : () => new Date(0);\r\n\r\n return \r\n \r\n \r\n \r\n {jackpotState === JACKPOT_STATE.Hot ? <>\r\n \r\n \r\n \r\n \r\n : null}\r\n\r\n {(this._shouldRenderSkeleton) ?\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n :\r\n <>\r\n \r\n \r\n {jackpotState === JACKPOT_STATE.Cold &&\r\n \r\n {this.services.translation.translate('JACKPOT-WIDGET-LAST-WIN')}\r\n \r\n }\r\n\r\n \r\n {jackpotState === JACKPOT_STATE.Cold ?\r\n this.services.currency.formatMoney(lastWinAmount) :\r\n this.services.currency.formatMoney(jackpotHandler.jackpotAmount)}\r\n \r\n \r\n\r\n \r\n {jackpotState === JACKPOT_STATE.Cold ?\r\n <>\r\n \r\n {this.services.translation.translate('JACKPOT-WIDGET-NEXT-JACKPOT')}\r\n \r\n\r\n \r\n {this.services.currency.formatMoney(jackpotHandler.jackpotAmount)}\r\n \r\n :\r\n <>\r\n \r\n {this.services.translation.translate(this._getCountDownTimerTranslationKey(jackpotState))}\r\n \r\n\r\n \r\n }\r\n \r\n }\r\n \r\n \r\n \r\n ;\r\n\t}\r\n\r\n}\r\n","import styled from \"styled-components\";\r\nimport {JACKPOT_WIDGET_LAYOUT} from \"../../jackpot-widget.component\";\r\n\r\nexport interface IJackpotWidgetAspectRatioBoxProps {\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n};\r\n\r\nconst handlePaddingTop = (layout: JACKPOT_WIDGET_LAYOUT) => {\r\n switch (layout) {\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE:\r\n return \"58%\";\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE_WIDE:\r\n return \"25%\";\r\n case JACKPOT_WIDGET_LAYOUT.PORTRAIT:\r\n default:\r\n return \"123%\";\r\n }\r\n};\r\n\r\nexport const JackpotWidgetAspectRatioBox = styled.div`\r\n position: relative;\r\n padding-top: ${({layout}) => handlePaddingTop(layout)};\r\n transition: padding-top 0.5s ease-in-out;\r\n`;\r\n","import styled from \"styled-components\";\r\nimport {JACKPOT_WIDGET_LAYOUT} from \"../../jackpot-widget.component\";\r\n\r\nexport interface IJackpotWidgetAmountContainerProps {\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n}\r\n\r\nexport const JackpotWidgetAmountContainer = styled.div`\r\n width: ${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE_WIDE ? \"40%\" : \"initial\"};\r\n`;\r\n","import styled from \"styled-components\";\r\n\r\nexport const JackpotWidgetFooterElementSkeletonBox = styled.div`\r\n width: 20%;\r\n height: 2rem;\r\n \r\n animation: FooterElementSkeletonAnimation 1.5s linear infinite;\r\n \r\n @keyframes FooterElementSkeletonAnimation {\r\n 0% {\r\n background-color: #474747;\r\n }\r\n 100% {\r\n background-color: #333333;\r\n }\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {JackpotWidgetFooterElementSkeletonBox} from \"./jackpot-widget-footer-element-skeleton.box\";\r\n\r\nexport const JackpotWidgetClockLabelSkeletonBox = styled(JackpotWidgetFooterElementSkeletonBox)`\r\n margin-left: 50%;\r\n`;","import styled from \"styled-components\";\r\nimport {JackpotWidgetFooterElementSkeletonBox} from \"./jackpot-widget-footer-element-skeleton.box\";\r\n\r\nexport const JackpotWidgetCollectingLabelSkeletonBox = styled(JackpotWidgetFooterElementSkeletonBox)`\r\n margin-left: 5%;\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const JackpotWidgetFooterSkeletonBox = styled.div`\r\n display: flex;\r\n margin-bottom: 0.8rem;\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const JackpotWidgetAmountSkeletonBox = styled.div`\r\n margin-top: 35%;\r\n margin-left: 25%;\r\n\r\n width: 50%;\r\n height: 2.8rem;\r\n \r\n animation: AmountSkeletonAnimation 1.5s linear infinite;\r\n @keyframes AmountSkeletonAnimation {\r\n 0% {\r\n background-color: #474747;\r\n }\r\n 100% {\r\n background-color: #333333;\r\n }\r\n }\r\n`;","import {ServiceBase} from \"../ServiceBase\";\r\n\r\nexport enum AnimatedIconUnloadReason {\r\n CONTEXT_LOST,\r\n VIEWPORT_EXIT,\r\n REQUESTED,\r\n GAME_OPEN\r\n}\r\n\r\nexport interface IAnimatedIconRequestOptions {\r\n jsonUrl: string;\r\n wrapper: HTMLElement;\r\n size: {width: number; height: number};\r\n timings: {delay: number; interval: number;};\r\n onAnimationLoad?(): void;\r\n onAnimationUnload?(reason: AnimatedIconUnloadReason): void;\r\n onAnimationBeforeUnload?(reason: AnimatedIconUnloadReason): void;\r\n}\r\n\r\nexport type AnimatedIconObservableTarget = IAnimatedIconRequestOptions & {\r\n animationDisposer?(reason: AnimatedIconUnloadReason): void;\r\n inViewport?: boolean;\r\n loadingInProgress?: boolean;\r\n abortLoading?: boolean;\r\n};\r\n\r\n\r\nexport class AnimatedIconBaseService extends ServiceBase{\r\n protected attemptDisposeAnimation(observedTarget: AnimatedIconObservableTarget, reason: AnimatedIconUnloadReason) {\r\n if (observedTarget.animationDisposer) {\r\n if (observedTarget.onAnimationBeforeUnload) {\r\n observedTarget.onAnimationBeforeUnload(reason);\r\n }\r\n observedTarget.animationDisposer(reason);\r\n observedTarget.animationDisposer = undefined;\r\n if (observedTarget.onAnimationUnload) {\r\n observedTarget.onAnimationUnload(reason);\r\n }\r\n } if (observedTarget.loadingInProgress) {\r\n // we cannot actually abort loading the resources (json, png, atlas) because they are xhr calls\r\n // so we set this flag and after the xhr is done we do not start the animation and we reset the flag\r\n observedTarget.abortLoading = true;\r\n }\r\n }\r\n\r\n protected async loadAnimatedIcon(options: AnimatedIconObservableTarget, resourceName: string) {\r\n if (options.loadingInProgress) {\r\n throw new Error(\"Animated Icon Loading in progress already for this icon. Please be patient\");\r\n }\r\n try {\r\n options.loadingInProgress = true;\r\n let {app: pixiApp, dispose: disposePixiApp, PixiSpine, canvas} = await this.services.pixiApp.createPixiApp({\r\n width: options.size.width, height: options.size.height,\r\n onContextLost: () => {\r\n this.attemptDisposeAnimation(options, AnimatedIconUnloadReason.CONTEXT_LOST);\r\n }\r\n });\r\n canvas.style.display = \"block\";\r\n canvas.style.width = \"100%\";\r\n\r\n const {resources} = await this.services.pixiApp.loadResources(pixiApp, [{name: resourceName, jsonUrl: options.jsonUrl}]).catch((e: unknown) => {\r\n disposePixiApp();\r\n throw e;\r\n });\r\n\r\n let spineAnimation = new PixiSpine.Spine(resources[resourceName].spineData);\r\n\r\n // get the animations\r\n const availableAnimations = resources[resourceName].spineData.animations.map(a => a.name);\r\n\r\n // play animation\r\n const runAnimation = () => {\r\n // animated icons will have only one animation that we play in loop. There won't be complex timeline animations\r\n spineAnimation.state.setAnimation(0, availableAnimations[0], false);\r\n }\r\n let animationSchedule: any;\r\n\r\n spineAnimation.state.addListener({\r\n complete: (entry) => {\r\n // when animation completes, schedule the next iteration\r\n animationSchedule = setTimeout(runAnimation, options.timings.interval);\r\n }\r\n });\r\n\r\n runAnimation();\r\n\r\n const animationDisposer = () => {\r\n clearTimeout(animationSchedule);\r\n spineAnimation?.destroy();\r\n animationSchedule = undefined;\r\n spineAnimation = undefined;\r\n disposePixiApp();\r\n };\r\n\r\n if (options.abortLoading) {\r\n animationDisposer();\r\n options.abortLoading = false;\r\n } else {\r\n options.animationDisposer = animationDisposer;\r\n // add the animation to the scene and render...\r\n pixiApp.stage.addChild(spineAnimation);\r\n options.wrapper.appendChild(pixiApp.view);\r\n\r\n if (options.onAnimationLoad) {\r\n options.onAnimationLoad();\r\n }\r\n }\r\n options.loadingInProgress = false;\r\n\r\n } catch (e) {\r\n options.loadingInProgress = false;\r\n throw e;\r\n }\r\n }\r\n}","import styled from 'styled-components';\r\nimport { flexFixedSizeItem } from '../../../../themes/architecture/css-helpers/flex';\r\n\r\nexport const JackpotWidgetDefaultBox = styled.div`\r\n ${flexFixedSizeItem}\r\n margin: 1rem 1rem 3rem;\r\n align-self: stretch;\r\n max-width: 24rem;\r\n width: calc(100% / 6);\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n width: calc(100% / 5);\r\n margin: 1rem 1.5rem 0;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n width: calc(100% / 3);\r\n margin: 1rem 1.5rem 0;\r\n }\r\n`;\r\n","import {JackpotWidgetDefaultBox} from './jackpot-widget-wrapper.default.box';\r\n\r\nexport const JackpotWidgetWrapperBox = JackpotWidgetDefaultBox;\r\n","import styled from 'styled-components';\r\nimport { flexFixedSizeItem } from '../../../../themes/architecture/css-helpers/flex';\r\n\r\nexport const RedTigerWidgetDefaultBox = styled.div`\r\n ${flexFixedSizeItem}\r\n margin: 1rem 1rem 3rem;\r\n align-self: stretch;\r\n max-width: 24rem;\r\n width: calc(100% / 6);\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n margin: 1rem 1.5rem 0;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n width: calc(100% / 5);\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n width: calc(100% / 3);\r\n }\r\n`;\r\n","import {RedTigerWidgetDefaultBox} from './red-tiger-widget.default.box';\r\n\r\nexport const RedTigerWidgetBox = RedTigerWidgetDefaultBox;\r\n","import styled from 'styled-components';\r\n\r\n\r\nexport const RedTigerWidgetHitAreaDefaultBox = styled.div`\r\n cursor: pointer;\r\n width: 100%;\r\n height: 100%;\r\n`;\r\n","import styled from 'styled-components';\r\nimport { RedTigerWidgetHitAreaDefaultBox } from './red-tiger-widget-hit-area.default.box';\r\n\r\n\r\nexport const RedTigerWidgetHitAreaCasino777Box = styled(RedTigerWidgetHitAreaDefaultBox)`\r\n cursor: default;\r\n`;","import { styledByTheme } from './../../../../themes/architecture/styled-by-theme';\r\nimport { RedTigerWidgetHitAreaDefaultBox } from './red-tiger-widget-hit-area.default.box';\r\nimport { RedTigerWidgetHitAreaCasino777Box } from './red-tiger-widget-hit-area.casino777.box';\r\n\r\nexport const RedTigerWidgetHitAreaBox = styledByTheme(RedTigerWidgetHitAreaDefaultBox)\r\n .forCasino777(RedTigerWidgetHitAreaCasino777Box)\r\n .apply();","import styled from 'styled-components';\r\n\r\n\r\nexport const RedTigerWidgetFrameContainerDefaultBox = styled.iframe`\r\n pointer-events: none;\r\n width: 100%;\r\n height: 100%;\r\n border-radius: 10px;\r\n`;\r\n","import { styledByTheme } from './../../../../themes/architecture/styled-by-theme';\r\nimport { RedTigerWidgetFrameContainerDefaultBox } from './red-tiger-widget-frame-container.default.box';\r\n\r\nexport const RedTigerWidgetFrameContainerBox = styledByTheme(RedTigerWidgetFrameContainerDefaultBox)\r\n .apply();","import React from 'react';\r\nimport { OrbitComponent } from '../base-components/orbit-component/orbit-component';\r\nimport { RedTigerJackpotWidgetConfiguration } from '../../services/configurations/config-data-sections/red-tiger-jackpot-widget.configuration';\r\nimport { observer } from 'mobx-react';\r\nimport { RedTigerWidgetBox } from './boxes/widget/red-tiger-widget.box';\r\nimport { RedTigerWidgetHitAreaBox } from './boxes/hitArea/red-tiger-widget-hit-area.box';\r\nimport { RedTigerWidgetFrameContainerBox } from './boxes/frameContainer/red-tiger-widget-frame-container.box';\r\nimport { CyClass } from '../../../common/cy-classes';\r\n\r\ninterface RedTigerWidgedComponentProps {\r\n widgetConfig?: RedTigerJackpotWidgetConfiguration;\r\n}\r\n\r\n@observer\r\nexport class RedTigerWidgetComponent extends OrbitComponent {\r\n \r\n private _onWidgetClick = () => {\r\n this.services.redTiger.redirectToWidgetActionLink(this.props.widgetConfig.actionLink);\r\n }\r\n \r\n private _logMissingProps() {\r\n if (!this.props.widgetConfig.actionLink) {\r\n // actionLink is optional. For example on 777 we don't have it\r\n this.services.logger.info('Missing actionLink parameter for RedTigerWidgetComponent');\r\n }\r\n\r\n if (!this.props.widgetConfig.parameters?.skin) {\r\n this.services.logger.warning('Missing skin parameter for RedTigerWidgetComponent');\r\n }\r\n\r\n if (!this.props.widgetConfig.parameters?.jackpotId) {\r\n this.services.logger.warning('Missing jackpotId parameter for RedTigerWidgetComponent');\r\n }\r\n }\r\n\r\n render() {\r\n if(!this.props.widgetConfig?.display) {\r\n return null;\r\n }\r\n this._logMissingProps();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import styled from 'styled-components';\r\nimport { GeneralTitleDefaultBox } from './general-title.default.box';\r\n\r\nexport const GeneralTitleCasinoSIBox = styled(GeneralTitleDefaultBox)`\r\n flex-grow: 100;\r\n border-radius: 3px 0px 0px 3px;\r\n border-left: 5px solid ${props => props.theme.colors.brandPrimary};\r\n`;","import {GeneralTitleDefaultBox} from './general-title.default.box';\r\nimport {GeneralTitleCasino777Box} from './general-title.casino777.box';\r\nimport {GeneralTitleCasinoSIBox} from './general-title.si.box';\r\nimport {styledByTheme} from '../../themes/architecture/styled-by-theme';\r\n\r\nexport const GeneralTitleBox = styledByTheme(GeneralTitleDefaultBox)\r\n .forCasino777(GeneralTitleCasino777Box)\r\n .forSI(GeneralTitleCasinoSIBox)\r\n .apply();\r\n\r\n","import styled from 'styled-components';\r\nimport {GeneralTitleBox} from '../../../../basic-components/general-title/general-title.box';\r\nimport {JACKPOT_WIDGET, RED_TIGER_JACKPOT} from '../../constants';\r\n\r\nexport const ListTitleTextDefaultBox = styled(GeneralTitleBox)`\r\n letter-spacing: 0.2rem;\r\n display: flex;\r\n align-items: center;\r\n padding-top: 0.5rem;\r\n padding-bottom: 0.5rem;\r\n color: ${props => props.theme.components.gamesListTitle.colors.text.regular};\r\n\r\n .${JACKPOT_WIDGET} & {\r\n color: ${props => props.theme.components.gamesListTitle.colors.text.dailyJackpot};\r\n border-left: 2px solid ${props => props.theme.components.gamesListTitle.colors.text.dailyJackpot};\r\n }\r\n\r\n .${RED_TIGER_JACKPOT} & {\r\n color: ${props => props.theme.components.gamesListTitle.colors.text.redTigerJackpot};\r\n border-left: 2px solid #ff014f;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n padding-top: 0.6rem;\r\n padding-bottom: 0.6rem;\r\n padding-right: 0.1rem;\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\nimport {JACKPOT_WIDGET, RED_TIGER_JACKPOT} from '../../constants';\r\nimport {ListTitleTextDefaultBox} from './list-title-text.default.box';\r\n\r\nexport const ListTitleTextCasino777Box = styled(ListTitleTextDefaultBox)`\r\n letter-spacing: 0.1rem;\r\n\r\n .${JACKPOT_WIDGET} & {\r\n border-left: none;\r\n }\r\n\r\n .${RED_TIGER_JACKPOT} & {\r\n border-left: none;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n align-items: flex-start;\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\nimport {ListTitleTextDefaultBox} from \"./list-title-text.default.box\";\r\n\r\nexport const ListTitleTextCipBox = styled(ListTitleTextDefaultBox)`\r\n ${({theme}) => theme.font.presets.secondary};\r\n`;","import styled from \"styled-components\";\r\nimport {ListTitleTextDefaultBox} from \"./list-title-text.default.box\";\r\nimport {JACKPOT_WIDGET, RED_TIGER_JACKPOT} from \"../../constants\";\r\n\r\nexport const ListTitleTextCisBox = styled(ListTitleTextDefaultBox)`\r\n ${({theme}) => theme.font.presets.secondary};\r\n background: none;\r\n border-left: none;\r\n padding: 0 0;\r\n\r\n .${JACKPOT_WIDGET} & {\r\n color: ${props => props.theme.components.gamesListTitle.colors.text.regular};\r\n border-left: none\r\n }\r\n\r\n .${RED_TIGER_JACKPOT} & {\r\n color: ${props => props.theme.components.gamesListTitle.colors.text.regular};\r\n border-left: none\r\n }\r\n`;","import styled from 'styled-components';\r\nimport {ListTitleTextDefaultBox} from './list-title-text.default.box';\r\nimport { JACKPOT_WIDGET, RED_TIGER_JACKPOT } from '../../constants';\r\n\r\nexport const ListTitleTextSiBox = styled(ListTitleTextDefaultBox)`\r\n letter-spacing: 0.1rem;\r\n \r\n background-image: linear-gradient(to right, ${props => props.theme.colors.background} 0%, ${props => props.theme.colors.background} 70%, ${props => props.theme.colors.background}00 100%);\r\n background-color: transparent;\r\n\r\n .${JACKPOT_WIDGET} & {\r\n border-left: 5px solid ${props => props.theme.colors.brandPrimary};\r\n }\r\n\r\n .${RED_TIGER_JACKPOT} & {\r\n border-left: 5px solid ${props => props.theme.colors.brandPrimary};\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\nimport {ListTitleTextDefaultBox} from './list-title-text.default.box';\r\nimport {JACKPOT_WIDGET, RED_TIGER_JACKPOT} from \"../../constants\";\r\n\r\nexport const ListTitleTextMrGreenBox = styled(ListTitleTextDefaultBox)`\r\n background: none;\r\n border-left: 0;\r\n\r\n font-size: 2.4rem;\r\n letter-spacing: normal;\r\n @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n font-size: 1.6rem;\r\n }\r\n\r\n .${JACKPOT_WIDGET} & {\r\n border-left: 0;\r\n }\r\n\r\n .${RED_TIGER_JACKPOT} & {\r\n border-left: 0;\r\n }\r\n`;\r\n\r\n","import 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 ListTitleTextSICisBox = styled(ListTitleTextDefaultBox)`\r\n ${({theme}) => theme.font.presets.medium};\r\n \r\n letter-spacing: 0.56px;\r\n font-size: 14px;\r\n background-image: linear-gradient(to right, ${props => props.theme.colors.backgroundContrast} 0%, ${props => props.theme.colors.backgroundContrast} 70%, ${props => props.theme.colors.background}00 100%);\r\n background-color: ${props => props.theme.colors.backgroundContrast};\r\n\r\n border-left: none;\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","import {styledByTheme} from '../../../../themes/architecture/styled-by-theme';\r\nimport {ListTitleTextDefaultBox} from './list-title-text.default.box';\r\nimport {ListTitleTextCasino777Box} from './list-title-text.casino777.box';\r\nimport {ListTitleTextCipBox} from \"./list-title-text.cip.box\";\r\nimport {ListTitleTextCisBox} from \"./list-title-text.cis.box\";\r\nimport {ListTitleTextSiBox} from \"./list-title-text.si.box\";\r\nimport {ListTitleTextMrGreenBox} from \"./list-title-text.mrgreen.box\";\r\nimport { ListTitleTextSICisBox } from './list-title-text.siCis.box';\r\n\r\nexport const ListTitleTextBox = styledByTheme(ListTitleTextDefaultBox)\r\n .forCip(ListTitleTextCipBox)\r\n .forWsopCip(ListTitleTextCipBox)\r\n .forCis(ListTitleTextCisBox)\r\n .forCasino777(ListTitleTextCasino777Box)\r\n .forSI(ListTitleTextSiBox)\r\n .forMrGreen(ListTitleTextMrGreenBox)\r\n .forSICis(ListTitleTextSICisBox)\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 ListTitleMrGreenBox = styled(ListTitleDefaultBox)`\r\n padding-left: 0;\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 styled from 'styled-components';\r\nimport { baseColors } from '../../../../themes/definitions/si/cis/base-colors';\r\nimport { ListTitleCisBox } from './list-title.cis.box';\r\n\r\nexport const ListTitleSICisBox = styled(ListTitleCisBox)`\r\n background-color: ${props => props.theme.colors.backgroundContrast};\r\n box-shadow: 0px 0px 6px ${baseColors.base08Shadow};\r\n z-index: 2;\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 {ListTitleMrGreenBox} from './list-title.mrgreen.box';\r\nimport {ListTitleCipBox} from './list-title.cip.box';\r\nimport {ListTitleCisBox} from \"./list-title.cis.box\";\r\nimport { ListTitleSICisBox } from './list-title.siCis.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 .forSICis(ListTitleSICisBox)\r\n .forMrGreen(ListTitleMrGreenBox)\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 styled from \"styled-components\";\r\nimport { GamesGridDefaultBox } from \"./games-grid.default.box\";\r\n\r\nexport const GamesGridSICisBox = styled(GamesGridDefaultBox)`\r\n background: ${props => props.theme.colors.backgroundLight};\r\n`;\r\n","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\nimport { GamesGridSICisBox } from './games-grid.siCis.box';\r\n\r\nexport const GamesGridBox = styledByTheme(GamesGridDefaultBox)\r\n .forCasino777(GamesGridCasino777Box)\r\n .forSICis(GamesGridSICisBox)\r\n .apply();","import {NoGamesFoundMessageDefaultBox} from './no-games-found-message.default.box';\r\n\r\nexport const NoGamesFoundMessageBox = NoGamesFoundMessageDefaultBox;","import styled from 'styled-components';\r\n\r\nexport const NoGamesFoundMessageDefaultBox = styled.p`\r\n font-size: 1.2rem;\r\n margin: 15px 0;\r\n min-height: 300px;\r\n color: ${props => props.theme.colors.textLight};\r\n`;","import styled from \"styled-components\";\r\nimport {CGP_GAME_OPEN} from \"../../../themes/css-global-classes\";\r\n\r\nexport const GamesGridContainerBox = styled.div`\r\n .${CGP_GAME_OPEN} & {\r\n display: none;\r\n }\r\n`;","import React from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\nimport {GamesGridBatchComponent} from './games-grid-batch/games-grid-batch.component';\r\nimport {GamesGridBox} from './boxes/games-grid/games-grid.box';\r\nimport {NoGamesFoundMessageBox} from './boxes/no-games-found-message/no-games-found-message.box';\r\nimport classNames from 'classnames';\r\nimport {GRID_GAMES_LIST} from '../single-game/css-constants';\r\nimport {GamesGridContainerBox} from \"./boxes/games-grid-container.box\";\r\nimport {IGamesListViewModel} from \"../../services/arenas/models/lists/games-list-view-model.interface\";\r\n\r\nexport interface GamesGridComponentProps {\r\n viewModel: IGamesListViewModel;\r\n skipIntermediatePage: boolean;\r\n disableGameInfoHover: boolean;\r\n useSquareIcons?: boolean;\r\n}\r\n\r\n@observer\r\nexport class GamesGridComponent extends OrbitComponent {\r\n\r\n private _renderTitle() {\r\n\r\n if(!this.props.disableGameInfoHover && this.services.gamesFilter.isFilterOn) {\r\n return null;\r\n }\r\n return this.props.viewModel.renderListHeader();\r\n }\r\n\r\n private _renderGames(gameTypes: number[]) {\r\n return (\r\n\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private _renderNoGames() {\r\n if(this.services.gamesFilter.isFilterOn) {\r\n return (\r\n {this.services.translation.translate('YOUR_SEARCH_DID_NOT_MATCH_ANY_GAMES')}\r\n )\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n private _renderContent() {\r\n let gameTypes = this.props.viewModel.gameTypes;\r\n if(gameTypes.length === 0) {\r\n return this._renderNoGames();\r\n }\r\n return (\r\n <>\r\n {this._renderTitle()}\r\n {this._renderGames(gameTypes)}\r\n \r\n );\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n \r\n {this._renderContent()}\r\n \r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport {GamesListBaseModel} from \"../games-list-base.model\";\r\nimport {GamesGridComponent} from \"../../../../../components/games-grid/games-grid.component\";\r\nimport {ArenaGamesGridConfiguration} from \"../../../../configurations/config-data-sections/arenas.configuration\";\r\nimport {IArenaToGamesListAdapter} from \"../../arenas/arena-to-games-list-adapter.interface\";\r\nimport {TextTranslation} from \"../../../../translation/text-translation\";\r\nimport {GameListTitleComponent} from \"../../../../../components/game-list-title/game-list-title.component\";\r\nimport {ListTitleTextBox} from \"../../../../../components/game-list-title/boxes/list-title-text/list-title-text.box\";\r\n\r\nexport class GamesGridListModel extends GamesListBaseModel {\r\n constructor(protected readonly gridConfig: ArenaGamesGridConfiguration,\r\n arena: IArenaToGamesListAdapter) {\r\n super(arena)\r\n }\r\n\r\n protected _getGameTypes(): number[] {\r\n return this.gridConfig.gamesId || [];\r\n }\r\n\r\n protected get _isAISorted(): boolean {\r\n return this.gridConfig.useAISortedList;\r\n }\r\n\r\n\r\n protected _shouldBeDisplayed(): boolean {\r\n return true;\r\n //return this.gridConfig.display;\r\n }\r\n\r\n protected get _numberOfGamesToBeIgnoredInAISorting(): number | undefined {\r\n return undefined;\r\n }\r\n\r\n get listId(): number {\r\n return this.gridConfig.listId;\r\n }\r\n\r\n get title(): TextTranslation {\r\n return this.services.translation.getTranslation(this.gridConfig.title);\r\n }\r\n\r\n get maxGamesToShowInList(): number {\r\n return this._getGameTypes().length; // for grids we show all games\r\n }\r\n\r\n get forceInLayout(): boolean {\r\n return true;\r\n }\r\n\r\n get templateType(): string {\r\n return this.gridConfig.templateType;\r\n }\r\n\r\n protected get _forceRoundIcons(): boolean {\r\n return this.gridConfig.forceRoundIcons;\r\n }\r\n \r\n protected get _useSquareIcons(): boolean {\r\n return this.gridConfig.useSquareIcons;\r\n }\r\n\r\n private get _shouldSquareIconsBeUsed(): boolean {\r\n return this.shouldUseSquareIcons();\r\n }\r\n\r\n renderListHeader(): React.ReactElement {\r\n const title = (\r\n \r\n {this.title.translation}\r\n \r\n );\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n protected _renderList(listPosition: number): React.ReactElement | null {\r\n return (\r\n \r\n );\r\n }\r\n\r\n\r\n}","import {StaticSwiperListModel} from \"../static-swiper/static-swiper-list.model\";\r\n\r\nexport class LiveCasinoListModel extends StaticSwiperListModel {\r\n\r\n protected _applyGameTypesTransformations(gameTypes: number[]): number[] {\r\n gameTypes = super._applyGameTypesTransformations(gameTypes);\r\n return this.services.liveTableFeeds.moveGamesThatOpenSoonToTheEnd(gameTypes);\r\n }\r\n}","import React from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {OrbitSwiperComponent} from '../orbit-swiper/orbit-swiper.component';\r\nimport {observer} from 'mobx-react';\r\nimport {CyClass} from \"../../../common/cy-classes\";\r\nimport {ISwiperListViewModel} from \"../../services/arenas/models/lists/swiper-list-view-model.interface\";\r\n\r\ninterface BecauseYouPlayedComponentProps {\r\n viewModel: ISwiperListViewModel;\r\n listPosition: number;\r\n}\r\n\r\n@observer\r\nexport class BecauseYouPlayedComponent extends OrbitComponent {\r\n \r\n componentDidMount() {\r\n super.componentDidMount();\r\n\r\n this.reaction(() => this.services.runningGame.correlatedGamesForLastPlayedRealGame,\r\n (correlatedGames) => {\r\n this.props.viewModel.swipeLogicHandler.resetScrollPosition();\r\n }\r\n );\r\n }\r\n \r\n render() {\r\n const viewModel = this.props.viewModel;\r\n \r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { BecauseYouPlayedComponent } from \"../../../../../components/because-you-played/because-you-played.component\";\r\nimport { SwiperGamesListConfiguration } from \"../../../../configurations/config-data-sections/arenas.configuration\";\r\nimport { IArenaToGamesListAdapter } from \"../../arenas/arena-to-games-list-adapter.interface\";\r\nimport {ApiListBaseModel} from \"../api-list-base.model\";\r\n\r\nexport class BecauseYouPlayedPlayedListModel extends ApiListBaseModel {\r\n constructor(protected readonly listConfiguration: SwiperGamesListConfiguration, arena: IArenaToGamesListAdapter) {\r\n super(listConfiguration, arena);\r\n this.services.runningGame.listenForLastPlayedRealGame();\r\n }\r\n\r\n protected _shouldBeDisplayed(): boolean {\r\n return super._shouldBeDisplayed() && \r\n this.services.becauseYouPlayed.isEnabled &&\r\n this.gameTypes.length > 0;\r\n }\r\n\r\n protected _getTitleTranslationParams(): object | string | undefined {\r\n const lastPlayedGames = this.services.becauseYouPlayed.currentBecauseYouPlayedGames[0];\r\n if (lastPlayedGames) {\r\n return {\r\n gameName: lastPlayedGames.title\r\n }\r\n }\r\n\r\n return super._getTitleTranslationParams();\r\n }\r\n\r\n protected _getGameTypes(): number[] {\r\n return this.services.becauseYouPlayed.currentBecauseYouPlayedGames.map(gInfo => gInfo.gameType);\r\n }\r\n\r\n\r\n\r\n protected _renderList(listPosition: number): React.ReactElement> {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import {LiveStreamingListTitleDefaultBox} from \"./live-streaming-list-title.default.box\";\r\n\r\nexport const LiveStreamingListTitleBox = LiveStreamingListTitleDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const LiveStreamingListTitleDefaultBox = styled.div`\r\n color: ${({theme}) => theme.colors.textLight.toString()};\r\n`;\r\n","import {LiveStreamingTitleIconDefaultBox} from \"./live-streaming-title-icon.default.box\";\r\n\r\nexport const LiveStreamingTitleIconBox = LiveStreamingTitleIconDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const LiveStreamingTitleIconDefaultBox = styled.div`\r\n padding: 0 4px;\r\n margin-right: 1rem;\r\n border-radius: 2px;\r\n letter-spacing: 0;\r\n\r\n color: ${({theme}) => theme.colors.background.toString()};\r\n background: ${({theme}) => theme.colors.brandPrimary.toString()};\r\n\r\n animation: FlashingAnimation 2s ease infinite;\r\n\r\n @keyframes FlashingAnimation {\r\n 0% {\r\n opacity: 1;\r\n }\r\n 50% {\r\n opacity: 0.25;\r\n }\r\n 100% {\r\n opacity: 1;\r\n }\r\n }\r\n`;\r\n","import {IServiceFactory} from \"../../../service-factory.interface\";\r\nimport {action, observable} from \"mobx\";\r\nimport {ISwipeLogicHandlerMoveNextOptions, ISwipeLogicHandler} from \"./swiper-logic-handler.interface\";\r\nimport {NullableNumber} from \"../../../../../common/types/nullable-types\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {ISwiperListViewModel} from \"../lists/swiper-list-view-model.interface\";\r\n\r\nexport class LiveStreamSwipeLogicHandler implements ISwipeLogicHandler {\r\n\r\n private _element: HTMLElement = null;\r\n private _touchStartX = 0;\r\n private _swipeDirection = 0;\r\n private _touchDragThreshold = 25;\r\n private _swipeTransitionCss = \"transform 0.5s ease-in-out\";\r\n\r\n constructor(private readonly _services: IServiceFactory, private readonly _gamesListViewModel: ISwiperListViewModel) {\r\n }\r\n\r\n @observable allowNext: boolean = true;\r\n @observable allowPrevious: boolean = true;\r\n\r\n private _subscribe() {\r\n this._unsubscribe();\r\n this._element.addEventListener(\"transitionend\", this._handleTransitionEnd);\r\n this._element.addEventListener(\"touchstart\", this._handleTouchStart);\r\n this._element.addEventListener(\"touchend\", this._handleTouchEnd);\r\n }\r\n\r\n private _unsubscribe() {\r\n if (this._element) {\r\n this._element.removeEventListener(\"transitionend\", this._handleTransitionEnd);\r\n this._element.removeEventListener(\"touchstart\", this._handleTouchStart);\r\n this._element.removeEventListener(\"touchend\", this._handleTouchEnd);\r\n }\r\n }\r\n\r\n private _handleTouchStart = (event: TouchEvent) => {\r\n this._touchStartX = event.changedTouches[0].clientX;\r\n }\r\n\r\n private _handleTouchEnd = (event: TouchEvent) => {\r\n\r\n const dragDistance = Math.abs(event.changedTouches[0].clientX - this._touchStartX);\r\n\r\n if (dragDistance < this._touchDragThreshold) return;\r\n\r\n if (event.changedTouches[0].clientX < this._touchStartX) {\r\n this.moveNext();\r\n } else {\r\n this.movePrevious();\r\n }\r\n }\r\n\r\n private _handleTransitionEnd = (event: TransitionEvent) => {\r\n\r\n /** this._element is the swiper element and\r\n * if any element inside has any kind of transitions on their transform css property...\r\n * their \"transitionend\" events will also be catched here\r\n * So we check the event target because\r\n * we want to run this handler only for events that have this._element as target */\r\n if (event.propertyName === \"transform\" && event.target === this._element) {\r\n\r\n if (this._swipeDirection < 0) {\r\n\r\n this._element.append(this._element.firstElementChild);\r\n\r\n this._element.style.transition = \"none\";\r\n this._element.style.transform = \"translateX(0)\";\r\n }\r\n\r\n this._setIsNavigationAllowed(true);\r\n }\r\n };\r\n\r\n @action.bound\r\n private _setIsNavigationAllowed(allowed: boolean) {\r\n this.allowNext = allowed;\r\n this.allowPrevious = allowed;\r\n }\r\n\r\n setElement(element: HTMLElement): void {\r\n if (element) {\r\n this._element = element;\r\n this._element.style.overflow = \"initial\";\r\n this._subscribe();\r\n } else {\r\n this._element = null;\r\n this._unsubscribe();\r\n }\r\n }\r\n\r\n moveNext(options?: ISwipeLogicHandlerMoveNextOptions): void {\r\n\r\n if (!this.allowNext) return;\r\n\r\n options = {\r\n moveOnVideoFinished: false,\r\n ...options\r\n };\r\n\r\n this._reportSwipeToAnalytics(true, options.moveOnVideoFinished);\r\n\r\n this._swipeDirection = -1;\r\n this._element.style.transition = this._swipeTransitionCss;\r\n const translateAmount = (this._services.mediaQuery.xlAndAbove ? 33.33 : 100) * (this._services.language.isRTLLanguage ? 1 : -1);\r\n this._element.style.transform = \"translateX(\" + translateAmount + \"%)\";\r\n this._setIsNavigationAllowed(false);\r\n }\r\n\r\n movePrevious(): void {\r\n\r\n if (!this.allowPrevious) return;\r\n\r\n this._reportSwipeToAnalytics(false);\r\n\r\n this._swipeDirection = 1;\r\n\r\n this._element.style.transition = \"none\";\r\n this._element.prepend(this._element.lastElementChild);\r\n const translateAmount = (this._services.mediaQuery.xlAndAbove ? 33.33 : 100) * (this._services.language.isRTLLanguage ? 1 : -1);\r\n this._element.style.transform = \"translateX(\" + translateAmount + \"%)\";\r\n\r\n this._setIsNavigationAllowed(false);\r\n\r\n requestAnimationFrame(() => {\r\n this._element.style.transition = this._swipeTransitionCss;\r\n this._element.style.transform = \"translateX(0)\";\r\n });\r\n }\r\n\r\n resetScrollPosition(): void {\r\n this._element.style.transform = \"translateX(0)\";\r\n }\r\n\r\n private _currentGameIndex: NullableNumber = null;\r\n setCurrentGameIndex(gameIndex: number): void {\r\n this._currentGameIndex = gameIndex;\r\n }\r\n\r\n private _reportSwipeToAnalytics(swipeToLeft:boolean, isAutoSwipe:boolean=false): void {\r\n try {\r\n\r\n if(Check.isNullOrUndefined(this._currentGameIndex)) {\r\n return;\r\n }\r\n\r\n let nextGame;\r\n if(swipeToLeft === true){\r\n nextGame = (this._currentGameIndex + 1) % this._gamesListViewModel.gameTypes.length;\r\n }\r\n else {\r\n nextGame = (this._currentGameIndex>0) ? (this._currentGameIndex-1) : (this._gamesListViewModel.gameTypes.length-1);\r\n }\r\n\r\n let listType = this._gamesListViewModel.apiListType;\r\n let swipeFromGameId = this._gamesListViewModel.gameTypes[this._currentGameIndex];\r\n let label = 'SWIPE_' + this._currentGameIndex + (isAutoSwipe?'_AUTO':'_USER');\r\n\r\n this._services.analytics.sendAnalytics(listType ,'NEXT_GAME', label, swipeFromGameId, true);\r\n\r\n this._services.analytics.sendElasticInfoEvent({\r\n eventType:\"CGP_Game_Click\",\r\n category: this._gamesListViewModel.arenaName,\r\n action: 'SWIPE',\r\n label: listType,\r\n customData: {\r\n swipeFromGameId:swipeFromGameId,\r\n swipeFromGameIndex:this._currentGameIndex,\r\n swipeToGameId:this._gamesListViewModel.gameTypes[nextGame],\r\n isAutoSwipe:isAutoSwipe\r\n }\r\n }, true);\r\n }\r\n catch (err){\r\n console.log(\"SWIPE analytics report failed : \" + err);\r\n }\r\n }\r\n\r\n}\r\n","import styled from \"styled-components\";\r\nimport { CssRule } from \"../../../../themes/architecture/css-helpers/css-rule\";\r\n\r\ninterface LiveStreamingNavigationProps {\r\n isActive: boolean;\r\n}\r\n\r\nconst LiveStreamingNavigationCommonBox = styled.div`\r\n position: absolute;\r\n top: 35%;\r\n width: 3rem;\r\n height: 3rem;\r\n opacity: ${({isActive}) => isActive ? \"1\" : \"0.25\"};\r\n cursor: pointer;\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove} {\r\n /* On PC, one tile is a third of the swiper, but the ones not in center are scaled to 0.7 */\r\n /* So ... height is 100 * 0.7 */\r\n height: 70%;\r\n /* top is 100 * (1-0.7) / 2 */\r\n top: 15%;\r\n /* 23.331 is 33.33*0.7 */\r\n width: 23.331%;\r\n }\r\n`;\r\n\r\nexport const VideoListNavigationPrevButtonDefaultBox = styled(LiveStreamingNavigationCommonBox)`\r\n left: 1rem;\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove} {\r\n /* On PC, one tile is a third of the swiper, but the ones not in center are scaled to 0.7 */\r\n /* left is 33.33*(1-0.7)/2 */\r\n left: 5%;\r\n }\r\n`;\r\n\r\nexport const VideoListNavigationNextButtonDefaultBox = styled(LiveStreamingNavigationCommonBox)`\r\n right: 1rem;\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove} {\r\n /* On PC, one tile is a third of the swiper, but the ones not in center are scaled to 0.7 */\r\n /* right is 33.33*(1-0.7)/2 */\r\n right: 5%;\r\n }\r\n`;\r\n\r\nconst VideoCutCommonBox = styled.div`\r\n position: absolute;\r\n height: 80%;\r\n width: 2px;\r\n top: 10%;\r\n`;\r\n\r\nexport const VideoListLeftCutDefaultBox = styled(VideoCutCommonBox)`\r\n left: 8%;\r\n margin-left: -6px;\r\n\r\n ${CssRule.For.RTL.build()} & {\r\n left: unset;\r\n margin-left: 0px;\r\n right: 8%;\r\n margin-right: 6px;\r\n }\r\n`;\r\nexport const VideoListRightCutDefaultBox = styled(VideoCutCommonBox)`\r\n right: 8%;\r\n margin-right: 11px;\r\n\r\n ${CssRule.For.RTL.build()} & {\r\n right: unset;\r\n margin-right: 0px;\r\n left: 8%;\r\n margin-left: -11px;\r\n }\r\n`;\r\n","import {VideoListNavigationPrevButtonDefaultBox, VideoListNavigationNextButtonDefaultBox, VideoListLeftCutDefaultBox, VideoListRightCutDefaultBox} from \"./video-navigation.default.box\";\r\n\r\nexport const VideoListNavigationPrevButtonBox = VideoListNavigationPrevButtonDefaultBox;\r\nexport const VideoListNavigationNextButtonBox = VideoListNavigationNextButtonDefaultBox;\r\n\r\nexport const VideoListLeftCutBox = VideoListLeftCutDefaultBox;\r\nexport const VideoListRightCutBox = VideoListRightCutDefaultBox;\r\n","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {OrbitSwiperComponent} from '../orbit-swiper/orbit-swiper.component';\r\nimport {IVideoListViewModel} from \"../../services/arenas/models/lists/video-list/video-list-view-model.interface\";\r\n\r\n\r\ninterface VideoListComponentProps {\r\n viewModel: IVideoListViewModel;\r\n listPosition: number;\r\n}\r\n\r\n@observer\r\nexport class VideoListComponent extends OrbitComponent {\r\n\r\n // For static video list we need to know the final gametype(from UI perspective)\r\n // For the final gametype, once video finishes, we don't auto swipe to the next one(= first one).\r\n private _getLastGameType(): number {\r\n let gameTypes = this.props.viewModel.gameTypes;\r\n let index = this.services.mediaQuery.xlAndAbove ? 0 : (gameTypes.length - 1);\r\n return gameTypes[index];\r\n }\r\n\r\n private _onGameBringInCentralView = (gameIndex: number) => {\r\n this.props.viewModel.setCurrentGameIndex(gameIndex);\r\n }\r\n\r\n render() {\r\n const viewModel = this.props.viewModel;\r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import {SwiperListBaseModel} from \"../swiper-list-base.model\";\r\nimport {LiveStreamSwipeLogicHandler} from \"../../swiper-logic-handler/live-stream-swipe-logic-handler\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {computed} from \"mobx\";\r\nimport React from \"react\";\r\nimport {\r\n VideoListLeftCutBox, VideoListNavigationNextButtonBox,\r\n VideoListNavigationPrevButtonBox, VideoListRightCutBox\r\n} from \"../../../../../components/live-streaming-tile/video-common-components/video-navigation/video-navigation.box\";\r\nimport {VideoListComponent} from \"../../../../../components/video-list-component/video-list.component\";\r\nimport {IVideoListViewModel} from \"./video-list-view-model.interface\";\r\n\r\nexport abstract class DefaultVideoListModel extends SwiperListBaseModel implements IVideoListViewModel {\r\n protected _swipeLogicHandler: LiveStreamSwipeLogicHandler = new LiveStreamSwipeLogicHandler(this.services, this);\r\n\r\n protected get _isAISorted(): boolean {\r\n return false;\r\n }\r\n\r\n protected _getGameTypesOffsetFromLocalStorage(): number {\r\n let storedValue = this.services.localStorage.getItem(this._offsetStorageKey);\r\n\r\n return Check.isNullOrUndefined(storedValue) ? 0 : parseInt(storedValue);\r\n }\r\n\r\n protected _offsetStorageKey: string = 'orbit-video-list-gametype-offset' + this.listConfiguration.listId;\r\n\r\n /**\r\n * This must be static. Because the ListFactory.createSwiper will be called several times, and that will create a new instance of this class.\r\n * (For every live casino video list and every time the list changes and maybe when the ai changes the list sorting)\r\n * So if this is not \"static\" at every instance creation _gameTypesOffset will be initialized with \"undefined\"\r\n * and when calling _getGameTypes the cycling will run again for every new instance.\r\n * And we want to do this only once after page load\r\n */\r\n protected static _gameTypesOffsets: Record = {};\r\n\r\n protected _cycleGamesAndIncrementOffset(baseArray: number[]) {\r\n if(Check.isNullOrUndefined(DefaultVideoListModel._gameTypesOffsets[this._offsetStorageKey])) {\r\n DefaultVideoListModel._gameTypesOffsets[this._offsetStorageKey] = this._getGameTypesOffsetFromLocalStorage();\r\n let newOffset = (DefaultVideoListModel._gameTypesOffsets[this._offsetStorageKey] + 1) % (this.listConfiguration.gamesId.length);\r\n this.services.localStorage.setItem(this._offsetStorageKey, newOffset);\r\n }\r\n\r\n return baseArray.splice(DefaultVideoListModel._gameTypesOffsets[this._offsetStorageKey]).concat(baseArray);\r\n }\r\n\r\n @computed\r\n get gameTypes(): number[] {\r\n // gameTypes is a getter and in javascript I cannot call \"super.gameTypes\"\r\n let gTypes = this._applyGameTypesTransformations(this._getGameTypes());\r\n\r\n if (this.services.mediaQuery.xlAndAbove && gTypes.length > 2) {\r\n let lastGame = gTypes.pop();\r\n gTypes.unshift(lastGame);\r\n }\r\n return gTypes;\r\n }\r\n\r\n renderListNavigation(): React.ReactElement | null {\r\n\r\n const PrevIcon = this.services.theme.currentTheme.icons.leftArrowIcon;\r\n const NextIcon = this.services.theme.currentTheme.icons.rightArrowIcon;\r\n\r\n return (\r\n \r\n {this.services.mediaQuery.xlAndAbove ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : null}\r\n this.swipeLogicHandler.movePrevious()}>\r\n \r\n \r\n this.swipeLogicHandler.moveNext()}>\r\n \r\n \r\n {this.services.mediaQuery.xlAndAbove ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : null}\r\n \r\n );\r\n }\r\n\r\n\r\n\r\n _renderList(listPosition: number): React.ReactElement | null {\r\n return (\r\n \r\n );\r\n }\r\n\r\n setCurrentGameIndex(gameIndex: number): void {\r\n this._swipeLogicHandler.setCurrentGameIndex(gameIndex);\r\n }\r\n}\r\n","import React from \"react\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {LiveStreamingListTitleBox} from \"../../../../../components/live-streaming-tile/live-streaming-specific-components/live-streaming-list-title/live-streaming-list-title.box\";\r\nimport {LiveStreamingTitleIconBox} from \"../../../../../components/live-streaming-tile/live-streaming-specific-components/live-streaming-title-icon/live-streaming-title-icon.box\";\r\nimport {DefaultVideoListModel} from \"./default-video-list.model\";\r\nimport {LIVE_STREAMING_ITEM} from \"../../../../../themes/css-global-classes\";\r\n\r\nexport class LiveStreamingVideoListModel extends DefaultVideoListModel {\r\n\r\n get templateType(): string {\r\n return LIVE_STREAMING_ITEM;\r\n }\r\n\r\n private _isLiveStreamDisabled = () => {\r\n // live stream should be rendered on mobile only, excepting CIP8, if is enable from AB and\r\n // if user is authorized or if is not authorized only if is not disabled prelogin\r\n return this.services.miniOrbit.isEnabled ||\r\n !this.services.abTestingFeatureDataProvider.isVideoLiveStreamEnabled ||\r\n this.services.liveStreamPlaying.isDisabledPrelogin\r\n };\r\n\r\n protected _shouldBeDisplayed(): boolean {\r\n if(this._isLiveStreamDisabled()) {\r\n return false;\r\n }\r\n\r\n return super._shouldBeDisplayed() && this.gameTypes.length > 0;\r\n }\r\n\r\n get maxGamesToShowInList(): number {\r\n return 9;\r\n }\r\n\r\n protected _getGameTypes(): number[] {\r\n\r\n if(!Check.isNullOrUndefined(this.services.liveStreamPlaying.isSupported)\r\n && !this.services.liveStreamPlaying.isSupported) {\r\n return [];\r\n }\r\n\r\n let baseArray = [...this.listConfiguration.gamesId];\r\n let gameTypes = this._cycleGamesAndIncrementOffset(baseArray);\r\n\r\n gameTypes = gameTypes.filter((gt) => this.services.games.gamesMap[gt]?.hasVideoURL);\r\n\r\n if(this.services.liveTableFeeds.tablesData.length === 0) {\r\n return gameTypes;\r\n } else {\r\n return gameTypes.filter(gType => this.services.liveTableFeeds.openTablesIds.find(tableId => tableId === gType.toString()));\r\n }\r\n }\r\n\r\n get numberOfGamesSkeletons(): number {\r\n return this._getNumberOfGamesSkeletons();\r\n }\r\n\r\n protected _getNumberOfGamesSkeletons(): number {\r\n if(Check.isNullOrUndefined(this.services.liveStreamPlaying.isSupported) || this.services.liveTableFeeds.tablesData.length === 0) {\r\n return 1;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n protected _renderHeaderIcon(): React.ReactElement | null {\r\n return (\r\n LIVE\r\n );\r\n }\r\n\r\n protected _renderHeaderText(): string | React.ReactElement {\r\n return (\r\n \r\n {this.title.translation}\r\n \r\n );\r\n }\r\n\r\n}\r\n","import {DefaultVideoListModel} from \"./default-video-list.model\";\r\nimport {STATIC_VIDEO_ITEM} from \"../../../../../themes/css-global-classes\";\r\nimport {SwiperGamesListConfiguration} from \"../../../../configurations/config-data-sections/arenas.configuration\";\r\nimport {IArenaToGamesListAdapter} from \"../../arenas/arena-to-games-list-adapter.interface\";\r\n\r\nexport class StaticVideoListModel extends DefaultVideoListModel {\r\n\r\n constructor(listConfiguration: SwiperGamesListConfiguration, arena: IArenaToGamesListAdapter) {\r\n super(listConfiguration, arena);\r\n\r\n this.services.staticVideoPlaying.setSwiperHandler(this.swipeLogicHandler);\r\n }\r\n\r\n get templateType(): string {\r\n return STATIC_VIDEO_ITEM;\r\n }\r\n\r\n private _isStaticVideoListDisabled = () => {\r\n return (\r\n this.services.miniOrbit.isEnabled ||\r\n this.services.staticVideoPlaying.isDisabledPrelogin ||\r\n !this.services.abTestingFeatureDataProvider.isStaticVideoListEnabled\r\n );\r\n };\r\n\r\n protected _shouldBeDisplayed(): boolean {\r\n if(this._isStaticVideoListDisabled()) {\r\n return false;\r\n }\r\n\r\n return super._shouldBeDisplayed() && this.gameTypes.length > 0;\r\n }\r\n\r\n get maxGamesToShowInList(): number {\r\n return 4;\r\n }\r\n\r\n protected _getGameTypes(): number[] {\r\n\r\n let baseArray = [...this.listConfiguration.gamesId];\r\n let gameTypes = this._cycleGamesAndIncrementOffset(baseArray);\r\n\r\n gameTypes = gameTypes.filter((gt) => this.services.games.gamesMap[gt]?.hasVideoURL);\r\n\r\n return gameTypes;\r\n }\r\n\r\n get numberOfGamesSkeletons(): number {\r\n return this._getNumberOfGamesSkeletons();\r\n }\r\n\r\n protected _getNumberOfGamesSkeletons(): number {\r\n return 1;\r\n }\r\n}\r\n","import {\r\n ApiListType, ArenaGamesGridConfiguration,\r\n SwiperGamesListConfiguration\r\n} from \"../../../configurations/config-data-sections/arenas.configuration\";\r\nimport {IGamesListModel} from \"./games-list-model.interface\";\r\nimport {RecentlyPlayedListModel} from \"./recently-played/recently-played-list.model\";\r\nimport {TopPicksListModel} from \"./top-picks/top-picks-list.model\";\r\nimport {NewGamesListModel} from \"./new-games/new-games-list.model\";\r\nimport {PlayersLikeYouListModel} from \"./players-like-you/players-like-you-list.model\";\r\nimport {StaticSwiperListModel} from \"./static-swiper/static-swiper-list.model\";\r\nimport {IArenaToGamesListAdapter} from \"../arenas/arena-to-games-list-adapter.interface\";\r\nimport {GamesGridListModel} from \"./games-grid/games-grid-list.model\";\r\nimport {LiveCasinoListModel} from \"./live-casino/live-casino-list.model\";\r\nimport {LIVE_CASINO_ITEM} from \"../../../../themes/css-global-classes\";\r\nimport { BecauseYouPlayedPlayedListModel } from \"./because-you-played/because-you-played-list.model\";\r\nimport {LiveStreamingVideoListModel} from \"./video-list/live-streaming-video-list.model\";\r\nimport {StaticVideoListModel} from \"./video-list/static-video-list.model\";\r\n\r\n\r\nexport class ListFactory {\r\n\r\n constructor(private readonly arena: IArenaToGamesListAdapter) {\r\n }\r\n createSwiper(swiperConfig: SwiperGamesListConfiguration): IGamesListModel {\r\n\r\n\r\n if(swiperConfig.templateType === LIVE_CASINO_ITEM) {\r\n return new LiveCasinoListModel(swiperConfig, this.arena);\r\n }\r\n\r\n switch (swiperConfig.apiListType) {\r\n case ApiListType.RECENTLY_PLAYED:\r\n return new RecentlyPlayedListModel(swiperConfig, this.arena);\r\n case ApiListType.TOP_PICKS:\r\n return new TopPicksListModel(swiperConfig, this.arena);\r\n case ApiListType.NEW_GAMES:\r\n return new NewGamesListModel(swiperConfig, this.arena);\r\n case ApiListType.PLAYERS_LIKE_YOU:\r\n return new PlayersLikeYouListModel(swiperConfig, this.arena);\r\n case ApiListType.LIVE_CASINO_VIDEO: // maybe rename this to LIVE_STREAMING_VIDEO,but it'd also need admin updated\r\n return new LiveStreamingVideoListModel(swiperConfig, this.arena);\r\n case ApiListType.STATIC_VIDEO:\r\n return new StaticVideoListModel(swiperConfig, this.arena);\r\n case ApiListType.BECAUSE_YOU_PLAYED:\r\n return new BecauseYouPlayedPlayedListModel(swiperConfig, this.arena);\r\n\r\n default:\r\n return new StaticSwiperListModel(swiperConfig, this.arena);\r\n\r\n }\r\n }\r\n\r\n createGrid(gridConfig: ArenaGamesGridConfiguration) {\r\n return new GamesGridListModel(gridConfig, this.arena);\r\n }\r\n}\r\n","import {ArenaFiltersConfigurationMap, IArenaViewModel} from \"./arena-view-model.interface\";\r\nimport {\r\n ArenaGamesGridConfiguration,\r\n SwiperGamesListConfiguration\r\n} from \"../../../configurations/config-data-sections/arenas.configuration\";\r\nimport {action, computed, observable, reaction} from \"mobx\";\r\nimport {IArenaToGamesListAdapter} from \"./arena-to-games-list-adapter.interface\";\r\nimport {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {IGamesListModel} from \"../lists/games-list-model.interface\";\r\nimport React from \"react\";\r\nimport {ListFactory} from \"../lists/list-factory\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {ListsSortOrderStorage} from \"../lists-sort-order-storage\";\r\nimport {IGamesListRenderer} from \"../lists/games-list-renderer.interface\";\r\nimport {BannerComponent} from \"../../../../components/banner/banner.component\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {IGamesFilterStrategy} from \"../../../games-filter/strategies/games-filter-strategy.interface\";\r\n\r\nexport type BannerConfig = {position: number; templateID: string; componentID: string; fallbackComponent: string, bannerAdminPlaceholderId: string};\r\n\r\nexport abstract class ArenaBaseModel implements IArenaToGamesListAdapter, IArenaViewModel {\r\n constructor(public readonly arenaName: string,\r\n public readonly services: IServiceFactoryExtended,\r\n private readonly _postLoginListsSortOrderStorage: ListsSortOrderStorage) {\r\n\r\n this._listFactory = new ListFactory(this);\r\n\r\n reaction(() => [this.services.user.isAuthorized, this.services.routing.currentRoute],\r\n async () => {\r\n await this._updateAIEngineSwipersSortOrder();\r\n }, {\r\n fireImmediately: true\r\n });\r\n }\r\n\r\n private _listFactory: ListFactory;\r\n abstract get maxSwipersToShow(): number;\r\n abstract get maxGamesToShowInList(): number;\r\n protected abstract _getSwipersConfigurations(): SwiperGamesListConfiguration[];\r\n protected abstract _getGridsConfigurations(): ArenaGamesGridConfiguration[];\r\n protected abstract _getPromotionalBannerConfig(): BannerConfig | null;\r\n abstract renderArena(): React.ReactElement | null;\r\n abstract filterGamesByArenaType(gameInfos: GameInfo[]): GameInfo[];\r\n abstract get filtersConfigurationMap(): ArenaFiltersConfigurationMap;\r\n abstract getGamesFilteringStrategy(): IGamesFilterStrategy;\r\n\r\n protected get useAdvancedFilters(): boolean {\r\n return this.services.configuration.servicesConfigs.Filters.useAdvancedFilters;\r\n }\r\n\r\n protected get _isUsingExternalAIForSwipersSorting(): boolean {\r\n return false;\r\n }\r\n\r\n protected _getSwiperIdToPutOnTop(): number | null {\r\n return null;\r\n }\r\n\r\n get aiEngine(): string {\r\n return \"\";\r\n }\r\n\r\n @observable.ref\r\n private _aiEngineListsSortOrder: Record = null;\r\n @action.bound\r\n private _setAiEngineListsSortOrder(value: Record): void {\r\n this._aiEngineListsSortOrder = value;\r\n }\r\n private async _updateAIEngineSwipersSortOrder(): Promise {\r\n if(this._isUsingExternalAIForSwipersSorting) {\r\n return;\r\n }\r\n if(this._aiEngineListsSortOrder) {\r\n return;\r\n }\r\n\r\n if(!this.services.user.isAuthorized) {\r\n return;\r\n }\r\n\r\n if(this.services.routing.currentRoute.data?.arenaType === this.arenaName) {\r\n const listsIDs = this._getSwipersConfigurations().filter(sw => !Check.isNullOrUndefined(sw.listId))\r\n .map(sw => sw.listId.toString());\r\n if(listsIDs.length === 0) {\r\n return;\r\n }\r\n\r\n this._setAiEngineListsSortOrder(await this.services.aiEngine.getCasinoRecommendedDynamicListsForPlayer(listsIDs));\r\n }\r\n }\r\n\r\n private _movePreferredSwiperOnTop(swipers: IGamesListModel[]){\r\n const listId = this._getSwiperIdToPutOnTop();\r\n if(Check.isNullOrUndefined(listId)) {\r\n return swipers;\r\n }\r\n const listIndex = swipers.findIndex((list) => list.listId === listId);\r\n if(listIndex > 0){\r\n swipers.splice(0, 0, swipers.splice(listIndex, 1)[0]);\r\n }\r\n return swipers;\r\n }\r\n\r\n\r\n protected _sortSwipersByAI(originalSwipers: IGamesListModel[]): IGamesListModel[] {\r\n const scores = this._aiEngineListsSortOrder;\r\n if(!scores) {\r\n return originalSwipers;\r\n }\r\n\r\n const notForcedInLayoutSortedSwipers = originalSwipers.filter(s => !s.forceInLayout)\r\n .sort((s1, s2) => (scores[s2.listId] || 0) - (scores[s1.listId] || 0));\r\n\r\n let sortedSwipersConfigs: IGamesListModel[] = [];\r\n originalSwipers.forEach(gameList => {\r\n if(gameList.forceInLayout){\r\n sortedSwipersConfigs.push(gameList)\r\n } else{\r\n let mappedGameList = notForcedInLayoutSortedSwipers.shift();\r\n if(mappedGameList) {\r\n sortedSwipersConfigs.push(mappedGameList)\r\n }\r\n }\r\n });\r\n\r\n return sortedSwipersConfigs;\r\n }\r\n\r\n\r\n\r\n @computed\r\n public get allLists(): IGamesListModel[] {\r\n const result = this._createAllLists();\r\n this._sendGameListsAnalytics(result);\r\n return result;\r\n }\r\n\r\n @computed\r\n get allArenaGamesForFiltering(): GameInfo[] {\r\n let gameTypes: number[] = [];\r\n this._getGridsConfigurations().forEach(g => {\r\n gameTypes = [\r\n ...gameTypes,\r\n ...g.gamesId\r\n ]\r\n });\r\n\r\n //use Set here to make a list of distinct game types\r\n return [...new Set(gameTypes)].map(gameType => this.services.games.gamesMap[gameType]).filter(gameInfo => gameInfo);\r\n }\r\n\r\n\r\n get filteredGamesCount(): number {\r\n let gameTypes: number[] = [];\r\n\r\n for(let list of this.allLists) {\r\n gameTypes = [\r\n ...gameTypes,\r\n ...list.gameTypes\r\n ]\r\n }\r\n\r\n return [...new Set(gameTypes)].length;\r\n }\r\n\r\n get listsCount(): number {\r\n return this.allLists.length;\r\n }\r\n\r\n protected _createAllLists(): IGamesListModel[] {\r\n return this._appendGrids(\r\n this._limitTheNumberOfSwipers(\r\n this._saveSwipersPostLoginSortOrder(\r\n this._sortSwipersByPostLoginOrder(\r\n this._movePreferredSwiperOnTop(\r\n this._sortSwipersByAI(\r\n this._createSwipers()))))));\r\n }\r\n\r\n private _limitTheNumberOfSwipers(swipers: IGamesListModel[]): IGamesListModel[] {\r\n\r\n if(swipers.length <= this.maxSwipersToShow) {\r\n return swipers;\r\n }\r\n let result: IGamesListModel[] = [];\r\n\r\n let maxNumberOfSwipers = this.maxSwipersToShow;\r\n for(let i = 0; i < swipers.length; i++) {\r\n const list = swipers[i];\r\n if(maxNumberOfSwipers > 0 || list.forceInLayout) {\r\n result.push(list);\r\n }\r\n\r\n if(list.isVisible) {\r\n maxNumberOfSwipers--;\r\n }\r\n\r\n }\r\n\r\n return result;\r\n }\r\n\r\n renderList(listPosition: number): React.ReactElement | null {\r\n let position = listPosition;\r\n\r\n for(let list of this.allLists) {\r\n if(list.isVisible) {\r\n position--;\r\n }\r\n if(position === 0) {\r\n return this._renderListAndBanner(listPosition, list);\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n protected _renderListAndBanner(listPosition: number, list: IGamesListRenderer) {\r\n return (\r\n \r\n {list.render(listPosition)}\r\n {this._renderPromotionalBanner(listPosition)}\r\n \r\n )\r\n }\r\n\r\n getNextBatchSize(currentListPosition: number): number {\r\n if(currentListPosition > this.allLists.length) {\r\n return 0;\r\n }\r\n\r\n return 2;\r\n }\r\n\r\n protected _saveSwipersPostLoginSortOrder(swipers: IGamesListModel[]): IGamesListModel[] {\r\n if(this.services.user.isAuthorized) {\r\n this._postLoginListsSortOrderStorage.saveSortOrder(this.arenaName, swipers);\r\n }\r\n return swipers;\r\n }\r\n\r\n protected _sortSwipersByPostLoginOrder(swipers: IGamesListModel[]): IGamesListModel[] {\r\n if(this.services.user.isAuthorized) {\r\n return swipers;\r\n }\r\n\r\n return this._postLoginListsSortOrderStorage.sortLists(this.arenaName, swipers);\r\n }\r\n\r\n protected _createSwipers(): IGamesListModel[] {\r\n const configs = this._getSwipersConfigurations();\r\n const lists: IGamesListModel[] = [];\r\n\r\n configs.forEach((listConfig) => {\r\n lists.push(this._createSwiper(listConfig));\r\n });\r\n\r\n return lists;\r\n }\r\n\r\n protected _appendGrids(lists: IGamesListModel[]) {\r\n this._getGridsConfigurations().forEach(gridConfig => {\r\n lists.push(this._createGrid(gridConfig));\r\n });\r\n return lists;\r\n }\r\n\r\n protected _createGrid(gridConfig: ArenaGamesGridConfiguration) {\r\n return this._listFactory.createGrid(gridConfig);\r\n }\r\n\r\n protected _createSwiper(swiperConfig: SwiperGamesListConfiguration): IGamesListModel {\r\n return this._listFactory.createSwiper(swiperConfig);\r\n }\r\n\r\n protected _getBannerMinHeightInPixels(listPosition: number, bannerConfig: BannerConfig | null) {\r\n if(!bannerConfig) {\r\n return 0;\r\n }\r\n\r\n const shouldRenderBanner = listPosition === bannerConfig.position\r\n || (this.allLists.length < bannerConfig.position && listPosition === this.allLists.length);\r\n if(!shouldRenderBanner) {\r\n return 0;\r\n }\r\n\r\n if(this.services.mediaQuery.sAndBelow) {\r\n return 142;\r\n }\r\n\r\n return 223;\r\n }\r\n\r\n protected _renderPromotionalBanner(listPosition: number): React.ReactElement | null {\r\n const bannerConfig = this._getPromotionalBannerConfig();\r\n const bannerMinHeight = this._getBannerMinHeightInPixels(listPosition, bannerConfig);\r\n if(bannerMinHeight === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n protected _sendGameListsAnalytics(lists: IGamesListModel[]): IGamesListModel[] {\r\n if(!this.services.user.isAuthorized) {\r\n return lists;\r\n }\r\n\r\n if(!this._isUsingExternalAIForSwipersSorting) {\r\n return lists;\r\n }\r\n\r\n const analyticsObject = {\r\n category: 'AI_ListsDisplayed',\r\n action: lists.map(list => list.title).join(','),\r\n label: \"ML888\"\r\n };\r\n\r\n this.services.analytics.sendAnalytics(analyticsObject.category, analyticsObject.action, analyticsObject.label);\r\n\r\n return lists;\r\n }\r\n}","import styled from \"styled-components\";\r\n\r\nexport const HomepageHeaderArenaMenuItemDefaultBox = styled.div`\r\n display: inline-block;\r\n padding-top: 0.5rem;\r\n padding-bottom: 0.5rem;\r\n position: relative;\r\n margin: 0rem 3rem;\r\n padding-left: 3.6rem;\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n margin: 0rem 1.5rem;\r\n padding-left: 2rem;\r\n\r\n padding-top: 0.3rem;\r\n padding-bottom: 0.3rem;\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\nimport {HomepageHeaderArenaMenuItemDefaultBox} from \"./home-page-header-arena-menu-item.default.box\";\r\nimport {baseColors} from \"../../../../../themes/definitions/mrgreen/base-colors\";\r\n\r\nexport const HomepageHeaderArenaMenuItemMrGreenBox = styled(HomepageHeaderArenaMenuItemDefaultBox)`\r\n color: ${({theme}) => theme.colors.textContrast};\r\n &:hover {\r\n color: ${baseColors.white};\r\n }\r\n`;\r\n","import {HomepageHeaderArenaMenuItemDefaultBox} from \"./home-page-header-arena-menu-item.default.box\";\r\nimport { styledByTheme } from \"../../../../../themes/architecture/styled-by-theme\";\r\nimport {HomepageHeaderArenaMenuItemMrGreenBox} from \"./home-page-header-arena-menu-item.mrgreen.box\";\r\n\r\nexport const HomepageHeaderArenaMenuItemBox = styledByTheme(HomepageHeaderArenaMenuItemDefaultBox)\r\n .forMrGreen(HomepageHeaderArenaMenuItemMrGreenBox)\r\n .apply();\r\n","import styled from \"styled-components\";\r\n\r\nexport const HomepageHeaderArenaMenuItemIconDefaultBox = styled.div`\r\n position: absolute;\r\n left: 0;\r\n top: 1px;\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n top: 3px;\r\n }\r\n`;\r\n","import {HomepageHeaderArenaMenuItemIconDefaultBox} from \"./home-page-header-arena-menu-item-icon.default.box\";\r\nimport { styledByTheme } from \"../../../../../themes/architecture/styled-by-theme\";\r\n\r\nexport const HomepageHeaderArenaMenuItemIconBox = styledByTheme(HomepageHeaderArenaMenuItemIconDefaultBox).apply();\r\n","import styled from \"styled-components\";\r\n\r\nexport const HomepageHeaderArenaMenuItemNameDefaultBox = styled.div`\r\n position: relative;\r\n display: inline;\r\n font-size: 1.8rem;\r\n letter-spacing: 1px;\r\n padding-left: 1.2rem;\r\n ${({theme}) => theme.font.presets.body}\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n font-size: 1.4rem;\r\n padding-left: 0.5rem;\r\n }\r\n`;\r\n","import {HomepageHeaderArenaMenuItemNameDefaultBox} from \"./home-page-header-arena-menu-item-name.default.box\";\r\nimport { styledByTheme } from \"../../../../../themes/architecture/styled-by-theme\";\r\n\r\nexport const HomepageHeaderArenaMenuItemNameBox = styledByTheme(HomepageHeaderArenaMenuItemNameDefaultBox)\r\n .apply();\r\n","import styled, { css } from \"styled-components\";\r\n\r\ninterface HomepageHeaderArenaTileBoxProps {\r\n useSmallHeaderArenas: boolean;\r\n totalItemsCount: number;\r\n}\r\n\r\nexport const HomepageHeaderArenaTileDefaultBox = styled.div`\r\n display: inline-block;\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 max-width: ${({totalItemsCount}) => 100 / totalItemsCount}%;\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.headerArenaTileDropShadow.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 width: 22%;\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 {HomepageHeaderArenaTileDefaultBox} from \"./home-page-header-arena-tile.default.box\";\r\n\r\nexport const HomepageHeaderArenaTileSIBox = styled(HomepageHeaderArenaTileDefaultBox)`\r\n ${props => props.useSmallHeaderArenas ? css`max-width: 252px` : \"\"};\r\n padding-right: 1rem;\r\n padding-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 {HomepageHeaderArenaTileDefaultBox} from \"./home-page-header-arena-tile.default.box\";\r\nimport {HomepageHeaderArenaTileSIBox} from \"./home-page-header-arena-tile.si.box\";\r\nimport { styledByTheme } from \"../../../../../themes/architecture/styled-by-theme\";\r\n\r\nexport const HomepageHeaderArenaTileBox = styledByTheme(HomepageHeaderArenaTileDefaultBox).forSI(HomepageHeaderArenaTileSIBox).apply();\r\n","import styled from \"styled-components\";\r\n\r\nexport const HomepageHeaderArenaNameDefaultBox = 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 {HomepageHeaderArenaNameDefaultBox} from \"./home-page-header-arena-name.default.box\";\r\n\r\nexport const HomepageHeaderArenaNameSIBox = styled(HomepageHeaderArenaNameDefaultBox)`\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 {HomepageHeaderArenaNameDefaultBox} from \"./home-page-header-arena-name.default.box\";\r\nimport {HomepageHeaderArenaNameSIBox} from \"./home-page-header-arena-name.si.box\";\r\nimport { styledByTheme } from \"../../../../../themes/architecture/styled-by-theme\";\r\n\r\nexport const HomepageHeaderArenaNameBox = styledByTheme(HomepageHeaderArenaNameDefaultBox)\r\n .forSI(HomepageHeaderArenaNameSIBox)\r\n .apply();\r\n","import styled from \"styled-components\";\r\n\r\nconst DefaultBox = styled.div<{headerArenasStyleIsMenu?: boolean;}>`\r\n position: absolute;\r\n top: ${({headerArenasStyleIsMenu}) => headerArenasStyleIsMenu ? \"0.2rem\" : 0};\r\n right: ${({headerArenasStyleIsMenu}) => headerArenasStyleIsMenu ? \"0.6rem\" : 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 styled from \"styled-components\";\r\nimport { HomepageHeaderArenaBadgeDefaultBox } from \"./home-page-header-arena-badge.default.box\";\r\n\r\nexport const HomepageHeaderArenaBadgeMrGreenBox = styled(HomepageHeaderArenaBadgeDefaultBox)`\r\n font-size: 1.2rem;\r\n color: ${({theme}) => theme.colors.textContrast};\r\n padding: 0.1rem 0.5rem;\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\nimport { HomepageHeaderArenaBadgeMrGreenBox } from \"./home-page-header-arena-badge.mrgreen.box\";\r\n\r\nexport const HomepageHeaderArenaBadgeBox = styledByTheme(HomepageHeaderArenaBadgeDefaultBox)\r\n .forSI(HomepageHeaderArenaBadgeSIBox)\r\n .forMrGreen(HomepageHeaderArenaBadgeMrGreenBox).apply();\r\n","import styled, {css} from \"styled-components\";\r\nimport {HeaderArenasStyle} from \"../../../themes/architecture/sections/theme-layout.interface\";\r\n\r\nexport const HomePageHeaderArenasContainerDefaultBox = styled.div<{headerArenasStyle: HeaderArenasStyle;}>`\r\n margin-bottom: 4rem;\r\n\r\n text-align: center;\r\n white-space: nowrap;\r\n\r\n overflow-x: auto;\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 ${({headerArenasStyle}) => headerArenasStyle === HeaderArenasStyle.Menu ? css`\r\n background-color: ${({theme}) => theme.colors.background};\r\n padding: 1.8rem 0;\r\n ` : \"\"}\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove} {\r\n ${({headerArenasStyle}) => headerArenasStyle === HeaderArenasStyle.Menu ? css`\r\n margin-right: -4rem;\r\n margin-left: -4rem;\r\n padding: 2.2rem 0;\r\n ` : \"\"}\r\n }\r\n`;\r\n","import styled, {css} from \"styled-components\";\r\nimport {HomePageHeaderArenasContainerDefaultBox} from \"./home-page-header-arenas-container.default.box\";\r\nimport {HeaderArenasStyle} from \"../../../themes/architecture/sections/theme-layout.interface\";\r\n\r\nexport const HomePageHeaderArenasContainerMrGreenBox = styled(HomePageHeaderArenasContainerDefaultBox)`\r\n ${({headerArenasStyle, theme}) => headerArenasStyle === HeaderArenasStyle.Menu ? css`\r\n background-color: ${theme.colors.backgroundContrast};\r\n ` : \"\"}\r\n\r\n ${({headerArenasStyle}) => headerArenasStyle === HeaderArenasStyle.Menu ? css`\r\n padding: 1.5rem 0 1.4rem;\r\n ` : \"\"}\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove} {\r\n ${({headerArenasStyle}) => headerArenasStyle === HeaderArenasStyle.Menu ? css`\r\n padding: 2.2rem 0;\r\n ` : \"\"}\r\n }\r\n`;\r\n","import {styledByTheme} from \"../../../themes/architecture/styled-by-theme\";\r\nimport {HomePageHeaderArenasContainerDefaultBox} from \"./home-page-header-arenas-container.default.box\";\r\nimport {HomePageHeaderArenasContainerMrGreenBox} from \"./home-page-header-arenas-container.mrgreen.box\";\r\n\r\nexport const HomePageHeaderArenasContainerBox = styledByTheme(HomePageHeaderArenasContainerDefaultBox)\r\n .forMrGreen(HomePageHeaderArenasContainerMrGreenBox)\r\n .apply();\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/tiles/skeleton/home-page-header-arena-skeleton.box';\r\nimport { ByThemeRegistry } from \"../../themes/architecture/by-theme-registry\";\r\n\r\ninterface HomePageHeaderArenaTileComponentState {\r\n isLoading: boolean;\r\n}\r\n\r\nexport class HomePageHeaderArenaTileComponent 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}","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 {HomepageHeaderArenaMenuItemBox} from \"./boxes/menu/menu-item/home-page-header-arena-menu-item.box\";\r\nimport {HomepageHeaderArenaMenuItemIconBox} from \"./boxes/menu/icon-box/home-page-header-arena-menu-item-icon.box\";\r\nimport {HomepageHeaderArenaMenuItemNameBox} from \"./boxes/menu/menu-item-name/home-page-header-arena-menu-item-name.box\";\r\nimport {HomepageHeaderArenaTileBox} from './boxes/tiles/tile/home-page-header-arena-tile.box';\r\nimport {HomepageHeaderArenaNameBox} from './boxes/tiles/name/home-page-header-arena-name.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 {HomePageHeaderArenaTileComponent} from \"./home-page-header-arena-tile.component\";\r\nimport {SeoConfiguration} from '../../services/configurations/config-data-sections/seo.configuration';\r\nimport {ISendElasticEventOptions} from \"../../services/analytics/analytics.service.interface\";\r\n\r\nconst NEW_GAMES_TITLE = \"NEW_GAMES\";\r\n\r\n@observer\r\nexport class HomePageHeaderArenasComponent extends OrbitComponent {\r\n private menuButtonIconMap = new Map([\r\n [\"LIVE_CASINO\", this.services.theme.currentTheme.icons.sideMenuLiveCasino],\r\n [\"SLOTS\", this.services.theme.currentTheme.icons.sideMenuSlots],\r\n [\"NEW_GAMES\", this.services.theme.currentTheme.icons.sideMenuNewGames],\r\n [\"JACKPOTS\", this.services.theme.currentTheme.icons.sideMenuJackpots],\r\n [\"EXCLUSIVE\", this.services.theme.currentTheme.icons.sideMenuExclusive888],\r\n [\"SCRATCH_CARDS\", this.services.theme.currentTheme.icons.sideMenuScratchCards],\r\n [\"CASINO_GAMES\", this.services.theme.currentTheme.icons.sideMenuCasinoGames]\r\n ]);\r\n private _getButtonIcon(label: string) {\r\n const iconKey = label.toUpperCase().trim().replace(/(-|\\s)/g, \"_\");\r\n return this.menuButtonIconMap.has(iconKey) ? this.menuButtonIconMap.get(iconKey)! : this.services.theme.currentTheme.icons.sideMenuExclusive888;\r\n }\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\r\n let data:ISendElasticEventOptions={\r\n eventType:\"Orbit_AI_Feature\",\r\n category:'Game Grid',\r\n action:'Home',\r\n label:`${arena.title}_${index}`\r\n }\r\n\r\n this.services.analytics.sendElasticInfoEvent(data,true);\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, totalItemsCount: 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 if (this.services.homepage.headerArenasStyleIsMenu) {\r\n const Icon = this._getButtonIcon(arena.title);\r\n return \r\n this._handleArenaClick(event, arena, index)}\r\n >\r\n \r\n \r\n {newGamesIndication}\r\n \r\n \r\n {this.services.translation.translate(arena.title)}\r\n \r\n \r\n \r\n }\r\n return (\r\n this._handleArenaClick(event, arena, index)}\r\n useSmallHeaderArenas={this.services.homepage.headerArenasStyleIsSmallTiles}\r\n totalItemsCount={totalItemsCount}\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 return (\r\n \r\n {headerArenas.map((arena, index) => this._renderOneHeaderArena(arena, index, headerArenas.length))}\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) + 47px)' : '0px'};\r\n right: 0;\r\n`;\r\n","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../themes/architecture/styled-by-device\";\r\nimport {FreeToPlayAnimatedIconDefaultBox} from \"./free-to-play-animated-icon.default.box\";\r\n\r\nconst PCBox = styled(FreeToPlayAnimatedIconDefaultBox)`\r\n width: 190px;\r\n`;\r\n\r\nconst MobileBox = styled(FreeToPlayAnimatedIconDefaultBox)`\r\n width: 130px;\r\n`;\r\n\r\n\r\nexport const FreeToPlayAnimatedIconBox = styledByDevice(PCBox,MobileBox);","\r\nexport interface IUserGameOrientationService {\r\n readonly gameGroup: IUserGameOrientation;\r\n}\r\n\r\nexport enum GAME_ORIENTATION_IDS{\r\n SLOTS = 5003,\r\n BLACKJACK = 5001,\r\n ROULETTE = 5002,\r\n LIVE_BLACKJACK = 5009,\r\n LIVE_ROULETTE = 5010,\r\n LIVE_CASINO = 6003,\r\n CASINO_SKILL = 6001,\r\n CASINO_SOFT = 6002,\r\n CASINO_MIXT = 8001\r\n}\r\n\r\nexport interface IUserGameOrientation{\r\n groupId?: number;\r\n groupName: string;\r\n}","import {OrbitComponent} from \"../base-components/orbit-component/orbit-component\";\r\nimport * as React from \"react\";\r\nimport {FreeToPlayAnimatedIconBox} from \"./boxes/free-to-play-animated-icon.box\";\r\nimport { AnimatedIconObservableTarget, AnimatedIconUnloadReason, IAnimatedIconRequestOptions } from \"../../services/pixi-app/animated-icon-base-service.service\";\r\nimport { CHANNEL_ELEMENTS, CHANNEL_SOURCE } from \"../../../common/const/casinofied-analytics-consts\";\r\nimport { AreaType } from \"@sparkware/uc-sdk-core\";\r\nimport { observer } from \"mobx-react\";\r\nimport {CyClass} from \"../../../common/cy-classes\";\r\nimport {ISendElasticEventOptions} from \"../../services/analytics/analytics.service.interface\";\r\n\r\n@observer\r\nexport class FreeToPlayAnimatedIconComponent extends OrbitComponent {\r\n private iconRequestOptions = {\r\n jsonUrl: this.services.theme.currentTheme.images.f2p.freeToPlay.toString(),\r\n size: {\r\n width: 445,\r\n height: 364\r\n },\r\n timings: {\r\n delay: 2000,\r\n interval: 3000\r\n }\r\n };\r\n\r\n private iconObservableTarget: AnimatedIconObservableTarget | undefined;\r\n\r\n private _captureElementRefForIcon(element: HTMLElement | null) {\r\n // if element is null (the component was unmounted) or the element changed, then check if we have a currently running/loading animation and remove it\r\n if (!element || (this.iconObservableTarget && this.iconObservableTarget.wrapper !== element)) {\r\n // if the current animation is loading, cancel it\r\n if (this.iconObservableTarget && this.iconObservableTarget.loadingInProgress) {\r\n this.iconObservableTarget.abortLoading = true;\r\n }\r\n // if the current animation is already running, stop and dispose it\r\n if (this.iconObservableTarget && this.iconObservableTarget.animationDisposer) {\r\n this.iconObservableTarget.animationDisposer(AnimatedIconUnloadReason.REQUESTED);\r\n }\r\n }\r\n // if the element exists and is different from the previous one, then the animation must be started\r\n if (element && (!this.iconObservableTarget || this.iconObservableTarget.wrapper !== element)) {\r\n let requestOptions: Omit = this.iconRequestOptions;\r\n // update the reference\r\n this.iconObservableTarget = {\r\n ...requestOptions,\r\n wrapper: element\r\n };\r\n this.services.freeToPlay.loadFreeToPlayAnimation(this.iconObservableTarget);\r\n }\r\n // if element is null just update the reference so we know next time the capture is ran\r\n if (!element) {\r\n this.iconObservableTarget = undefined;\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n if (this.services.freeToPlay.isPromotionEligible) {\r\n this._sendAnalytics(\"SHOW\");\r\n }\r\n }\r\n\r\n render() {\r\n if (!this.services.freeToPlay.isPromotionEligible) {\r\n return null;\r\n }\r\n\r\n if (this.services.freeToPlay.isPromotionOpened) {\r\n return null;\r\n }\r\n\r\n return (\r\n this._openBonusWheel()}\r\n ref={this._captureElementRefForIcon.bind(this)}\r\n />\r\n );\r\n }\r\n\r\n private _openBonusWheel = async () => {\r\n this._sendAnalytics(\"CLICK\");\r\n await this.services.freeToPlay.showPromotion({\r\n channel: {\r\n area: AreaType.button,\r\n source: CHANNEL_SOURCE.casinoClient,\r\n element: CHANNEL_ELEMENTS.floatingIcon\r\n }}\r\n );\r\n }\r\n\r\n private _sendAnalytics(action: string) {\r\n try {\r\n let options: ISendElasticEventOptions = {\r\n action: action,\r\n category: \"Floating_icon\",\r\n eventType: \"bonus_widget\",\r\n appID: \"F2P\",\r\n customData: {\r\n location: this.services.location.isHomePage ? 'homepage' : this.services.location.currentUri.pathName.toString(),\r\n segmentation: this.services.user.playerRMSStatus\r\n }\r\n };\r\n this.services.analytics.sendElasticInfoEvent(options, true);\r\n }\r\n catch (err){\r\n console.log(\"Floating_icon \" + action + \" analytics report failed with error: \"+ err);\r\n }\r\n }\r\n}","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {CmsBannerComponent} from '../cms-banner/cms-banner.component';\r\nimport {DailyDealComponent} from \"../daily-deal/daily-deal.component\";\r\nimport {RoutedComponent} from '../base-components/routed-component/routed.component';\r\nimport {LayoutWrapperBox} from \"../../basic-components/layout-wrapper/layout-wrapper.box\";\r\nimport {MOVE_TOP} from \"../../themes/css-global-classes\";\r\nimport classNames from \"classnames\";\r\nimport {HomePageHeaderArenasComponent} from \"../home-page-header-arenas/home-page-header-arenas.component\";\r\nimport {HomepageTopBannerBackgroundBox} from \"./boxes/home-page-top-banner-background.box\";\r\nimport {HomepageTopBannerDividerBox} from './boxes/home-page-top-banner-divider-line';\r\nimport {CyClass} from '../../../common/cy-classes';\r\nimport {LinkToOfferComponent} from \"../link-to-offer/link-to-offer.component\";\r\nimport {ArenaGamesListsComponent} from \"../arena-games-lists/arena-games-lists.component\";\r\nimport {HOME_PAGE_ARENA} from \"../../services/arenas/arena-consts\";\r\nimport {FreeToPlayAnimatedIconComponent} from \"../free-to-play-animated-icon/free-to-play-animated-icon.component\";\r\nimport {BannerComponent} from \"../banner/banner.component\";\r\n\r\n@observer\r\nexport class HomePageComponent extends RoutedComponent<{}> {\r\n\r\n private _renderTopBanner() {\r\n const topBannerProps = this.services.homepage.getTopBannerProps();\r\n\r\n return (\r\n <>\r\n \r\n \r\n {this.services.homepage.headerArenasStyleIsSmallTiles && !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.headerArenasStyleIsBigTiles\r\n });\r\n\r\n return (\r\n <>\r\n {this._renderTopBanner()}\r\n \r\n {this._renderHomePageArenaHeaders()}\r\n \r\n {this._renderDailyDealBox()}\r\n \r\n {this._renderSeoBanner()}\r\n {this._renderLinkToOffer()}\r\n \r\n );\r\n }\r\n}","import React from \"react\";\r\nimport {ArenaBaseModel} from \"../arena-base.model\";\r\nimport {\r\n ArenaGamesGridConfiguration,\r\n SwiperGamesListConfiguration\r\n} from \"../../../../configurations/config-data-sections/arenas.configuration\";\r\nimport {IServiceFactoryExtended} from \"../../../../service-factory-extended.interface\";\r\nimport {IGamesListModel} from \"../../lists/games-list-model.interface\";\r\nimport {ListsSortOrderStorage} from \"../../lists-sort-order-storage\";\r\nimport {HomePageComponent} from \"../../../../../components/home-page/home-page.component\";\r\nimport {HOME_PAGE_ARENA, NEW_GAMES_ARENA_NAME} from \"../../../arena-consts\";\r\nimport {GAME_ORIENTATION_IDS} from \"../../../../user-game-orientation/user-game-orientation.service.interface\";\r\nimport { reaction } from \"mobx\";\r\nimport {GameInfo} from \"../../../../games/game-info\";\r\nimport {ArenaFiltersConfigurationMap} from \"../arena-view-model.interface\";\r\nimport {IGamesFilterStrategy} from \"../../../../games-filter/strategies/games-filter-strategy.interface\";\r\nimport {NoGamesFilterStrategy} from \"../../../../games-filter/strategies/no-filter/no-games-filter.strategy\";\r\n\r\nexport class HomePageArenaModel extends ArenaBaseModel {\r\n constructor(services: IServiceFactoryExtended, postLoginListsSortOrderStorage: ListsSortOrderStorage) {\r\n super(HOME_PAGE_ARENA, services, postLoginListsSortOrderStorage);\r\n\r\n reaction(\r\n () => this.services.routing.currentRoute,\r\n (currentRoute) => {\r\n if (currentRoute.routeDefinition.data?.arenaType === NEW_GAMES_ARENA_NAME) {\r\n this.services.homepage.resetNewAddedGames();\r\n }\r\n }, {\r\n fireImmediately: true\r\n }\r\n );\r\n }\r\n\r\n get maxSwipersToShow(): number {\r\n return 15;\r\n }\r\n\r\n get maxGamesToShowInList(): number {\r\n return 18\r\n }\r\n\r\n get aiEngine(): string {\r\n return \"\";\r\n }\r\n\r\n renderArena(): React.ReactElement | null {\r\n return ();\r\n }\r\n\r\n protected _getSwiperIdToPutOnTop(): number | null {\r\n //REQUIREMENT 1886942 - exclude live casino orientation players\r\n const gameGroupOrientation = this.services.userGameOrientation.gameGroup;\r\n if (gameGroupOrientation?.groupId && gameGroupOrientation?.groupId === GAME_ORIENTATION_IDS.LIVE_CASINO ) {\r\n return\r\n }\r\n\r\n\r\n return this.services.abTestingFeatureDataProvider.listOnTop;\r\n }\r\n\r\n protected _sortSwipersByAI(swipers: IGamesListModel[]): IGamesListModel[] {\r\n if(this._isUsingExternalAIForSwipersSorting) {\r\n return swipers;\r\n }\r\n\r\n return super._sortSwipersByAI(swipers);\r\n }\r\n\r\n protected _getSwipersConfigurations(): SwiperGamesListConfiguration[] {\r\n return this.services.configuration.data.homePage.gamesLists || [];\r\n }\r\n protected _getGridsConfigurations(): ArenaGamesGridConfiguration[] {\r\n return []\r\n }\r\n\r\n protected _getPromotionalBannerConfig() {\r\n const bannerConfig = this.services.configuration.data.homePage.promotionalBanner;\r\n if(!bannerConfig || this.services.miniOrbit.isEnabled) {\r\n return null;\r\n }\r\n\r\n return {\r\n position: bannerConfig.displayPlace + 1,\r\n templateID: bannerConfig.templateID,\r\n componentID: bannerConfig.componentID,\r\n fallbackComponent: bannerConfig.fallbackComponent,\r\n bannerAdminPlaceholderId: bannerConfig.bannerAdminPlaceholderId\r\n };\r\n }\r\n\r\n filterGamesByArenaType(gamesInfo: GameInfo[]): GameInfo[] {\r\n return gamesInfo;\r\n }\r\n\r\n get allArenaGamesForFiltering(): GameInfo[] {\r\n return [];\r\n }\r\n\r\n get filtersConfigurationMap(): ArenaFiltersConfigurationMap {\r\n return {};\r\n }\r\n\r\n getGamesFilteringStrategy(): IGamesFilterStrategy {\r\n return new NoGamesFilterStrategy(this.services);\r\n }\r\n}","import {ArenaPictureDefaultBox} from './arena-picture.default.box';\r\n\r\nexport const ArenaPictureBox = ArenaPictureDefaultBox;","import styled from 'styled-components';\r\nimport { Image } from '../../../../../../raw-components/image/image';\r\n\r\n//info-image default\r\nexport const ArenaPictureDefaultBox = styled(Image)`\r\n display: block;\r\n min-height: 20rem;\r\n\r\n width: 372px;\r\n height: 200px;\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n width: 282px;\r\n height: 175px;\r\n }\r\n`;\r\n\r\n","import {ArenaTitleDefaultBox} from './arena-title.default.box';\r\n\r\n\r\nexport const ArenaTitleBox = ArenaTitleDefaultBox;","import styled from 'styled-components';\r\n\r\n//info-title default\r\nexport const ArenaTitleDefaultBox = styled.div`\r\n font-size: 1.5rem;\r\n color: ${props => props.theme.colors.textLight};\r\n font-weight: 600;\r\n padding-top: 3rem;\r\n padding-left: 0.5rem;\r\n`;","import {ArenaDescriptionTextDefaultBox} from './arena-description-text.default.box';\r\n\r\nexport const ArenaDescriptionTextBox = ArenaDescriptionTextDefaultBox;","import styled from 'styled-components';\r\n\r\nexport const ArenaDescriptionTextDefaultBox = styled.div`\r\n font-size: 1.4rem;\r\n ${({theme}) => theme.font.presets.regular};\r\n color: ${props => props.theme.colors.textMiddleDark};\r\n font-weight: 300;\r\n line-height: normal;\r\n padding-top: 1rem;\r\n`;","import styled, {keyframes} from 'styled-components';\r\nimport {STICKY} from '../../../../../themes/css-global-classes';\r\n\r\nconst lobbyInfoKeyframes = keyframes`\r\n 0%{\r\n transform: translate(0, 13rem);\r\n }\r\n 25%{\r\n transform: translate(0, 15rem);\r\n }\r\n 50%{\r\n transform: translate(0, 18rem);\r\n }\r\n 100%{\r\n transform: translate(0, 22rem);\r\n }\r\n`;\r\n\r\nexport const LobbyGameInfoDefaultBox = styled.div`\r\n position: absolute;\r\n right: 0;\r\n top: 0;\r\n width: 375px;\r\n margin-right: 2.5rem;\r\n \r\n\r\n &.${STICKY} {\r\n position: fixed;\r\n animation: ${lobbyInfoKeyframes} 0.5s ease-in-out forwards;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n width: 285px;\r\n }\r\n\r\n`;\r\n","import {LobbyGameInfoDefaultBox} from './lobby-game-info.default.box';\r\n\r\nexport const LobbyGameInfoBox = LobbyGameInfoDefaultBox;","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport classNames from 'classnames';\r\nimport { OrbitComponentWithState } from '../../../../base-components/orbit-component-with-state/orbit-component-with-state';\r\nimport { AspectRatioContainerComponent } from '../../../../raw-components/aspect-ratio-container/aspect-ratio-container.component';\r\nimport {ArenaPictureBox} from './boxes/arena-picture/arena-picture.box';\r\nimport {ArenaTitleBox} from './boxes/arena-title/arena-title.box';\r\nimport {ArenaDescriptionTextBox} from './boxes/arena-description-text/arena-description-text.box';\r\nimport {LobbyGameInfoBox} from '../../boxes/lobby-game-info/lobby-game-info.box';\r\nimport {STICKY} from '../../../../../themes/css-global-classes';\r\n\r\nexport interface ArenaInfoPreviewComponentProps {\r\n isSticky?: boolean;\r\n arenaInfo: {\r\n previewImage: string;\r\n title: string;\r\n description: string;\r\n }\r\n}\r\n\r\nexport interface ArenaInfoPreviewComponentState {\r\n arenaPictureLoading: boolean;\r\n}\r\n\r\n@observer\r\nexport class ArenaInfoPreviewComponent extends OrbitComponentWithState {\r\n state: ArenaInfoPreviewComponentState = {\r\n arenaPictureLoading: false\r\n }\r\n\r\n render() {\r\n\r\n\r\n let title = this.services.translation.translate(this.props.arenaInfo.title);\r\n\r\n return (\r\n \r\n \r\n {\r\n this.setState({arenaPictureLoading: true});\r\n }}\r\n onSettled={() => {\r\n this.setState({arenaPictureLoading: false});\r\n }}\r\n />\r\n \r\n \r\n {title}\r\n \r\n \r\n {this.services.translation.translate(this.props.arenaInfo.description)}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {OrbitComponent} from '../../../../../base-components/orbit-component/orbit-component';\r\nimport {SectionTitleBox} from '../../../../common/boxes/section-title/section-title.box';\r\n\r\n\r\nexport interface PcGamePreviewTitleComponentProps {\r\n gameTitle: string;\r\n}\r\n\r\n@observer\r\nexport class PcGamePreviewTitleComponent extends OrbitComponent {\r\n\r\n //className={`game-title general-title game-preview`}\r\n render() {\r\n return (\r\n \r\n {this.props.gameTitle}\r\n \r\n );\r\n }\r\n}","import React from 'react';\r\nimport {OrbitComponent} from '../../../../base-components/orbit-component/orbit-component';\r\nimport {TrailerOrStripeImageComponent} from '../../../common/trailer-or-stripe-image/trailer-or-stripe-image.component';\r\nimport {GamePreviewInfoContainerComponent} from '../../../common/game-info-container/game-preview-info-container.component';\r\nimport {observer} from 'mobx-react';\r\nimport {PcGamePreviewTitleComponent} from './title/pc-game-preview-title.component';\r\nimport {LobbyGameInfoBox} from '../../boxes/lobby-game-info/lobby-game-info.box';\r\nimport classNames from 'classnames';\r\nimport {STICKY} from '../../../../../themes/css-global-classes';\r\nimport {GameInfo} from '../../../../../services/games/game-info';\r\n\r\n\r\nexport interface GameInfoPreviewComponentProps {\r\n isSticky?: boolean;\r\n gameInfo: GameInfo;\r\n}\r\n\r\n@observer\r\nexport class GameInfoPreviewComponent extends OrbitComponent {\r\n\r\n private _onMouseEnter = () => {\r\n this.services.lobbyGameInfoPreview.pinCurrentGamePreview();\r\n };\r\n\r\n private _onMouseLeave = () => {\r\n this.services.lobbyGameInfoPreview.unPinCurrentGamePreview();\r\n };\r\n\r\n\r\n render() {\r\n let gameInfo = this.props.gameInfo;\r\n return (\r\n \r\n \r\n }/>\r\n \r\n );\r\n }\r\n}\r\n\r\n\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../../base-components/orbit-component/orbit-component';\r\nimport {ArenaInfoPreviewComponent} from './parts/arena-info-preview/arena-info-preview.component';\r\nimport {GameInfoPreviewComponent} from './parts/game-info-preview/game-info-preview.component';\r\nimport {observer} from 'mobx-react';\r\nimport {IStickyHandler} from '../../sticky-handler/sticky-handler.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\n\r\n\r\nexport interface LobbyGamesInfoComponentProps {\r\n stickyHandler?: IStickyHandler;\r\n arenaInfo: {\r\n previewImage: string;\r\n title: string;\r\n description: string;\r\n }\r\n}\r\n\r\n@observer\r\nexport class PcGameInfoPreviewComponent extends OrbitComponent {\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n if(!this.services.device.isMobile) {\r\n this.services.lobbyGameInfoPreview.enableGamePreview();\r\n }\r\n\r\n }\r\n\r\n componentWillUnmount() {\r\n super.componentWillUnmount();\r\n if(!this.services.device.isMobile) {\r\n this.services.lobbyGameInfoPreview.disableGamePreview();\r\n }\r\n }\r\n\r\n\r\n render() {\r\n if (this.services.device.isMobile) {\r\n return null;\r\n }\r\n\r\n let enabledOnPC = this.services.configuration.data.generalSettings?.gamesPreviewConfig?.enabledOnPC;\r\n if(Check.isNullOrUndefined(enabledOnPC)) {\r\n enabledOnPC = true;\r\n }\r\n\r\n if(!enabledOnPC) {\r\n return null;\r\n }\r\n\r\n if (this.services.lobbyGameInfoPreview.currentPreviewedGame) {\r\n return ();\r\n } else {\r\n return ();\r\n }\r\n }\r\n\r\n}\r\n","export const ARENA_TYPES = {\r\n WIDE_ARENA: \"wide-arena\"\r\n};\r\n\r\n","import React from 'react';\r\nimport classNames from \"classnames\";\r\nimport {\r\n ArenaConfiguration,\r\n} from '../../../services/configurations/config-data-sections/arenas.configuration';\r\nimport {TopImageComponent} from '../../top-image/top-image.component';\r\nimport {LobbyHeaderComponent} from '../../lobby-header/lobby-header.component';\r\nimport {PcGameInfoPreviewComponent} from '../../lobby-game-info-preview/pc-game-info-preview/pc-game-info-preview.component';\r\nimport {observer} from 'mobx-react';\r\nimport {SeoBreadCrumbsComponent} from '../seo-bread-crumbs/seo-bread-crumbs.component';\r\nimport {IStickyHandler} from \"../../sticky-handler/sticky-handler.interface\";\r\nimport {ARENA_TYPES} from \"./casino-arena.template-types\";\r\nimport {LOBBY_PAGE} from '../../../themes/css-global-classes';\r\nimport {LobbyWrapperBox} from \"../../../basic-components/lobby-wrapper/lobby-wrapper.box\";\r\nimport {LobbyGridBox} from \"../../../basic-components/lobby-grid/lobby-grid.box\";\r\nimport {LinkToOfferComponent} from \"../../link-to-offer/link-to-offer.component\";\r\nimport {OrbitComponent} from \"../../base-components/orbit-component/orbit-component\";\r\nimport {ArenaGamesListsComponent} from \"../../arena-games-lists/arena-games-lists.component\";\r\nimport {DailyDealComponent} from \"../../daily-deal/daily-deal.component\";\r\nimport {FreeToPlayAnimatedIconComponent} from '../../free-to-play-animated-icon/free-to-play-animated-icon.component';\r\n\r\n\r\nexport interface LobbyArenaComponentProps {\r\n arenaName: string;\r\n}\r\n\r\n@observer\r\nexport class CasinoArenaComponent extends OrbitComponent {\r\n\r\n private _stickyHandler: IStickyHandler;\r\n\r\n private get stickyHandler(): IStickyHandler {\r\n if (!this._stickyHandler) {\r\n this._stickyHandler = this.services.stickyHandlerFactory.createStickyHandler();\r\n }\r\n return this._stickyHandler;\r\n }\r\n\r\n componentWillUnmount() {\r\n super.componentWillUnmount();\r\n this.services.dom.body.classList.remove(LOBBY_PAGE);\r\n this.stickyHandler.dispose();\r\n }\r\n\r\n private get config(): ArenaConfiguration {\r\n return this.services.arenas.getArenaConfig(this.props.arenaName);\r\n }\r\n\r\n\r\n private _renderLinkToOffer() {\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n\r\n\r\n render() {\r\n\r\n let sideBarInfo = {\r\n title: \"\",\r\n description: \"\",\r\n previewImage: \"\"\r\n };\r\n\r\n if (this.config.infoSideBar) {\r\n sideBarInfo = {\r\n title: this.config.infoSideBar.infoTitle,\r\n description: this.config.infoSideBar.infoText,\r\n previewImage: this.config.infoSideBar.infoImage\r\n };\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {\r\n (this.config.arenaType !== ARENA_TYPES.WIDE_ARENA) && \r\n }\r\n {this._renderLinkToOffer()}\r\n \r\n \r\n\r\n \r\n \r\n );\r\n }\r\n}","import {ArenaFiltersConfigurationMap} from \"./arenas/arena-view-model.interface\";\r\nimport {NullableUndefined} from \"../../../../common/types/nullable-types\";\r\n\r\nexport function filtersConfigurationToMap(filtersConfiguration: NullableUndefined): ArenaFiltersConfigurationMap {\r\n return (filtersConfiguration ?? []).toDictionary(filterId => filterId, \r\n (filterId, index) => {\r\n return {\r\n filterId: filterId,\r\n index: index\r\n }\r\n });\r\n }\r\n","import {GameInfo} from \"../../games/game-info\";\r\n\r\nexport enum ApplyGameFilterResult {\r\n IncludeGame,\r\n ExcludeGame,\r\n NotApplicable\r\n}\r\n\r\nexport interface IGameFilterEvaluator {\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult;\r\n}","import React from 'react';\r\nimport {DisposableObject} from \"../../../../utils/disposable-object\";\r\nimport {IGamesFilterStrategy} from \"./games-filter-strategy.interface\";\r\nimport {GameInfo} from \"../../games/game-info\";\r\nimport {computed, observable, runInAction} from \"mobx\";\r\nimport {IServiceFactoryExtended} from \"../../service-factory-extended.interface\";\r\nimport {Nullable} from \"../../../../common/types/nullable-types\";\r\nimport {GamesMap} from \"../../games/games.service.interface\";\r\nimport {IArenaGameFiltersCategory} from \"../arena-filters/categories/arena-game-filters-category.interface\";\r\nimport {IArenaGameFilter} from \"../arena-filters/filters/arena-game-filter.interface\";\r\nimport {ApplyGameFilterResult, IGameFilterEvaluator} from \"../evaluators/game-filter-evaluator.interface\";\r\nimport {IPcFilterIndicatorRenderingOptions} from \"../games-filter.service.interface\";\r\nimport {Check} from \"@sparkware/app-utils\";\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 if(this.services.gamesFilter.isFilterOn && !Check.isEmpty(this.services.games.gamesMap)) {\r\n this._reportApplyFiltersAnalytics();\r\n }\r\n });\r\n });\r\n\r\n }, {\r\n fireImmediately: true\r\n });\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 protected abstract _reportApplyFiltersAnalytics(): void;\r\n\r\n abstract showFiltersEditor(): void;\r\n protected abstract _createEvaluator(): IGameFilterEvaluator | null;\r\n\r\n @observable.ref\r\n filteredGamesMap: Record = {};\r\n\r\n private _filtersCategories: Nullable = null;\r\n protected get filtersCategories(): IArenaGameFiltersCategory[] {\r\n if(!this._filtersCategories) {\r\n this._filtersCategories = this._createFiltersCategories();\r\n }\r\n return this._filtersCategories;\r\n }\r\n\r\n\r\n @computed public get currentFilters(): IArenaGameFilter[] {\r\n const result: IArenaGameFilter[] = [];\r\n this.filtersCategories.forEach(category => {\r\n category.availableFilters.forEach(f => result.push(f));\r\n });\r\n\r\n return result;\r\n }\r\n\r\n get isFilteringAvailable(): boolean {\r\n return this.currentFilters.length > 0;\r\n }\r\n\r\n protected _filterGames(): GamesMap {\r\n\r\n const gamesMap = this.services.games.gamesMap;\r\n\r\n if(!this.currentFilters.some(f => f.isApplied)) {\r\n return gamesMap;\r\n }\r\n\r\n const evaluator = this._createEvaluator();\r\n\r\n const result: GamesMap = {};\r\n\r\n for(let game of Object.values(this.services.games.gamesMap)) {\r\n const filterResult = evaluator.applyFilter(game);\r\n if(ApplyGameFilterResult.IncludeGame === filterResult) {\r\n result[game.gameType] = game;\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n\r\n}","import styled from \"styled-components\";\r\n\r\nexport const ContainerBox = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n flex-grow: 1;\r\n width: 100%;\r\n padding: 10px;\r\n user-select: none;\r\n overflow-y: auto;\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const FilterCategoryBox = styled.div` \r\n padding: 2rem 0;\r\n border-bottom: 1px solid ${props => props.theme.colors.boxBorderLighter};\r\n box-sizing: border-box;\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const FilterCategoryContentBox = styled.div`\r\n display: block;\r\n transition: all 0.2s ease-in;\r\n overflow: hidden;\r\n height: 100%;\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const FilterItemBox = styled.div<{disabled: boolean}>`\r\n display: flex;\r\n align-items: center;\r\n padding: 1.5rem;\r\n cursor: ${props => props.disabled ? \"auto\" : \"pointer\"};\r\n`","import styled, {css} from \"styled-components\";\r\n\r\nexport const InputBox = styled.input<{disabled: boolean}>`\r\n appearance: none;\r\n position: relative;\r\n height: 1.8rem;\r\n width: 1.8rem;\r\n cursor: ${props => props.disabled ? \"auto\" : \"pointer\"};\r\n \r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n background-color: ${props => props.theme.colors.background};\r\n border: 1px solid ${props => props.theme.colors.boxBorderContrast};\r\n border-radius: 0.5rem;\r\n \r\n &:checked {\r\n background-color: ${props => props.theme.colors.brandPrimary};\r\n \r\n &:after {\r\n content: '\\\\2713';\r\n display: block;\r\n height: 100%;\r\n font-size: 13px;\r\n line-height: 1.8rem;\r\n color: ${props => props.theme.colors.background};\r\n font-weight: bold; \r\n }\r\n }\r\n \r\n ${props => props.type === 'radio' && css` border-radius: 10px; ` } \r\n`;","import styled, {css} from \"styled-components\";\r\n\r\nexport const FilterItemTitleBox = styled.span<{isChecked: boolean}>`\r\n margin-left: 2em;\r\n font-size: 1.5rem;\r\n ${({theme}) => theme.font.presets.medium};\r\n color: ${props => props.theme.colors.text};\r\n ${props => props.isChecked ? css`color: ${props => props.theme.colors.brandPrimary};` : ''}\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const SubFiltersBox = styled.div`\r\n margin-left: 5rem;\r\n`","import styled from \"styled-components\";\r\n\r\nexport const FilterItemContainerBox = styled.div<{disabled: boolean}>`\r\n display: flex;\r\n flex-direction: column;\r\n opacity: ${props => props.disabled ? \"0.5\" : \"1\"};\r\n`\r\n","import React from 'react';\r\nimport {OrbitComponent} from \"../../../base-components/orbit-component/orbit-component\";\r\nimport {FilterItemBox} from \"./boxes/filter-Item.box\";\r\nimport {InputBox} from \"./boxes/input.box\";\r\nimport {FilterItemTitleBox} from \"./boxes/filter-item-title.box\";\r\nimport {\r\n IArenaGameFilterEditorViewModel\r\n} from \"../../../../services/games-filter/arena-filters/filters/arena-game-filter-editor-view-model.interface\";\r\nimport {observer} from \"mobx-react\";\r\nimport {SubFiltersBox} from \"./boxes/sub-filters.box\";\r\nimport {FilterItemContainerBox} from \"./boxes/filter-item-container.box\";\r\n\r\nexport type FilterInputType = 'checkbox' | 'radio';\r\n\r\ninterface FilterCategoryItemComponentProps {\r\n inputType: FilterInputType;\r\n filter: IArenaGameFilterEditorViewModel;\r\n filterCategoryId: string;\r\n}\r\n\r\n@observer\r\nexport class FilterCategoryItemComponent extends OrbitComponent {\r\n\r\n private _onFilterToggle = () => {\r\n if (this.props.filter.disabled) {\r\n return;\r\n }\r\n this.props.filter.toggleFilter();\r\n }\r\n\r\n private _renderSubFilters() {\r\n const subFilters = this.props.filter.subFilters;\r\n if(subFilters.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {subFilters.map(sf => ())}\r\n \r\n )\r\n }\r\n\r\n render() {\r\n const filter = this.props.filter;\r\n const inputType = this.props.inputType;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {filter.text}\r\n {filter.gamesCount > 0 && ` (${filter.gamesCount})`}\r\n \r\n \r\n {this._renderSubFilters()}\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 {\r\n IArenaGameFiltersCategoryEditorViewModel\r\n} from \"../../../../services/games-filter/arena-filters/categories/arena-game-filters-category-editor-view-model.interface\";\r\nimport {FilterCategoryContentBox} from \"./boxes/filter-category-content.box\";\r\nimport {observer} from \"mobx-react\";\r\nimport {FilterCategoryItemComponent} from \"./filter-category-item.component\";\r\n\r\ninterface FilterCategoryContentComponentProps {\r\n category: IArenaGameFiltersCategoryEditorViewModel;\r\n isOpen: boolean;\r\n}\r\n\r\n\r\n@observer\r\nexport class FilterCategoryContentComponent extends OrbitComponent {\r\n\r\n _renderFilters(category: IArenaGameFiltersCategoryEditorViewModel) {\r\n\r\n\r\n return <>\r\n {category.visibleFilters.map(filterToRender => ())}\r\n ;\r\n }\r\n\r\n render() {\r\n if(!this.props.isOpen) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {this._renderFilters(this.props.category)}\r\n \r\n )\r\n }\r\n}","import styled from \"styled-components\";\r\n\r\nexport const TitleContainerBox = styled.div`\r\n cursor: pointer;\r\n`;","import styled, {css} from \"styled-components\";\r\n\r\nexport const TitleBox = styled.div<{isOpen: boolean}>`\r\n position: relative;\r\n font-size: 15px;\r\n ${({theme}) => theme.font.presets.bold};\r\n color: ${props => props.theme.colors.textLight};\r\n text-transform: uppercase;\r\n display: flex;\r\n align-items: center;\r\n\r\n /* Title V sign */\r\n &:after {\r\n content: \" \";\r\n display: inline-block;\r\n\r\n border: solid ${props => props.theme.colors.backgroundContrast};\r\n border-width: 0 2px 2px 0;\r\n\r\n padding: 3px;\r\n transform: rotate(45deg);\r\n\r\n position: absolute;\r\n right: 0;\r\n\r\n ${props => props.isOpen && css`\r\n transform: rotate(225deg);\r\n `}\r\n }\r\n`;","import styled, {css} from \"styled-components\";\r\n\r\ninterface IGroupFiltersListGroupTitleActivePreviewBoxProps {\r\n isVisible: boolean;\r\n}\r\n\r\nexport const PreviewBox = styled.span`\r\n\r\n @keyframes introAnimation {\r\n 0% {\r\n opacity: 0;\r\n max-height: 0;\r\n }\r\n 50% {\r\n opacity: 0;\r\n max-height: 20px;\r\n }\r\n 100% {\r\n opacity: 1;\r\n max-height: 20px;\r\n }\r\n }\r\n\r\n display: block;\r\n opacity: 0;\r\n font-size: 11px;\r\n color: ${props => props.theme.colors.brandPrimary};\r\n ${({theme}) => theme.font.presets.regular};\r\n text-transform: capitalize;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n width: 100%;\r\n max-height: 0;\r\n\r\n ${props => props.isVisible && css`\r\n animation: 0.1s introAnimation 0.2s ease-in forwards;\r\n `}\r\n`;","import React from 'react';\r\nimport {OrbitComponent} from \"../../../base-components/orbit-component/orbit-component\";\r\nimport {TitleContainerBox} from \"./boxes/title-container.box\";\r\nimport {TitleBox} from \"./boxes/title.box\";\r\nimport {PreviewBox} from \"./boxes/preview.box\";\r\nimport {\r\n IArenaGameFiltersCategoryEditorViewModel\r\n} from \"../../../../services/games-filter/arena-filters/categories/arena-game-filters-category-editor-view-model.interface\";\r\nimport {observer} from \"mobx-react\";\r\n\r\ninterface FilterCategoryHeaderComponentProps {\r\n category: IArenaGameFiltersCategoryEditorViewModel;\r\n isOpen: boolean;\r\n onCategoryToggle: (category: IArenaGameFiltersCategoryEditorViewModel) => void;\r\n}\r\n\r\n\r\n@observer\r\nexport class FilterCategoryHeaderComponent extends OrbitComponent {\r\n private _onClickHandler = () => {\r\n this.props.onCategoryToggle(this.props.category);\r\n }\r\n\r\n\r\n render() {\r\n const activeFiltersTexts = this.props.category.getVisibleAppliedFilters().map(f => f.text);\r\n return (\r\n \r\n \r\n {this.props.category.title}\r\n \r\n\r\n 0}>\r\n {activeFiltersTexts.join(', ')}\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 {IArenaGameFiltersCategoryEditorViewModel} from '../../../../services/games-filter/arena-filters/categories/arena-game-filters-category-editor-view-model.interface';\r\nimport {observer} from 'mobx-react';\r\nimport {FilterCategoryBox} from \"./boxes/filter-category.box\";\r\nimport {FilterCategoryContentComponent} from \"./filter-category-content.component\";\r\nimport {FilterCategoryHeaderComponent} from \"./filter-category-header.component\";\r\n\r\ninterface IFilterCategoryComponentProps {\r\n category: IArenaGameFiltersCategoryEditorViewModel;\r\n onCategoryToggle: (category: IArenaGameFiltersCategoryEditorViewModel) => void;\r\n isOpen: boolean;\r\n}\r\n\r\n@observer\r\nexport class FilterCategoryComponent extends OrbitComponent {\r\n\r\n render() {\r\n const {category, isOpen} = this.props;\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 {OrbitComponentWithState} from '../../../base-components/orbit-component-with-state/orbit-component-with-state';\r\nimport {ContainerBox} from \"./boxes/container.box\";\r\nimport {FilterCategoryComponent} from '../filter-category/filter-category.component';\r\nimport {IAdvancedStrategyFiltersEditorViewModel} from '../../../../services/games-filter/strategies/advanced-filter/advanced-strategy-filters-editor-view-model.interface';\r\nimport {IArenaGameFiltersCategoryEditorViewModel} from '../../../../services/games-filter/arena-filters/categories/arena-game-filters-category-editor-view-model.interface';\r\nimport {observer} from 'mobx-react';\r\n\r\nexport interface IFilterCategoriesListComponentProps {\r\n filtersEditor: IAdvancedStrategyFiltersEditorViewModel;\r\n}\r\n\r\ninterface IFilterCategoriesListComponentState {\r\n openFilterCategory: IArenaGameFiltersCategoryEditorViewModel | null;\r\n}\r\n\r\n@observer\r\nexport class FilterCategoriesListComponent extends OrbitComponentWithState {\r\n\r\n state: IFilterCategoriesListComponentState = {\r\n openFilterCategory: null\r\n }\r\n\r\n _onCategoryToggle = (category: IArenaGameFiltersCategoryEditorViewModel) => {\r\n let openFilterCategoryState = this.state.openFilterCategory;\r\n\r\n // if user clicked on new category emulate close current category first\r\n if (openFilterCategoryState && category.id !== openFilterCategoryState.id) {\r\n openFilterCategoryState = null;\r\n }\r\n\r\n this.setState({openFilterCategory: openFilterCategoryState ? null : category});\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n \r\n\r\n\r\n {this.props.filtersEditor.visibleCategories.map(category => ())}\r\n \r\n )\r\n }\r\n}","import styled from \"styled-components\";\r\n\r\nexport const AdvancedGamesFilterBox = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n height: 100%;\r\n background-color: ${props => props.theme.colors.backgroundLight};\r\n color: ${props => props.theme.colors.text};\r\n`\r\n\r\n","import styled from \"styled-components\";\r\n\r\nexport const AdvancedGamesFilterFooterBox = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: space-around;\r\n padding: 2rem;\r\n \r\n`","import styled from \"styled-components\";\r\n\r\nexport const AdvancedGamesFilterHeaderBox = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: flex-start;\r\n width: 100%;\r\n padding: 6px;\r\n`","import styled from \"styled-components\";\r\nimport {XCloseButtonBox} from \"../../../../basic-ui-components/x-close-button/x-close-button.box\";\r\n\r\nexport const AdvancedGamesFilterCloseButtonBox = styled(XCloseButtonBox)`\r\n width: 20px;\r\n height: 20px;\r\n`","import styled from \"styled-components\";\r\nimport {Button} from \"../../../../basic-ui-components/button/base/button.component\";\r\n\r\nexport const AdvancedGamesFilterButtonBox = styled(Button)`\r\n min-width: 140px;\r\n`","import styled from \"styled-components\";\r\n\r\nexport const FilterByBox = styled.div`\r\n font-size: ${props => props.theme.font.size.large};\r\n flex-grow: 1;\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 {FilterCategoriesListComponent} from './filter-categories-list/filter-categories-list.component';\r\nimport {AdvancedGamesFilterBox} from \"./boxes/advanced-games-filter.box\";\r\nimport {AdvancedGamesFilterFooterBox} from \"./boxes/advanced-games-filter-footer.box\";\r\nimport {AdvancedGamesFilterHeaderBox} from \"./boxes/advanced-games-filter-header.box\";\r\nimport {AdvancedGamesFilterCloseButtonBox} from \"./boxes/advanced-games-filter-close-button.box\";\r\nimport {AdvancedGamesFilterButtonBox} from \"./boxes/advanced-games-filter-button.box\";\r\nimport {FilterByBox} from \"./filter-categories-list/boxes/filter-by.box\";\r\nimport {\r\n AdvancedFiltersAnalytics\r\n} from \"../../../services/games-filter/strategies/advanced-filter/advanced-filters-analytics\";\r\nimport {CyClass} from \"../../../../common/cy-classes\";\r\n\r\n\r\ninterface AdvancedGamesFilterComponentProps {\r\n filtersEditor: IAdvancedStrategyFiltersEditorViewModel;\r\n}\r\n\r\n@observer\r\nexport class AdvancedGamesFilterComponent extends OrbitComponent {\r\n\r\n private _onApply = async () => {\r\n await this.props.filtersEditor.applyFilters();\r\n this.services.drawer.right.back();\r\n }\r\n\r\n private _onCancel = () => {\r\n this.services.drawer.right.back();\r\n this.analyticsReporter.reportCloseFilters();\r\n }\r\n\r\n private _onClearAll = async () => {\r\n await this.services.gamesFilter.clearFilters();\r\n this.services.drawer.right.back();\r\n this.analyticsReporter.reportClearFilters();\r\n }\r\n\r\n\r\n private get analyticsReporter(): AdvancedFiltersAnalytics {\r\n return this.props.filtersEditor.analyticsReporter;\r\n }\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n this.analyticsReporter.reportOpenFilters();\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n {this.services.translation.translate('FILTER_BY')}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {this.services.translation.translate('APPLY')}\r\n \r\n \r\n {this.services.translation.translate('CLEAR_ALL')}\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\nimport {NullableNumber} from \"../../../../../common/types/nullable-types\";\r\nimport {ArenaGameFiltersCategoryEditor} from \"../categories/arena-game-filters-category-editor\";\r\n\r\nexport class ArenaGameFilterEditor implements IArenaGameFilterEditorViewModel {\r\n constructor(protected readonly arenaGameFilter: IArenaGameFilter,\r\n protected readonly categoryEditor?: ArenaGameFiltersCategoryEditor) {\r\n this._on = arenaGameFilter.isApplied;\r\n }\r\n\r\n get id(): string {\r\n return this.arenaGameFilter.id;\r\n }\r\n\r\n get text(): string {\r\n return this.arenaGameFilter.text;\r\n }\r\n\r\n @observable.ref\r\n protected _on: boolean = false;\r\n get on(): boolean {\r\n return this._on;\r\n }\r\n\r\n set on(value: boolean) {\r\n this._setOn(value);\r\n }\r\n\r\n protected _resetOtherFiltersInTheCategory(): void {\r\n this.categoryEditor.visibleFilters.forEach(f => {\r\n if(f.id !== this.id) {\r\n f.on = false;\r\n }\r\n })\r\n }\r\n\r\n protected _setOn(value: boolean): void {\r\n\r\n if(value && this.categoryEditor && !this.categoryEditor.isMultiSelect) {\r\n this._resetOtherFiltersInTheCategory();\r\n }\r\n\r\n runInAction(() => this._on = value);\r\n }\r\n\r\n get disabled(): boolean {\r\n return false;\r\n }\r\n\r\n @action.bound\r\n toggleFilter(): void {\r\n this.on = !this.on;\r\n }\r\n\r\n get shouldBeDisplayed(): boolean {\r\n return !this.arenaGameFilter.isAdhocFilter;\r\n }\r\n\r\n get gamesCount(): NullableNumber {\r\n return this.arenaGameFilter.gamesCount;\r\n }\r\n\r\n\r\n private _subFilters: ArenaGameSubFilterEditor[] | null = null;\r\n get subFilters(): ArenaGameSubFilterEditor[] {\r\n if(!this._subFilters) {\r\n this._subFilters = this.arenaGameFilter.subFilters.map(sf => new ArenaGameSubFilterEditor(this, sf));\r\n }\r\n return this._subFilters;\r\n }\r\n}\r\n\r\n\r\nexport class ArenaGameSubFilterEditor extends ArenaGameFilterEditor {\r\n constructor(private readonly parent: ArenaGameFilterEditor,\r\n arenaGameFilter: IArenaGameFilter) {\r\n super(arenaGameFilter)\r\n }\r\n\r\n get on(): boolean {\r\n return this._on && this.parent.on;\r\n }\r\n\r\n set on(value: boolean) {\r\n this._setOn(value);\r\n }\r\n\r\n get disabled(): boolean {\r\n return !this.parent.on;\r\n }\r\n}","import {ArenaGameFilterEditor} from \"../filters/arena-game-filter-editor\";\r\nimport {IArenaGameFiltersCategoryEditorViewModel} from \"./arena-game-filters-category-editor-view-model.interface\";\r\nimport {IArenaGameFiltersCategory} from \"./arena-game-filters-category.interface\";\r\nimport {computed} from \"mobx\";\r\nimport {NullableNumber} from \"../../../../../common/types/nullable-types\";\r\nimport {IArenaGameFilterEditorViewModel} from \"../filters/arena-game-filter-editor-view-model.interface\";\r\nimport {CategoryDefinitionId} from \"../../filters-categories-definitions/filter-category-definition.interface\";\r\n\r\nexport class ArenaGameFiltersCategoryEditor implements IArenaGameFiltersCategoryEditorViewModel {\r\n constructor(private readonly arenaGameFilterCategory: IArenaGameFiltersCategory) {\r\n this._filters = arenaGameFilterCategory.availableFilters.map(f => new ArenaGameFilterEditor(f, this));\r\n }\r\n\r\n private readonly _filters: ArenaGameFilterEditor[];\r\n @computed\r\n get visibleFilters(): ArenaGameFilterEditor[] {\r\n return this._filters.filter(f => f.shouldBeDisplayed);\r\n }\r\n\r\n get id(): CategoryDefinitionId {\r\n return this.arenaGameFilterCategory.id;\r\n }\r\n\r\n get title(): string {\r\n return this.arenaGameFilterCategory.title;\r\n }\r\n\r\n getAppliedFiltersIds(): string[] {\r\n return this._getAllAppliedFilters().map(f => f.id);\r\n }\r\n\r\n get gamesCount(): NullableNumber {\r\n return this.arenaGameFilterCategory.gamesCount;\r\n }\r\n\r\n get isMultiSelect(): boolean {\r\n return this.arenaGameFilterCategory.isMultiSelect;\r\n }\r\n\r\n private _getAllAppliedFilters(): ArenaGameFilterEditor[] {\r\n const result: ArenaGameFilterEditor[] = [];\r\n\r\n for(let filter of this._filters) {\r\n if(filter.on) {\r\n result.push(filter);\r\n for(let subFilter of filter.subFilters) {\r\n if(subFilter.on) {\r\n result.push(subFilter)\r\n }\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n\r\n getVisibleAppliedFilters(): IArenaGameFilterEditorViewModel[] {\r\n return this._getAllAppliedFilters().filter(f => f.shouldBeDisplayed);\r\n }\r\n\r\n}","import {\r\n IElasticEventData\r\n} from \"../../../../../common/interfaces/structured-logging-service-interface\";\r\nimport {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\n\r\nconst EVENT_NAME = 'Orbit_User_Flow'\r\n\r\ninterface IReportApplyFiltersParams {\r\n appliedFilters: Record; // the key is the filters category and the value is an array of applied filters from that category\r\n gamesCount: number;\r\n}\r\n\r\ninterface IFilterEventData {\r\n action: string;\r\n actionData?: string;\r\n}\r\n\r\nexport class AdvancedFiltersAnalytics {\r\n constructor(private readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n private _sendEvent(filterEventData: IFilterEventData): void {\r\n\r\n let location = this.services.location.currentUri.pathName.toString()\r\n if(location !== '/' && location.endsWith('/')) {\r\n location = location.substr(0, location.length - 1)\r\n }\r\n\r\n const eventData: IElasticEventData = {\r\n [EVENT_NAME]: {\r\n location: location,\r\n category: 'advanced-filters',\r\n action: filterEventData.action,\r\n }\r\n }\r\n\r\n if(filterEventData.actionData) {\r\n eventData[EVENT_NAME].actionData = filterEventData.actionData;\r\n }\r\n\r\n this.services.analytics.getLogger(eventData)\r\n .setEventType(EVENT_NAME, 'Log', 'Analytics')\r\n .info();\r\n\r\n }\r\n\r\n\r\n reportOpenFilters(): void {\r\n this._sendEvent({\r\n action: 'open'\r\n });\r\n }\r\n\r\n reportCloseFilters(): void {\r\n this._sendEvent({\r\n action: 'close'\r\n });\r\n }\r\n\r\n reportClearFilters(): void {\r\n this._sendEvent({\r\n action: 'clear'\r\n });\r\n }\r\n\r\n reportApplyFilters(params: IReportApplyFiltersParams): void {\r\n this._sendEvent({\r\n action: 'apply',\r\n actionData: JSON.stringify(params)\r\n });\r\n }\r\n}","import {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {ArenaGameFiltersCategoryEditor} from \"../../arena-filters/categories/arena-game-filters-category-editor\";\r\nimport {IAdvancedStrategyFiltersEditorViewModel} from \"./advanced-strategy-filters-editor-view-model.interface\";\r\nimport {IArenaGameFiltersCategory} from \"../../arena-filters/categories/arena-game-filters-category.interface\";\r\nimport {AdvancedFiltersAnalytics} from \"./advanced-filters-analytics\";\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 this.analyticsReporter = new AdvancedFiltersAnalytics(this.services);\r\n }\r\n\r\n readonly analyticsReporter: AdvancedFiltersAnalytics;\r\n\r\n private _categories: ArenaGameFiltersCategoryEditor[];\r\n get visibleCategories(): ArenaGameFiltersCategoryEditor[] {\r\n return this._categories.filter(c => c.visibleFilters.length > 0);\r\n }\r\n\r\n private _getAppliedFiltersIds(): string[] {\r\n let result: string[] = [];\r\n\r\n this._categories.forEach(c => {\r\n result = [\r\n ...result,\r\n ...c.getAppliedFiltersIds()\r\n ];\r\n\r\n });\r\n return result;\r\n }\r\n\r\n async applyFilters(): Promise {\r\n await this.services.gamesFilter.applyFilters(this._getAppliedFiltersIds());\r\n }\r\n}","import {ApplyGameFilterResult, IGameFilterEvaluator} from \"./game-filter-evaluator.interface\";\r\nimport {GameInfo} from \"../../games/game-info\";\r\n\r\nexport class AndGameFiltersEvaluator implements IGameFilterEvaluator {\r\n constructor(...evaluators: IGameFilterEvaluator[]) {\r\n this._evaluators = evaluators;\r\n }\r\n\r\n private readonly _evaluators: IGameFilterEvaluator[];\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n let result = ApplyGameFilterResult.NotApplicable;\r\n for(let evaluator of this._evaluators) {\r\n const r = evaluator.applyFilter(gameInfo);\r\n if(r === ApplyGameFilterResult.ExcludeGame) {\r\n return r;\r\n } else if(r !== ApplyGameFilterResult.NotApplicable) {\r\n result = r;\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n\r\nexport function AND(...evaluators: IGameFilterEvaluator[]): IGameFilterEvaluator {\r\n return new AndGameFiltersEvaluator(...evaluators);\r\n}","import styled from \"styled-components\";\r\nimport {ACTIVE} from \"../../../../../themes/css-global-classes\";\r\n\r\nexport const FiltersMobileButtonDefaultBox = styled.a`\r\n position: relative;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 3.4rem;\r\n height: 3.4rem;\r\n border: 1px solid ${props => props.theme.colors.boxBorderContrast};\r\n border-radius: 50%;\r\n margin: 0 0.5rem;\r\n\r\n &.${ACTIVE} {\r\n &:after {\r\n content: \"\";\r\n position: absolute;\r\n top: -0.25rem;\r\n right: -0.25rem;\r\n width: 1rem;\r\n height: 1rem;\r\n background: ${props => props.theme.colors.danger};\r\n border-radius: 50%;\r\n }\r\n }\r\n\r\n`;","import styled from \"styled-components\";\r\nimport {FiltersMobileButtonDefaultBox} from \"./filters-mobile-button.default.box\";\r\nimport {ACTIVE} from \"../../../../../themes/css-global-classes\";\r\n\r\nexport const FiltersMobileButtonCasino777Box = styled(FiltersMobileButtonDefaultBox)`\r\n border: 2px solid ${props => props.theme.colors.boxBorderContrast};\r\n border-radius: 5px;\r\n \r\n &.${ACTIVE} {\r\n &:after {\r\n top: -0.5rem;\r\n right: -0.5rem;\r\n }\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {FiltersMobileButtonDefaultBox} from \"./filters-mobile-button.default.box\";\r\n\r\nexport const FiltersMobileButtonMrGreenBox = styled(FiltersMobileButtonDefaultBox)`\r\n border: 1px solid ${props => props.theme.colors.brandSecondaryLight};\r\n box-shadow: 0px 0px 3px #222223, 0px 0px 0px #222223, inset 0px 0px 10px rgba(255, 255, 255, 0.1), inset 0px 0px 1px #1F5331;\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\nimport {FiltersMobileButtonMrGreenBox} from \"./filters-mobile-button.mrgreen.box\";\r\n\r\nexport const FiltersMobileButtonBox = styledByTheme(FiltersMobileButtonDefaultBox)\r\n .forCasino777(FiltersMobileButtonCasino777Box)\r\n .forMrGreen(FiltersMobileButtonMrGreenBox).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 styled from \"styled-components\";\r\n\r\nexport const AppliedFilterIndicatorBox = styled.span`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n border: 1px solid ${props => props.theme.colors.boxBorderContrast};\r\n border-radius: 20px;\r\n padding: 0 10px;\r\n`","import styled from \"styled-components\";\r\n\r\nexport const AppliedFiltersBox = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n`","import styled from \"styled-components\";\r\nimport {XCloseButtonBox} from \"../../../../../../basic-ui-components/x-close-button/x-close-button.box\";\r\n\r\nexport const RemoveFilterButtonBox = styled(XCloseButtonBox)`\r\n width: 14px;\r\n height: 14px;\r\n`","import styled from \"styled-components\";\r\n\r\nexport const AppliedFilterNameBox = styled.span`\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 {\r\n IAdvancedStrategyFiltersEditorViewModel\r\n} from \"../../../../../services/games-filter/strategies/advanced-filter/advanced-strategy-filters-editor-view-model.interface\";\r\nimport {\r\n IArenaGameFilterEditorViewModel\r\n} from \"../../../../../services/games-filter/arena-filters/filters/arena-game-filter-editor-view-model.interface\";\r\nimport {IndicatorContainerBox} from \"../../boxes/indicator-container.box\";\r\nimport {BlankHorizontalSeparatorBox} from \"../../../../../basic-components/blank-separator/blank-horizontal-separator.box\";\r\nimport {FiltersMobileButtonComponent} from \"../../../../header/top-header-left/filters/filters-mobile-button.component\";\r\nimport {AppliedFilterIndicatorBox} from \"./boxes/applied-filter-indicator.box\";\r\nimport {AppliedFiltersBox} from \"./boxes/applied-filters.box\";\r\nimport {RemoveFilterButtonBox} from \"./boxes/remove-filter-button.box\";\r\nimport {AppliedFilterNameBox} from \"./boxes/applied-filter-name.box\";\r\nimport {CyClass} from \"../../../../../../common/cy-classes\";\r\n\r\ninterface AdvancedGamesFilteringPcIndicatorComponentProps {\r\n filtersEditor: IAdvancedStrategyFiltersEditorViewModel;\r\n}\r\n@observer\r\nexport class AppliedFiltersPcIndicatorForAdvancedFilteringComponent extends OrbitComponent {\r\n\r\n\r\n private _onRemoveFilter = async (filter: IArenaGameFilterEditorViewModel) => {\r\n filter.on = false;\r\n await this.props.filtersEditor.applyFilters();\r\n }\r\n\r\n private _renderOneAppliedFilter(filter: IArenaGameFilterEditorViewModel) {\r\n return (\r\n
\r\n \r\n \r\n \r\n {filter.text}\r\n \r\n \r\n this._onRemoveFilter(filter)} className={CyClass('cy-remove-advanced-filter-x-button')}/>\r\n \r\n\r\n
\r\n\r\n )\r\n }\r\n\r\n private _getAppliedFilters(): IArenaGameFilterEditorViewModel[] {\r\n const filters: IArenaGameFilterEditorViewModel[] = [];\r\n this.props.filtersEditor.visibleCategories.forEach(category => {\r\n category.getVisibleAppliedFilters().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 return (\r\n \r\n {this._getAppliedFilters().map(filter => this._renderOneAppliedFilter(filter))}\r\n \r\n )\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n\r\n {this._renderAppliedFilters()}\r\n\r\n \r\n );\r\n }\r\n}","import {IArenaGameFiltersCategory} from \"./arena-game-filters-category.interface\";\r\nimport {\r\n CategoryDefinitionId,\r\n IFilterCategoryDefinition\r\n} from \"../../filters-categories-definitions/filter-category-definition.interface\";\r\nimport {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {computed} from \"mobx\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {IArenaGameFilter} from \"../filters/arena-game-filter.interface\";\r\nimport {NullableNumber} from \"../../../../../common/types/nullable-types\";\r\n\r\nexport abstract class ArenaGameFiltersCategoryBase implements IArenaGameFiltersCategory {\r\n constructor(protected readonly categoryDefinition: IFilterCategoryDefinition,\r\n protected readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n abstract get availableFilters(): IArenaGameFilter[];\r\n abstract get gamesCount(): NullableNumber;\r\n\r\n\r\n get id(): CategoryDefinitionId {\r\n return this.categoryDefinition.id;\r\n }\r\n\r\n get title(): string {\r\n return this.categoryDefinition.title;\r\n }\r\n\r\n get isMultiSelect(): boolean {\r\n return this.categoryDefinition.isMultiSelect;\r\n }\r\n\r\n @computed\r\n private get _appliedFilters(): IArenaGameFilter[] {\r\n return this.availableFilters.filter(f => f.isApplied);\r\n }\r\n\r\n @computed\r\n private get _appliedSubFilters(): IArenaGameFilter[] {\r\n return this.availableFilters.selectMany(f => f.subFilters.filter(sf => sf.isApplied));\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n\r\n const appliedFilters = this._appliedFilters;\r\n const appliedSubFilters = this._appliedSubFilters;\r\n\r\n if(appliedFilters.length === 0 && appliedSubFilters.length === 0) {\r\n return ApplyGameFilterResult.NotApplicable;\r\n }\r\n\r\n return this.categoryDefinition.applyFilters(gameInfo,\r\n appliedFilters.map(arenaFilter => arenaFilter.filterDefinition),\r\n appliedSubFilters.map(subFilter => subFilter.filterDefinition));\r\n }\r\n\r\n isGameIncludedInThisCategory(gameInfo: GameInfo): boolean {\r\n return this.availableFilters.some(f => f.applyFilter(gameInfo) === ApplyGameFilterResult.IncludeGame);\r\n }\r\n\r\n get allAppliedFiltersAndSubFilters(): IArenaGameFilter[] {\r\n return [\r\n ...this._appliedFilters,\r\n ...this._appliedSubFilters\r\n ];\r\n }\r\n\r\n}","import {IArenaGameFilter} from \"./arena-game-filter.interface\";\r\nimport {IGameFilterDefinition} from \"../../filters-definitions/game-filter-definition.interface\";\r\nimport {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {NullableNumber} from \"../../../../../common/types/nullable-types\";\r\n\r\nexport abstract class ArenaGameFilterBase implements IArenaGameFilter {\r\n constructor(public readonly filterDefinition: IGameFilterDefinition,\r\n protected readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n abstract get subFilters(): IArenaGameFilter[];\r\n\r\n readonly isAdhocFilter = false;\r\n\r\n\r\n get id(): string {\r\n return this.filterDefinition.id;\r\n }\r\n\r\n get text(): string {\r\n return this.filterDefinition.text;\r\n }\r\n\r\n\r\n get isApplied(): boolean {\r\n return this.services.gamesFilter.isFilterApplied(this.filterDefinition.id);\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n return this.filterDefinition.applyFilter(gameInfo);\r\n }\r\n\r\n get gamesCount(): NullableNumber {\r\n return null;\r\n }\r\n\r\n\r\n}","import {NullableNumber} from \"../../../../../common/types/nullable-types\";\r\nimport {computed} from \"mobx\";\r\nimport {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {ArenaGameFilterBase} from \"./arena-game-filter-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {IArenaGameFilter} from \"./arena-game-filter.interface\";\r\n\r\nexport class DynamicArenaGameFilter extends ArenaGameFilterBase {\r\n\r\n @computed\r\n get games(): GameInfo[] {\r\n const currentArenaGames = this.services.arenas.getCurrentArena().allArenaGamesForFiltering;\r\n return currentArenaGames.filter(gameInfo => this.filterDefinition.applyFilter(gameInfo) === ApplyGameFilterResult.IncludeGame)\r\n }\r\n\r\n get gamesCount(): NullableNumber {\r\n return this.games.length;\r\n }\r\n\r\n @computed\r\n get subFilters(): IArenaGameFilter[] {\r\n return this.filterDefinition.subFilters.map(sf => new DynamicArenaGameFilter(sf, this.services))\r\n .filter(f => f.gamesCount > 0)\r\n .sort((f1, f2) => f2.gamesCount - f1.gamesCount);\r\n }\r\n}","import {ArenaGameFiltersCategoryBase} from \"./arena-game-filters-category-base\";\r\nimport {computed} from \"mobx\";\r\nimport {DynamicArenaGameFilter} from \"../filters/dynamic-arena-game-filter\";\r\nimport {NullableNumber} from \"../../../../../common/types/nullable-types\";\r\nimport {IGameFilterDefinition} from \"../../filters-definitions/game-filter-definition.interface\";\r\n\r\n\r\nexport class DynamicArenaGameFiltersCategory extends ArenaGameFiltersCategoryBase {\r\n\r\n protected _createArenaGameFilter(filterDefinition: IGameFilterDefinition): DynamicArenaGameFilter {\r\n return new DynamicArenaGameFilter(filterDefinition, this.services);\r\n }\r\n\r\n /**\r\n * Restrict available filters to only those that have applicable games in the current arena\r\n */\r\n @computed\r\n get availableFilters(): DynamicArenaGameFilter[] {\r\n if(this.categoryDefinition.hasItsOwnFiltersOrder) {\r\n return this._getAvailableFilters();\r\n } else {\r\n return this._getAvailableFilters().sort((f1, f2) => f2.gamesCount - f1.gamesCount);\r\n }\r\n }\r\n\r\n protected _getAvailableFilters(): DynamicArenaGameFilter[]{\r\n return this.categoryDefinition.availableFilters\r\n .map(f => this._createArenaGameFilter(f))\r\n .filter(f => f.gamesCount > 0);\r\n }\r\n\r\n @computed\r\n get gamesCount(): NullableNumber {\r\n const uniqueGameTypes = new Set();\r\n this.availableFilters.forEach(f => {\r\n f.games.forEach(game => uniqueGameTypes.add(game.gameType))\r\n });\r\n return uniqueGameTypes.size;\r\n }\r\n\r\n}","import {ApplyGameFilterResult, IGameFilterEvaluator} from \"./game-filter-evaluator.interface\";\r\nimport {GameInfo} from \"../../games/game-info\";\r\n\r\nclass OrGameFiltersEvaluator implements IGameFilterEvaluator {\r\n constructor(...evaluators: IGameFilterEvaluator[]) {\r\n this._evaluators = evaluators;\r\n }\r\n\r\n private readonly _evaluators: IGameFilterEvaluator[];\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n let result: ApplyGameFilterResult = ApplyGameFilterResult.NotApplicable;\r\n for(let evaluator of this._evaluators) {\r\n const r = evaluator.applyFilter(gameInfo);\r\n if(r === ApplyGameFilterResult.IncludeGame) {\r\n return r;\r\n } else if(r !== ApplyGameFilterResult.NotApplicable) {\r\n result = r;\r\n }\r\n }\r\n return result;\r\n }\r\n}\r\n\r\nexport function OR(...evaluators: IGameFilterEvaluator[]): OrGameFiltersEvaluator {\r\n return new OrGameFiltersEvaluator(...evaluators);\r\n}","import {CategoryDefinitionId, IFilterCategoryDefinition} from \"./filter-category-definition.interface\";\r\nimport {GameInfo} from \"../../games/game-info\";\r\nimport {IGameFilterDefinition} from \"../filters-definitions/game-filter-definition.interface\";\r\nimport {ApplyGameFilterResult, IGameFilterEvaluator} from \"../evaluators/game-filter-evaluator.interface\";\r\nimport {OR} from \"../evaluators/or-game-filters-evaluator\";\r\nimport {IServiceFactoryExtended} from \"../../service-factory-extended.interface\";\r\nimport {AND} from \"../evaluators/and-game-filters-evaluator\";\r\n\r\nexport abstract class FilterCategoryDefinitionBase implements IFilterCategoryDefinition {\r\n constructor(protected readonly services: IServiceFactoryExtended) {\r\n this.availableFilters = this._loadAvailableFilters();\r\n }\r\n\r\n abstract get id(): CategoryDefinitionId;\r\n abstract get title(): string;\r\n protected abstract _loadAvailableFilters(): IGameFilterDefinition[];\r\n\r\n readonly availableFilters: IGameFilterDefinition[];\r\n\r\n get hasItsOwnFiltersOrder(): boolean {\r\n return false;\r\n }\r\n\r\n protected _getAppliedSubFiltersForFilter(filter: IGameFilterDefinition, appliedSubFilters: IGameFilterDefinition[]): IGameFilterDefinition[] {\r\n if(filter.subFilters.length === 0) {\r\n return [];\r\n }\r\n\r\n const result: IGameFilterDefinition[] = [];\r\n\r\n for(let appliedSubFilter of appliedSubFilters) {\r\n const subFilter = filter.subFilters.find(sf => sf.id === appliedSubFilter.id);\r\n if(subFilter) {\r\n result.push(subFilter);\r\n }\r\n }\r\n\r\n return result;\r\n\r\n }\r\n\r\n applyFilters(gameInfo: GameInfo, appliedFilters: IGameFilterDefinition[], appliedSubFilters: IGameFilterDefinition[]): ApplyGameFilterResult {\r\n\r\n const filterEvaluators: IGameFilterEvaluator[] = [];\r\n\r\n for(let filter of appliedFilters) {\r\n const appliedSubFiltersForCurrentFilter = this._getAppliedSubFiltersForFilter(filter, appliedSubFilters);\r\n if(appliedSubFiltersForCurrentFilter.length > 0) {\r\n filterEvaluators.push(AND(filter, OR(...appliedSubFiltersForCurrentFilter)));\r\n } else {\r\n filterEvaluators.push(filter)\r\n }\r\n }\r\n\r\n return OR(...filterEvaluators).applyFilter(gameInfo);\r\n }\r\n\r\n get isMultiSelect(): boolean {\r\n return true;\r\n }\r\n}","import {IGameFilterDefinition} from \"./game-filter-definition.interface\";\r\nimport {GameInfo} from \"../../games/game-info\";\r\nimport {ApplyGameFilterResult} from \"../evaluators/game-filter-evaluator.interface\";\r\nimport {IServiceFactoryExtended} from \"../../service-factory-extended.interface\";\r\n\r\nexport abstract class GameFilterDefinitionBase implements IGameFilterDefinition {\r\n constructor(protected readonly services: IServiceFactoryExtended) {\r\n }\r\n abstract get id(): string;\r\n abstract get text(): string;\r\n abstract applyFilter(gameInfo: GameInfo): ApplyGameFilterResult;\r\n get subFilters(): IGameFilterDefinition[] {\r\n return [];\r\n }\r\n\r\n}","import {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {GameFilterDefinitionBase} from \"../game-filter-definition-base\";\r\n\r\nexport class HighVolatilityFilterDefinition extends GameFilterDefinitionBase {\r\n get id(): string {\r\n return 'high-volatility';\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('HIGH_VOLATILITY');\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if(gameInfo.hasHighVolatility) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n}","import {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {GameFilterDefinitionBase} from \"../game-filter-definition-base\";\r\n\r\nexport class LowVolatilityFilterDefinition extends GameFilterDefinitionBase {\r\n get id(): string {\r\n return 'low-volatility';\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('LOW_VOLATILITY');\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if(gameInfo.hasLowVolatility) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n}","import {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {GameFilterDefinitionBase} from \"../game-filter-definition-base\";\r\n\r\nexport class MediumVolatilityFilterDefinition extends GameFilterDefinitionBase {\r\n get id(): string {\r\n return 'medium-volatility';\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('MEDIUM_VOLATILITY');\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if (gameInfo.hasMediumVolatility) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n \r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n}","import {FilterCategoryDefinitionBase} from \"./filter-category-definition-base\";\r\nimport {IGameFilterDefinition} from \"../filters-definitions/game-filter-definition.interface\";\r\nimport {HighVolatilityFilterDefinition} from \"../filters-definitions/volatility/high-volatility.filter-definition\";\r\nimport {LowVolatilityFilterDefinition} from \"../filters-definitions/volatility/low-volatility.filter-definition\";\r\nimport {MediumVolatilityFilterDefinition} from \"../filters-definitions/volatility/medium-volatility.filter-definition\";\r\nimport {CategoryDefinitionId} from \"./filter-category-definition.interface\";\r\n\r\nexport class VolatilityFiltersCategoryDefinition extends FilterCategoryDefinitionBase {\r\n get id(): CategoryDefinitionId {\r\n return 'volatility';\r\n }\r\n\r\n get title(): string{\r\n return this.services.translation.translate('VOLATILITY');\r\n }\r\n protected _loadAvailableFilters(): IGameFilterDefinition[] {\r\n return [\r\n new LowVolatilityFilterDefinition(this.services),\r\n new MediumVolatilityFilterDefinition(this.services),\r\n new HighVolatilityFilterDefinition(this.services)\r\n ];\r\n }\r\n\r\n get isMultiSelect(): boolean {\r\n return false;\r\n }\r\n}","import {GameFilterDefinitionBase} from \"./game-filter-definition-base\";\r\nimport {GameInfo} from \"../../games/game-info\";\r\nimport {ApplyGameFilterResult} from \"../evaluators/game-filter-evaluator.interface\";\r\n\r\nexport abstract class GameFeatureFilterDefinitionBase extends GameFilterDefinitionBase {\r\n\r\n abstract get id(): string;\r\n abstract get text(): string;\r\n protected abstract _shouldIncludeGame(gameInfo: GameInfo): boolean;\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if(this._shouldIncludeGame(gameInfo)) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n \r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n\r\n\r\n}","import {GameFeatureFilterDefinitionBase} from \"../game-feature-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\n\r\nexport class OneToTwentyFiveFilterDefinition extends GameFeatureFilterDefinitionBase {\r\n\r\n get id(): string {\r\n return \"one-to-twenty-five\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('1-25_LINES');\r\n }\r\n\r\n protected _shouldIncludeGame(gameInfo: GameInfo): boolean {\r\n return Check.isNumber(gameInfo.numberOfLines) && gameInfo.numberOfLines >= 1 && gameInfo.numberOfLines <= 24;\r\n }\r\n}","import {GameInfo} from \"../../../games/game-info\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {GameFeatureFilterDefinitionBase} from \"../game-feature-filter-definition-base\";\r\n\r\nexport class TwentyFivePlusFilterDefinition extends GameFeatureFilterDefinitionBase {\r\n get id(): string {\r\n return \"twenty-five-plus\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('25+_LINES');\r\n }\r\n\r\n protected _shouldIncludeGame(gameInfo: GameInfo): boolean {\r\n return Check.isNumber(gameInfo.numberOfLines) && gameInfo.numberOfLines >= 25;\r\n }\r\n}","import {GameFeatureFilterDefinitionBase} from \"../game-feature-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\n\r\nexport class NewGameFilterDefinition extends GameFeatureFilterDefinitionBase {\r\n get id(): string {\r\n return \"new\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('NEW');\r\n }\r\n\r\n protected _shouldIncludeGame(gameInfo: GameInfo): boolean {\r\n return gameInfo.isNewGame;\r\n }\r\n\r\n}","import {GameFeatureFilterDefinitionBase} from \"../game-feature-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\n\r\nexport class LowStakeFilterDefinition extends GameFeatureFilterDefinitionBase {\r\n get id(): string {\r\n return \"lowStakes\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('LOW_STAKES');\r\n }\r\n\r\n protected _shouldIncludeGame(gameInfo: GameInfo): boolean {\r\n return gameInfo.hasLowStakes;\r\n }\r\n}","import {GameFeatureFilterDefinitionBase} from \"../game-feature-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\n\r\nexport class HighStakeFilterDefinition extends GameFeatureFilterDefinitionBase {\r\n get id(): string {\r\n return \"highStakes\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('HIGH_STAKES');\r\n }\r\n\r\n protected _shouldIncludeGame(gameInfo: GameInfo): boolean {\r\n return gameInfo.hasHighStakes;\r\n }\r\n}","import {GameFeatureFilterDefinitionBase} from \"../game-feature-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\n\r\nexport class BonusGameFilterDefinition extends GameFeatureFilterDefinitionBase {\r\n get id(): string {\r\n return \"bonus\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('BONUS');\r\n }\r\n\r\n protected _shouldIncludeGame(gameInfo: GameInfo): boolean {\r\n return gameInfo.hasBonusGames;\r\n }\r\n}","import {GameFeatureFilterDefinitionBase} from \"../game-feature-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\n\r\nexport class FreeSpinsFilterDefinition extends GameFeatureFilterDefinitionBase {\r\n get id(): string {\r\n return \"freeSpins\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('FREE_SPINS');\r\n }\r\n\r\n protected _shouldIncludeGame(gameInfo: GameInfo): boolean {\r\n return gameInfo.hasFreeSpins;\r\n }\r\n}","import {GameFeatureFilterDefinitionBase} from \"../game-feature-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\n\r\nexport class HasSideBetsFilterDefinition extends GameFeatureFilterDefinitionBase {\r\n get id(): string {\r\n return \"side-bets\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('SIDE_BETS');\r\n }\r\n\r\n protected _shouldIncludeGame(gameInfo: GameInfo): boolean {\r\n return gameInfo.hasSideBets;\r\n }\r\n}","import {GameFeatureFilterDefinitionBase} from \"../game-feature-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\n\r\nexport class IsMultiHandFilterDefinition extends GameFeatureFilterDefinitionBase {\r\n get id(): string {\r\n return \"multi-hand\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('MULTIHAND');\r\n }\r\n\r\n protected _shouldIncludeGame(gameInfo: GameInfo): boolean {\r\n return gameInfo.isMultiHand;\r\n }\r\n}","import {IGameFilterDefinition} from \"../filters-definitions/game-filter-definition.interface\";\r\nimport {\r\n OneToTwentyFiveFilterDefinition\r\n} from \"../filters-definitions/game-features/one-to-twenty-five.filter-definition\";\r\nimport {\r\n TwentyFivePlusFilterDefinition\r\n} from \"../filters-definitions/game-features/twenty-five-plus.filter-definition\";\r\nimport {NewGameFilterDefinition} from \"../filters-definitions/game-features/new-game.filter-definition\";\r\nimport {LowStakeFilterDefinition} from \"../filters-definitions/game-features/low-stake.filter-definition\";\r\nimport {HighStakeFilterDefinition} from \"../filters-definitions/game-features/high-stake.filter-definition\";\r\nimport {BonusGameFilterDefinition} from \"../filters-definitions/game-features/bonus-game.filter-definition\";\r\nimport {FreeSpinsFilterDefinition} from \"../filters-definitions/game-features/free-spins.filter-definition\";\r\nimport {FilterCategoryDefinitionBase} from \"./filter-category-definition-base\";\r\nimport {CategoryDefinitionId} from \"./filter-category-definition.interface\";\r\nimport {HasSideBetsFilterDefinition} from \"../filters-definitions/game-features/has-side-bets.filter-definition\";\r\nimport {IsMultiHandFilterDefinition} from \"../filters-definitions/game-features/is-multi-hand.filter-definition\";\r\n\r\nexport class GameFeaturesFiltersCategoryDefinition extends FilterCategoryDefinitionBase {\r\n get title(): string {\r\n return this.services.translation.translate('GAME_FEATURES');\r\n }\r\n\r\n get id(): CategoryDefinitionId {\r\n return 'features';\r\n }\r\n\r\n protected _loadAvailableFilters(): IGameFilterDefinition[] {\r\n return [\r\n new OneToTwentyFiveFilterDefinition(this.services),\r\n new TwentyFivePlusFilterDefinition(this.services),\r\n new NewGameFilterDefinition(this.services),\r\n new LowStakeFilterDefinition(this.services),\r\n new HighStakeFilterDefinition(this.services),\r\n new BonusGameFilterDefinition(this.services),\r\n new FreeSpinsFilterDefinition(this.services),\r\n new HasSideBetsFilterDefinition(this.services),\r\n new IsMultiHandFilterDefinition(this.services),\r\n ];\r\n }\r\n}","import {GameFeatureFilterDefinitionBase} from \"../game-feature-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\n\r\nexport class HasDailyJackpotFilterDefinition extends GameFeatureFilterDefinitionBase {\r\n get id(): string {\r\n return \"has-daily-jackpot\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('THE_DAILY_JACKPOT');\r\n }\r\n\r\n protected _shouldIncludeGame(gameInfo: GameInfo): boolean {\r\n return gameInfo.hasDailyJackpot;\r\n }\r\n}","import {GameFeatureFilterDefinitionBase} from \"../game-feature-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\n\r\nexport class HasTwilightJackpotFilterDefinition extends GameFeatureFilterDefinitionBase {\r\n get id(): string {\r\n return \"has-twilight-jackpot\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('TWILIGHT_JACKPOT');\r\n }\r\n\r\n protected _shouldIncludeGame(gameInfo: GameInfo): boolean {\r\n return gameInfo.hasTwilightJackpot;\r\n }\r\n}","import {GameFeatureFilterDefinitionBase} from \"../game-feature-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\n\r\nexport class HasCaptain8JackpotFilterDefinition extends GameFeatureFilterDefinitionBase {\r\n get id(): string {\r\n return \"has-captain8-jackpot\";\r\n }\r\n\r\n get text(): string {\r\n return 'Captain8 Jackpot';\r\n }\r\n\r\n protected _shouldIncludeGame(gameInfo: GameInfo): boolean {\r\n return gameInfo.hasCaptain8tJackpot;\r\n }\r\n}","import {GameFeatureFilterDefinitionBase} from \"../game-feature-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\n\r\nexport class HasRedTigerJackpotFilterDefinition extends GameFeatureFilterDefinitionBase {\r\n get id(): string {\r\n return \"has-red-tiger-jackpot\";\r\n }\r\n\r\n get text(): string {\r\n return 'Red Tiger Jackpot';\r\n }\r\n\r\n protected _shouldIncludeGame(gameInfo: GameInfo): boolean {\r\n return gameInfo.hasRedTigerJackpot;\r\n }\r\n}","import {GameFeatureFilterDefinitionBase} from \"../game-feature-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {IGameFilterDefinition} from \"../game-filter-definition.interface\";\r\nimport {HasDailyJackpotFilterDefinition} from \"./has-dailight-jackpot.filter-definition\";\r\nimport {HasTwilightJackpotFilterDefinition} from \"./has-twilight-jackpot.filter-definition\";\r\nimport {HasCaptain8JackpotFilterDefinition} from \"./has-captain8-jackpot.filter-definition\";\r\nimport {HasRedTigerJackpotFilterDefinition} from \"./has-red-tiger-jackpot.filter-definition\";\r\n\r\nexport class HasJackpotFilterDefinition extends GameFeatureFilterDefinitionBase {\r\n get id(): string {\r\n return \"has-jackpot\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('JACKPOT');\r\n }\r\n\r\n protected _shouldIncludeGame(gameInfo: GameInfo): boolean {\r\n return gameInfo.hasJackpot;\r\n }\r\n\r\n get subFilters(): IGameFilterDefinition[] {\r\n return [\r\n new HasDailyJackpotFilterDefinition(this.services),\r\n new HasTwilightJackpotFilterDefinition(this.services),\r\n new HasCaptain8JackpotFilterDefinition(this.services),\r\n new HasRedTigerJackpotFilterDefinition(this.services)\r\n ]\r\n }\r\n}","import {GameFeatureFilterDefinitionBase} from \"../game-feature-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\n\r\nexport class HasNoJackpotFilterDefinition extends GameFeatureFilterDefinitionBase {\r\n get id(): string {\r\n return \"has-no-jackpot\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('NO_JACKPOT');\r\n }\r\n\r\n protected _shouldIncludeGame(gameInfo: GameInfo): boolean {\r\n return !gameInfo.hasJackpot;\r\n }\r\n}","import {IGameFilterDefinition} from \"../filters-definitions/game-filter-definition.interface\";\r\nimport {FilterCategoryDefinitionBase} from \"./filter-category-definition-base\";\r\nimport {HasJackpotFilterDefinition} from \"../filters-definitions/jackpot/has-jackpot.filter-definition\";\r\nimport {HasNoJackpotFilterDefinition} from \"../filters-definitions/jackpot/has-no-jackpot.filter-definition\";\r\nimport {CategoryDefinitionId} from \"./filter-category-definition.interface\";\r\n\r\nexport class HasJackpotFiltersCategoryDefinition extends FilterCategoryDefinitionBase {\r\n\r\n get id(): CategoryDefinitionId {\r\n return 'hasJackpot';\r\n }\r\n\r\n get title(): string{\r\n return this.services.translation.translate('JACKPOTS');\r\n }\r\n\r\n protected _loadAvailableFilters(): IGameFilterDefinition[] {\r\n return [\r\n new HasJackpotFilterDefinition(this.services),\r\n new HasNoJackpotFilterDefinition(this.services)\r\n ];\r\n }\r\n\r\n get isMultiSelect(): boolean {\r\n return false;\r\n }\r\n}\r\n","import {IGameFilterDefinition} from '../game-filter-definition.interface';\r\nimport {GameInfo} from '../../../games/game-info';\r\nimport {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\n\r\nexport class VendorFilterDefinition implements IGameFilterDefinition {\r\n constructor(public readonly id: string,\r\n private readonly _vendorName: string,\r\n public readonly vendorIds: number[],\r\n private readonly _text?: string) {\r\n\r\n }\r\n get text(): string {\r\n if(this._text) {\r\n return this._text;\r\n }\r\n return this._vendorName;\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if(this.vendorIds.includes(gameInfo.vendorId)) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n\r\n readonly subFilters: IGameFilterDefinition[] = [];\r\n}\r\n","import {IGameFilterDefinition} from \"../filters-definitions/game-filter-definition.interface\";\r\nimport {VendorFilterDefinition} from \"../filters-definitions/vendor/vendor.filter-definition\";\r\nimport {FilterCategoryDefinitionBase} from \"./filter-category-definition-base\";\r\nimport {CategoryDefinitionId} from \"./filter-category-definition.interface\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\n\r\nexport class GameVendorFiltersCategoryDefinition extends FilterCategoryDefinitionBase {\r\n\r\n get id(): CategoryDefinitionId {\r\n return 'vendors';\r\n }\r\n\r\n get title(): string{\r\n return this.services.translation.translate('GAME_STUDIOS');\r\n }\r\n\r\n get hasItsOwnFiltersOrder(): boolean {\r\n return !Check.isEmpty(this.services.configuration.data.generalSettings.filters?.advancedFilters?.preferredVendorFilters);\r\n }\r\n\r\n public getAllPreferredVendorsFilters(): VendorFilterDefinition[] {\r\n return [\r\n new VendorFilterDefinition(\"vendor_888\",\"888\", [1], this.services.translation.translate(\"BRAND_EXCLUSIVE_FILTER\", {brandName: this.services.configuration.data.generalSettings.filters?.exclusiveFilterBrandName ?? \"888\"})),\r\n new VendorFilterDefinition(\"vendor_ags\",\"AGS\", [54]),\r\n new VendorFilterDefinition(\"vendor_amatic\",\"Amatic\", [42]),\r\n new VendorFilterDefinition(\"vendor_authentic\",\"Authentic\", [81]),\r\n new VendorFilterDefinition(\"vendor_blueprint\",\"Blueprint\", [21]),\r\n new VendorFilterDefinition(\"vendor_darwin\",\"Darwin\", [114]),\r\n new VendorFilterDefinition(\"vendor_egt\",\"EGT\", [83]),\r\n new VendorFilterDefinition(\"vendor_elk\",\"Elk\", [33]),\r\n new VendorFilterDefinition(\"vendor_evolution\",\"Evolution\", [14]),\r\n new VendorFilterDefinition(\"vendor_eyecon\",\"Eyecon\", [56]),\r\n new VendorFilterDefinition(\"vendor_gamesglobal\",\"Games Global\", [40]),\r\n new VendorFilterDefinition(\"vendor_gamingrealms\",\"Gaming Realms\", [71]),\r\n new VendorFilterDefinition(\"vendor_gamomat\",\"Gamomat\", [82]),\r\n new VendorFilterDefinition(\"vendor_greentube\",\"Greentube\", [57]),\r\n new VendorFilterDefinition(\"vendor_h5\",\"H5\", [50]),\r\n new VendorFilterDefinition(\"vendor_habanero\",\"Habanero\", [64]),\r\n new VendorFilterDefinition(\"vendor_igt\",\"IGT\", [32]),\r\n new VendorFilterDefinition(\"vendor_inspired\",\"Inspired\", [61]),\r\n new VendorFilterDefinition(\"vendor_isoftbet\",\"iSoftBet\", [58]),\r\n new VendorFilterDefinition(\"vendor_lightningbox\",\"Lightning Box\", [46]),\r\n new VendorFilterDefinition(\"vendor_lnw\",\"LNW\", [28, 5]),\r\n new VendorFilterDefinition(\"vendor_merkur\",\"Merkur\", [35]),\r\n new VendorFilterDefinition(\"vendor_mga\",\"MGA\", [65]),\r\n new VendorFilterDefinition(\"vendor_netent\",\"Netent\", [13, 27], `NetEnt`),\r\n new VendorFilterDefinition(\"vendor_nextgen_bigtime\",\"NextGen_Big Time\", [36], `Big Time`),\r\n new VendorFilterDefinition(\"vendor_nextgen_chanceinteractive\",\"NextGen_Chance Interactive\", [52], `Reel Play`),\r\n new VendorFilterDefinition(\"vendor_nolimitcity\",\"No Limit City\", [103]),\r\n new VendorFilterDefinition(\"vendor_playngo\",\"Play N Go\", [53], `Play'n GO`),\r\n new VendorFilterDefinition(\"vendor_playtech\",\"PlayTech\", [30], `Playtech`),\r\n new VendorFilterDefinition(\"vendor_pragmatic\",\"Pragmatic\", [48]),\r\n new VendorFilterDefinition(\"vendor_quickspin\",\"Quickspin\", [39]),\r\n new VendorFilterDefinition(\"vendor_redrake\",\"Red Rake\", [87]),\r\n new VendorFilterDefinition(\"vendor_redtiger\",\"Red Tiger\", [47]),\r\n new VendorFilterDefinition(\"vendor_rubyplay\",\"Ruby Play\", [51]),\r\n new VendorFilterDefinition(\"vendor_sigma\",\"Sigma\", [37]),\r\n new VendorFilterDefinition(\"vendor_skywind\",\"Skywind\", [63]),\r\n new VendorFilterDefinition(\"vendor_spribe\",\"Spribe\", [108]),\r\n new VendorFilterDefinition(\"vendor_thunderkick\",\"Thunderkick\", [34]),\r\n new VendorFilterDefinition(\"vendor_wizard\",\"Wizard\", [38]),\r\n new VendorFilterDefinition(\"vendor_wmg\",\"WMG\", [74]),\r\n new VendorFilterDefinition(\"vendor_yggdrasil\",\"Yggdrasil\", [41]),\r\n new VendorFilterDefinition(\"vendor_everi\",\"Everi\", [99]),\r\n ];\r\n }\r\n\r\n private _getPreferredVendorFiltersForCurrentSkin(): VendorFilterDefinition[] {\r\n const preferredVendorsFiltersIds = this.services.configuration.data.generalSettings.filters?.advancedFilters?.preferredVendorFilters ?? [];\r\n if(preferredVendorsFiltersIds.length === 0) {\r\n return [...this.getAllPreferredVendorsFilters()];\r\n }\r\n\r\n const allPreferredVendorsFiltersMap = this.getAllPreferredVendorsFilters().toDictionary(f => f.id);\r\n const result: VendorFilterDefinition[] = [];\r\n for(let filterId of preferredVendorsFiltersIds) {\r\n const filter = allPreferredVendorsFiltersMap[filterId];\r\n if(filter) {\r\n result.push(filter)\r\n } else {\r\n this.services.logger.error(`There is no definition for game vendor filter with id ${filterId}`)\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n protected _loadAvailableFilters(): IGameFilterDefinition[] {\r\n const filters = this._getPreferredVendorFiltersForCurrentSkin();\r\n let preferredVendorsIds: number[] = filters.selectMany(f => f.vendorIds);\r\n const otherVendorsIds: number[] = [];\r\n\r\n const allVendorsIds = Object.keys(this.services.sdk.getGamesVendors()).map(id => parseInt(id));\r\n for(let vendorId of allVendorsIds) {\r\n if(!preferredVendorsIds.includes(vendorId)) {\r\n otherVendorsIds.push(vendorId);\r\n }\r\n }\r\n\r\n if(otherVendorsIds.length > 0) {\r\n filters.push(new VendorFilterDefinition('vendor_others', 'OTHER', otherVendorsIds, this.services.translation.translate('OTHER')));\r\n }\r\n\r\n\r\n return filters;\r\n }\r\n}\r\n","import {GameFilterDefinitionBase} from \"./game-filter-definition-base\";\r\nimport {GameInfo} from \"../../games/game-info\";\r\nimport {ApplyGameFilterResult} from \"../evaluators/game-filter-evaluator.interface\";\r\n\r\nexport abstract class GameGroupFilterDefinitionBase extends GameFilterDefinitionBase {\r\n protected abstract get gameGroupsIdsToFilterFor(): number[];\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if(this.gameGroupsIdsToFilterFor.includes(gameInfo.gameGroupId)) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n}","import {GameGroupFilterDefinitionBase} from \"../game-group-filter-definition-base\";\r\nimport {GAME_GROUP} from \"../../../../../common/const/game_groups_consts\";\r\n\r\nexport class BaccaratFilterDefinition extends GameGroupFilterDefinitionBase {\r\n get id(): string {\r\n return \"baccarat\";\r\n }\r\n\r\n protected get gameGroupsIdsToFilterFor(): number[] {\r\n return [GAME_GROUP.BACCARAT];\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('BACCARAT');\r\n }\r\n}","import {GameGroupFilterDefinitionBase} from \"../game-group-filter-definition-base\";\r\nimport {GAME_GROUP} from \"../../../../../common/const/game_groups_consts\";\r\n\r\nexport class BlackjackFilterDefinition extends GameGroupFilterDefinitionBase {\r\n\r\n get id(): string {\r\n return \"blackjack\";\r\n }\r\n\r\n protected get gameGroupsIdsToFilterFor(): number[] {\r\n return [GAME_GROUP.BLACKJACK];\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('BLACKJACK');\r\n }\r\n}","import {GameGroupFilterDefinitionBase} from \"../game-group-filter-definition-base\";\r\nimport {GAME_GROUP} from \"../../../../../common/const/game_groups_consts\";\r\n\r\nexport class CrapsFilterDefinition extends GameGroupFilterDefinitionBase {\r\n get id(): string {\r\n return \"craps\";\r\n }\r\n\r\n protected get gameGroupsIdsToFilterFor(): number[] {\r\n return [GAME_GROUP.CRAPS];\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('CRAPS')\r\n }\r\n}\r\n","import {GameGroupFilterDefinitionBase} from \"../game-group-filter-definition-base\";\r\nimport {GAME_GROUP} from \"../../../../../common/const/game_groups_consts\";\r\n\r\nexport class KenoFilterDefinition extends GameGroupFilterDefinitionBase {\r\n get id(): string {\r\n return \"keno\";\r\n }\r\n\r\n protected get gameGroupsIdsToFilterFor(): number[] {\r\n return [GAME_GROUP.KENO];\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('KENO');\r\n }\r\n}","import {GameFilterDefinitionBase} from \"../game-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\n\r\nexport class LiveEliteLungeFilterDefinition extends GameFilterDefinitionBase {\r\n get id(): string {\r\n return \"live-elite-lounge\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('LIVE_ELITE_LOUNGE');\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if(gameInfo.isEliteLounge) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n}","import {GameFilterDefinitionBase} from \"../game-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\n\r\nexport class LiveEliteLoungeOrExclusiveFilterDefinition extends GameFilterDefinitionBase {\r\n get id(): string {\r\n return \"live-elite-lounge-or-exclusive\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('EXCLUSIVE');\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if(gameInfo.isEliteLounge || gameInfo.isExclusiveGame) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n}","import {GameFilterDefinitionBase} from \"../game-filter-definition-base\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {GAME_GROUP} from \"../../../../../common/const/game_groups_consts\";\r\n\r\nexport abstract class LiveGameFilterDefinitionBase extends GameFilterDefinitionBase {\r\n\r\n protected abstract get textToSearchInSubgroupName(): string;\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if (gameInfo.gameGroupId !== GAME_GROUP.LIVE_CASINO || !gameInfo.subGroupName) {\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n\r\n const subgroupName = gameInfo.subGroupName.toLowerCase();\r\n if (subgroupName && subgroupName.indexOf(this.textToSearchInSubgroupName) !== -1) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n}","import {LiveGameFilterDefinitionBase} from \"./live-game-filter-definition-base\";\r\n\r\nexport class LiveGameShowsFilterDefinition extends LiveGameFilterDefinitionBase {\r\n get id(): string {\r\n return \"live-game-shows\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('LIVE_GAME_SHOWS');\r\n }\r\n\r\n protected get textToSearchInSubgroupName(): string {\r\n return \"shows\";\r\n }\r\n}","import {GameGroupFilterDefinitionBase} from \"../game-group-filter-definition-base\";\r\nimport {GAME_GROUP} from \"../../../../../common/const/game_groups_consts\";\r\n\r\nexport class PokerFilterDefinition extends GameGroupFilterDefinitionBase {\r\n\r\n get id(): string {\r\n return \"poker\";\r\n }\r\n\r\n protected get gameGroupsIdsToFilterFor(): number[] {\r\n return [GAME_GROUP.VIDEO_POKER, GAME_GROUP.CARRIBEAN_POKER, GAME_GROUP.POKER, GAME_GROUP.PAI_GOW_POKER, GAME_GROUP.POWER_VIDEO_POKER, GAME_GROUP.POKER_TEMPLATE_GAMES];\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('POKER');\r\n }\r\n}","import {GameGroupFilterDefinitionBase} from \"../game-group-filter-definition-base\";\r\nimport {GAME_GROUP} from \"../../../../../common/const/game_groups_consts\";\r\n\r\nexport class RouletteFilterDefinition extends GameGroupFilterDefinitionBase {\r\n get id(): string {\r\n return \"roulette\";\r\n }\r\n\r\n protected get gameGroupsIdsToFilterFor(): number[] {\r\n return [GAME_GROUP.ROULETTE, GAME_GROUP.ROULETTE_LIKE];\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('ROULETTE');\r\n }\r\n}","import {GameGroupFilterDefinitionBase} from \"../game-group-filter-definition-base\";\r\nimport {GAME_GROUP} from \"../../../../../common/const/game_groups_consts\";\r\n\r\nexport class ScratchcardsFilterDefinition extends GameGroupFilterDefinitionBase {\r\n get id(): string {\r\n return \"scratchCards\";\r\n }\r\n\r\n protected get gameGroupsIdsToFilterFor(): number[] {\r\n return [GAME_GROUP.SCRATCH_CARD];\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('SCRATCHCARDS');\r\n }\r\n}","import {GameGroupFilterDefinitionBase} from \"../game-group-filter-definition-base\";\r\nimport {GAME_GROUP} from \"../../../../../common/const/game_groups_consts\";\r\n\r\nexport class SlotsFilterDefinition extends GameGroupFilterDefinitionBase {\r\n\r\n get id(): string {\r\n return \"slots\";\r\n }\r\n\r\n protected get gameGroupsIdsToFilterFor(): number[] {\r\n return [GAME_GROUP.VIDEO_SLOT, GAME_GROUP.SLOT];\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('SLOT_GAMES');\r\n }\r\n\r\n}","import {IGameFilterDefinition} from \"../game-filter-definition.interface\";\r\nimport {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\n\r\nexport class OtherGameGroupFilterDefinition implements IGameFilterDefinition {\r\n constructor(protected readonly services: IServiceFactoryExtended, private gameTypesFilterDefinitions: IGameFilterDefinition[]) {\r\n }\r\n\r\n get id(): string {\r\n return \"other-game-group\";\r\n }\r\n\r\n readonly subFilters: IGameFilterDefinition[] = [];\r\n\r\n get text(): string {\r\n return this.services.translation.translate('OTHER');\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n const categoriesInCurrentArena = this.gameTypesFilterDefinitions;\r\n for(let category of categoriesInCurrentArena) {\r\n if(category.applyFilter(gameInfo) === ApplyGameFilterResult.IncludeGame) {\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n }\r\n \r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n\r\n}","import {LiveGameFilterDefinitionBase} from \"./live-game-filter-definition-base\";\r\n\r\nexport class LiveBaccaratFilterDefinition extends LiveGameFilterDefinitionBase {\r\n get id(): string {\r\n return \"live-baccarat\";\r\n }\r\n\r\n protected get textToSearchInSubgroupName(): string {\r\n return \"baccarat\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('LIVE_BACCARAT');\r\n }\r\n}","import {LiveGameFilterDefinitionBase} from \"./live-game-filter-definition-base\";\r\n\r\nexport class LiveBlackjackFilterDefinition extends LiveGameFilterDefinitionBase {\r\n\r\n get id(): string {\r\n return \"live-blackjack\";\r\n }\r\n\r\n protected get textToSearchInSubgroupName(): string {\r\n return \"blackjack\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('LIVE_BLACKJACK');\r\n }\r\n}","import {LiveGameFilterDefinitionBase} from \"./live-game-filter-definition-base\";\r\n\r\nexport class LivePokerFilterDefinition extends LiveGameFilterDefinitionBase {\r\n\r\n get id(): string {\r\n return \"live-poker\";\r\n }\r\n\r\n protected get textToSearchInSubgroupName(): string {\r\n return \"poker\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('LIVE_POKER');\r\n }\r\n}","import {LiveGameFilterDefinitionBase} from \"./live-game-filter-definition-base\";\r\n\r\nexport class LiveRouletteFilterDefinition extends LiveGameFilterDefinitionBase {\r\n get id(): string {\r\n return \"live-roulette\";\r\n }\r\n\r\n protected get textToSearchInSubgroupName(): string {\r\n return \"roulette\";\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('LIVE_ROULETTE');\r\n }\r\n}","import {IGameFilterDefinition} from \"../filters-definitions/game-filter-definition.interface\";\r\nimport {BaccaratFilterDefinition} from \"../filters-definitions/game-group/baccarat.filter-definition\";\r\nimport {BlackjackFilterDefinition} from \"../filters-definitions/game-group/blackjack.filter-definition\";\r\nimport {CrapsFilterDefinition} from \"../filters-definitions/game-group/craps.filter-definition\";\r\nimport {KenoFilterDefinition} from \"../filters-definitions/game-group/keno.filter-definition\";\r\nimport {LiveEliteLungeFilterDefinition} from \"../filters-definitions/game-group/live-elite-lunge.filter-definition\";\r\nimport {\r\n LiveEliteLoungeOrExclusiveFilterDefinition\r\n} from \"../filters-definitions/game-group/live-elite-lounge-or-exclusive.filter-definition\";\r\nimport {LiveGameShowsFilterDefinition} from \"../filters-definitions/game-group/live-game-shows.filter-definition\";\r\nimport {PokerFilterDefinition} from \"../filters-definitions/game-group/poker.filter-definition\";\r\nimport {RouletteFilterDefinition} from \"../filters-definitions/game-group/roulette.filter-definition\";\r\nimport {ScratchcardsFilterDefinition} from \"../filters-definitions/game-group/scratchcards.filter-definition\";\r\nimport {SlotsFilterDefinition} from \"../filters-definitions/game-group/slots.filter-definition\";\r\nimport {FilterCategoryDefinitionBase} from \"./filter-category-definition-base\";\r\nimport {CategoryDefinitionId} from \"./filter-category-definition.interface\";\r\nimport {OtherGameGroupFilterDefinition} from \"../filters-definitions/game-group/other-game-group.filter-definition\";\r\nimport {LiveBaccaratFilterDefinition} from \"../filters-definitions/game-group/live-baccarat.filter-definition\";\r\nimport {LiveBlackjackFilterDefinition} from \"../filters-definitions/game-group/live-blackjack.filter-definition\";\r\nimport {LivePokerFilterDefinition} from \"../filters-definitions/game-group/live-poker.filter-definition\";\r\nimport {LiveRouletteFilterDefinition} from \"../filters-definitions/game-group/live-roulette.filter-definition\";\r\n\r\nexport class GameGroupFiltersCategoryDefinition extends FilterCategoryDefinitionBase {\r\n\r\n get id(): CategoryDefinitionId {\r\n return 'gameGroups';\r\n }\r\n\r\n get title(): string{\r\n return this.services.translation.translate('GAME_CATEGORIES');\r\n }\r\n\r\n protected _loadAvailableFilters(): IGameFilterDefinition[] {\r\n const filters: IGameFilterDefinition[] = [\r\n new SlotsFilterDefinition(this.services),\r\n new RouletteFilterDefinition(this.services),\r\n new BlackjackFilterDefinition(this.services),\r\n new PokerFilterDefinition(this.services),\r\n new ScratchcardsFilterDefinition(this.services),\r\n new BaccaratFilterDefinition(this.services),\r\n new CrapsFilterDefinition(this.services),\r\n new KenoFilterDefinition(this.services),\r\n new LiveBaccaratFilterDefinition(this.services),\r\n new LiveBlackjackFilterDefinition(this.services),\r\n new LiveRouletteFilterDefinition(this.services),\r\n new LivePokerFilterDefinition(this.services),\r\n new LiveGameShowsFilterDefinition(this.services),\r\n new LiveEliteLungeFilterDefinition(this.services),\r\n new LiveEliteLoungeOrExclusiveFilterDefinition(this.services),\r\n ];\r\n return filters.concat(new OtherGameGroupFilterDefinition(this.services, filters));\r\n }\r\n\r\n\r\n}","import {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {GameFilterDefinitionBase} from \"../game-filter-definition-base\";\r\nimport {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\n\r\nexport class GameThemeFilterDefinition extends GameFilterDefinitionBase {\r\n constructor(public readonly id: string,\r\n protected readonly services: IServiceFactoryExtended,\r\n public themeName: string,\r\n public themeIds: number[],\r\n private _text?: string ) {\r\n super(services);\r\n }\r\n\r\n get text(): string {\r\n if(this._text) {\r\n return this._text;\r\n }\r\n return this.themeName;\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n for(let themeId of gameInfo.themeIds) {\r\n if(this.themeIds.includes(themeId)) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n }\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n}","import {FilterCategoryDefinitionBase} from \"./filter-category-definition-base\";\r\nimport {IGameFilterDefinition} from \"../filters-definitions/game-filter-definition.interface\";\r\nimport {GameThemeFilterDefinition} from \"../filters-definitions/theme/game-theme.filter-definition\";\r\nimport {CategoryDefinitionId} from \"./filter-category-definition.interface\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\n\r\nexport class GameThemeFiltersCategoryDefinition extends FilterCategoryDefinitionBase {\r\n\r\n get id(): CategoryDefinitionId {\r\n return 'themes';\r\n }\r\n\r\n get title(): string{\r\n return this.services.translation.translate('THEMES');\r\n }\r\n\r\n get hasItsOwnFiltersOrder(): boolean {\r\n return !Check.isEmpty(this.services.configuration.data.generalSettings.filters?.advancedFilters?.preferredThemeFilters);\r\n }\r\n\r\n private _getPreferredThemeFilters(): GameThemeFilterDefinition[] {\r\n return [\r\n new GameThemeFilterDefinition(\"theme_adventure\", this.services, this.services.translation.translate(\"Adventure\"), [1]),\r\n new GameThemeFilterDefinition(\"theme_arabic\", this.services, this.services.translation.translate(\"Arabic\"), [58]),\r\n new GameThemeFilterDefinition(\"theme_asian\", this.services, this.services.translation.translate(\"Asian\"), [5]),\r\n new GameThemeFilterDefinition(\"theme_classic_style\", this.services, this.services.translation.translate(\"Classic Style\"), [4, 95]),\r\n new GameThemeFilterDefinition(\"theme_comics_and_cartoons\", this.services, this.services.translation.translate(\"Comics and Cartoons\"), [16]),\r\n new GameThemeFilterDefinition(\"theme_diamonds_and_gems\", this.services, this.services.translation.translate(\"Diamonds and Gems\"), [26]),\r\n new GameThemeFilterDefinition(\"theme_egyptian\", this.services, this.services.translation.translate(\"Egyptian\"), [30]),\r\n new GameThemeFilterDefinition(\"theme_fantasy_and_folklore\", this.services, this.services.translation.translate(\"Fantasy and Folklore\"), [28]),\r\n new GameThemeFilterDefinition(\"theme_farm_and_pets\", this.services, this.services.translation.translate(\"Farm and Pets\"), [35]),\r\n new GameThemeFilterDefinition(\"theme_fish\", this.services, this.services.translation.translate(\"Fish\"), [77]),\r\n new GameThemeFilterDefinition(\"theme_fruit_and_candy\", this.services, this.services.translation.translate(\"Fruit and Candy\"), [12]),\r\n new GameThemeFilterDefinition(\"theme_greek_mythology\", this.services, this.services.translation.translate(\"Greek Mythology\"), [63]),\r\n new GameThemeFilterDefinition(\"theme_irish\", this.services, this.services.translation.translate(\"Irish\"), [19]),\r\n new GameThemeFilterDefinition(\"theme_money_and_leisure\", this.services, this.services.translation.translate(\"Money and Leisure\"), [15]),\r\n new GameThemeFilterDefinition(\"theme_movies_and_music\", this.services, this.services.translation.translate(\"Movies and Music\"), [8]),\r\n new GameThemeFilterDefinition(\"theme_seasonal\", this.services, this.services.translation.translate(\"Seasonal\"), [29]),\r\n new GameThemeFilterDefinition(\"theme_space_and_sci-fi\", this.services, this.services.translation.translate(\"Space and Sci-fi\"), [72]),\r\n new GameThemeFilterDefinition(\"theme_wildlife\", this.services, this.services.translation.translate(\"Wildlife\"), [3]),\r\n ];\r\n }\r\n\r\n\r\n protected _loadAvailableFilters(): IGameFilterDefinition[] {\r\n const preferredThemeFilters = this.services.configuration.data.generalSettings.filters?.advancedFilters?.preferredThemeFilters;\r\n if(Check.isEmpty(preferredThemeFilters)) {\r\n return this._getPreferredThemeFilters();\r\n }\r\n\r\n const themesDictionary = this._getPreferredThemeFilters().toDictionary(f => f.id);\r\n\r\n const result: IGameFilterDefinition[] = [];\r\n for(let filterId of preferredThemeFilters) {\r\n const filter = themesDictionary[filterId];\r\n if(filter) {\r\n result.push(filter);\r\n } else {\r\n this.services.logger.error(`There is no filter definition for filter with ID ${filterId}`);\r\n }\r\n }\r\n\r\n return result;\r\n\r\n }\r\n}","import {IFilterCategoryDefinitionFactory} from \"./filter-category-definition-factory.interface\";\r\nimport {CategoryDefinitionId, IFilterCategoryDefinition} from \"./filter-category-definition.interface\";\r\nimport {VolatilityFiltersCategoryDefinition} from \"./volatility.filters-category-definition\";\r\nimport {GameFeaturesFiltersCategoryDefinition} from \"./game-features.filters-category-definition\";\r\nimport {HasJackpotFiltersCategoryDefinition} from \"./has-jackpot.filters-category-definition\";\r\nimport {GameVendorFiltersCategoryDefinition} from \"./game-vendor.filters-category-definition\";\r\nimport {GameGroupFiltersCategoryDefinition} from \"./game-group.filters-category-definition\";\r\nimport {IServiceFactoryExtended} from \"../../service-factory-extended.interface\";\r\n\r\nimport {GameThemeFiltersCategoryDefinition} from \"./game-theme.filters-category-definition\";\r\n\r\nexport class FilterCategoryDefinitionFactory implements IFilterCategoryDefinitionFactory {\r\n constructor(protected readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n createCategoryDefinition(categoryDefinitionId: CategoryDefinitionId): IFilterCategoryDefinition | null {\r\n switch (categoryDefinitionId) {\r\n case \"volatility\":\r\n return new VolatilityFiltersCategoryDefinition(this.services);\r\n case \"features\":\r\n return this.createGameFeaturesCategoryDefinition();\r\n case \"hasJackpot\":\r\n return new HasJackpotFiltersCategoryDefinition(this.services);\r\n case \"themes\":\r\n return new GameThemeFiltersCategoryDefinition(this.services);\r\n case \"vendors\":\r\n return this.createVendorsCategoryDefinition();\r\n case \"gameGroups\":\r\n return this.createGameGroupCategoryDefinition();\r\n default:\r\n this.services.logger.error(`There is no filters category definition for id ${categoryDefinitionId}`);\r\n return null;\r\n }\r\n }\r\n\r\n createVendorsCategoryDefinition(): IFilterCategoryDefinition {\r\n return new GameVendorFiltersCategoryDefinition(this.services);\r\n }\r\n\r\n createGameGroupCategoryDefinition(): IFilterCategoryDefinition {\r\n return new GameGroupFiltersCategoryDefinition(this.services);\r\n }\r\n\r\n createGameFeaturesCategoryDefinition(): IFilterCategoryDefinition {\r\n return new GameFeaturesFiltersCategoryDefinition(this.services);\r\n }\r\n}\r\n","import React from 'react';\r\nimport {GamesFilterStrategyBase} from \"../games-filter-strategy-base\";\r\nimport {AdvancedGamesFilterDrawerRenderer} from \"./advanced-games-filter-drawer-renderer\";\r\nimport {AdvancedStrategyFiltersEditor} from \"./advanced-strategy-filters-editor\";\r\nimport {IArenaGameFiltersCategory} from \"../../arena-filters/categories/arena-game-filters-category.interface\";\r\nimport {IGameFilterEvaluator} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {AND} from \"../../evaluators/and-game-filters-evaluator\";\r\nimport {\r\n FiltersMobileButtonComponent\r\n} from \"../../../../components/header/top-header-left/filters/filters-mobile-button.component\";\r\nimport {Nullable} from \"../../../../../common/types/nullable-types\";\r\nimport {\r\n IPcFilterIndicatorRenderingOptions,\r\n PcFilterIndicatorRenderingLocation\r\n} from \"../../games-filter.service.interface\";\r\nimport {\r\n AppliedFiltersPcIndicatorForAdvancedFilteringComponent\r\n} from \"../../../../components/filters/advanced-filtering/indicators/pc-indicator/applied-filters-pc-indicator-for-advanced-filtering.component\";\r\nimport {DynamicArenaGameFiltersCategory} from \"../../arena-filters/categories/dynamic-arena-game-filters-category\";\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {FilterCategoryDefinitionFactory} from '../../filters-categories-definitions/filter-category-definition-factory';\r\nimport {IFilterCategoryDefinition} from '../../filters-categories-definitions/filter-category-definition.interface';\r\nimport {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {AdvancedFiltersAnalytics} from \"./advanced-filters-analytics\";\r\n\r\nexport class AdvancedGamesFilterStrategy extends GamesFilterStrategyBase {\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n this._analyticsReporter = new AdvancedFiltersAnalytics(this.services);\r\n }\r\n\r\n private _factory = new FilterCategoryDefinitionFactory(this.services);\r\n private readonly _analyticsReporter: AdvancedFiltersAnalytics;\r\n\r\n protected _createFiltersCategories(): IArenaGameFiltersCategory[] {\r\n const arenaName = this.services.routing.currentRoute.data?.arenaType;\r\n if (!arenaName) {\r\n return [];\r\n }\r\n\r\n const categories = this.services.configuration.data.arenas[arenaName]?.advancedFilters?.categories;\r\n if (!Check.isArray(categories)) {\r\n return [];\r\n }\r\n \r\n const filters: IArenaGameFiltersCategory[] = [];\r\n categories.forEach(category => {\r\n if (category?.id) {\r\n const filterCategoryDef = this._factory.createCategoryDefinition(category.id);\r\n if(filterCategoryDef) {\r\n filters.push(this._createArenaGameFiltersCategory(filterCategoryDef));\r\n } else {\r\n this.services.logger.error(`There is no filter category definition for id ${category.id}`);\r\n }\r\n }\r\n });\r\n\r\n return filters;\r\n }\r\n\r\n protected _createArenaGameFiltersCategory(filterCategoryDef: IFilterCategoryDefinition): IArenaGameFiltersCategory {\r\n return new DynamicArenaGameFiltersCategory(filterCategoryDef, this.services);\r\n }\r\n\r\n protected _createEvaluator(): IGameFilterEvaluator | null {\r\n return AND(...this.filtersCategories);\r\n }\r\n\r\n private _createFiltersEditor() {\r\n return new AdvancedStrategyFiltersEditor(this.filtersCategories, this.services);\r\n }\r\n\r\n protected _reportApplyFiltersAnalytics(): void {\r\n const appliedFilters: Record = {};\r\n this.filtersCategories.forEach(category => {\r\n const appliedFiltersInCategory = category.allAppliedFiltersAndSubFilters;\r\n if(appliedFiltersInCategory.length > 0) {\r\n appliedFilters[category.id] = appliedFiltersInCategory.map(f => f.id);\r\n }\r\n })\r\n const gamesCount = this.services.arenas.getCurrentArena().filteredGamesCount;\r\n this._analyticsReporter.reportApplyFilters({\r\n gamesCount: gamesCount,\r\n appliedFilters: appliedFilters\r\n });\r\n }\r\n\r\n renderMobileFiltersIndicator(): React.ReactElement {\r\n if(this.services.mediaQuery.lAndBelow) {\r\n return ();\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n renderPCFiltersIndicator(): Nullable {\r\n if(this.services.mediaQuery.lAndBelow) {\r\n return null;\r\n } else {\r\n return {\r\n location: PcFilterIndicatorRenderingLocation.NextToArenaTitle,\r\n reactElement: ()\r\n };\r\n }\r\n }\r\n\r\n showFiltersEditor(): void {\r\n this.services.drawer.right.push(new AdvancedGamesFilterDrawerRenderer(this.services, this._createFiltersEditor()));\r\n }\r\n\r\n}","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../themes/architecture/styled-by-device\";\r\nimport {ACTIVE} from \"../../../../../themes/css-global-classes\";\r\nimport {CssRule} from \"../../../../../themes/architecture/css-helpers/css-rule\";\r\n\r\nexport const FilterLinkIconDefaultPCBox = styled.span`\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-repeat: no-repeat;\r\n background-position: -364px -553px;\r\n width: 20px;\r\n height: 21px;\r\n margin-right: 10px;\r\n cursor: pointer;\r\n \r\n .${ACTIVE} &{\r\n background-position: -396px -553px;\r\n }\r\n`;\r\n\r\nexport const FilterLinkIconDefaultMobileBox = styled.span`\r\n position: relative;\r\n background: ${props => props.theme.colors.backgroundLight};\r\n border-radius: 50%;\r\n padding: 50px;\r\n \r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n padding: 40px;\r\n }\r\n \r\n ${CssRule.For.mobile.landscape.build()} & {\r\n grid-template-columns: repeat(5, 130px);\r\n }\r\n\r\n &:before {\r\n content: \"\";\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n width: 30px;\r\n height: 30px;\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-repeat: no-repeat;\r\n background-position: -204px -358px;\r\n transform: translate(-50%, -50%);\r\n }\r\n \r\n \r\n .${ACTIVE} &{\r\n background: ${props => `linear-gradient(${props.theme.colors.brandSecondaryDark}, ${props.theme.colors.brandSecondaryLight}, ${props.theme.colors.brandPrimaryDark})`};\r\n\r\n &:before {\r\n background-position: -95px -358px;\r\n }\r\n \r\n :after {\r\n content: \"\";\r\n position: absolute;\r\n left: 0;\r\n bottom: 0;\r\n width: 30px;\r\n height: 30px;\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-repeat: no-repeat;\r\n background-position: -544px -516px;\r\n border-radius: 50%;\r\n }\r\n }\r\n`;\r\n\r\nexport const FilterLinkIconDefaultBox = styledByDevice(FilterLinkIconDefaultPCBox, FilterLinkIconDefaultMobileBox);\r\n","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../themes/architecture/styled-by-device\";\r\nimport {ACTIVE} from \"../../../../../themes/css-global-classes\";\r\n\r\nconst PCBox = styled.span`\r\n\r\n background-color:${props => props.theme.colors.brandSecondary};\r\n border-radius: 5px;\r\n border:1px solid ${props => props.theme.colors.boxBorderContrast};\r\n width:18px;\r\n height: 18px;\r\n margin-right: 5px;\r\n \r\n .${ACTIVE} &{\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-position: -457px -526px;\r\n background-color: transparent;\r\n border:none;\r\n }\r\n`;\r\nconst MobileBox = styled.span` \r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-position: -246px -292px;\r\n width: 90px;\r\n height: 90px;\r\n\r\n .${ACTIVE} &{\r\n background-position: -245px -157px;\r\n }\r\n`;\r\n\r\nexport const FilterLinkIconCasino777Box = styledByDevice(PCBox, MobileBox);","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../themes/architecture/styled-by-device\";\r\nimport {ACTIVE} from \"../../../../../themes/css-global-classes\";\r\nimport {FilterLinkIconDefaultPCBox, FilterLinkIconDefaultMobileBox} from \"./filter-link-icon.default.box\";\r\n\r\nconst MobileSIBox = styled(FilterLinkIconDefaultMobileBox)`\r\n .${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`;\r\n\r\nexport const FilterLinkIconSIBox = styledByDevice(FilterLinkIconDefaultPCBox, MobileSIBox);","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 background: ${props => props.theme.colors.brandSecondaryDark};\r\n .${ACTIVE} &{\r\n background: ${props => props.theme.colors.backgroundLight};\r\n &:before {\r\n background-position: -204px -358px;\r\n }\r\n }\r\n`;\r\n\r\nexport const FilterLinkIconMrGreenBox = 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\nimport {FilterLinkIconMrGreenBox} from \"./filter-link-icon.mrgreen.box\";\r\n\r\nexport const FilterLinkIconBox = styledByTheme(FilterLinkIconDefaultBox)\r\n .forCasino777(FilterLinkIconCasino777Box)\r\n .forSI(FilterLinkIconSIBox)\r\n .forSICis(FilterLinkIconSIBox)\r\n .forMrGreen(FilterLinkIconMrGreenBox)\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 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 FilterLinkMrGreenBox = styled(FilterLinkDefaultBox)`\r\n &.${ACTIVE} {\r\n color: ${props => props.theme.colors.textActive};\r\n }\r\n @media ${({theme}) => theme.mediaQuery.xlExact}, ${({theme}) => theme.mediaQuery.lowHeight} {\r\n line-height: 2.4rem;\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\nimport {FilterLinkMrGreenBox} from \"./filter-link.mrgreen.box\";\r\n\r\nexport const FilterLinkBox = styledByTheme(FilterLinkDefaultBox)\r\n .forCasino777(FilterLinkCasino777Box)\r\n .forSI(FilterLinkSIBox)\r\n .forMrGreen(FilterLinkMrGreenBox)\r\n .forSICis(FilterLinkSIBox)\r\n .apply();\r\n","import React from 'react';\r\nimport {Link} from '../../raw-components/link/link';\r\nimport {FilterLinkIconBox} from \"./boxes/icon/filter-link-icon.box\";\r\nimport {ACTIVE} from \"../../../themes/css-global-classes\";\r\nimport classNames from \"classnames\";\r\nimport {observer} from \"mobx-react\";\r\nimport {FilterLinkBox} from \"./boxes/filter-link.box\";\r\nimport {OrbitComponent} from \"../../base-components/orbit-component/orbit-component\";\r\nimport {\r\n IArenaGameFilterEditorViewModel\r\n} from \"../../../services/games-filter/arena-filters/filters/arena-game-filter-editor-view-model.interface\";\r\n\r\nexport interface FilterLinkComponentProps {\r\n filter: IArenaGameFilterEditorViewModel,\r\n onChange: (filter: IArenaGameFilterEditorViewModel) => void;\r\n}\r\n\r\n@observer\r\nexport class FilterLinkComponent extends OrbitComponent {\r\n\r\n private _onFilterClick = () => {\r\n this.props.onChange(this.props.filter);\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n \r\n {this.props.filter.text}\r\n \r\n );\r\n }\r\n}\r\n","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../themes/architecture/styled-by-device\";\r\nimport {CssRule} from \"../../../themes/architecture/css-helpers/css-rule\";\r\n\r\nconst CommonStyles = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n margin: 0;\r\n`;\r\n\r\nconst PCBox = CommonStyles;\r\n\r\nconst MobileBox = styled(CommonStyles)`\r\n margin: 10px auto;\r\n display: grid;\r\n grid-template-columns: repeat(3, 130px);\r\n grid-gap: 10px;\r\n justify-content: center;\r\n \r\n ${CssRule.For.mobile.landscape.build()} & {\r\n grid-template-columns: repeat(5, 130px);\r\n }\r\n \r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n grid-template-columns: repeat(3, 100px);\r\n \r\n ${CssRule.For.mobile.landscape.build()} & {\r\n grid-template-columns: repeat(5, 100px);\r\n }\r\n }\r\n`;\r\n\r\n\r\nexport const FiltersGamesListDefaultBox = styledByDevice(PCBox, MobileBox);","import {FiltersGamesListDefaultBox} from \"./filters-games-list.default.box\";\r\n\r\nexport const FiltersGamesListBox = FiltersGamesListDefaultBox;","import React from 'react';\r\nimport {OrbitComponent} from '../../base-components/orbit-component/orbit-component';\r\nimport {FilterLinkComponent} from '../filter-link/filter-link.component';\r\nimport {FiltersGamesListBox} from \"./filters-games-list.box\";\r\nimport {\r\n IArenaGameFilterEditorViewModel\r\n} from \"../../../services/games-filter/arena-filters/filters/arena-game-filter-editor-view-model.interface\";\r\n\r\nexport interface FilterLinkListComponentProps {\r\n filters: IArenaGameFilterEditorViewModel[];\r\n onToggle: (filter: IArenaGameFilterEditorViewModel) => void\r\n}\r\nexport class FilterLinkListComponent extends OrbitComponent {\r\n\r\n private _toggleHandler = (filter: IArenaGameFilterEditorViewModel) => {\r\n this.props.onToggle(filter);\r\n };\r\n\r\n private _renderOneFilter(filter: IArenaGameFilterEditorViewModel) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this.props.filters.map(filter => this._renderOneFilter(filter))}\r\n \r\n );\r\n }\r\n}\r\n","import styled from \"styled-components\";\r\n\r\nexport const FiltersGamesMobilePopupBox = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n background: ${props => props.theme.colors.background};\r\n z-index: 1;\r\n`;","import {FiltersMobileButtonsDefaultBox} from \"./filters-mobile-buttons.default.box\";\r\n\r\nexport const FiltersMobileButtonsBox = FiltersMobileButtonsDefaultBox;","import styled from \"styled-components\";\r\n\r\nexport const FiltersMobileButtonsDefaultBox = styled.div`\r\n padding-bottom: 3rem;\r\n margin-top: auto;\r\n`;","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {FilterLinkListComponent} from '../filter-link-list/filter-link-list.component';\r\nimport {FiltersGamesMobilePopupBox} from \"./boxes/popup/filters-games-mobile-popup.box\";\r\nimport {FiltersMobileButtonsBox} from \"./boxes/popup/menu/filters-mobile-buttons.box\";\r\nimport {IModalDialogHandler} from \"../../../services/dialog/dialog.service.interface\";\r\nimport { ModalDialogActionsComponent } from '../../modal-dialog/modal-dialog-actions.component';\r\nimport {OrbitComponent} from \"../../base-components/orbit-component/orbit-component\";\r\nimport {\r\n IArenaGameFilterEditorViewModel\r\n} from \"../../../services/games-filter/arena-filters/filters/arena-game-filter-editor-view-model.interface\";\r\nimport {\r\n ISimpleStrategyFiltersEditorViewModel\r\n} from \"../../../services/games-filter/strategies/simple-games-filter/simple-strategy-filters-editor-view-model.interface\";\r\n\r\n\r\nexport interface FiltersGamesListMobileComponentProps {\r\n dialogHandler: IModalDialogHandler;\r\n filtersEditor: ISimpleStrategyFiltersEditorViewModel;\r\n}\r\n\r\n@observer\r\nexport class FiltersGamesListMobileComponent extends OrbitComponent {\r\n\r\n\r\n private _closePopup = () => {\r\n this.props.dialogHandler.close();\r\n };\r\n\r\n private _applyFilters = async () => {\r\n await this.props.filtersEditor.applyFilters();\r\n const checkedFiltersIds = this.props.filtersEditor.visibleFilters.filter(f => f.on).map(f => f.id);\r\n this.services.analytics.sendOrbitUserFlowEvent(\"Navigation\",this.services.routing.currentRoute.data.arenaType, checkedFiltersIds.join(','));\r\n this._closePopup();\r\n };\r\n\r\n private _clearFilters = async () => {\r\n this.props.filtersEditor.visibleFilters.forEach(f => {\r\n f.on = false;\r\n });\r\n\r\n await this._applyFilters();\r\n\r\n };\r\n\r\n private _renderPopupButtons() {\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _onToggleFilter = (filter: IArenaGameFilterEditorViewModel) => {\r\n filter.toggleFilter();\r\n }\r\n\r\n render() {\r\n\r\n if (this.props.filtersEditor.visibleFilters.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n {this._renderPopupButtons()}\r\n \r\n )\r\n }\r\n}\r\n\r\n","import {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {ArenaGameFilterEditor} from \"../../arena-filters/filters/arena-game-filter-editor\";\r\nimport {ISimpleStrategyFiltersEditorViewModel} from \"./simple-strategy-filters-editor-view-model.interface\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {IArenaGameFiltersCategory} from \"../../arena-filters/categories/arena-game-filters-category.interface\";\r\n\r\nexport class SimpleStrategyFiltersEditor implements ISimpleStrategyFiltersEditorViewModel {\r\n constructor(private readonly filtersCategories: IArenaGameFiltersCategory[],\r\n private readonly services: IServiceFactoryExtended) {\r\n this._filters = this._createFiltersEditor();\r\n }\r\n\r\n private readonly _filters: ArenaGameFilterEditor[];\r\n\r\n get visibleFilters(): ArenaGameFilterEditor[] {\r\n return this._filters.filter(f => f.shouldBeDisplayed);\r\n }\r\n\r\n private _createFiltersEditor(): ArenaGameFilterEditor[] {\r\n const result: ArenaGameFilterEditor[] = [];\r\n\r\n this.filtersCategories.forEach(c => {\r\n c.availableFilters.forEach(f => {\r\n result.push(new ArenaGameFilterEditor(f));\r\n });\r\n });\r\n\r\n return this._sortFilters(result);\r\n }\r\n\r\n private _sortFilters(filters: ArenaGameFilterEditor[]): ArenaGameFilterEditor[] {\r\n\r\n //sorting the filters by the order in which they were defined in config.json\r\n const filtersConfigurations = this.services.arenas.getCurrentArena().filtersConfigurationMap;\r\n\r\n if(Check.isEmpty(filtersConfigurations)) {\r\n return filters;\r\n }\r\n\r\n return filters.sort((f1, f2) => filtersConfigurations[f1.id]?.index - filtersConfigurations[f2.id]?.index);\r\n }\r\n\r\n async applyFilters(): Promise {\r\n await this.services.gamesFilter.applyFilters(this._filters.filter(f => f.on).map(f => f.id));\r\n }\r\n\r\n}","import {GameInfo} from '../../../games/game-info';\r\nimport {IArenaGameFiltersCategory} from \"../../arena-filters/categories/arena-game-filters-category.interface\";\r\nimport {computed} from \"mobx\";\r\nimport {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {GameFilterDefinitionBase} from \"../game-filter-definition-base\";\r\nimport {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\n\r\n/**\r\n * This class is used to apply a filter that does something like this:\r\n * Show all games that doesn't fall in any of the other available games filters categories for the current arena\r\n */\r\n\r\nexport class OtherFilterDefinition extends GameFilterDefinitionBase {\r\n constructor(services: IServiceFactoryExtended, private readonly allOthersCategories: IArenaGameFiltersCategory[]) {\r\n super(services);\r\n }\r\n\r\n get id(): string {\r\n return 'other';\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('OTHER');\r\n }\r\n\r\n\r\n @computed\r\n get currentArenaCategories(): IArenaGameFiltersCategory[] {\r\n return this.allOthersCategories.filter(c => c.availableFilters.length > 0);\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n const categoriesInCurrentArena = this.currentArenaCategories;\r\n for(let category of categoriesInCurrentArena) {\r\n if(category.isGameIncludedInThisCategory(gameInfo)) {\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n }\r\n\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n\r\n}\r\n","import {IArenaGameFiltersCategory} from \"../arena-filters/categories/arena-game-filters-category.interface\";\r\nimport {CategoryDefinitionId, IFilterCategoryDefinition} from \"./filter-category-definition.interface\";\r\nimport {IGameFilterDefinition} from \"../filters-definitions/game-filter-definition.interface\";\r\nimport {OtherFilterDefinition} from \"../filters-definitions/other/other.filter-definition\";\r\nimport {IServiceFactoryExtended} from \"../../service-factory-extended.interface\";\r\nimport {GameInfo} from \"../../games/game-info\";\r\nimport {ApplyGameFilterResult} from \"../evaluators/game-filter-evaluator.interface\";\r\n\r\nexport class OtherFiltersCategoryDefinition implements IFilterCategoryDefinition {\r\n\r\n constructor(otherAvailableCategories: IArenaGameFiltersCategory[],\r\n private readonly services: IServiceFactoryExtended) {\r\n this.availableFilters = [\r\n new OtherFilterDefinition(services, otherAvailableCategories)\r\n ];\r\n }\r\n\r\n readonly id: CategoryDefinitionId = null;\r\n\r\n applyFilters(gameInfo: GameInfo, filters: IGameFilterDefinition[]): ApplyGameFilterResult {\r\n return this.availableFilters[0].applyFilter(gameInfo);\r\n }\r\n\r\n get title(): string {\r\n return this.services.translation.translate('OTHER');\r\n }\r\n\r\n readonly availableFilters: IGameFilterDefinition[];\r\n\r\n get isMultiSelect(): boolean {\r\n return false;\r\n }\r\n\r\n readonly hasItsOwnFiltersOrder = false;\r\n}","import {ArenaGameFilterBase} from \"./arena-game-filter-base\";\r\nimport {IArenaGameFilter} from \"./arena-game-filter.interface\";\r\n\r\nexport class StaticArenaGameFilter extends ArenaGameFilterBase{\r\n get subFilters(): IArenaGameFilter[] {\r\n return [];\r\n }\r\n}\r\n","import {Check} from \"@sparkware/app-utils\";\r\nimport {StaticArenaGameFilter} from \"../filters/static-arena-game-filter\";\r\nimport {ArenaGameFiltersCategoryBase} from \"./arena-game-filters-category-base\";\r\nimport {computed} from \"mobx\";\r\nimport {IArenaGameFilter} from \"../filters/arena-game-filter.interface\";\r\nimport {NullableNumber} from \"../../../../../common/types/nullable-types\";\r\n\r\nexport class StaticArenaGameFiltersCategory extends ArenaGameFiltersCategoryBase {\r\n\r\n /**\r\n * Restrict available filters to only those that are defined in config.json for current arena\r\n */\r\n @computed\r\n get availableFilters(): IArenaGameFilter[] {\r\n return this._createFiltersForCurrentArena();\r\n }\r\n private _createFiltersForCurrentArena(): IArenaGameFilter[] {\r\n\r\n const currentArenaFiltersConfigurations = this.services.arenas.getCurrentArena().filtersConfigurationMap;\r\n if(Check.isEmpty(currentArenaFiltersConfigurations)) {\r\n return [];\r\n }\r\n\r\n return this.categoryDefinition.availableFilters\r\n .filter(f => currentArenaFiltersConfigurations[f.id])\r\n .map(f => new StaticArenaGameFilter(f, this.services));\r\n }\r\n\r\n get gamesCount(): NullableNumber {\r\n return null;\r\n }\r\n}","import {FiltersGameListPcDefaultBox} from \"./filters-game-list-pc.default.box\";\r\n\r\nexport const FiltersGameListPcBox = FiltersGameListPcDefaultBox;","import styled from \"styled-components\";\r\n\r\nexport const FiltersGameListPcDefaultBox = styled.div`\r\n width:100%;\r\n padding-left: 4rem;\r\n padding-right: 4rem;\r\n padding-top: 1rem;\r\n`;","import React from 'react';\r\nimport {OrbitComponent} from '../../base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\nimport {FilterLinkListComponent} from '../filter-link-list/filter-link-list.component';\r\nimport {FiltersGameListPcBox} from \"./boxes/filters-game-list-pc.box\";\r\nimport {\r\n IArenaGameFilterEditorViewModel\r\n} from \"../../../services/games-filter/arena-filters/filters/arena-game-filter-editor-view-model.interface\";\r\nimport {\r\n ISimpleStrategyFiltersEditorViewModel\r\n} from \"../../../services/games-filter/strategies/simple-games-filter/simple-strategy-filters-editor-view-model.interface\";\r\n\r\n\r\ninterface FiltersGamesListPcComponentProps {\r\n filtersEditor: ISimpleStrategyFiltersEditorViewModel;\r\n}\r\n@observer\r\nexport class FiltersGamesListPcComponent extends OrbitComponent {\r\n\r\n\r\n private _toggleFilter = async (filter: IArenaGameFilterEditorViewModel) => {\r\n filter.toggleFilter();\r\n await this.props.filtersEditor.applyFilters();\r\n this.services.analytics.sendOrbitUserFlowEvent(\"Navigation\",this.services.routing.currentRoute.data.arenaType, filter.id);\r\n };\r\n\r\n render() {\r\n\r\n if(this.props.filtersEditor.visibleFilters.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import {IArenaGameFilter} from \"./arena-game-filter.interface\";\r\nimport {IGameFilterDefinition} from \"../../filters-definitions/game-filter-definition.interface\";\r\nimport {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {NullableNumber} from \"../../../../../common/types/nullable-types\";\r\n\r\nexport class AdhocArenaGameFilter implements IArenaGameFilter {\r\n constructor(public readonly filterDefinition: IGameFilterDefinition,\r\n private readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n readonly isAdhocFilter = true;\r\n\r\n get id(): string {\r\n return this.filterDefinition.id;\r\n }\r\n\r\n get text(): string {\r\n return this.filterDefinition.text;\r\n }\r\n\r\n get isApplied(): boolean {\r\n return this.services.gamesFilter.isFilterApplied(this.id);\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n return this.filterDefinition.applyFilter(gameInfo);\r\n }\r\n \r\n readonly gamesCount: NullableNumber = null;\r\n\r\n readonly subFilters: IArenaGameFilter[] = [];\r\n}","import {IGameFilterDefinition} from '../game-filter-definition.interface';\r\nimport {GameInfo} from '../../../games/game-info';\r\nimport {removeSpaces} from \"../../../../../utils/string-helpers\";\r\nimport {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\n\r\nexport class CompanyFilterDefinitions implements IGameFilterDefinition {\r\n constructor(public readonly id: string,\r\n private readonly _companyName: string) {\r\n\r\n }\r\n\r\n get text(): string {\r\n return this._companyName;\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n if(removeSpaces(gameInfo.companyName.toLowerCase()) === removeSpaces(this._companyName.toLowerCase())) {\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n\r\n readonly subFilters: IGameFilterDefinition[] = [];\r\n\r\n}\r\n","import {IArenaGameFiltersCategory} from \"./arena-game-filters-category.interface\";\r\nimport {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {Nullable, NullableNumber} from \"../../../../../common/types/nullable-types\";\r\nimport {AdhocArenaGameFilter} from \"../filters/adhoc-arena-game-filter\";\r\nimport {CompanyFilterDefinitions} from \"../../filters-definitions/company/company.filter-definitions\";\r\nimport {computed} from \"mobx\";\r\nimport {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {AND} from \"../../evaluators/and-game-filters-evaluator\";\r\nimport {CategoryDefinitionId} from \"../../filters-categories-definitions/filter-category-definition.interface\";\r\nimport {\r\n GameVendorFiltersCategoryDefinition\r\n} from \"../../filters-categories-definitions/game-vendor.filters-category-definition\";\r\nimport {IArenaGameFilter} from \"../filters/arena-game-filter.interface\";\r\n\r\nexport class AdhocArenaGamesFiltersCategory implements IArenaGameFiltersCategory {\r\n constructor(private readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n readonly isApplicableForCurrentArena: boolean = true;\r\n readonly id: CategoryDefinitionId = 'adHoc';\r\n readonly title: string = 'Ad hoc filters';\r\n readonly gamesCount: NullableNumber = null;\r\n\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n\r\n if(this.availableFilters.length === 0) {\r\n return ApplyGameFilterResult.NotApplicable;\r\n }\r\n\r\n return AND(...this.availableFilters).applyFilter(gameInfo);\r\n }\r\n\r\n\r\n isGameIncludedInThisCategory(gameInfo: GameInfo): boolean {\r\n return this.applyFilter(gameInfo) === ApplyGameFilterResult.IncludeGame;\r\n }\r\n\r\n @computed\r\n get availableFilters(): AdhocArenaGameFilter[] {\r\n return this._createDynamicFilters();\r\n }\r\n\r\n get allAppliedFiltersAndSubFilters(): IArenaGameFilter[] {\r\n return this.availableFilters.filter(f => f.isApplied);\r\n }\r\n\r\n private _createDynamicFilters(): AdhocArenaGameFilter[] {\r\n const result: AdhocArenaGameFilter[] = [];\r\n\r\n\r\n\r\n const currentArenaFiltersConfigurations = this.services.arenas.getCurrentArena().filtersConfigurationMap;\r\n\r\n for(let appliedFilterId of this.services.gamesFilter.currentAppliedFiltersIds) {\r\n if(!currentArenaFiltersConfigurations[appliedFilterId]) {\r\n const dynamicFilterDefinition = this._createDynamicFilterById(appliedFilterId);\r\n if(dynamicFilterDefinition) {\r\n result.push(dynamicFilterDefinition);\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 const vendorsCategory = new GameVendorFiltersCategoryDefinition(this.services);\r\n const filter = vendorsCategory.getAllPreferredVendorsFilters().find(f => f.id === filterId) ?? null;\r\n if(filter) {\r\n return new AdhocArenaGameFilter(filter, this.services)\r\n } else {\r\n return null;\r\n }\r\n\r\n case 'company':\r\n return new AdhocArenaGameFilter(new CompanyFilterDefinitions(filterId, parts[1]), this.services);\r\n default:\r\n return null;\r\n\r\n }\r\n }\r\n\r\n get isMultiSelect(): boolean {\r\n return false;\r\n }\r\n}","import React from 'react';\r\nimport {\r\n FiltersGamesListMobileComponent\r\n} from \"../../../../components/filters/filters-games-list-mobile/filters-games-list-mobile.component\";\r\nimport {SimpleStrategyFiltersEditor} from \"./simple-strategy-filters-editor\";\r\nimport {GamesFilterStrategyBase} from \"../games-filter-strategy-base\";\r\nimport {OtherFiltersCategoryDefinition} from \"../../filters-categories-definitions/other.filters-category-definition\";\r\nimport {StaticArenaGameFiltersCategory} from \"../../arena-filters/categories/static-arena-game-filters-category\";\r\nimport {IArenaGameFiltersCategory} from \"../../arena-filters/categories/arena-game-filters-category.interface\";\r\nimport {Lazy} from \"../../../../../utils/Lazy\";\r\nimport {IGameFilterEvaluator} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {OR} from \"../../evaluators/or-game-filters-evaluator\";\r\nimport {AND} from \"../../evaluators/and-game-filters-evaluator\";\r\nimport {\r\n FiltersMobileButtonComponent\r\n} from \"../../../../components/header/top-header-left/filters/filters-mobile-button.component\";\r\nimport {\r\n IPcFilterIndicatorRenderingOptions,\r\n PcFilterIndicatorRenderingLocation\r\n} from \"../../games-filter.service.interface\";\r\nimport {\r\n FiltersGamesListPcComponent\r\n} from \"../../../../components/filters/filters-games-list-pc/filters-games-list-pc.component\";\r\nimport {Nullable} from \"../../../../../common/types/nullable-types\";\r\nimport {FilterCategoryDefinitionFactory} from '../../filters-categories-definitions/filter-category-definition-factory';\r\nimport {AdhocArenaGamesFiltersCategory} from \"../../arena-filters/categories/adhoc-arena-games-filters-category\";\r\n\r\nexport class SimpleGamesFilterStrategy extends GamesFilterStrategyBase {\r\n\r\n private _factory = new FilterCategoryDefinitionFactory(this.services);\r\n\r\n private _vendorCategory = new Lazy(() => new StaticArenaGameFiltersCategory(this._factory.createVendorsCategoryDefinition(), this.services));\r\n private _groupCategory = new Lazy(() => new StaticArenaGameFiltersCategory(this._factory.createGameGroupCategoryDefinition(), this.services));\r\n private _featuresCategory = new Lazy(() => new StaticArenaGameFiltersCategory(this._factory.createGameFeaturesCategoryDefinition(), this.services));\r\n private _othersCategory = new Lazy(() => new StaticArenaGameFiltersCategory(new OtherFiltersCategoryDefinition([this._vendorCategory.value, this._groupCategory.value, this._featuresCategory.value], this.services), this.services));\r\n private _adhocCategory = new Lazy(() => new AdhocArenaGamesFiltersCategory(this.services));\r\n\r\n protected _createFiltersCategories(): IArenaGameFiltersCategory[] {\r\n return [\r\n this._vendorCategory.value,\r\n this._groupCategory.value,\r\n this._featuresCategory.value,\r\n this._othersCategory.value,\r\n this._adhocCategory.value\r\n ];\r\n }\r\n\r\n protected _createEvaluator(): IGameFilterEvaluator | null {\r\n return OR(AND(this._vendorCategory.value,\r\n this._groupCategory.value,\r\n this._featuresCategory.value,\r\n this._adhocCategory.value),\r\n this._othersCategory.value);\r\n }\r\n\r\n private _createFiltersEditor(): SimpleStrategyFiltersEditor {\r\n return new SimpleStrategyFiltersEditor(this.filtersCategories, this.services);\r\n }\r\n\r\n showFiltersEditor(): void {\r\n this.services.dialog.showModal((dialogHandler) => , {\r\n title: this.services.translation.translate('FILTER'),\r\n mobileCenterHeader: true,\r\n applyMaxHeight: true\r\n });\r\n }\r\n\r\n renderMobileFiltersIndicator(): React.ReactElement {\r\n if(this.services.mediaQuery.lAndBelow) {\r\n return ();\r\n } else {\r\n return null;\r\n }\r\n\r\n }\r\n\r\n renderPCFiltersIndicator(): Nullable {\r\n if(this.services.mediaQuery.lAndBelow) {\r\n return null;\r\n } else {\r\n return {\r\n location: PcFilterIndicatorRenderingLocation.BelowArenaTitle,\r\n reactElement: ()\r\n };\r\n }\r\n }\r\n\r\n protected _reportApplyFiltersAnalytics(): void {\r\n // we don't report analytics for simple filters\r\n }\r\n\r\n}","import React from \"react\";\r\nimport {ArenaBaseModel} from \"../arena-base.model\";\r\nimport {\r\n ArenaConfiguration, ArenaGamesGridConfiguration,\r\n SwiperGamesListConfiguration\r\n} from \"../../../../configurations/config-data-sections/arenas.configuration\";\r\nimport {CasinoArenaComponent} from \"../../../../../components/arena-host/casino-arena/casino-arena.component\";\r\nimport {GameInfo} from \"../../../../games/game-info\";\r\nimport {\r\n CASINO_GAMES_ARENA_NAME,\r\n EXCLUSIVE_ARENA_NAME,\r\n JACKPOTS_ARENA_NAME,\r\n SLOTS_ARENA_NAME\r\n} from \"../../../arena-consts\";\r\nimport {computed} from \"mobx\";\r\nimport {ArenaFiltersConfigurationMap} from \"../arena-view-model.interface\";\r\nimport {filtersConfigurationToMap} from \"../../filters-configuration-to-map\";\r\nimport {IGamesFilterStrategy} from \"../../../../games-filter/strategies/games-filter-strategy.interface\";\r\nimport {\r\n AdvancedGamesFilterStrategy\r\n} from \"../../../../games-filter/strategies/advanced-filter/advanced-games-filter.strategy\";\r\nimport {\r\n SimpleGamesFilterStrategy\r\n} from \"../../../../games-filter/strategies/simple-games-filter/simple-games-filter.strategy\";\r\n\r\nexport class CasinoLobbyArenaModel extends ArenaBaseModel {\r\n\r\n get maxSwipersToShow(): number {\r\n return 20;\r\n }\r\n\r\n get maxGamesToShowInList(): number {\r\n return 30;\r\n }\r\n\r\n private get config(): ArenaConfiguration {\r\n return this.services.configuration.data.arenas[this.arenaName]\r\n }\r\n\r\n protected _getSwipersConfigurations(): SwiperGamesListConfiguration[] {\r\n return this.config.swiperGamesList || [];\r\n }\r\n\r\n protected _getGridsConfigurations(): ArenaGamesGridConfiguration[] {\r\n return this.config.allGamesGrid || [];\r\n }\r\n\r\n renderArena(): React.ReactElement | null {\r\n return ;\r\n }\r\n\r\n protected _getPromotionalBannerConfig() {\r\n const bannerConfig = this.config.promotionalBanner;\r\n if(!bannerConfig) {\r\n return null;\r\n }\r\n\r\n if(this.services.device.hybrid.isEmbedded) {\r\n return null;\r\n }\r\n\r\n return {\r\n position: 2,\r\n templateID: bannerConfig.templateID,\r\n componentID: bannerConfig.componentID,\r\n fallbackComponent: bannerConfig.fallbackComponent,\r\n bannerAdminPlaceholderId: bannerConfig.bannerAdminPlaceholderId\r\n }\r\n }\r\n\r\n filterGamesByArenaType(gamesInfo: GameInfo[]): GameInfo[] {\r\n switch (this.arenaName) {\r\n case SLOTS_ARENA_NAME:\r\n case JACKPOTS_ARENA_NAME:\r\n return gamesInfo.filter(g => g.isVideoSlot);\r\n case EXCLUSIVE_ARENA_NAME:\r\n return gamesInfo.filter(g => g.isVideoSlot || g.isCasinoGame);\r\n case CASINO_GAMES_ARENA_NAME:\r\n return gamesInfo.filter(g => g.isCasinoGame);\r\n\r\n default:\r\n return gamesInfo.filter(g => !g.isLiveCasino);\r\n }\r\n }\r\n\r\n @computed\r\n get filtersConfigurationMap(): ArenaFiltersConfigurationMap {\r\n return filtersConfigurationToMap(this.config.filters);\r\n }\r\n\r\n getGamesFilteringStrategy(): IGamesFilterStrategy {\r\n if (this.useAdvancedFilters) {\r\n return new AdvancedGamesFilterStrategy(this.services);\r\n }\r\n return new SimpleGamesFilterStrategy(this.services);\r\n }\r\n}\r\n","import React from \"react\";\r\nimport {ArenaFiltersConfigurationMap, IArenaViewModel} from \"../arena-view-model.interface\";\r\nimport {GameInfo} from \"../../../../games/game-info\";\r\nimport {IGamesFilterStrategy} from \"../../../../games-filter/strategies/games-filter-strategy.interface\";\r\nimport {NoGamesFilterStrategy} from \"../../../../games-filter/strategies/no-filter/no-games-filter.strategy\";\r\nimport {IServiceFactoryExtended} from \"../../../../service-factory-extended.interface\";\r\n\r\nexport class VoidArenaModel implements IArenaViewModel {\r\n constructor(private readonly services: IServiceFactoryExtended) {\r\n }\r\n get arenaName(): string {\r\n return 'voidArena';\r\n }\r\n\r\n get listsCount(): number {\r\n return 0;\r\n }\r\n\r\n renderArena(): React.ReactElement | null {\r\n return null;\r\n }\r\n\r\n renderList(listPosition: number): React.ReactElement | null {\r\n return null;\r\n }\r\n\r\n getNextBatchSize(currentListPosition: number): number {\r\n return 0;\r\n }\r\n\r\n filterGamesByArenaType(gamesInfo: GameInfo[]): GameInfo[] {\r\n return [];\r\n }\r\n\r\n readonly allArenaGamesForFiltering: GameInfo[] = [];\r\n\r\n readonly filteredGamesCount: number = 0;\r\n\r\n readonly filtersConfigurationMap: ArenaFiltersConfigurationMap = {};\r\n getGamesFilteringStrategy(): IGamesFilterStrategy {\r\n return new NoGamesFilterStrategy(this.services);\r\n }\r\n}","import {IServiceFactoryExtended} from \"../../service-factory-extended.interface\";\r\nimport {IGamesListModel} from \"./lists/games-list-model.interface\";\r\n\r\nconst POST_LOGIN_LISTS_ORDER_KEY = \"cgp-post-login-lists-order\";\r\n\r\ninterface IPostLoginListsOrder {\r\n lists: Record;\r\n}\r\n\r\nexport class ListsSortOrderStorage {\r\n constructor(private readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n private _createEmptyListsOrder(): IPostLoginListsOrder {\r\n return {\r\n lists: {}\r\n };\r\n }\r\n\r\n private _listsSavedOrder: IPostLoginListsOrder = null;\r\n private _getSavedListsOrder(): IPostLoginListsOrder {\r\n if(!this._listsSavedOrder) {\r\n this._listsSavedOrder = this.services.localStorage.getJson(POST_LOGIN_LISTS_ORDER_KEY) || this._createEmptyListsOrder();\r\n }\r\n return this._listsSavedOrder;\r\n }\r\n\r\n saveSortOrder(arenaName: string, lists: IGamesListModel[]): void {\r\n const listsOrder = this._getSavedListsOrder();\r\n listsOrder.lists[arenaName] = lists.map(list => list.title.translationKey);\r\n this.services.localStorage.setJson(POST_LOGIN_LISTS_ORDER_KEY, listsOrder);\r\n }\r\n\r\n sortLists(arenaName: string, lists: IGamesListModel[]): IGamesListModel[] {\r\n const arenaListsOrder = this._getSavedListsOrder().lists[arenaName] || [];\r\n if(arenaListsOrder.length === 0) {\r\n return lists;\r\n }\r\n\r\n const listsOrderMap = arenaListsOrder.reduce>((map, listTitle, index) => {\r\n map[listTitle] = index;\r\n return map;\r\n }, {});\r\n\r\n\r\n return lists.sort((l1, l2) => (listsOrderMap[l1.title.translationKey] || 0) - (listsOrderMap[l2.title.translationKey] || 0));\r\n\r\n }\r\n}","import styled from \"styled-components\";\r\n\r\nexport const LiveCasinoFilterButtonIconDefaultBox = styled.div<{isActiveTab?: boolean}>`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n height: 5em;\r\n width: 100%;\r\n color: ${({theme, isActiveTab}) => isActiveTab ? theme.colors.brandPrimary : theme.colors.textLight};\r\n transform: scale(${({isActiveTab}) => isActiveTab ? 1 : 0.8});\r\n transition: transform 0.25s ease;\r\n\r\n :hover {\r\n transform: scale(1);\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {LiveCasinoFilterButtonIconDefaultBox} from \"./live-casino-filter-button-icon.default.box\";\r\n\r\nexport const LiveCasinoFilterIconSIBox = styled(LiveCasinoFilterButtonIconDefaultBox)`\r\n color: ${({theme}) => theme.colors.textLight};\r\n`;","import styled from \"styled-components\";\r\nimport {LiveCasinoFilterButtonIconDefaultBox} from \"./live-casino-filter-button-icon.default.box\";\r\n\r\nexport const LiveCasinoFilterIconMrGreenBox = styled(LiveCasinoFilterButtonIconDefaultBox)`\r\n transform: scale(1);\r\n color: ${({theme, isActiveTab}) => isActiveTab ? theme.colors.textActive : 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\nimport {LiveCasinoFilterIconMrGreenBox} from \"./live-casino-filter-button-icon.mrgreen.box\";\r\n\r\nexport const LiveCasinoFilterButtonIconBox = styledByTheme(LiveCasinoFilterButtonIconDefaultBox)\r\n .forSI(LiveCasinoFilterIconSIBox)\r\n .forSICis(LiveCasinoFilterIconSIBox)\r\n .forMrGreen(LiveCasinoFilterIconMrGreenBox)\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 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 LiveCasinoFilterButtonLabelMrGreenBox = styled(LiveCasinoFilterButtonLabelDefaultBox)`\r\n &.${ACTIVE} {\r\n color: ${({theme}) => theme.colors.brandSecondaryLight};\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\nimport {LiveCasinoFilterButtonLabelMrGreenBox} from \"./live-casino-filter-button-label.mrgreen.box\";\r\n\r\nexport const LiveCasinoFilterButtonLabelBox = styledByTheme(LiveCasinoFilterButtonLabelDefaultBox)\r\n .forCasino777(LiveCasinoFilterButtonLabelCasino777Box)\r\n .forSI(LiveCasinoFilterButtonLabelSIBox)\r\n .forSICis(LiveCasinoFilterButtonLabelSIBox)\r\n .forMrGreen(LiveCasinoFilterButtonLabelMrGreenBox)\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 styled from \"styled-components\";\r\nimport { LiveCasinoArenaNavbarButtonDefaultBox } from \"./live-casino-arena-navbar-button.default.box\";\r\nimport {ACTIVE} from \"../../../../../../themes/css-global-classes\";\r\n\r\nexport const LiveCasinoArenaNavbarButtonMrGreenBox = styled(LiveCasinoArenaNavbarButtonDefaultBox)`\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n &.${ACTIVE} {\r\n box-shadow: inset 3px 0px 4px rgba(25, 25, 25, 0.7), inset -3px 0px 4px rgba(25, 25, 25, 0.7);\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\nimport {LiveCasinoArenaNavbarButtonMrGreenBox} from \"./live-casino-arena-navbar-button.mrgreen.box\";\r\n\r\nexport const LiveCasinoArenaNavbarButtonBox = styledByTheme(LiveCasinoArenaNavbarButtonDefaultBox)\r\n .forCasino777(LiveCasinoArenaNavbarButtonCasino777Box)\r\n .forSI(LiveCasinoArenaNavbarButtonSIBox)\r\n .forSICis(LiveCasinoArenaNavbarButtonSIBox)\r\n .forMrGreen(LiveCasinoArenaNavbarButtonMrGreenBox)\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 labelTranslationKey: 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\r\n private buttonIconMap = new Map([\r\n [\"TOP_EVO_GAMES\", this.services.theme.currentTheme.icons.topGamesIcon],\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 [\"EXCLUSIVE\", this.services.theme.currentTheme.icons.tripleEightExclusiveIcon]\r\n ]);\r\n\r\n private _getButtonIcon() {\r\n return this.buttonIconMap.get(this.props.labelTranslationKey);\r\n }\r\n\r\n private _getLabelTranslationKey(): string {\r\n let currentTranslationKey = this.props.labelTranslationKey;\r\n if (this.services.user.isAuthorized && currentTranslationKey === \"TOP_EVO_GAMES\") {\r\n currentTranslationKey = \"FOR_YOU_GAMES\";\r\n }\r\n\r\n return currentTranslationKey;\r\n }\r\n\r\n onFilterClicked(isActive: boolean) {\r\n if (!isActive) {\r\n this.services.analytics.sendOrbitUserFlowEvent(\"Navigation\", \"Live Tab\", this._getLabelTranslationKey());\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 (\r\n this.onFilterClicked(this.props.isActiveTab)}\r\n >\r\n \r\n \r\n \r\n \r\n {this.services.translation.translate(this._getLabelTranslationKey())}\r\n \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 _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 {\r\n this.services.liveTableFeeds.isNavbarVisible && \r\n }\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 }\r\n}\r\n","import {ArenaFiltersConfigurationMap, IArenaViewModel} from \"../arena-view-model.interface\";\r\nimport {IServiceFactoryExtended} from \"../../../../service-factory-extended.interface\";\r\nimport React from \"react\";\r\nimport {OrbitSuspense} from \"../../../../../components/base-components/orbit-suspense/orbit-suspense\";\r\nimport {NewLiveCasinoArenaComponent} from \"../../../../../components/arena-host/new-live-casino-arena/new-live-casino-arena.component\";\r\nimport {GameInfo} from \"../../../../games/game-info\";\r\nimport {filtersConfigurationToMap} from \"../../filters-configuration-to-map\";\r\nimport {ArenaConfiguration} from \"../../../../configurations/config-data-sections/arenas.configuration\";\r\nimport {IGamesFilterStrategy} from \"../../../../games-filter/strategies/games-filter-strategy.interface\";\r\nimport {\r\n SimpleGamesFilterStrategy\r\n} from \"../../../../games-filter/strategies/simple-games-filter/simple-games-filter.strategy\";\r\n\r\nexport class NewLiveCasinoArenaModel implements IArenaViewModel {\r\n constructor(public readonly arenaName: string,\r\n private readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n get listsCount(): number {\r\n return 0;\r\n }\r\n\r\n renderList(listPosition: number): React.ReactElement | null {\r\n return null;\r\n }\r\n\r\n getNextBatchSize(currentListPosition: number): number {\r\n return 0;\r\n }\r\n\r\n get configs(): ArenaConfiguration {\r\n return this.services.configuration.data.arenas[this.arenaName];\r\n }\r\n\r\n renderArena(): React.ReactElement | null {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n filterGamesByArenaType(gamesInfo: GameInfo[]): GameInfo[] {\r\n return gamesInfo.filter(g => g.isLiveCasino);\r\n }\r\n\r\n get allArenaGamesForFiltering(): GameInfo[] {\r\n return [];\r\n }\r\n\r\n readonly filteredGamesCount: number = 0;\r\n\r\n get filtersConfigurationMap(): ArenaFiltersConfigurationMap {\r\n return filtersConfigurationToMap(this.configs.filters);\r\n }\r\n\r\n getGamesFilteringStrategy(): IGamesFilterStrategy {\r\n return new SimpleGamesFilterStrategy(this.services);\r\n }\r\n\r\n}","import React from \"react\";\r\nimport {OrbitSuspense} from \"../../../../../components/base-components/orbit-suspense/orbit-suspense\";\r\nimport {IServiceFactoryExtended} from \"../../../../service-factory-extended.interface\";\r\nimport {ArenaFiltersConfigurationMap, IArenaViewModel} from \"../arena-view-model.interface\";\r\nimport {GameInfo} from \"../../../../games/game-info\";\r\nimport {filtersConfigurationToMap} from \"../../filters-configuration-to-map\";\r\nimport {ArenaConfiguration} from \"../../../../configurations/config-data-sections/arenas.configuration\";\r\nimport {IGamesFilterStrategy} from \"../../../../games-filter/strategies/games-filter-strategy.interface\";\r\nimport {NoGamesFilterStrategy} from \"../../../../games-filter/strategies/no-filter/no-games-filter.strategy\";\r\nconst LiveCasinoArenaComponent = React.lazy(\r\n () => import(\"../../../../../components/arena-host/live-casino-arena/live-casino-arena.component\").then(({LiveCasinoArenaComponent}) => ({default: LiveCasinoArenaComponent}))\r\n);\r\n\r\nexport class LiveCasinoArenaModel implements IArenaViewModel {\r\n constructor(public readonly arenaName: string, private readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n get listsCount(): number {\r\n return 0;\r\n }\r\n\r\n renderList(listPosition: number): React.ReactElement | null {\r\n return null;\r\n }\r\n\r\n getNextBatchSize(currentListPosition: number): number {\r\n return 0;\r\n }\r\n\r\n get configs(): ArenaConfiguration {\r\n return this.services.configuration.data.arenas[this.arenaName];\r\n }\r\n\r\n renderArena() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n filterGamesByArenaType(gamesInfo: GameInfo[]): GameInfo[] {\r\n return gamesInfo.filter(g => g.isLiveCasino);\r\n }\r\n\r\n get allArenaGamesForFiltering(): GameInfo[] {\r\n return [];\r\n }\r\n\r\n readonly filteredGamesCount: number = 0;\r\n\r\n get filtersConfigurationMap(): ArenaFiltersConfigurationMap {\r\n return filtersConfigurationToMap(this.configs.filters);\r\n }\r\n\r\n getGamesFilteringStrategy(): IGamesFilterStrategy {\r\n return new NoGamesFilterStrategy(this.services);\r\n }\r\n}","import {ServiceBase} from '../ServiceBase';\r\nimport {IArenasService} from './arenas.service.interface';\r\nimport {HOME_PAGE_ARENA, LIVE_CASINO_ARENA_NAME, NEW_LIVE_CASINO_ARENA_NAME} from './arena-consts';\r\nimport {\r\n ArenaConfiguration\r\n} from \"../configurations/config-data-sections/arenas.configuration\";\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 constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n this._postLoginListsSortOrderStorage = new ListsSortOrderStorage(services);\r\n this._loadArenas();\r\n }\r\n\r\n private _arenas: Record = {};\r\n private readonly _postLoginListsSortOrderStorage: ListsSortOrderStorage;\r\n\r\n private _loadArenas(): void {\r\n this._arenas[HOME_PAGE_ARENA] = this._createArena(HOME_PAGE_ARENA);\r\n const arenasConfigs = this.services.configuration.data.arenas;\r\n for(let arenaName in arenasConfigs) {\r\n this._arenas[arenaName] = this._createArena(arenaName);\r\n }\r\n }\r\n\r\n getArena(arenaName: string): IArenaViewModel {\r\n return this._arenas[arenaName] || new VoidArenaModel(this.services);\r\n }\r\n\r\n private _createArena(arenaName: string): IArenaViewModel | null {\r\n switch (arenaName) {\r\n case HOME_PAGE_ARENA:\r\n return new HomePageArenaModel(this.services, this._postLoginListsSortOrderStorage);\r\n case NEW_LIVE_CASINO_ARENA_NAME:\r\n return new NewLiveCasinoArenaModel(arenaName, this.services);\r\n case LIVE_CASINO_ARENA_NAME:\r\n return new LiveCasinoArenaModel(arenaName, this.services);\r\n default:\r\n return new CasinoLobbyArenaModel(arenaName, this.services, this._postLoginListsSortOrderStorage);\r\n }\r\n }\r\n\r\n getCurrentArena(): IArenaViewModel {\r\n const arenaName = this.services.routing.currentRoute.data?.arenaType;\r\n if(!arenaName) {\r\n return new VoidArenaModel(this.services);\r\n }\r\n return this.getArena(arenaName)\r\n\r\n }\r\n\r\n getArenaConfig(arenaType: string): ArenaConfiguration {\r\n return this.services.configuration.data.arenas[arenaType];\r\n }\r\n\r\n shouldHideFiltersButtonMobile(): boolean {\r\n const arenasWithoutFilterButton: string[] = [NEW_LIVE_CASINO_ARENA_NAME];\r\n const currentRoute = this.services.routing.currentRoute;\r\n return arenasWithoutFilterButton.includes(currentRoute?.data?.arenaType);\r\n }\r\n}\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../../base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\nimport {Link} from \"../../raw-components/link/link\";\r\n\r\nexport interface BreadcrumbsItemComponentProps {\r\n readonly title: string;\r\n position: number;\r\n readonly url?: string;\r\n onClick?: () => void;\r\n\r\n}\r\n\r\n@observer\r\nexport class BreadcrumbsItemComponent extends OrbitComponent {\r\n\r\n render() {\r\n let noLinkClass = this.props.onClick ? '' : 'no-link';\r\n return (\r\n <>\r\n \r\n \r\n \r\n {this.props.title}\r\n \r\n \r\n \r\n \r\n {this.props.onClick ? {' > '} : null}\r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {IBreadcrumb} from './breadcrumb.interface';\r\nimport {BreadcrumbsItemComponent} from '../../../components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component';\r\n\r\nexport class NonNavigatableBreadcrumb implements IBreadcrumb {\r\n constructor(private _title: string) {\r\n }\r\n\r\n render(position: number) {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {IBreadcrumb} from './breadcrumb.interface';\r\nimport {IServiceFactoryExtended} from '../../service-factory-extended.interface';\r\nimport {BreadcrumbsItemComponent} from '../../../components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component';\r\n\r\n\r\nexport class NavigatableBreadcrumb implements IBreadcrumb {\r\n constructor(private _title: string, private _url: string, private services: IServiceFactoryExtended) {\r\n\r\n }\r\n\r\n private _navigate = () => {\r\n this.services.location.push(this._url);\r\n };\r\n\r\n render(position: number) {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\n\r\n","import {NonNavigatableBreadcrumb} from './breadcrumbs/non-navigatable-breadcrumb';\r\nimport {NavigatableBreadcrumb} from './breadcrumbs/navigatable-breadcrumb';\r\nimport {IBreadcrumb} from './breadcrumbs/breadcrumb.interface';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {UriPath} from \"../location/uri-path/uri-path\";\r\n\r\nexport class SiteMapNode {\r\n constructor(private _title: string, private _url: string, children: any[]) {\r\n this._loadChildren(children);\r\n this._urlParts = new UriPath(_url).toArray();\r\n }\r\n\r\n private readonly _urlParts: string[];\r\n\r\n private _loadChildren(children: any[]): void {\r\n this._children = (children || []).map(ch => new SiteMapNode(ch.title, ch.url, ch.children));\r\n }\r\n\r\n\r\n private _children: SiteMapNode[] = [];\r\n get children(): SiteMapNode[] {\r\n return this._children;\r\n }\r\n\r\n createBreadcrumbs(requestedUrlParts: string[], services: IServiceFactoryExtended): IBreadcrumb[] {\r\n\r\n for(let i = 0; i < this._urlParts.length; i++) {\r\n if(this._urlParts[i] !== requestedUrlParts[i]) {\r\n return [];\r\n }\r\n }\r\n\r\n if(this._urlParts.length === requestedUrlParts.length) {\r\n return [new NonNavigatableBreadcrumb(this._title)] //it means this is the last breadcrumb\r\n } else {\r\n let breadcrumb = new NavigatableBreadcrumb(this._title, this._url, services);\r\n\r\n return [breadcrumb, ...this._createChildrenBreadcrumbs(requestedUrlParts, services)];\r\n }\r\n }\r\n\r\n private _createChildrenBreadcrumbs(requestedUrlParts: string[], services: IServiceFactoryExtended): IBreadcrumb[] {\r\n for(let i = 0; i < this.children.length; i++) {\r\n let childBreadcrumbs = this.children[i].createBreadcrumbs(requestedUrlParts, services);\r\n if(childBreadcrumbs.length > 0) {\r\n return childBreadcrumbs;\r\n }\r\n }\r\n return [];\r\n }\r\n\r\n toFlatSiteMap(): {[key: string]: SiteMapNode} {\r\n let result = {};\r\n result[this._url] = this;\r\n\r\n this.children.forEach(child => {\r\n result = Object.assign(result, child.toFlatSiteMap());\r\n });\r\n\r\n return result;\r\n\r\n }\r\n}\r\n","import {ISiteMapService} from './sitemap.service.interface';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {SiteMapNode} from './sitemap-node';\r\nimport {action, observable} from 'mobx';\r\nimport {IBreadcrumb} from './breadcrumbs/breadcrumb.interface';\r\nimport {UriPath} from '../location/uri-path/uri-path';\r\n\r\nexport class SiteMapService extends ServiceBase implements ISiteMapService {\r\n\r\n private _root: SiteMapNode;\r\n private _flatSiteMapByUrl: {[key: string]: SiteMapNode};\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n try {\r\n this._initSiteMap();\r\n }catch (e) {\r\n this.services.logger.error(`Failed to load sitemap ${e} `);\r\n }\r\n\r\n this.reaction(\r\n () => this.services.location.currentUri,\r\n (uri) => {\r\n this._setBreadcrumbs(this._createBreadCrumbs(uri.pathName));\r\n },\r\n {\r\n fireImmediately: true\r\n });\r\n }\r\n\r\n private _initSiteMap() {\r\n let siteMap = this.services.configuration.startupConfiguration.b2c.sitemap;\r\n this._root = new SiteMapNode(siteMap.title, siteMap.url, siteMap.children);\r\n this._flatSiteMapByUrl = this._root.toFlatSiteMap();\r\n }\r\n\r\n @observable.ref\r\n breadcrumbs: IBreadcrumb[] = [];\r\n\r\n @action.bound\r\n private _setBreadcrumbs(breadcrumbs: IBreadcrumb[]) {\r\n this.breadcrumbs = breadcrumbs;\r\n }\r\n\r\n\r\n private _createBreadCrumbs(uriPath: UriPath): IBreadcrumb[] {\r\n if(!uriPath) {\r\n return [];\r\n }\r\n\r\n if(uriPath.isEmpty) {\r\n return [];\r\n }\r\n\r\n let uriParts = uriPath.toArray();\r\n if(uriParts[0] !== '/') {\r\n uriParts = ['/', ...uriParts];\r\n }\r\n\r\n let breadcrumbs = this._root.createBreadcrumbs(uriParts, this.services);\r\n if(breadcrumbs.length < uriParts.length) {\r\n this.services.logger.warning(`URL ${uriPath} was not found in the sitemap`);\r\n return [];\r\n }\r\n\r\n if(breadcrumbs.length <= 1) {\r\n return [];\r\n }\r\n\r\n return breadcrumbs;\r\n }\r\n\r\n isUrlInSiteMap(url: string): boolean {\r\n if(this._flatSiteMapByUrl[url]) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n\r\n\r\n}\r\n","import {ServiceBase} from '../ServiceBase';\r\nimport {IMarketingService} from './marketing.service.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {encodeUriRecursive} from '../../../utils/url-utils';\r\nimport {MarketingParams} from \"../../../common/interfaces/marketing-params.interface\";\r\n\r\n\r\nconst TEST_DATA_KEY = 'testdata';\r\n\r\nexport class MarketingService extends ServiceBase implements IMarketingService {\r\n\r\n private get _sCut(): any {\r\n return this.services.window.getGlobalProperty('sCut');\r\n }\r\n\r\n private get _sCutQueryParams(): string | null {\r\n let sCut = this._sCut;\r\n if(sCut) {\r\n return sCut.toString();\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n appendSCutToUrl(url: string): string {\r\n if(!url) {\r\n return url;\r\n }\r\n\r\n if(!this._sCutQueryParams) {\r\n return url;\r\n }\r\n\r\n let urlParts = url.split('?');\r\n let queryParams = (urlParts[1] || '').trim();\r\n if(queryParams) {\r\n if(queryParams.endsWith('&')) {\r\n return urlParts[0] + '?' + queryParams + this._sCutQueryParams;\r\n } else {\r\n return urlParts[0] + '?' + queryParams + '&' + this._sCutQueryParams;\r\n }\r\n } else {\r\n return urlParts[0] + '?' + this._sCutQueryParams;\r\n }\r\n }\r\n\r\n private _getDlp(): string {\r\n return this.services.location.currentUri.getUrlWithoutSearchAndHash();\r\n }\r\n\r\n private _convertParameterToNumber(parameterName: string, parameterValue): number {\r\n let dlAsNumber = parseInt((parameterValue || '').trim());\r\n if(Check.isNumber(dlAsNumber)) {\r\n return dlAsNumber;\r\n } else {\r\n this.services.logger.error(`Cannot convert marketing parameter ${parameterName} to number because its value is ${parameterValue}`);\r\n return 999999;\r\n }\r\n }\r\n\r\n getMarketingData(marketingParams?: MarketingParams): any {\r\n let sCut = this._sCut;\r\n if(!Check.isObject(sCut)) {\r\n return {};\r\n }\r\n\r\n if(!sCut[\"all\"]) {\r\n this.services.logger.warning(`sCut.all function doesn't exists`);\r\n return {};\r\n }\r\n\r\n let sCutData = sCut[\"all\"]();\r\n\r\n if(!sCutData) {\r\n this.services.logger.warning(`sCut.all() returned ${sCutData}`);\r\n return {};\r\n }\r\n\r\n marketingParams = marketingParams || {};\r\n\r\n let additionalParams: any = {...sCutData};\r\n delete additionalParams[TEST_DATA_KEY];\r\n if(!additionalParams.wtc && marketingParams.wtc) {\r\n additionalParams.wtc = marketingParams.wtc;\r\n }\r\n\r\n\r\n let testData: any = {};\r\n\r\n try {\r\n testData = sCutData[TEST_DATA_KEY] ? JSON.parse(sCutData[TEST_DATA_KEY]) : {}\r\n } catch (err) {\r\n this.services.logger.error('Failed to parse sCut TestData');\r\n return {};\r\n }\r\n\r\n if(!testData.dl && marketingParams.dl) {\r\n testData.dl = marketingParams.dl;\r\n }\r\n\r\n if(testData.dl) {\r\n //We try to convert the dl to number to see if it is a valid number\r\n //but we must send it as a string because membership code will throw error on GetFunnelData if it will be number\r\n testData.dl = (this._convertParameterToNumber('dl', testData.dl)).toString();\r\n }\r\n\r\n testData.dlp = this._getDlp();\r\n\r\n if(additionalParams.dlp) {\r\n additionalParams.dlp = testData.dlp;\r\n }\r\n\r\n return encodeUriRecursive({\r\n sr: sCutData.sr,\r\n TestData: testData,\r\n AdditionalParams: additionalParams\r\n });\r\n }\r\n\r\n\r\n\r\n}\r\n","import {LanguageSwitcherItemConfiguration} from '../../../app-bootstrap/config-interfaces/b2c-startup.configurations';\r\nimport {IServiceFactoryExtended} from '../../service-factory-extended.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {ILanguageSwitcherItem} from './language-switcher-item.interface';\r\n\r\nexport class LanguageSwitcherItem implements ILanguageSwitcherItem {\r\n constructor(private _config: LanguageSwitcherItemConfiguration, private services: IServiceFactoryExtended) {\r\n }\r\n\r\n get title(): string {\r\n return this._config.title;\r\n }\r\n\r\n get url(): string {\r\n return this._config.url;\r\n }\r\n\r\n get isCurrent(): boolean {\r\n return false;\r\n }\r\n\r\n makeCurrent(): void {\r\n this.services.analytics.sendOrbitUserFlowEvent('Navigation','Language', this.title);\r\n\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.gameRunner.currentRunningGame?.closeGame({\r\n shouldSuggestNextGame: false\r\n });\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.sendOrbitUserFlowEvent(\"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.sendOrbitUserFlowEvent('Navigation','NavBar', config.text);\r\n\r\n if (this.services.menuFlow.hasCustomFlow(config)) {\r\n const flowResult = this.services.menuFlow.executeCustomFlow(config);\r\n if (flowResult && !flowResult.continue) {\r\n return;\r\n }\r\n }\r\n\r\n this.closeMobileMenu();\r\n this.services.userMenu.closeMenu();\r\n this.services.overlay.closeOverlay();\r\n\r\n if (isExternalLink(config)) {\r\n this._externalLink(config);\r\n } else if (isInternalLink(config)) {\r\n this._internalLink(config);\r\n }\r\n };\r\n }\r\n\r\n private _internalLink(config: InternalLink) {\r\n const link = this.proceedLink(config.link);\r\n switch (config.tabState) {\r\n case '_blank':\r\n this.services.sdk.openInNewWindow(this.services.marketing.appendSCutToUrl(link));\r\n break;\r\n case '_self':\r\n default:\r\n this.services.location.push(link.toLowerCase());\r\n break;\r\n }\r\n }\r\n\r\n private _externalLink(config: ExternalLink) {\r\n const link = this.proceedLink(config.link);\r\n const linkParams = {\r\n source: ('externalLinkSource' in config) ? config.externalLinkSource : link,\r\n view: config.target,\r\n options: config.options,\r\n sourceLink: null,\r\n };\r\n if (config.useDirectLink) {\r\n if (config.noConcatScut) {\r\n linkParams.sourceLink = link;\r\n } else {\r\n linkParams.sourceLink = this.services.marketing.appendSCutToUrl(link);\r\n }\r\n }\r\n\r\n this.services.externalLinks.openExternalBrand(linkParams, {dl: config.dl}, config.useCallbackURL);\r\n }\r\n\r\n private proceedLink(link:string): string {\r\n //add all replaces for the link here\r\n return link?.replace('{cid}', this.services.user.cid);\r\n }\r\n\r\n @observable.ref\r\n isMobileLanguageSwitcher: boolean = false;\r\n\r\n @action.bound\r\n openMobileLanguageSwitcher(): void {\r\n this.isMobileLanguageSwitcher = true;\r\n }\r\n\r\n @action.bound\r\n closeMobileLanguageSwitcher(): void {\r\n this.isMobileLanguageSwitcher = false;\r\n }\r\n}\r\n","import {GameInfo, OpenGameParameters} from '../games/game-info';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {SuggestedLinkConfiguration} from '../configurations/config-data-sections/game-search-box.configuration';\r\n\r\nexport interface ISearchSuggestion {\r\n readonly key: string;\r\n readonly text: string;\r\n readonly linkIconClass: string;\r\n readonly type: string;\r\n readonly gameInfo: GameInfo;\r\n executeAction(): void;\r\n}\r\n\r\nexport const SUGGESTED_CATEGORIES = \"Suggested_Categories\";\r\n\r\nexport function isSuggestedCategory(searchSuggestion: ISearchSuggestion): boolean {\r\n return searchSuggestion?.type === SUGGESTED_CATEGORIES;\r\n}\r\n\r\nexport class GameSuggestion implements ISearchSuggestion {\r\n constructor(private services: IServiceFactoryExtended, private _gameInfo: GameInfo, private _analyticsLabel: string, private _index?: number, private _aiSortingType?: string) {\r\n\r\n }\r\n\r\n get gameInfo(): GameInfo {\r\n return this._gameInfo;\r\n }\r\n\r\n get type(): string {\r\n return this._analyticsLabel;\r\n }\r\n\r\n get key(): string {\r\n return this._gameInfo.gameType + '_' + this._gameInfo.title;\r\n }\r\n\r\n get text(): string {\r\n return this._gameInfo.title;\r\n }\r\n\r\n get linkIconClass(): string {\r\n return this._gameInfo.gameCategory;\r\n }\r\n\r\n executeAction(): void {\r\n\r\n const openGameParams: OpenGameParameters = {\r\n isRealMode: true,\r\n pageName: 'Search',\r\n gameIndex: this._index,\r\n listTitle: this.type,\r\n aiSortingType: this._aiSortingType,\r\n showIntermediatePage: this.services.cmsSegmentation.isCstatus === false //Show intermediate page only for user with cStatus == false, TASK 1832892\r\n };\r\n\r\n this._gameInfo.open(openGameParams);\r\n }\r\n\r\n}\r\n\r\n\r\nexport class SearchLinkSuggestion implements ISearchSuggestion {\r\n constructor(private _linkConfig: SuggestedLinkConfiguration, private services: IServiceFactoryExtended, private _analyticsAction: string) {\r\n\r\n }\r\n\r\n get gameInfo(): GameInfo {\r\n return null;\r\n }\r\n\r\n get type(): string {\r\n return this._analyticsAction;\r\n }\r\n\r\n get key(): string {\r\n return this._linkConfig.text;\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate(this._linkConfig.text);\r\n }\r\n\r\n get linkIconClass(): string {\r\n return 'link';\r\n }\r\n\r\n executeAction() {\r\n this.services.analytics.sendAnalytics('Search', this.type, this.text);\r\n if(this._linkConfig.link) {\r\n this.services.location.push(this._linkConfig.link);\r\n } else {\r\n this.services.externalLinks.openLink({\r\n source: this._linkConfig.externalLinkSource\r\n });\r\n }\r\n }\r\n}\r\n\r\n\r\nexport class GameSearchResult {\r\n constructor(private _games: ISearchSuggestion[], private _suggestedCategories: ISearchSuggestion[], private _suggestedGames: ISearchSuggestion[]) {}\r\n\r\n get suggestedGames(): ISearchSuggestion[] {\r\n return this._suggestedGames;\r\n }\r\n\r\n get games(): ISearchSuggestion[] {\r\n return this._games;\r\n }\r\n\r\n get suggestedCategories(): ISearchSuggestion[] {\r\n return this._suggestedCategories;\r\n }\r\n}\r\n","export enum ExternalLinksZIndexes {\r\n OmgBehindTheGame= 8035,\r\n //[PRIORITY_LEVEL.GAME_FRAME]: 8040,\r\n MyAccount = 8060,\r\n InternalOverExternalLink= 8065,\r\n Omg = 8070,\r\n Cashier = 8072,\r\n GamesQuestionnaire = 8073,\r\n Membership = 8078,\r\n /*\r\n [PRIORITY_LEVEL.BASE]: 8000,\r\n [PRIORITY_LEVEL.POP_UP]: 8010,\r\n [PRIORITY_LEVEL.OPEN_SESSION]: 8020,\r\n [PRIORITY_LEVEL.FP]: 8030,\r\n [PRIORITY_LEVEL.OMG_BEHIND]: 8035,\r\n [PRIORITY_LEVEL.GAME_LOADING_INDICATOR]: 8037,\r\n [PRIORITY_LEVEL.NEXT_GAME]: 8038,\r\n [PRIORITY_LEVEL.GAME_FRAME]: 8040,\r\n [PRIORITY_LEVEL.GAME_FRAME_FP]: 8041,\r\n [PRIORITY_LEVEL.GAME_FRAME_LOADER]: 8042,\r\n [PRIORITY_LEVEL.MINI_CASHIER]: 8045,\r\n [PRIORITY_LEVEL.LOGIN]: 8050,\r\n [PRIORITY_LEVEL.SPAIN_SUMMARY_MESSAGE]: 8055,\r\n [PRIORITY_LEVEL.EXTERNAL_LINK]: 8060,\r\n [PRIORITY_LEVEL.INTERNAL_OVER_EXTERNAL_LINK]: 8061,\r\n [PRIORITY_LEVEL.OMG]: 8070,\r\n [PRIORITY_LEVEL.CASHIER]: 8072,\r\n [PRIORITY_LEVEL.GAMES_QUESTIONNAIRE]: 8073,\r\n [PRIORITY_LEVEL.GEO_FREEZE_WINDOW]: 8074,\r\n [PRIORITY_LEVEL.TEMP_ACCOUNT]: 8075,\r\n [PRIORITY_LEVEL.MEMBERSHIP]: 8078,\r\n [PRIORITY_LEVEL.MESSAGE]: 8080,\r\n [PRIORITY_LEVEL.SECONDARY_MESSAGE]: 8082,\r\n [PRIORITY_LEVEL.TOUCH_ID]: 8090,\r\n [PRIORITY_LEVEL.TOUCH_ID_POPUP]: 9002,\r\n */\r\n}","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 styled from \"styled-components\";\r\n\r\nexport const SearchGameImageBox = styled.div`\r\n border-radius: 15px;\r\n overflow: hidden;\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\nimport {SearchGameImageBox} from \"./boxes/search-game-image-box/search-game-image.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 }\r\n}\r\n","import React from 'react';\r\nimport { OrbitComponent } from '../../../base-components/orbit-component/orbit-component';\r\nimport { SearchBoxTitleComponent } from '../search-box-title/search-box-title.component';\r\nimport { ISearchSuggestion } from '../../../../services/game-search/game-search-result';\r\nimport { observer } from 'mobx-react';\r\nimport { CyClass } from '../../../../../common/cy-classes';\r\nimport { SearchGameItemComponent } from '../search-game-item/search-game-item.component';\r\nimport { SearchGamesListBox } from '../found-games/boxes/search-games-list/search-games-list.box';\r\n\r\nexport interface SuggestedGamesComponentProps {\r\n items: ISearchSuggestion[];\r\n}\r\n\r\n@observer\r\nexport class SuggestedGamesComponent extends OrbitComponent {\r\n\r\n private _renderGame(suggestedCategory: ISearchSuggestion) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n private _renderGames() {\r\n return (\r\n \r\n { this.props.items.map(suggestedCategory => this._renderGame(suggestedCategory)) }\r\n \r\n );\r\n }\r\n\r\n render() {\r\n if (this.props.items.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n {this._renderGames()}\r\n \r\n )\r\n }\r\n}\r\n","import styled from \"styled-components\";\r\n\r\nexport const MoreGamesBox = styled.div<{shouldDisplay: boolean}>`\r\n display: ${props => props.shouldDisplay ? \"block\" : \"none\"};\r\n width: 100%;\r\n padding: 3px 1rem;\r\n`;\r\n","import React from 'react';\r\nimport { OrbitComponent } from '../../../base-components/orbit-component/orbit-component';\r\nimport { SearchBoxTitleComponent } from '../search-box-title/search-box-title.component';\r\nimport { ISearchSuggestion } from '../../../../services/game-search/game-search-result';\r\nimport { observer } from 'mobx-react';\r\nimport { SearchGamesListBox } from \"./boxes/search-games-list/search-games-list.box\";\r\nimport { SearchNoGamesFoundBox } from \"./boxes/search-no-game-found/search-no-games-found.box\";\r\nimport { CyClass } from \"../../../../../common/cy-classes\";\r\nimport { SearchGameItemComponent } from '../search-game-item/search-game-item.component';\r\nimport { SuggestedGamesComponent } from '../suggested-games/suggested-games.component';\r\nimport { Button } from '../../../../basic-ui-components/button/base/button.component';\r\nimport { MoreGamesBox } from './boxes/more-games/more-games.box';\r\n\r\nexport interface IFoundGamesComponentProps {\r\n loadedGamesCount: number;\r\n onLoadMore: () => void;\r\n}\r\n\r\n@observer\r\nexport class FoundGamesComponent extends OrbitComponent {\r\n\r\n private _renderGame(suggestedGame: ISearchSuggestion) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _hasMoreItems = () => this.props.loadedGamesCount < this.services.gameSearch.searchResult.games.length;\r\n\r\n private _renderMoreGames() {\r\n if (this.services.device.os.isPC) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n {this.services.translation.translate(\"MORE\")}\r\n \r\n \r\n );\r\n }\r\n\r\n private _renderFoundGames() {\r\n const gamesToRender = Math.min(this.props.loadedGamesCount, this.services.gameSearch.searchResult.games.length);\r\n return (\r\n \r\n {this.services.gameSearch.searchResult.games.slice(0, gamesToRender).map(suggestedGame => this._renderGame(suggestedGame))}\r\n {this._renderMoreGames()}\r\n \r\n );\r\n }\r\n\r\n private _renderNoSearchResultMessage() {\r\n return (\r\n <>\r\n \r\n {this.services.translation.translate('NO_SEARCH_RESULTS')}\r\n \r\n\r\n \r\n \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n { this.services.gameSearch.searchResult?.games?.length > 0 ?\r\n this._renderFoundGames() :\r\n this._renderNoSearchResultMessage()\r\n }\r\n
\r\n );\r\n }\r\n}\r\n","import {SearchResultItemDefaultBox} from \"./search-result-item.default.box\";\r\n\r\nexport const SearchResultItemBox = SearchResultItemDefaultBox;","import styled from \"styled-components\";\r\n\r\nexport const SearchResultItemDefaultBox = styled.li`\r\n list-style-type: none;\r\n \r\n &:hover {\r\n background-color: ${props => props.theme.colors.background};\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {SearchLinkBox} from \"../search-link.box\";\r\n\r\nexport const SlotsSearchLinkDefaultBox = styled(SearchLinkBox)`\r\n &:before {\r\n background-position: -96px -447px;\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {SearchLinkBox} from \"../search-link.box\";\r\n\r\nexport const SlotsSearchLinkCasino777Box = styled(SearchLinkBox)`\r\n &:before {\r\n background-position: -200px -525px;\r\n }\r\n`;","import {SlotsSearchLinkDefaultBox} from \"./slots-search-link.default.box\";\r\nimport {styledByTheme} from \"../../../../../../../themes/architecture/styled-by-theme\";\r\nimport {SlotsSearchLinkCasino777Box} from \"./slots-search-link.casino777.box\";\r\n\r\nexport const SlotsSearchLinkBox = styledByTheme(SlotsSearchLinkDefaultBox)\r\n .forCasino777(SlotsSearchLinkCasino777Box)\r\n .apply();","import {SearchLinkBox} from \"../search-link.box\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const LiveSearchLinkDefaultBox = styled(SearchLinkBox)`\r\n &:before {\r\n background-position: -290px -448px;\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {SearchLinkBox} from \"../search-link.box\";\r\n\r\nexport const LiveSearchLinkCasino777Box = styled(SearchLinkBox)`\r\n &:before {\r\n background-position: -268px -523px;\r\n }\r\n`;","import {LiveSearchLinkDefaultBox} from \"./live-search-link.default.box\";\r\nimport {styledByTheme} from \"../../../../../../../themes/architecture/styled-by-theme\";\r\nimport {LiveSearchLinkCasino777Box} from \"./live-search-link.casino777.box\";\r\n\r\nexport const LiveSearchLinkBox = styledByTheme(LiveSearchLinkDefaultBox)\r\n .forCasino777(LiveSearchLinkCasino777Box)\r\n .apply();","import {SearchLinkBox} from \"../search-link.box\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const CardAndTableSearchLinkDefaultBox = styled(SearchLinkBox)`\r\n &:before {\r\n background-position: -241px -447px;\r\n }\r\n`;","import {SearchLinkBox} from \"../search-link.box\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const CardAndTableSearchLinkCasino777Box = styled(SearchLinkBox)`\r\n &:before {\r\n background-position: -233px -523px;\r\n }\r\n`;","import {CardAndTableSearchLinkDefaultBox} from \"./card-and-table-search.default.box\";\r\nimport {styledByTheme} from \"../../../../../../../themes/architecture/styled-by-theme\";\r\nimport {CardAndTableSearchLinkCasino777Box} from \"./card-and-table-search-link.casino777.box\";\r\n\r\nexport const CardAndTableSearchLinkBox = styledByTheme(CardAndTableSearchLinkDefaultBox)\r\n .forCasino777(CardAndTableSearchLinkCasino777Box)\r\n .apply();","import {SearchLinkBox} from \"../search-link.box\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const RegularSearchLinkDefaultBox = styled(SearchLinkBox)`\r\n &:before {\r\n background-position: -112px -630px;\r\n }\r\n`;","import {SearchLinkBox} from \"../search-link.box\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const RegularSearchLinkCasino777Box = styled(SearchLinkBox)`\r\n &:before {\r\n background-position: -460px -434px;\r\n }\r\n`;","import {RegularSearchLinkDefaultBox} from \"./regular-search-link.default.box\";\r\nimport {styledByTheme} from \"../../../../../../../themes/architecture/styled-by-theme\";\r\nimport {RegularSearchLinkCasino777Box} from \"./regular-search-link.casino777.box\";\r\n\r\nexport const RegularSearchLinkBox = styledByTheme(RegularSearchLinkDefaultBox)\r\n .forCasino777(RegularSearchLinkCasino777Box)\r\n .apply();","import React from 'react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {ISearchSuggestion} from '../../../../services/game-search/game-search-result';\r\nimport {HighlightSearchListItemComponent} from '../highlight-search-list-item/highlight-search-list-item.component';\r\nimport {observer} from 'mobx-react';\r\nimport {SearchResultItemBox} from \"./boxes/search-result-item-box/search-result-item.box\";\r\nimport {SlotsSearchLinkBox} from \"./boxes/search-links/slots-search-link/slots-search-link.box\";\r\nimport {LiveSearchLinkBox} from \"./boxes/search-links/live-search-link/live-search-link.box\";\r\nimport {CardAndTableSearchLinkBox} from \"./boxes/search-links/card-and-table-search-link/card-and-table-search-link.box\";\r\nimport {RegularSearchLinkBox} from \"./boxes/search-links/regular-search-link/regular-search-link.box\";\r\nimport {GAMES_CATEGORIES} from \"../../../../services/games/games-categories.enum\";\r\n\r\nexport interface SearchResultItemComponentProps {\r\n searchSuggestion: ISearchSuggestion\r\n}\r\n\r\n@observer\r\nexport class SearchResultItemComponent extends OrbitComponent {\r\n\r\n private _onClickHandler = () => {\r\n this.services.gameSearch.closeSearchResult();\r\n this.services.userMenu.closeMenu();\r\n this.services.sideMenu.closeMobileMenu();\r\n this.props.searchSuggestion.executeAction();\r\n this.services.analytics.sendAnalytics('Search', this.props.searchSuggestion.type, this.props.searchSuggestion.text);\r\n };\r\n\r\n _renderSearchLinkBox(iconStyle: string) {\r\n switch(iconStyle) {\r\n case GAMES_CATEGORIES.SLOTS:\r\n return (\r\n \r\n \r\n \r\n );\r\n case GAMES_CATEGORIES.LIVE:\r\n return (\r\n \r\n \r\n \r\n );\r\n case GAMES_CATEGORIES.CARD_AND_TABLE:\r\n return (\r\n \r\n \r\n \r\n );\r\n\r\n default:\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this._renderSearchLinkBox(this.props.searchSuggestion.linkIconClass)}\r\n \r\n );\r\n }\r\n}\r\n","import {SearchLinksListDefaultBox} from \"./search-links-list.default.box\";\r\n\r\nexport const SearchLinksListBox = SearchLinksListDefaultBox;","import styled from \"styled-components\";\r\n\r\nexport const SearchLinksListDefaultBox = styled.ul`\r\n margin: 0 0 2rem 0;\r\n padding: 0;\r\n border-left: 2px solid ${props => props.theme.colors.boxBorderLight};\r\n`;","import React from 'react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {SearchBoxTitleComponent} from '../search-box-title/search-box-title.component';\r\nimport {ISearchSuggestion} from '../../../../services/game-search/game-search-result';\r\nimport {observer} from 'mobx-react';\r\nimport {SearchResultItemComponent} from '../search-result-item/search-result-item.component';\r\nimport {SearchLinksListBox} from \"./boxes/search-links-list/search-links-list.box\";\r\n\r\nexport interface SuggestedCategoriesComponentProps {\r\n title: string;\r\n className: string;\r\n items: ISearchSuggestion[];\r\n}\r\n\r\n@observer\r\nexport class SuggestedLinksComponent extends OrbitComponent{\r\n\r\n private _renderSuggestedCategory(suggestedCategory: ISearchSuggestion) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n private _renderSuggestedCategories() {\r\n return this.props.items.map(suggestedCategory => this._renderSuggestedCategory(suggestedCategory))\r\n\r\n}\r\n\r\n render() {\r\n if(this.props.items.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {this._renderSuggestedCategories()}\r\n \r\n \r\n )\r\n }\r\n\r\n}\r\n","import { ISearchFormResultsProps } from './search-form-results.box.props';\r\nimport styled, { css } from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../themes/architecture/styled-by-device\";\r\n\r\nconst DefaultBox = styled.div`\r\n flex: 1;\r\n margin-left: 2rem;\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n position: relative;\r\n margin-right: 1rem;\r\n ${props => props.isHybridAndroid ? css`padding-bottom: 500px;` : \"\"}\r\n`;\r\n\r\nconst PCBox = styled(DefaultBox)`\r\n position: absolute;\r\n width: 45rem;\r\n margin: 5rem 0 0 0;\r\n padding: 1rem 1rem 1rem 5rem;\r\n background: ${props => props.theme.colors.backgroundMiddleDark};\r\n border: 1px solid ${props => props.theme.colors.boxBorderLight};\r\n border-radius: 2rem;\r\n max-height: calc(100vh - 55px);\r\n overflow-y: auto;\r\n\r\n &::-webkit-scrollbar {\r\n width: 5px;\r\n }\r\n\r\n &::-webkit-scrollbar-track {\r\n background: rgba(255, 255, 255, 0.1);\r\n }\r\n\r\n &::-webkit-scrollbar-thumb {\r\n background: rgba(255, 255, 255, 0.5);\r\n }\r\n\r\n &::-webkit-scrollbar-thumb:hover {\r\n background: rgba(255, 255, 255, 0.8);\r\n }\r\n`;\r\n\r\nexport const SearchFormResultsDefaultBox = styledByDevice(PCBox, MobileBox);","import styled, { css } from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../themes/architecture/styled-by-device\";\r\nimport { ISearchFormResultsProps } from \"./search-form-results.box.props\";\r\n\r\nconst DefaultBox = styled.div`\r\n flex: 1;\r\n background-size: 4px 4px;\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n padding: 1rem;\r\n margin: 1rem 0;\r\n background: linear-gradient(-45deg,rgba(252,246,213,0.8) 33.33%,rgba(25,50,47,0.1) 33.33%,rgba(25,50,47,0.2) 50%,rgba(252,246,213,0.8) 50%,rgba(252,246,213,0.8) 83.33%,rgba(25,50,47,0.1) 83.33%,rgba(25,50,47,0.1) 100%);\r\n ${props => props.isHybridAndroid ? css`padding-bottom: 500px;` : \"\"}\r\n`;\r\n\r\nconst PCBox = styled(DefaultBox)`\r\n position: absolute;\r\n width: 45rem;\r\n margin: 5rem 0 0 0;\r\n padding: 1rem 1rem 1rem 5rem;\r\n border-radius: 5px;\r\n background: ${props => props.theme.colors.background};\r\n border: 1px solid ${props => props.theme.colors.boxBorderLight};\r\n`;\r\n\r\nexport const SearchFormResultsCasino777Box = styledByDevice(PCBox, MobileBox);","import {SearchFormResultsDefaultBox} from \"./search-form-results.default.box\";\r\nimport {styledByTheme} from \"../../../../../themes/architecture/styled-by-theme\";\r\nimport {SearchFormResultsCasino777Box} from \"./search-form-results.casino777.box\";\r\n\r\nexport const SearchFormResultsBox = styledByTheme(SearchFormResultsDefaultBox)\r\n .forCasino777(SearchFormResultsCasino777Box)\r\n .apply();","import styled from \"styled-components\";\r\n\r\nexport const SearchFormResultsWrapperDefaultBox = styled.div`\r\n\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const SearchFormResultsWrapperCasino777Box = styled.div`\r\n background: ${props => props.theme.colors.brandSecondary};\r\n padding: 1rem;\r\n`;","import {styledByTheme} from \"../../../../../themes/architecture/styled-by-theme\";\r\nimport {SearchFormResultsWrapperDefaultBox} from \"./search-form-results-wrapper.default.box\";\r\nimport {SearchFormResultsWrapperCasino777Box} from \"./search-form-results-wrapper.casino777.box\";\r\n\r\nexport const SearchFormResultsWrapperBox = styledByTheme(SearchFormResultsWrapperDefaultBox)\r\n.forCasino777(SearchFormResultsWrapperCasino777Box)\r\n.apply();","import React from 'react';\r\nimport { OrbitComponentWithState } from '../../base-components/orbit-component-with-state/orbit-component-with-state';\r\nimport { observer } from 'mobx-react';\r\nimport { FoundGamesComponent } from \"./found-games/found-games.component\";\r\nimport { SuggestedLinksComponent } from \"./suggested-links/suggested-links.component\";\r\nimport { SearchFormResultsBox } from \"./boxes/search-form-results-box/search-form-results.box\";\r\nimport { SearchFormResultsWrapperBox } from \"./boxes/search-form-results-wrapper-box/search-form-results-wrapper.box\";\r\nimport { SuggestedGamesComponent } from './suggested-games/suggested-games.component';\r\n\r\n\r\nexport interface ISearchResultComponentState {\r\n loadedGames: number;\r\n}\r\n\r\nconst LOAD_BATCH_SIZE = 12;\r\n\r\nconst defaultState: ISearchResultComponentState = {\r\n loadedGames: LOAD_BATCH_SIZE\r\n}\r\n\r\n@observer\r\nexport class SearchResultComponent extends OrbitComponentWithState<{}, ISearchResultComponentState> {\r\n\r\n state = {...defaultState};\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n this.reaction(() => this.services.gameSearch.currentSearchText, () => {\r\n this._resetState();\r\n })\r\n }\r\n\r\n private _onLoadMore = () => {\r\n this.services.analytics.sendAnalytics('Search', 'Entry', 'Show_More');\r\n const moreItems = Math.min(this.state.loadedGames + LOAD_BATCH_SIZE, this.services.gameSearch.searchResult.games.length);\r\n this.setState({\r\n loadedGames: moreItems\r\n });\r\n }\r\n\r\n private _resetState() {\r\n this.setState({...defaultState});\r\n }\r\n\r\n _renderSearchResults() {\r\n if (this.services.gameSearch.isSearchInProgress) {\r\n return (\r\n <>\r\n \r\n {this.services.miniOrbit.isEnabled ? null : }\r\n \r\n );\r\n } else {\r\n return (\r\n <>\r\n \r\n {this.services.miniOrbit.isEnabled ? null : }\r\n \r\n );\r\n }\r\n }\r\n\r\n render() {\r\n if (!this.services.gameSearch.isSearchBoxOpened) {\r\n return null;\r\n }\r\n\r\n const isHybridAndroid = this.services.device.hybrid.isHybrid && !this.services.device.os.isIOS;\r\n\r\n return (\r\n \r\n \r\n {this._renderSearchResults()}\r\n \r\n \r\n );\r\n }\r\n}\r\n","import styled, {css} from \"styled-components\";\r\nimport {ISearchClearIconBoxProps} from \"./search-clear-icon.box\";\r\n\r\nexport const SearchClearIconDefaultBox = styled.i`\r\n position: absolute;\r\n right: 2rem;\r\n width: 3rem;\r\n height: 3rem;\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-repeat: no-repeat;\r\n background-position: -857px -643px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n z-index: 2;\r\n \r\n ${props => !props.visible && css`\r\n display: none;\r\n `}\r\n`;","import styled from \"styled-components\";\r\nimport {SearchClearIconDefaultBox} from \"./search-clear-icon.default.box\";\r\n\r\nexport const SearchClearIconCasino777Box = styled(SearchClearIconDefaultBox)`\r\n background-position: -585px -519px;\r\n`;","import {SearchClearIconDefaultBox} from \"./search-clear-icon.default.box\";\r\nimport {styledByTheme} from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport {SearchClearIconCasino777Box} from \"./search-clear-icon.casino777.box\";\r\n\r\nexport interface ISearchClearIconBoxProps {\r\n visible: boolean;\r\n}\r\n\r\nexport const SearchClearIconBox = styledByTheme(SearchClearIconDefaultBox)\r\n .forCasino777(SearchClearIconCasino777Box)\r\n .apply();","import styled from \"styled-components\";\r\n\r\nexport const SearchInputMobileDefaultBox = styled.ul`\r\n position: relative;\r\n margin: 1rem 0 0 0;\r\n`;","import styled from \"styled-components\";\r\nimport {SearchInputMobileDefaultBox} from \"./search-input-mobile.default.box\";\r\n\r\nexport const SearchInputMobileCasino777Box = styled(SearchInputMobileDefaultBox)`\r\n padding: 1rem;\r\n background: linear-gradient(-45deg, rgba(252,246,213,0.8) 33.33%, rgba(25,50,47,0.1) 33.33%, rgba(25,50,47,0.2) 50%, rgba(252,246,213,0.8) 50%, rgba(252,246,213,0.8) 83.33%, rgba(25,50,47,0.1) 83.33%, rgba(25,50,47,0.1) 100%);\r\n background-size: 4px 4px;\r\n border-radius: 5px;\r\n box-shadow: 2px 3px 1rem rgba(25,50,48,0.2);\r\n`;","import {SearchInputMobileDefaultBox} from \"./search-input-mobile.default.box\";\r\nimport {styledByTheme} from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport {SearchInputMobileCasino777Box} from \"./search-input-mobile.casino777.box\";\r\n\r\nexport const SearchInputMobileBox = styledByTheme(SearchInputMobileDefaultBox)\r\n .forCasino777(SearchInputMobileCasino777Box)\r\n .apply();","import styled from \"styled-components\";\r\n\r\nexport const SearchBoxMobileIconDefaultBox = styled.i`\r\n display: block;\r\n position: absolute;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n left: 1rem;\r\n width: 3rem;\r\n height: 3rem;\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-repeat: no-repeat;\r\n background-position: -138px -626px;\r\n z-index: 2;\r\n`;","import styled from \"styled-components\";\r\nimport {SearchBoxMobileIconDefaultBox} from \"./search-box-mobile-icon.default.box\";\r\n\r\nexport const SearchBoxMobileIconCasino777Box= styled(SearchBoxMobileIconDefaultBox)`\r\n left: 2rem;\r\n background-position: -488px -581px;\r\n`;\r\n","import {SearchBoxMobileIconDefaultBox} from \"./search-box-mobile-icon.default.box\";\r\nimport {styledByTheme} from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport {SearchBoxMobileIconCasino777Box} from \"./search-box-mobile-icon.casino777.box\";\r\n\r\nexport const SearchBoxMobileIconBox = styledByTheme(SearchBoxMobileIconDefaultBox)\r\n .forCasino777(SearchBoxMobileIconCasino777Box)\r\n .apply();","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../../themes/architecture/styled-by-device\";\r\n\r\nconst SearchInputArenaMutual = styled.input`\r\n height: initial;\r\n margin: auto 0;\r\n color: ${props => props.theme.colors.textLight};\r\n background: ${props => props.theme.colors.backgroundLight};\r\n\r\n &:focus {\r\n background: ${props => props.theme.colors.backgroundLight};\r\n }\r\n`;\r\n\r\nexport const SearchInputArenaDefaultPCBox = styled(SearchInputArenaMutual)`\r\n position: relative;\r\n width: 32rem;\r\n padding: 1rem 2rem 1rem 5rem;\r\n font-size: 1.4rem;\r\n font-weight: 700;\r\n line-height: 1;\r\n border-radius: 2rem;\r\n border: 2px solid transparent;\r\n transition: width 0.2s ease;\r\n\r\n &:focus {\r\n width: 45rem;\r\n transition: width 0.2s ease;\r\n }\r\n &::placeholder {\r\n color: ${props => props.theme.colors.textMiddleDark};\r\n }\r\n`;\r\nexport const SearchInputArenaDefaultMobileBox = styled(SearchInputArenaMutual)`\r\n display: flex;\r\n width: 100%;\r\n padding: 1.5rem 5.5rem;\r\n ${({theme}) => theme.font.presets.regular};\r\n font-size: 1.6rem;\r\n font-weight: 300;\r\n border: none;\r\n\r\n &::placeholder {\r\n color: ${props => props.theme.colors.textLight};\r\n }\r\n\r\n &:focus {\r\n border: none;\r\n box-shadow: none;\r\n }\r\n`;\r\n\r\nexport const SearchInputAreaDefaultBox = styledByDevice(SearchInputArenaDefaultPCBox,SearchInputArenaDefaultMobileBox);","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../../themes/architecture/styled-by-device\";\r\n\r\nconst SearchInputAreaMutual = styled.input`\r\n color: ${props => props.theme.colors.textMiddleDark};\r\n height: initial;\r\n margin: 0;\r\n background: ${props => props.theme.colors.background};\r\n\r\n &:focus {\r\n box-shadow: none;\r\n outline: none;\r\n }\r\n\r\n &::placeholder {\r\n color: ${props => props.theme.colors.textMiddleDark};\r\n }\r\n`;\r\n\r\nconst SearchInputAreaCasino777PCBox = styled(SearchInputAreaMutual)`\r\n width: 32rem;\r\n padding: 1rem 2rem 1rem 5rem;\r\n font-size: 1.4rem;\r\n font-weight: 700;\r\n line-height: 1;\r\n border: 2px solid ${props => props.theme.colors.textMiddleDark};\r\n transition: width 0.2s ease;\r\n border-radius: 5px;\r\n\r\n &:focus {\r\n border: 2px solid ${props => props.theme.colors.textMiddleDark};\r\n }\r\n`;\r\nconst SearchInputAreaCasino777MobileBox = styled(SearchInputAreaMutual)`\r\n display: flex;\r\n width: 100%;\r\n padding: 1.5rem 5.5rem;\r\n ${({theme}) => theme.font.presets.regular};\r\n font-size: 1.6rem;\r\n font-weight: 400;\r\n border: none;\r\n`;\r\n\r\nexport const SearchInputAreaCasino777Box = styledByDevice(SearchInputAreaCasino777PCBox,SearchInputAreaCasino777MobileBox);","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../../themes/architecture/styled-by-device\";\r\nimport {SearchInputArenaDefaultMobileBox, SearchInputArenaDefaultPCBox} from \"./search-input-area.default.box\";\r\n\r\nconst SearchInputArenaHarrahsPCBox = styled(SearchInputArenaDefaultPCBox)`\r\n border: 2px solid ${props => props.theme.colors.boxBorderDark};\r\n`;\r\n\r\nexport const SearchInputArenaHarrahsBox = styledByDevice(SearchInputArenaHarrahsPCBox, SearchInputArenaDefaultMobileBox);","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../../themes/architecture/styled-by-device\";\r\n\r\nconst SearchInputMutual = styled.input`\r\n height: initial;\r\n display: flex;\r\n margin: auto 0;\r\n background: ${props => props.theme.colors.background};\r\n ${({theme}) => theme.font.presets.regular};\r\n font-weight: 300;\r\n color: ${props => props.theme.colors.textLight};\r\n\r\n &:focus {\r\n outline: none;\r\n box-shadow: none;\r\n }\r\n`;\r\n\r\nconst SearchInputAreaPCBox = styled(SearchInputMutual)`\r\n position: relative;\r\n width: 0;\r\n padding: 1rem 1.85rem;\r\n\r\n border-radius: 4rem;\r\n line-height: 1;\r\n font-size: 1.4rem;\r\n border: 1px solid ${props => props.theme.colors.textMiddleDark};\r\n transition: width 0.5s ease, padding 0.5s ease;\r\n cursor: pointer;\r\n\r\n &::placeholder{\r\n color: ${props => props.theme.colors.textMiddleDark};\r\n }\r\n\r\n &:focus {\r\n transition: width 0.5s ease, padding 0.5s ease;\r\n width: 25rem;\r\n padding-left: 5rem;\r\n }\r\n\r\n`;\r\n\r\n\r\nconst SearchInputAreaMobileBox = styled(SearchInputMutual)`\r\n position: relative;\r\n width: 100%;\r\n font-size: 1.6rem;\r\n border: none;\r\n transition: width 0.5s ease;\r\n padding: 1.5rem 5.5rem;\r\n\r\n &::placeholder{\r\n color: ${props => props.theme.colors.textLight};\r\n }\r\n\r\n`;\r\n\r\nexport const SearchInputAreaCasino888Box = styledByDevice(SearchInputAreaPCBox, SearchInputAreaMobileBox);","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../../themes/architecture/styled-by-device\";\r\nimport {SearchInputArenaDefaultMobileBox, SearchInputArenaDefaultPCBox} from \"./search-input-area.default.box\";\r\n\r\nconst SearchInputAreaBallysDoverPCBox = styled(SearchInputArenaDefaultPCBox)`\r\n border: 2px solid ${props => props.theme.colors.backgroundLight};\r\n`;\r\n\r\nexport const SearchInputAreaBallysDoverBox = styledByDevice(SearchInputAreaBallysDoverPCBox, SearchInputArenaDefaultMobileBox);\r\n","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../../themes/architecture/styled-by-device\";\r\nimport {SearchInputArenaDefaultMobileBox, SearchInputArenaDefaultPCBox} from \"./search-input-area.default.box\";\r\n\r\nconst SearchInputAreaDelawareParkPCBox = styled(SearchInputArenaDefaultPCBox)`\r\n border: 2px solid ${props => props.theme.colors.backgroundLight};\r\n`;\r\n\r\nexport const SearchInputAreaDelawareParkBox = styledByDevice(SearchInputAreaDelawareParkPCBox, SearchInputArenaDefaultMobileBox);\r\n","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../../themes/architecture/styled-by-device\";\r\nimport {SearchInputArenaDefaultMobileBox, SearchInputArenaDefaultPCBox} from \"./search-input-area.default.box\";\r\n\r\nconst SearchInputAreaHarringtonPCBox = styled(SearchInputArenaDefaultPCBox)`\r\n border: 2px solid ${props => props.theme.colors.backgroundLight};\r\n`;\r\n\r\nexport const SearchInputAreaHarringtonBox = styledByDevice(SearchInputAreaHarringtonPCBox, SearchInputArenaDefaultMobileBox);\r\n","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../../themes/architecture/styled-by-device\";\r\nimport {SearchInputArenaDefaultMobileBox, SearchInputArenaDefaultPCBox} from \"./search-input-area.default.box\";\r\n\r\nconst SearchInputArenaSIPCBox = styled(SearchInputArenaDefaultPCBox)`\r\n border: 1.7px solid ${props => props.theme.colors.textMiddleDark};\r\n background-color: ${props => props.theme.colors.backgroundDark};\r\n`;\r\n\r\nexport const SearchInputArenaSIBox = styledByDevice(SearchInputArenaSIPCBox, SearchInputArenaDefaultMobileBox);","import styled from \"styled-components\";\r\n\r\nexport const SearchInputAreaMrGreenBox = styled.input`\r\n position: relative;\r\n width: 0;\r\n height: initial;\r\n display: flex;\r\n margin: auto 0;\r\n background: transparent;\r\n ${({theme}) => theme.font.presets.regular};\r\n font-weight: 300;\r\n color: ${props => props.theme.colors.textLight};\r\n padding: 1rem 1.85rem;\r\n cursor: pointer;\r\n border: 2px solid ${props => props.theme.colors.textMiddleDark};\r\n transition: width 0.5s ease, padding 0.5s ease;\r\n line-height: 1;\r\n border-radius: 4rem;\r\n font-size: 1.4rem;\r\n\r\n &:focus {\r\n outline: none;\r\n box-shadow: none;\r\n transition: width 0.5s ease, padding 0.5s ease;\r\n width: 25rem;\r\n padding-left: 5rem;\r\n }\r\n &::placeholder{\r\n color: ${props => props.theme.colors.textMiddleDark};\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow } {\r\n width: 100%;\r\n font-size: 1.6rem;\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 &:focus {\r\n padding: 1.5rem 5.5rem;\r\n transition: width 0.5s ease;\r\n width: 100%;\r\n }\r\n }\r\n`;","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\nimport {SearchInputAreaMrGreenBox} from \"./search-input-arena.mrgreen.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 .forSICis(SearchInputArenaSIBox)\r\n .forMrGreen(SearchInputAreaMrGreenBox)\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.65rem;\r\n transform: translateY(-50%) scaleX(-1);;\r\n width: 2.4rem;\r\n height: 2.4rem;\r\n z-index: 2;\r\n pointer-events: none;\r\n color: ${props => props.theme.colors.textLight};\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 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 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 const SearchIcon = this.services.theme.currentTheme.icons.searchIcon;\r\n return (\r\n \r\n \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.sendOrbitUserFlowEvent(\"Navigation\",this.services.routing.currentRoute?.data?.arenaType || 'Header', 'Search_Open');\r\n }\r\n\r\n\r\n private _documentClickSubscription: DomEventSubscription | null = null;\r\n\r\n private _disposeDocumentClickSubscription() {\r\n if(this._documentClickSubscription) {\r\n this._documentClickSubscription.dispose();\r\n this._documentClickSubscription = null;\r\n }\r\n }\r\n\r\n\r\n private _closeMiniOrbitSearchDialog = () => {\r\n if(this._miniOrbitSearchBoxDialogHandler) {\r\n this._miniOrbitSearchBoxDialogHandler.close();\r\n this._miniOrbitSearchBoxDialogHandler = null;\r\n }\r\n };\r\n\r\n\r\n private _closeFullOrbitSearchResult = () => {\r\n this._disposeDocumentClickSubscription();\r\n };\r\n\r\n private _handleClickOutsideSearchComponent = (event) => {\r\n if (this._searchComponentRef.current && !this._searchComponentRef.current.contains(event.target)) {\r\n this.closeSearchResult();\r\n }\r\n }\r\n\r\n closeSearchResult = () => {\r\n if(!this.isSearchBoxOpened) { //if is already closed don't close it again\r\n return;\r\n }\r\n if(this.services.miniOrbit.isEnabled) {\r\n this._closeMiniOrbitSearchDialog();\r\n } else {\r\n this._closeFullOrbitSearchResult();\r\n }\r\n\r\n if(this._closeMobileSideMenuOnSearchClose){\r\n this._closeMobileSideMenuOnSearchClose = false;\r\n this.services.sideMenu.closeMobileMenu();\r\n }\r\n\r\n this._setIsSearchBoxOpened(false);\r\n\r\n //Will called when search box close or when game is selected (And closing the results as well)\r\n if(this.isSearchInProgress)\r\n this.services.analytics.sendAnalytics('Search', 'Entry', this.currentSearchText);\r\n\r\n this._setCurrentSearchText('');\r\n this._setDefaultSearchResult();\r\n };\r\n\r\n private _getGameSuggestion() {\r\n const gamesSuggestions: GameSuggestion[] = [];\r\n let aiSortingTypeForAnalytics:string = \"byactiveusers\";\r\n let aiGames = this.services.aiEngine.trendingRecommendedGamesForPlayerByActiveUsers;\r\n\r\n if(!(aiGames?.length > 0)) {\r\n aiSortingTypeForAnalytics = 'config';\r\n aiGames = this.services.configuration.data.search.suggestedGames;\r\n }\r\n\r\n aiGames.forEach(gameType => {\r\n const gameInfo = this.services.games.gamesMap[gameType];\r\n\r\n if(!Check.isNullOrUndefined(gameInfo)){\r\n gamesSuggestions.push(new GameSuggestion(this.services, gameInfo, `Suggested_Games_${aiSortingTypeForAnalytics}`, gamesSuggestions.length, aiSortingTypeForAnalytics))\r\n }\r\n });\r\n\r\n return gamesSuggestions.slice(0, 6);\r\n }\r\n\r\n private _setDefaultSearchResult() {\r\n const quickLinks = this.services.configuration.data.search.quickLinks\r\n .map(quickLinkConfig => new SearchLinkSuggestion(quickLinkConfig, this.services, 'Quick_Links'));\r\n\r\n this._setSearchResult(new GameSearchResult([], quickLinks, this._getGameSuggestion()));\r\n }\r\n\r\n @computed get isSearchInProgress(): boolean {\r\n return this.currentSearchText.length >= 2;\r\n }\r\n\r\n @observable isSearchBoxOpened: boolean = false;\r\n @action.bound\r\n private _setIsSearchBoxOpened(value: boolean) {\r\n this.isSearchBoxOpened = value;\r\n }\r\n\r\n @observable currentSearchText: string = '';\r\n @action.bound\r\n private _setCurrentSearchText(value: string): void {\r\n this.currentSearchText = value;\r\n }\r\n\r\n search(text: string): void {\r\n text = text || '';\r\n\r\n if(!this.isSearchBoxOpened && text.length > 0) {\r\n this.openSearchResult();\r\n }\r\n\r\n this._setCurrentSearchText(text);\r\n\r\n if(this.isSearchInProgress) { //we only search if there are at least 2 characters typed in the search box\r\n let regEx = new RegExp(removeSpecialCharacters(text), 'gi');\r\n this._setSearchResult(this._getSearchResult(regEx));\r\n } else {\r\n this._setDefaultSearchResult();\r\n }\r\n }\r\n\r\n\r\n private _getSearchResult(regEx: RegExp): GameSearchResult {\r\n let games = this._searchForGames(regEx);\r\n let suggestedCategories: ISearchSuggestion[];\r\n if(games.length === 0) {\r\n suggestedCategories = this._getDefaultSuggestedCategories();\r\n } else {\r\n suggestedCategories = this._searchForSuggestedCategories(regEx);\r\n }\r\n\r\n return new GameSearchResult(games, suggestedCategories, this._getGameSuggestion());\r\n }\r\n\r\n @observable.ref\r\n searchResult: GameSearchResult;\r\n\r\n @action.bound\r\n private _setSearchResult(value: GameSearchResult) {\r\n this.searchResult = value;\r\n }\r\n\r\n private _searchForGames(regEx: RegExp): ISearchSuggestion[] {\r\n\r\n const result: GameInfo[] = [];\r\n const gameTypeToGameInfoObj = {};\r\n\r\n this.gamesSearchList.forEach((gameInfo) => {\r\n if (removeSpecialCharacters(gameInfo.title).match(regEx)) {\r\n result.push(gameInfo);\r\n gameTypeToGameInfoObj[gameInfo.gameType] = gameInfo;\r\n }\r\n });\r\n\r\n const sortedResultGameTypes = this.services.aiEngine.sortGamesByAI(result.map(gameInfo => gameInfo.gameType), LIST_TYPE_ID.ACTIVE_USERS);\r\n return sortedResultGameTypes.map((gameType, index) => new GameSuggestion(this.services, gameTypeToGameInfoObj[gameType], `Search_Results`, index, 'byactiveusers'));\r\n }\r\n\r\n\r\n private _searchForSuggestedCategories(regEx: RegExp): ISearchSuggestion[] {\r\n let suggestedCategoriesOptions = this.services.configuration.data.search.suggestedCategories.suggestedCategoriesOptions;\r\n if(!suggestedCategoriesOptions) {\r\n return this._getDefaultSuggestedCategories();\r\n }\r\n\r\n for(let i = 0; i < suggestedCategoriesOptions.length; i++) {\r\n let option = suggestedCategoriesOptions[i];\r\n let result: ISearchSuggestion[] = [];\r\n if(option.search.match(regEx) && option.categories && option.categories.length > 0) {\r\n result = option.categories.map(categoryConfig => this._createSuggestedCategory(categoryConfig))\r\n // TODO: Remove this after updating the Check signatures. Let type inference do the magic\r\n .filter((categorySuggestion): categorySuggestion is ISearchSuggestion => !Check.isNullOrUndefined(categorySuggestion));\r\n }\r\n\r\n if(result.length > 0) {\r\n return result;\r\n }\r\n }\r\n\r\n return this._getDefaultSuggestedCategories();\r\n }\r\n\r\n private _getDefaultSuggestedCategories(): ISearchSuggestion[] {\r\n return this.services.configuration.data.search.suggestedCategories.defaultSuggestedCategories\r\n .map(suggestedCategory => this._createSuggestedCategory(suggestedCategory))\r\n // TODO: Remove this after updating the Check signatures. Let type inference do the magic\r\n .filter((suggestion): suggestion is ISearchSuggestion => !Check.isNullOrUndefined(suggestion));\r\n }\r\n\r\n _createSuggestedCategory(categoryConfig: SuggestedLinkConfiguration): ISearchSuggestion | null {\r\n if(categoryConfig.gameID) {\r\n let gameInfo = this.services.games.gamesMap[categoryConfig.gameID];\r\n if(!gameInfo) {\r\n this.services.logger.error(`Game type ${categoryConfig.gameID} is in the search suggested categories but this game is not configured to be in this site!`);\r\n return null;\r\n }\r\n return new GameSuggestion(this.services, gameInfo, SUGGESTED_CATEGORIES);\r\n }\r\n return new SearchLinkSuggestion(categoryConfig, this.services, SUGGESTED_CATEGORIES);\r\n }\r\n}\r\n","import {ServiceBase} from \"../../ServiceBase\";\r\nimport {\r\n ExternalLinkViewMode,\r\n IExternalLinksService, IOpenOmgOptions,\r\n OpenContactUsOptions,\r\n OpenLinkParams,\r\n OpenRichPageOptions\r\n} from \"../external-links.service.interface\";\r\nimport {IServiceFactoryExtended} from \"../../service-factory-extended.interface\";\r\nimport {OnPlayerActionParams} from \"../../sdk/sdk-events\";\r\nimport {CHANNEL_ELEMENTS, CHANNEL_SOURCE} from \"../../../../common/const/casinofied-analytics-consts\";\r\nimport {AreaType} from \"@sparkware/uc-sdk-core\";\r\nimport {MarketingParams} from \"../../../../common/interfaces/marketing-params.interface\";\r\nimport Device from \"../../../../sdk/src/utils/device/device\";\r\nimport {SdkOpenExternalLinkParams} from \"../../sdk/sdk.service.interface\";\r\nimport {GNWP_SOURCES} from \"../../../../sdk/src/components/external_links/external_links_consts\";\r\nimport {PRIORITY_LEVEL} from \"../../../../sdk/src/services/overlay_manager/overlay_manager_levels\";\r\nimport {IOpenMyAccountOptions} from \"../handlers/my-account/my-account.external-link-handler.interface\";\r\nimport {IOpenRegistrationOptions} from \"../handlers/registration/registration.external-link-handler.interface\";\r\nimport {OpenCashierOptions} from \"../../../../common/interfaces/cashier.service.interface\";\r\n\r\n\r\nexport class ExternalLinksLegacyStrategy extends ServiceBase implements IExternalLinksService {\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n\r\n this.services.sdk.events.onPlayerAction(this._onPlayerActionHandler.bind(this));\r\n }\r\n\r\n\r\n private _onPlayerActionHandler(params: OnPlayerActionParams) {\r\n if(params.actionName === 'deposit') {\r\n this.services.cashier.openCashier({\r\n ...params.options,\r\n channel: {\r\n source: CHANNEL_SOURCE.registration,\r\n area: AreaType.StraightToCashier,\r\n element: CHANNEL_ELEMENTS.depositButton\r\n }\r\n });\r\n }\r\n }\r\n\r\n openLink(params: OpenLinkParams, marketingParams?: MarketingParams, useCallbackURL: boolean = false): Promise {\r\n let marketingData = this.services.marketing.getMarketingData(marketingParams);\r\n const isHybrid = Device.hybrid.isHybrid;\r\n\r\n\r\n const sdkOpenParams: SdkOpenExternalLinkParams = {\r\n view: params.view,\r\n source: params.source,\r\n sourceLink: params.sourceLink,\r\n addCloseOption: params.addCloseOption,\r\n priorityLevel: params.priorityLevel,\r\n marketing: marketingData,\r\n options: {\r\n ...params.options,\r\n showRegister: !this.services.cmsSegmentation.isCisOrCip && this.services.configuration.data.generalSettings.showRegisterButton\r\n }\r\n };\r\n\r\n if(params.source === 'cashier') {\r\n return this.services.cashier.openCashier({\r\n ...sdkOpenParams.options,\r\n channel: {\r\n source: CHANNEL_SOURCE.casinoClient,\r\n area: AreaType.NavigationMenu,\r\n element: CHANNEL_ELEMENTS.depositButton\r\n }\r\n\r\n });\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n if(params.resolveByCallback && !isHybrid) {\r\n sdkOpenParams.actionCallback = (result: any) => resolve(result);\r\n }\r\n\r\n this.services.sdk.openExternalLink(sdkOpenParams, useCallbackURL).then(()=> {\r\n // In case there is an actionCallback this promise will be resolved by a call from inside sdk.openExternalLink\r\n if(!sdkOpenParams.actionCallback) {\r\n resolve();\r\n }\r\n }).catch((err)=> {\r\n reject(err);\r\n });\r\n });\r\n }\r\n\r\n openResponsibleGamblingLink(view?:number):void{\r\n this.services.sdk.openResponsibleGamingLink(view);\r\n }\r\n\r\n\r\n async openMyAccount(options?: IOpenMyAccountOptions, marketingParams?: MarketingParams): Promise {\r\n await this.openLink({\r\n source: 'my_account',\r\n options: options,\r\n resolveByCallback: false\r\n }, marketingParams);\r\n }\r\n\r\n async openCashier(options?: OpenCashierOptions): Promise {\r\n await this.services.sdk.openExternalLink({\r\n source: GNWP_SOURCES.CASHIER,\r\n options: options\r\n });\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(): Promise {\r\n await this.openLink({\r\n source: 'upload_document',\r\n });\r\n }\r\n\r\n async openMembership(options?: IOpenRegistrationOptions): Promise {\r\n await this.openLink({\r\n source: 'membership'\r\n }, options?.marketingParams);\r\n }\r\n\r\n async openPendingPlayApplication(token: string): Promise {\r\n await this.openLink({\r\n source: GNWP_SOURCES.PENDING_PLAY,\r\n options: {\r\n token: token\r\n }\r\n });\r\n }\r\n\r\n async openSafeToPlay(): Promise {\r\n const url = this.services.sdk.getSkin().getSafeToPlayURL();\r\n if(url) {\r\n await this.openLink({\r\n sourceLink: url,\r\n view: 'window'\r\n });\r\n }\r\n }\r\n\r\n async openRichPage(options: OpenRichPageOptions): Promise {\r\n if(!options.campaignId) {\r\n throw new Error('Rich campaignId parameter was not provided');\r\n }\r\n\r\n const url = this.services.configuration.servicesConfigs.Integration.rich?.richPageUrl;\r\n if(!url) {\r\n throw new Error('Rich page url was not configured');\r\n }\r\n\r\n await this.services.location.redirect(url.replace('{campaignid}', options.campaignId));\r\n }\r\n\r\n async openSport(): Promise {\r\n await this.openLink({\r\n source: GNWP_SOURCES.SPORT\r\n });\r\n }\r\n\r\n async openInternalUrl(url: string): Promise {\r\n if(!url) {\r\n throw new Error('openInternalUrl failed! No url provided');\r\n }\r\n\r\n await this.services.location.push(url);\r\n\r\n }\r\n async openExternalUrl(url: string): Promise {\r\n if(!url) {\r\n throw new Error('openExternalUrl failed! No url provided');\r\n }\r\n\r\n let view: ExternalLinkViewMode = this.services.device.os.isMobileOS ? 'iframe' : 'window';\r\n\r\n await this.openLink({\r\n sourceLink: url,\r\n addCloseOption: true,\r\n view: view,\r\n priorityLevel: PRIORITY_LEVEL.INTERNAL_OVER_EXTERNAL_LINK\r\n });\r\n }\r\n\r\n openExternalBrand(params: OpenLinkParams, marketingParams?: MarketingParams, useCallbackURL: boolean = false): Promise {\r\n if (params.sourceLink) {\r\n const externalBrandLink = this.services.stateOfResidenceIdentifier.prepareUrlForExternalBrand(params.sourceLink);\r\n return this.openLink({...params, sourceLink: externalBrandLink}, marketingParams, useCallbackURL);\r\n } else {\r\n return this.openLink(params, marketingParams, useCallbackURL);\r\n }\r\n }\r\n\r\n openBankId(url: string): void {\r\n if(Device.hybrid.inCasino) {\r\n this.services.hybrid.openExternalLink(url);\r\n } else {\r\n /*\r\n BankId url is an url with custom schema something like 'bankid:///?autostarttoken\r\n This will basically rely on the browser that will ask the operating system to handle bankid schema which in the end will open an application.\r\n On some browsers this works with window.location.assign and on others with window.open. This is the reason we do those two subsequent calls.\r\n Only one of them will be succesfull. And even if both will succeed the BankID application is a single instance application so only one instance will be opened.\r\n */\r\n window.location.assign(url);\r\n const tab = window.open(url);\r\n tab && tab.close();\r\n }\r\n }\r\n openOMG(options: IOpenOmgOptions): Promise {\r\n return this.openLink({\r\n source: GNWP_SOURCES.OMG,\r\n view: 'iframe',\r\n priorityLevel: PRIORITY_LEVEL.OMG,\r\n options: {\r\n ExternalLinkInPopUp: '1',\r\n OpenedWithinGame: options.openedWithinGame,\r\n Messages: options.messages\r\n }\r\n })\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","import {ExternalLinksLegacyStrategy} from \"./external-links-legacy.strategy\";\r\nimport {MarketingParams} from \"../../../../common/interfaces/marketing-params.interface\";\r\nimport {IExternalLinksHandlersFactory} from \"../handlers-factory/external-links-handlers-factory.interface\";\r\nimport {IOpenMyAccountOptions} from \"../handlers/my-account/my-account.external-link-handler.interface\";\r\nimport {IOpenOmgOptions, OpenLinkParams} from \"../external-links.service.interface\";\r\nimport {IOpenRegistrationOptions} from \"../handlers/registration/registration.external-link-handler.interface\";\r\nimport {OpenCashierOptions} from \"../../../../common/interfaces/cashier.service.interface\";\r\nimport {GNWP_SOURCES} from \"../../../../sdk/src/components/external_links/external_links_consts\";\r\nimport {PRIORITY_LEVEL} from \"../../../../sdk/src/services/overlay_manager/overlay_manager_levels\";\r\nimport {ExternalLinksZIndexes} from \"../external-links-z-indexes\";\r\n\r\nexport class ExternalLinksModernStrategy extends ExternalLinksLegacyStrategy {\r\n\r\n private get _handlers(): IExternalLinksHandlersFactory {\r\n return this.services.regulation.current.externalLinks;\r\n }\r\n\r\n\r\n async openMyAccount(options?: IOpenMyAccountOptions, marketingParams?: MarketingParams): Promise {\r\n await this._handlers.myAccount.openMyAccount(options);\r\n }\r\n\r\n async openCashier(options?: OpenCashierOptions): Promise {\r\n await this._handlers.cashier.openCashier(options);\r\n }\r\n\r\n async openMembership(options?: IOpenRegistrationOptions): Promise {\r\n await this._handlers.registration.openRegistration(options);\r\n }\r\n\r\n openLink(params: OpenLinkParams, marketingParams?: MarketingParams, useCallbackURL: boolean = false): Promise {\r\n if(params.source === GNWP_SOURCES.MEMBERSHIP) {\r\n return this.openMembership({\r\n ...params?.options,\r\n marketingParams: marketingParams\r\n });\r\n } else if(params.source === GNWP_SOURCES.CASHIER) {\r\n return this.openCashier(params.options);\r\n } else if(params.source === GNWP_SOURCES.MY_ACCOUNT) {\r\n return this.openMyAccount(params.options);\r\n } else if(params.source === GNWP_SOURCES.OMG) {\r\n return this.openOMG({\r\n openedWithinGame: params.options.openedWithinGame,\r\n messages: params.options.Messages,\r\n zIndex: params.priorityLevel === PRIORITY_LEVEL.OMG ? ExternalLinksZIndexes.Omg : ExternalLinksZIndexes.OmgBehindTheGame,\r\n })\r\n }\r\n return super.openLink(params, marketingParams, useCallbackURL);\r\n }\r\n\r\n openOMG(options: IOpenOmgOptions): Promise {\r\n return this._handlers.omg.openOmg(options);\r\n }\r\n\r\n}","export interface IAnalyticsDataLayerService{\r\n pushSafezoneEvent(eventParams:ISafezoneEventParams): void,\r\n pushSafezoneInitParams(): void\r\n}\r\n\r\nexport interface ISafezoneDataLayerParams{\r\n intent: string,\r\n login_session_id: string,\r\n user_type: string,\r\n rm_status: number,\r\n rg_risk_level: number,\r\n local_time: string,\r\n sub_brand_name: number,\r\n sub_brand_id: number,\r\n registration_country: string,\r\n context: string,\r\n registration_date: string,\r\n cid: string,\r\n env: string,\r\n product_package: number\r\n}\r\n\r\nexport interface ISafezoneEventParams{\r\n action: string,\r\n category: string,\r\n event: string,\r\n correlation_id?: string,\r\n channel: string,\r\n label: string,\r\n local_time: string,\r\n session_status?: SESSION_STATUS\r\n}\r\n\r\nexport enum SESSION_STATUS {\r\n Failure = 0,\r\n Success = 1,\r\n Partial = 2\r\n};\r\n\r\n","import {ServiceBase} from '../ServiceBase';\r\nimport {\r\n IExternalLinksService, IOpenOmgOptions,\r\n OpenContactUsOptions,\r\n OpenLinkParams,\r\n OpenRichPageOptions\r\n} from './external-links.service.interface';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {MarketingParams} from \"../../../common/interfaces/marketing-params.interface\";\r\nimport {ExternalLinksLegacyStrategy} from \"./strategies/external-links-legacy.strategy\";\r\nimport {ExternalLinksModernStrategy} from \"./strategies/external-links-modern.strategy\";\r\nimport {IOpenMyAccountOptions} from \"./handlers/my-account/my-account.external-link-handler.interface\";\r\nimport {IOpenRegistrationOptions} from \"./handlers/registration/registration.external-link-handler.interface\";\r\nimport {IExternalLinksProxy} from \"../../../common/interfaces/external-links-proxy.interface\";\r\nimport {OpenCashierOptions} from \"../../../common/interfaces/cashier.service.interface\";\r\n\r\nconst useModernStrategy = true;\r\n\r\nexport class ExternalLinksService extends ServiceBase implements IExternalLinksService, IExternalLinksProxy {\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n if(useModernStrategy) {\r\n this._strategy = new ExternalLinksModernStrategy(services);\r\n } else {\r\n this._strategy = new ExternalLinksLegacyStrategy(services);\r\n }\r\n }\r\n\r\n private readonly _strategy: IExternalLinksService;\r\n\r\n openLink(params: OpenLinkParams, marketingParams?: MarketingParams, useCallbackURL: boolean = false): Promise {\r\n return this._strategy.openLink(params, marketingParams, useCallbackURL);\r\n }\r\n\r\n openResponsibleGamblingLink(view?:number):void{\r\n this._strategy.openResponsibleGamblingLink(view);\r\n }\r\n\r\n\r\n async openMyAccount(options?: IOpenMyAccountOptions): Promise {\r\n await this._strategy.openMyAccount(options);\r\n }\r\n\r\n async openCashier(options?:OpenCashierOptions): Promise {\r\n await this._strategy.openCashier(options);\r\n }\r\n\r\n async openContactUs(options?: OpenContactUsOptions, marketingParams?: MarketingParams, resolveByCallback: boolean = false): Promise {\r\n await this._strategy.openContactUs(options, marketingParams, resolveByCallback);\r\n }\r\n\r\n async openOldChat(): Promise {\r\n await this._strategy.openOldChat();\r\n }\r\n\r\n async openHelpPage(): Promise {\r\n await this._strategy.openHelpPage();\r\n }\r\n\r\n async openDownloadApp(): Promise {\r\n await this._strategy.openDownloadApp();\r\n }\r\n\r\n async openUploadDocument(): Promise {\r\n await this._strategy.openUploadDocument();\r\n }\r\n\r\n async openMembership(options?: IOpenRegistrationOptions): Promise {\r\n await this._strategy.openMembership(options);\r\n }\r\n\r\n async openPendingPlayApplication(token: string): Promise {\r\n await this._strategy.openPendingPlayApplication(token);\r\n }\r\n\r\n async openSafeToPlay(): Promise {\r\n await this._strategy.openSafeToPlay();\r\n }\r\n\r\n openRichPage(options: OpenRichPageOptions): Promise {\r\n return this._strategy.openRichPage(options);\r\n }\r\n\r\n openSport(): Promise {\r\n return this._strategy.openSport();\r\n }\r\n\r\n openInternalUrl(url: string): Promise {\r\n return this._strategy.openInternalUrl(url);\r\n }\r\n openExternalUrl(url: string): Promise {\r\n return this._strategy.openExternalUrl(url);\r\n }\r\n\r\n openExternalBrand(params: OpenLinkParams, marketingParams?: MarketingParams, useCallbackURL?: boolean): Promise {\r\n return this._strategy.openExternalBrand(params, marketingParams, useCallbackURL);\r\n }\r\n\r\n openBankId(url: string): void {\r\n this._strategy.openBankId(url);\r\n }\r\n\r\n openOMG(options: IOpenOmgOptions): Promise {\r\n return this._strategy.openOMG(options);\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 _publicationID(): number {\r\n return this.services.configuration.cmsPublicationId;\r\n }\r\n\r\n public get apiOrigin(): string {\r\n return this.services.launcher.getCMSOrigin() || this.services.location.currentUri.origin\r\n }\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\r\n let userSignature = this.services.sdk.getCmsUserSignature();\r\n if(!Check.isEmpty(userSignature)) {\r\n if(this.services.configuration.servicesConfigs.Skin.isSiteInfraAWS){\r\n headers.append('XX-Context', userSignature && userSignature.message);\r\n }else{\r\n headers.append('XX.Context', userSignature && userSignature.message);\r\n }\r\n }\r\n\r\n\r\n return headers;\r\n }\r\n\r\n async getSegments(): Promise {\r\n try {\r\n let options = {\r\n headers: this._getSegmentesRequestOptions()\r\n };\r\n return await this.services.http.get(`${this.apiOrigin}/api/segments`, options);\r\n }catch (err) {\r\n this.services.logger.error(`Failed to read segments from CMS API!`, err);\r\n return {};\r\n }\r\n }\r\n\r\n async getLanguageSwitcherConfiguration(url: string): Promise {\r\n try {\r\n return await this.services.http.get(`${this.apiOrigin}/api/languageswitcher?publicationid=${this._publicationID}&url=${this._addSlashesInTheSides(url)}`);\r\n } catch (err) {\r\n this.services.logger.error(`Failed to get language switcher configuration for page ${url}`, err);\r\n return null;\r\n }\r\n }\r\n\r\n private _isRouteToHtmlFile(pathName: string): boolean {\r\n return pathName.endsWith('.htm')\r\n || pathName.endsWith('.html');\r\n }\r\n\r\n\r\n private _addSlashesInTheSides(pathName) {\r\n if(pathName && pathName[0] !== '/') {\r\n pathName = '/' + pathName;\r\n }\r\n\r\n //we append the trailing slash if the path doesn't ends with slash and also the path doesn't ends with .html or .htm\r\n //we don't append the trailing slash for paths like /path/file.htm or /path/file.html\r\n if(pathName && !this._isRouteToHtmlFile(pathName) && pathName[pathName.length - 1] !== '/') {\r\n pathName = pathName + '/';\r\n }\r\n\r\n if(pathName) {\r\n return pathName;\r\n }\r\n\r\n return '/';\r\n }\r\n\r\n}\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../../base-components/orbit-component/orbit-component';\r\nimport {CmsContentDecorator} from '../../../services/cms/cms-content-decorator/cms-content-decorator';\r\nimport {observer} from 'mobx-react';\r\nimport {CmsBannerId} from '../../../services/cms/cms-banners/cm-banner-id/cms-banner-id';\r\n\r\nexport interface BannerContentComponentProps {\r\n html: string;\r\n bannerId: CmsBannerId;\r\n}\r\n\r\n@observer\r\nexport class BannerContentComponent extends OrbitComponent {\r\n\r\n componentWillUnmount() {\r\n super.componentWillUnmount();\r\n this._disposeBannerContentDecorator();\r\n }\r\n\r\n componentDidUpdate() {\r\n this._redecorateBannerContent();\r\n }\r\n\r\n private _disposeBannerContentDecorator() {\r\n if(this._bannerContentDecorator) {\r\n this._bannerContentDecorator.dispose();\r\n this._bannerContentDecorator = null;\r\n }\r\n }\r\n\r\n private _redecorateBannerContent() {\r\n this._disposeBannerContentDecorator();\r\n if(this._bannerContentElementRef) {\r\n this._bannerContentElementRef.innerHTML = this.props.html;\r\n this._bannerContentDecorator = new CmsContentDecorator(this._bannerContentElementRef, this.services);\r\n }\r\n }\r\n\r\n private _bannerContentDecorator: CmsContentDecorator | null = null;\r\n\r\n private _bannerContentElementRef: HTMLSpanElement | null = null;\r\n\r\n private _captureBannerContentElementRef = (element: HTMLSpanElement | null) => {\r\n this._bannerContentElementRef = element;\r\n this._redecorateBannerContent();\r\n };\r\n\r\n render() {\r\n return ();\r\n }\r\n}\r\n","import React from 'react';\r\nimport {BannerRenderProps, IBannerDefinition} from './banner-definition.interface';\r\nimport {BannerContentComponent} from '../../../../components/cms-banner/banner-content/banner-content.component';\r\nimport {CmsBannerId} from '../cm-banner-id/cms-banner-id';\r\n\r\n\r\nexport class BannerDefinition implements IBannerDefinition {\r\n constructor(public _html: string, private _bannerId: CmsBannerId) {\r\n }\r\n\r\n render(props: BannerRenderProps): React.ReactNode {\r\n return ();\r\n }\r\n}\r\n","import {ServiceBase} from '../../ServiceBase';\r\nimport {ICmsBannersService} from './cms-banners.service.interface';\r\nimport {action, observable} from 'mobx';\r\nimport {IBannerDefinition} from './banner-definition/banner-definition.interface';\r\nimport {IServiceFactoryExtended} from '../../service-factory-extended.interface';\r\nimport {CmsBannerId} from './cm-banner-id/cms-banner-id';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {BannerDefinition} from './banner-definition/banner-definition';\r\n\r\nimport {EmptyBannerDefinition} from './banner-definition/empty-banner-definition';\r\nimport {BannerData} from '../cms-api/cms-api.service.interface';\r\n\r\ntype ReadBannersResponse = Array<{id: CmsBannerId, definition: IBannerDefinition}>;\r\n\r\nexport class CmsBannersService extends ServiceBase implements ICmsBannersService {\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n\r\n this.reaction(\r\n () => this.services.user.isAuthorized,\r\n (isAuthorized) => {\r\n this._reloadBannersContent();\r\n }\r\n );\r\n }\r\n\r\n\r\n private _currentUsedBannersIds: {[key: string]: CmsBannerId} = {};\r\n\r\n @observable\r\n bannersMap: {[key: string]: IBannerDefinition} = {};\r\n\r\n async loadBanner(bannerId: CmsBannerId): Promise {\r\n if(!this.bannersMap[bannerId.key]) {\r\n let banners = await this._readBanners([bannerId]);\r\n this._setBanners(banners);\r\n }\r\n const hasBannerContent = Check.isObject(this.bannersMap[bannerId.key]);\r\n return hasBannerContent;\r\n }\r\n\r\n private _reloadBannersContent() {\r\n this._readBanners(Object.values(this._currentUsedBannersIds))\r\n .then(banners => {\r\n this._setBanners(banners);\r\n });\r\n }\r\n\r\n @action.bound\r\n private _setBanners(banners: ReadBannersResponse) {\r\n banners.forEach(newBanner => {\r\n this.bannersMap[newBanner.id.key] = newBanner.definition;\r\n this._currentUsedBannersIds[newBanner.id.key] = newBanner.id;\r\n });\r\n }\r\n\r\n private async _readBanners(bannersIds: CmsBannerId[]): Promise {\r\n\r\n let bannersIdsCollection = new BannersIdCollection(bannersIds);\r\n\r\n let cmsResponseData = await this.services.cmsApi.getBanners(bannersIds);\r\n //create definitions for bannersMap that we received some content\r\n let bannersWithContent = this._extractBannersWithContent(bannersIdsCollection, cmsResponseData);\r\n\r\n //for banners that we didn't receive any content try to load a default content and then merge the results\r\n let bannersIdsWithoutContent = bannersIdsCollection.exclude(bannersWithContent.map(bannerInfo => bannerInfo.id));\r\n\r\n let fallbackBanners = await this._readFallbackBanners(bannersIdsWithoutContent);\r\n\r\n return [...bannersWithContent, ...fallbackBanners];\r\n\r\n /*.catch((err) => {\r\n let msg = bannersIds.reduce((acc, curr) => acc + '\\n' + curr.toString(), '');\r\n this.services.logger.error(`Failed to load CMS banners for ${msg}`, err);\r\n return this._readFallbackBanners(bannersIds);\r\n });\r\n */\r\n }\r\n\r\n private _extractBannersWithContent(requestedBannersIdsCollection: BannersIdCollection, cmsResponseData: BannerData[]): ReadBannersResponse {\r\n if(!Check.isArray(cmsResponseData)) {\r\n return [];\r\n }\r\n\r\n return cmsResponseData\r\n .filter(bannerData => !Check.isEmpty(bannerData.Content))\r\n .map(bannerData => {\r\n let bannerId = requestedBannersIdsCollection.getOriginalBannerId(bannerData.ComponentId, bannerData.TemplateId);\r\n return {\r\n id: bannerId,\r\n definition: new BannerDefinition(bannerData.Content, bannerId)\r\n };\r\n });\r\n }\r\n\r\n private async _readFallbackBanners(bannersIds: CmsBannerId[]): Promise {\r\n if(bannersIds.length === 0) {\r\n return Promise.resolve([]);\r\n }\r\n // for bannersMap that have fallback file we try to read the default banner content and then merge with those without fallback file\r\n let bannersIdsWithFallbackFile = bannersIds.filter(id => !Check.isEmpty(id.fallbackFileName));\r\n let bannersIdsGroupedByFallbackFile = this._groupBannersIdsByFallbackFile(bannersIdsWithFallbackFile);\r\n let fileNames = Object.keys(bannersIdsGroupedByFallbackFile);\r\n\r\n\r\n let fallbackData = await this.services.cmsApi.getFallbackBanners(fileNames);\r\n\r\n let result: ReadBannersResponse = [];\r\n fileNames.forEach(file => {\r\n let bannerContent = fallbackData[file];\r\n if(bannerContent) {\r\n result = result.concat(this._createBannersDefinitionsWithContent(bannersIdsGroupedByFallbackFile[file], bannerContent));\r\n }\r\n });\r\n\r\n return result;\r\n }\r\n\r\n\r\n private _groupBannersIdsByFallbackFile(bannersIds: CmsBannerId[]): {[key: string]: CmsBannerId[]} {\r\n let result = {};\r\n bannersIds.forEach(bannerId => {\r\n if(!result[bannerId.fallbackFileName]) {\r\n result[bannerId.fallbackFileName] = [];\r\n }\r\n\r\n result[bannerId.fallbackFileName].push(bannerId);\r\n });\r\n\r\n return result;\r\n }\r\n\r\n private _createBannersDefinitionsWithContent(bannersIds: CmsBannerId[], bannerContent: string): ReadBannersResponse {\r\n return bannersIds.map(id => {\r\n let definition: IBannerDefinition;\r\n if(Check.isEmpty(bannerContent)) {\r\n definition = new EmptyBannerDefinition();\r\n } else {\r\n definition = new BannerDefinition(bannerContent, id);\r\n }\r\n\r\n return {id: id, definition: definition};\r\n });\r\n }\r\n}\r\n\r\n\r\nclass BannersIdCollection {\r\n\r\n private _originalBannersMap = {};\r\n\r\n constructor(private _originalBannersIds: CmsBannerId[]) {\r\n this._originalBannersIds.forEach(bannerId => {\r\n this._originalBannersMap[bannerId.key] = bannerId;\r\n });\r\n }\r\n\r\n getOriginalBannerId(componentId: number, templateId: number): CmsBannerId {\r\n for(let i = 0; i < this._originalBannersIds.length; i++) {\r\n let bannerId = this._originalBannersIds[i];\r\n if(bannerId.isMatch(componentId, templateId)) {\r\n return bannerId;\r\n }\r\n }\r\n \r\n throw new Error(`Cant't find original banner id for componentId=${componentId} and templateId=${templateId}`);\r\n }\r\n\r\n exclude(bannersIdsToExclude: CmsBannerId[]): CmsBannerId[] {\r\n let bannersIdsToExcludeMap = {};\r\n bannersIdsToExclude.forEach(bannerId => bannersIdsToExcludeMap[bannerId.key] = bannerId);\r\n\r\n return this._originalBannersIds.filter(bannerId => !bannersIdsToExcludeMap[bannerId.key]);\r\n }\r\n}\r\n","import {ServiceBase} from '../../ServiceBase';\r\nimport {ICmsPagesService} from './cms-pages.service.interface';\r\nimport {\r\n ICmsPageDefinition,\r\n ICmsPageDefinitionHeadTags,\r\n IInjectedHeadTag\r\n} from './page-definition/cms-page-definition.interface';\r\nimport {action, observable} from 'mobx';\r\nimport {IServiceFactoryExtended} from '../../service-factory-extended.interface';\r\nimport {CmsPageData} from '../cms-api/cms-api.service.interface';\r\nimport {Uri} from '../../location/uri/uri';\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {UriPath} from \"../../location/uri-path/uri-path\";\r\nimport {UriParams} from \"../../location/uri-params/uri-params\";\r\n\r\nexport const LOAD_CONTENT_FROM_DIV_PAGE_DELAY = 250;\r\n\r\nexport class CmsPagesService extends ServiceBase implements ICmsPagesService {\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n\r\n this.reaction(\r\n () => this.services.location.currentUri,\r\n (uri) => this._loadCmsPage(uri),\r\n { fireImmediately: true }\r\n );\r\n\r\n this.reaction(\r\n () => this.services.user.isAuthorized,\r\n () => this._reloadCurrentPageContent(),\r\n { fireImmediately: true }\r\n );\r\n }\r\n\r\n private _currentUri: Uri | null = null;\r\n private _isFirstLoad = true;\r\n\r\n @observable.ref\r\n currentPage: ICmsPageDefinition | null = null;\r\n injectedPageMetaTags: IInjectedHeadTag[] = [];\r\n\r\n @action.bound\r\n private _setCurrentPage(pageDefinition: ICmsPageDefinition | null) {\r\n this.currentPage = pageDefinition;\r\n }\r\n\r\n private setCurrentPageMetaTags(headerTags: ICmsPageDefinitionHeadTags[]){\r\n\r\n const prepareElementSelector = (elementType:string, attributes = {}) => {\r\n const attributesQuery = Object.keys(attributes).reduce((query, attributeName) => {\r\n if(!Check.isString(attributes[attributeName]) || attributeName === 'tag')\r\n return query;\r\n\r\n return query + `[${attributeName}=\"${attributes[attributeName]}\"]`;\r\n }, '');\r\n\r\n return elementType + attributesQuery;\r\n }\r\n\r\n const setElementAttributes = (element, attributes = {}) => {\r\n Object.keys(attributes).forEach(attributeName => {\r\n if(attributeName !== 'tag')\r\n element.setAttribute(attributeName, attributes[attributeName]);\r\n });\r\n }\r\n\r\n const addMetaTags = (headerTags: ICmsPageDefinitionHeadTags[]) => {\r\n headerTags.forEach(headerTag => {\r\n const {tag, content, href, ...rest} = headerTag;\r\n try {\r\n if(tag){\r\n let metaTag = this.services.dom.querySelector(prepareElementSelector(tag, rest)) as HTMLElement;\r\n const injectedPageMetaTagPreviousElement = metaTag;\r\n\r\n if(!metaTag){\r\n metaTag = this.services.dom.createElement(tag);\r\n this.services.dom.head.appendChild(metaTag);\r\n }\r\n\r\n this.injectedPageMetaTags.push({element: metaTag, previous: injectedPageMetaTagPreviousElement ? (injectedPageMetaTagPreviousElement.cloneNode() as HTMLElement) : undefined});\r\n setElementAttributes(metaTag, headerTag);\r\n }\r\n }catch (err){\r\n this.services.logger.error(`Failed to add metaTag: ${tag}`, err);\r\n }\r\n\r\n })\r\n }\r\n\r\n const removeMetaTags = (injectedMetaTags: IInjectedHeadTag[]) => {\r\n (injectedMetaTags || []).forEach(({element, previous}) => {\r\n if(previous){\r\n element.parentNode?.replaceChild(previous, element);\r\n }else{\r\n element.remove();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * To have more meta tags allowed to be injected from pageContent, add an other Regex here\r\n */\r\n const allowedTags = '(link.*(?:\\\\[rel=\"canonical\"]))|' +\r\n '(meta.*(?:\\\\[property=\"og:updated_time\"]))|' +\r\n '(meta.*(?:\\\\[property=\"og:description\"]))|' +\r\n '(meta.*(?:\\\\[property=\"og:url\"]))|' +\r\n '(meta.*(?:\\\\[name=\"og:title\"]))|' +\r\n '(meta.*(?:\\\\[name=\"description\"]))'\r\n ;\r\n\r\n const metaTags = (headerTags || []).filter(({tag,content, ...rest}) => {\r\n const testIfTagAllowedRegex = new RegExp(allowedTags, 'i');\r\n return testIfTagAllowedRegex.test(prepareElementSelector(tag, rest));\r\n });\r\n\r\n if(this.injectedPageMetaTags.length > 0){\r\n removeMetaTags(this.injectedPageMetaTags);\r\n this.injectedPageMetaTags = [];\r\n }\r\n\r\n addMetaTags(metaTags);\r\n }\r\n\r\n\r\n private async _reloadCurrentPageContent(): Promise {\r\n if(this.currentPage) {\r\n this._currentUri = null;\r\n try {\r\n await this._loadCmsPage(this.services.location.currentUri);\r\n } catch (err) {\r\n this.services.logger.error(`Failed to reload CMS page ${this.currentPage.url}`, err);\r\n }\r\n }\r\n }\r\n\r\n\r\n private async _loadCmsPage(uri: Uri): Promise {\r\n\r\n if(this._currentUri && this._currentUri.pathName && uri.pathName.equals(this._currentUri.pathName)) {\r\n return;\r\n }\r\n\r\n this._currentUri = uri;\r\n\r\n try {\r\n let pageElement = this.services.dom.getElementById('page');\r\n if(this._isFirstLoad && pageElement && !this.services.routing.isOrbitRoute(uri.pathName)) {\r\n\r\n if(this.services.user.isAuthorized){\r\n //In case the user is login we must call the API and not use the DOM page since b2c need to get the XX.context to return the right segments,\r\n //But we must clean the #page div content to avoid duplicate b2c content on the page\r\n pageElement.remove();\r\n await this._loadPageContentWithSpinner(uri);\r\n } else{\r\n this._loadPageContentFromDOM(pageElement, uri);\r\n }\r\n\r\n } else {\r\n await this._loadPageContentWithSpinner(uri);\r\n }\r\n } finally {\r\n this._isFirstLoad = false;\r\n }\r\n }\r\n\r\n\r\n private async _loadPageContentWithSpinner(uri: Uri): Promise {\r\n const isB2CRoute = !this.services.routing.isOrbitRoute(uri.pathName);\r\n if(isB2CRoute) {\r\n this.services.spinner.startSpinner();\r\n }\r\n\r\n try {\r\n await this._loadCmsPageFromApi(uri)\r\n } finally {\r\n if(isB2CRoute) {\r\n this.services.spinner.stopSpinner();\r\n }\r\n }\r\n\r\n }\r\n\r\n private _loadPageContentFromDOM(pageElement: HTMLElement, uri: Uri): void {\r\n // we introduced this delay because if some of the scripts in the innerHTML contains a \r\n */\r\nfunction evaluateScriptsWithExternalFile(html: string) {\r\n try {\r\n const fakeDiv = document.createElement('div');\r\n fakeDiv.innerHTML = html.trim();\r\n\r\n const scriptElements = fakeDiv.getElementsByTagName('script');\r\n const elementsLength = scriptElements ? scriptElements.length : 0;\r\n\r\n for (let index = 0; index < elementsLength; index++) {\r\n const script = document.createElement(\"script\");\r\n\r\n if (scriptElements[index]['src']) {\r\n script.src = scriptElements[index]['src'];\r\n } else {\r\n //Add try catch to B2C scripts\r\n const tryStart = \"try{\";\r\n const consoleLogFunc = (isOrbitInQAMode() ? 'warn' : 'error');\r\n const tryEnd = `}catch(e){console.${consoleLogFunc}('B2C ERROR In EXTERNAL SCRIPT, ERROR MESSAGE: ', e)}`;\r\n\r\n script.innerHTML = tryStart + scriptElements[index]['innerHTML'] + tryEnd;\r\n\r\n }\r\n\r\n document.head.appendChild(script).parentNode?.removeChild(script);\r\n }\r\n } catch (err) {\r\n if(!isInsideAutomation()) {\r\n console.log('Error in evaluateScriptsWithExternalFile function, err message:', err);\r\n }\r\n\r\n }\r\n}\r\n","import {IServiceFactory} from '../../service-factory.interface';\r\nimport {CmsLink} from './cms-link';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {evaluateScripts} from \"./evaluate-scripts\";\r\n\r\nexport class CmsContentDecorator {\r\n constructor(private _element: HTMLElement, private services: IServiceFactory ) {\r\n this._evaluateScripts();\r\n this._loadCmsLinks();\r\n }\r\n\r\n private _cmsLinks: CmsLink[] = [];\r\n\r\n\r\n dispose() {\r\n this._cmsLinks.forEach(a => a.dispose());\r\n }\r\n\r\n\r\n private _evaluateScripts() {\r\n evaluateScripts(this._element.innerHTML);\r\n }\r\n\r\n\r\n private _loadCmsLinks() {\r\n let linkTags = this._element.getElementsByTagName('a');\r\n for(let i = 0; i < linkTags.length; i++) {\r\n let currentLink = linkTags[i] as HTMLAnchorElement;\r\n if (Check.isEmpty(currentLink.href) || currentLink.target === '_blank') {\r\n continue;\r\n }\r\n\r\n let anchorUri = this.services.location.tryParseUrl(currentLink.href);\r\n if(!anchorUri) {\r\n continue;\r\n }\r\n\r\n if(anchorUri.origin === this.services.location.currentUri.origin) {\r\n this._cmsLinks.push(new CmsLink(currentLink, this._element, this.services));\r\n }\r\n\r\n }\r\n }\r\n\r\n scrollIntoView(childElementSelector: string): void {\r\n try {\r\n let el = this._element.querySelector(childElementSelector);\r\n if(el) {\r\n el.scrollIntoView();\r\n }\r\n } catch (err) {\r\n this.services.logger.error(`Failed to scroll into view element with id ${childElementSelector}`, err);\r\n }\r\n\r\n }\r\n}\r\n","import styled from \"styled-components\";\r\n\r\n\r\nexport const LobbyWrapperDefaultBox = styled.div`\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n font-size: 1.2rem;\r\n line-height: normal;\r\n padding-left: 4rem;\r\n padding-right: 4rem;\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n padding-top: 1.5rem;\r\n padding-left: 0;\r\n padding-right: 0;\r\n }\r\n \r\n &:before {\r\n content: \"\";\r\n position: absolute;\r\n width: 100%;\r\n height: 350px;\r\n left: 0;\r\n top: 0;\r\n background-image: radial-gradient(50% 80% at top, rgba(0,0,0,0.5), transparent);\r\n background-repeat: no-repeat;\r\n background-position: center top;\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n display: none;\r\n opacity: 0;\r\n }\r\n\r\n }\r\n`;\r\n\r\nexport const LobbyWrapperWithoutBackgroundDefaultBox = styled(LobbyWrapperDefaultBox)`\r\n &:before {\r\n background-image: none;\r\n }\r\n`","import styled from \"styled-components\";\r\nimport {LobbyWrapperDefaultBox} from './lobby-wrapper.default.box';\r\nimport {LOBBY_PAGE} from '../../themes/css-global-classes';\r\n\r\nexport const LobbyWrapperCasino777Box = styled(LobbyWrapperDefaultBox)`\r\n &:before {\r\n background-size: cover;\r\n top: 0;\r\n height: 35rem;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n padding: 0;\r\n .${LOBBY_PAGE} & {\r\n &:before {\r\n display: block;\r\n opacity:1;\r\n top: 0;\r\n }\r\n }\r\n }\r\n`","import {LobbyWrapperDefaultBox, LobbyWrapperWithoutBackgroundDefaultBox} from \"./lobby-wrapper.default.box\";\r\nimport {styledByTheme} from \"../../themes/architecture/styled-by-theme\";\r\nimport {LobbyWrapperCasino777Box} from \"./lobby-wrapper.casino777.box\";\r\n\r\nexport const LobbyWrapperBox = styledByTheme(LobbyWrapperDefaultBox)\r\n .forCasino777(LobbyWrapperCasino777Box)\r\n .forSI(LobbyWrapperWithoutBackgroundDefaultBox)\r\n .forMrGreen(LobbyWrapperWithoutBackgroundDefaultBox)\r\n .forSICis(LobbyWrapperWithoutBackgroundDefaultBox)\r\n .apply();","import styled from \"styled-components\";\r\n\r\nexport const ClockComponentDefaultBox = styled.div`\r\n ${({theme}) => theme.font.presets.body};\r\n font-size: 1em;\r\n line-height: 1;\r\n`;","import styled from \"styled-components\";\r\nimport { ClockComponentDefaultBox } from \"./clock.component.default.box\";\r\n\r\nexport const ClockComponentSICisBox = styled(ClockComponentDefaultBox)`\r\n letter-spacing: 0.4px;\r\n`;","import { styledByTheme } from \"../../../themes/architecture/styled-by-theme\";\r\nimport { ClockComponentDefaultBox } from \"./clock.component.default.box\";\r\nimport { ClockComponentSICisBox } from \"./clock.component.siCis.box\";\r\n\r\nexport const ClockComponentBox = styledByTheme(ClockComponentDefaultBox)\r\n .forSICis(ClockComponentSICisBox)\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 {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 {EMBEDDED_HYBRID, MINI_ORBIT} from '../../css-global-classes';\r\n\r\nexport class CssRule {\r\n static get For(): CssRule {\r\n return new CssRule()\r\n }\r\n private _rules: string[] = [];\r\n private negateNextRule: boolean = false;\r\n private formatRule(rule: string) {\r\n if (this.negateNextRule) {\r\n this.negateNextRule = false;\r\n return `:not(${rule})`;\r\n }\r\n return rule;\r\n }\r\n get not(): CssRule {\r\n this.negateNextRule = true\r\n return this;\r\n }\r\n get desktop(): CssRule {\r\n this._rules.push(this.formatRule('.cgp-pc'));\r\n return this;\r\n }\r\n\r\n get ipad(): CssRule {\r\n this._rules.push(this.formatRule('.cgp-ipad-device'));\r\n return this;\r\n }\r\n\r\n get mobile(): CssRule {\r\n this._rules.push(this.formatRule('.cgp-mobile'));\r\n return this;\r\n }\r\n\r\n get notMobileOs(): CssRule {\r\n this._rules.push(this.formatRule('.cgp-not-mobile-os'));\r\n return this;\r\n }\r\n\r\n get lowRes(): CssRule {\r\n this._rules.push(this.formatRule('.cgp-low-resolution'));\r\n return this;\r\n }\r\n\r\n get portrait(): CssRule {\r\n this._rules.push(this.formatRule('.cgp-portrait'));\r\n return this;\r\n }\r\n\r\n get landscape(): CssRule {\r\n this._rules.push(this.formatRule('.cgp-landscape'));\r\n return this;\r\n }\r\n\r\n get tablet(): CssRule {\r\n this._rules.push(this.formatRule('.cgp-tablet'));\r\n return this;\r\n }\r\n\r\n get RTL(): CssRule {\r\n this._rules.push(this.formatRule('.cgp-rtl'));\r\n return this;\r\n }\r\n\r\n get embededHybrid(): CssRule {\r\n this._rules.push(this.formatRule(`.${EMBEDDED_HYBRID}`));\r\n return this;\r\n }\r\n\r\n get iPhoneVer5(): CssRule {\r\n this._rules.push(this.formatRule('.cgp-iphone-ver-5'));\r\n return this;\r\n }\r\n\r\n get iPhoneVer10(): CssRule {\r\n this._rules.push(this.formatRule('.cgp-iphone-ver-10'));\r\n return this;\r\n }\r\n\r\n get realMobile(): CssRule {\r\n this._rules.push(this.formatRule('.cgp-real-mobile'));\r\n return this;\r\n }\r\n\r\n get miniOrbit(): CssRule {\r\n this._rules.push(this.formatRule(`.${MINI_ORBIT}`));\r\n return this;\r\n }\r\n\r\n build(): string {\r\n if(this._rules.length === 0) {\r\n return '';\r\n }\r\n\r\n return `html${this._rules.join('')}`;\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 BlankHorizontalSeparatorBox = styled.span<{multiplier?: number}>`\r\n width: ${props => PC_HORIZONTAL_SPACE_BETWEEN_ITEMS(props.multiplier ?? 1)};\r\n @media ${props => props.theme.mediaQuery.lAndBelow} {\r\n width: ${props => MOBILE_HORIZONTAL_SPACE_BETWEEN_ITEMS(props.multiplier ?? 1)};\r\n }\r\n`","\r\nconst KEY_NAME = {\r\n FUNC: 'fn',\r\n FUNC_CB: 'cb',\r\n HYBRID_CB: 'hybridcb',\r\n HYBRID_CB_GLOBAL_NAME: 'onhybridcb',\r\n HYBRID_CB_FEATURE_FUNC: 'hybridcbfeaturefunc',\r\n SRV: 'service',\r\n MSG: 'msg',\r\n ERROR: 'error',\r\n DATA: 'data',\r\n VAL: 'val',\r\n DISPLAY_ALSO_FACE_ID: 'displayAlsoFaceId',\r\n LAZY_PUSH: 'lazypush',\r\n ODR_DEL_GAMES: 'odrdeletegames',\r\n VERSION: 'version',\r\n LN_SERVER: 'LnServer',\r\n LN_ORG_ID: 'LnOriginid',\r\n LN_SESSION_ID: 'LnSessionId',\r\n JS_LN_SERVER: 'LnServer',\r\n TIME_OUT: 'timeout',\r\n TIME_OUT_BEFORE_DISPLAY: 'timeoutbeforedisplay',\r\n CLOSE_BY_TIME_OUT: 'closebytimeout',\r\n CLOSE_BY_X: 'closebyx',\r\n CLOSE_NO_CHILL: 'closenochill',\r\n CLOSE_BY_LOW_DISK_SPACE: 'closebylowdiskspace',\r\n FOLDER_STRUCT: 'foldertruct',\r\n FOLDER_SHARED_NAME: 'sharedFolderName',\r\n CLOSE_X_POS_P: 'xPosP',\r\n CLOSE_Y_POS_P: 'yPosP',\r\n CLOSE_X_POS_L: 'xPosL',\r\n CLOSE_Y_POS_L: 'yPosL',\r\n MAIL_TO: 'mailto',\r\n ID: 'id',\r\n PORT: 'port',\r\n KEYBORD: 'keybord',\r\n ROTATION: 'rotation',\r\n FORCE: 'force',\r\n WEB_ID: 'webid',\r\n TYPE: 'type',\r\n PROGRESS_BAR_FAKE: 'progressbarfake',\r\n PROGRESS_BAR_REAL: 'progressbarreal',\r\n RESOURCE_NAME: 'resourcename',\r\n X_OF_MENY: 'resourcexofmeny',\r\n GAME_ID: 'gameid',\r\n SHARED_FOLDER: 'sharedolder',\r\n URL: 'url',\r\n SERVICE: 'service',\r\n FEATURE_CB: 'featurecb',\r\n ACTION: 'action',\r\n OPEN_LINK: 'openlink',\r\n DEBUG: 'debug',\r\n RELOAD: 'reload',\r\n AUTOLOGIN: 'UserInfo',\r\n SESSIONTIMER: 'sessiontimer',\r\n HEADER_HEIGHT: 'headerheight',\r\n BANK_ID: 'bankid',\r\n MIT_ID: 'mitid',\r\n PHONE: 'tel:',\r\n LEFT: 'left',\r\n RIGHT: 'right',\r\n TOP: 'top',\r\n BOTTOM: 'bottom',\r\n SHOW: 'show',\r\n DP_TO_PX: 'dp2px',\r\n LOG_CATEGORY: 'logcategory',\r\n LOG_ACTION: 'logaction',\r\n LOG_LABLE: 'loglabel',\r\n LOG_VALUE: 'logvalue',\r\n LOG_LEVEL: 'loglevel'\r\n};\r\n\r\nconst ON_DEMAND = {\r\n GAME_LOADING_START: 'game_loading_start',\r\n GAME_LOADING_END: 'game_loading_end',\r\n GAME_LOADING_CLOSE_BY_X: 'game_loading_close_by_x',\r\n GAME_LOADING_CLOSE_BY_TIME_OUT: 'game_loading_close_by_time_out',\r\n GAME_LOADING_CLOSE_BY_LOW_DISK_SPACE: 'game_loading_close_by_low_disk_space',\r\n GAME_LOADING_CLOSE_BY_NO_CHILL: 'game_loading_close_by_no_chill',\r\n GAME_LOADING_ERROR: 'game_loading_error',\r\n CHILL_LOADING_ERROR: 'chill_loading_error',\r\n CHILL_LOADING: 'chill_loading',\r\n GAME_LOADING_REAL_ODR_STARTED: 'game_loading_real_odr_started',\r\n ON_DEMAND_CATEGORY: 'Hybrid_On_Demand',\r\n ON_DEMAND_DELETE_GAMES: 'odr_delete_games'\r\n};\r\n\r\n\r\nconst LEXIS_NEXIS = {\r\n SESSION_ID_LOAD_ERROR: 'session_id_load_error',\r\n SESSION_ID_LOAD_OK: 'session_id_response_success',\r\n SESSION_ID_REQUEST_SENT: 'session_id_request_sent',\r\n SESSION_ID_CALL: 'session_id_sent',\r\n SESSION_ID_LOAD_EMPTY: 'session_id_load_empty',\r\n SESSION_ID_CLOSE_BY_TIME_OUT: 'close_by_timeout',\r\n LEXIS_NEXIS_CATEGORY: 'Hybrid_Lexis_Nexis'\r\n};\r\n\r\n\r\nconst ODR_FOLDERS = {\r\n SHARED_ONE_FOLDER: 1,\r\n SHARED_MANY_FOLDER: 2,\r\n SHARED_NONE: 3,\r\n SHARED_GGP: 4\r\n}\r\n\r\nconst ODR_SHARED_GAMES = {\r\n EMPTY : '',\r\n RED_TIGER : '236redtigershared',\r\n PRAGMATIC_PLAY : '238pragmaticshared',\r\n PLAY_N_GO : '237playngoshared',\r\n PLAY_TECH : '233playtechshared'\r\n}\r\n\r\nconst ROTATION_KEYS = {\r\n LANDSCAPE: '-1',\r\n PORTRATE_UPSIDE_DOWN: '-2',\r\n PORTRATE: '-3',\r\n ALL: '-4'\r\n};\r\n\r\nconst FEATURE_CB_FUNC = {\r\n HYBRID_WEB_CALL: 'WebViewManagerFeature',\r\n HYBRID_URL_SCHEME_CALL: 'UrlSchemeFeature',\r\n HYBRID_PUSH_CALL: 'PushFeature',\r\n HYBRID_GEO_CALL: 'GeoFeature',\r\n HYBRID_ON_DEMAND_CALL: 'OnDemandFeature',\r\n HYBRID_ON_DEMAND_NYX_CALL: 'OnDemandNyxFeature',\r\n HYBRID_LOBBY_POP_UP_CALL: 'LobbyPopUpFeature',\r\n HYBRID_FIRE_BASE: 'FireBaseFeature',\r\n HYBRID_NATIVE_LOGS: 'NativeLogsFeature',\r\n HYBRID_SERIAL_EXTENTIONS: 'SerialExtentionsFeature'\r\n};\r\n\r\n\r\nconst SERIVCES_FUNC_LIST = {\r\n\r\n\r\n /* WebView */\r\n WEB_VIEW_WEB_SHOW: 'WebView_WebShow',\r\n WEB_VIEW_SAFARI: 'WebView_ShowSafariTest',\r\n WEB_VIEW_SAFARI_PING: 'WebView_ShowSafariPing',\r\n WEB_VIEW_ACCOMPLISHED: 'WebView_Accomplished',\r\n WEB_VIEW_IS_HTML_COMPILED_GAMES: 'WebView_IsHtmlCompiledGames',\r\n WEB_VIEW_GET_DP_2_PX: 'WebView_GetDpToPx',\r\n\r\n\r\n\r\n\r\n /* General */\r\n GENERAL_INIT_HYBRID: 'General_InitHybrid',\r\n GENERAL_ALERT: 'General_Alert',\r\n GENERAL_ALERT_D: 'General_AlertDebug',\r\n GENERAL_SET_ROTATION: 'General_SetRotation',\r\n GENERAL_SET_CB: 'General_SetCallBack',\r\n GENERAL_OPEN_MAIL: 'General_OpenMail',\r\n GENERAL_OPEN_EXTERNAL_LINK: 'General_OpenExternalLink',\r\n GENERAL_OPEN_SETTINGS: 'General_OpenSettings',\r\n\r\n\r\n\r\n /* Serial */\r\n SERIAL_GET_SERIAL: 'Serial_GetSerial',\r\n SERIAL_SET_CB: 'Serial_SetCb',\r\n\r\n /* 3DTouch */\r\n T3_D_TOUCH_INIT_SHORTCUTS: 'ThreeDTouch_InitShortcuts',\r\n T3_D_TOUCH_UPDATE_SHORTCUT: 'ThreeDTouch_UpdateShortcut',\r\n T3_D_TOUCH_DELETE_SHORTCUT: 'ThreeDTouch_DeleteShortcut',\r\n T3_D_TOUCH_DEL_ALL_SHORTCUTS: 'ThreeDTouch_DeleteAllShortcuts',\r\n T3_D_TOUCH_GET_LAUNCH_SHORTCUT: 'ThreeDTouch_GetLaunchShortcut',\r\n\r\n\r\n /* TouchID */\r\n TOUCH_ID_SUPPORT_FACE_ID: 'TouchID_SetSupportedFaceId',\r\n TOUCH_ID_GET_TOKEN: 'TouchID_GetToken',\r\n TOUCH_ID_OPEN: 'TouchID_Open',\r\n TOUCH_ID_SET_TOKEN: 'TouchID_SetToken',\r\n TOUCH_ID_IS_SUPORTED: 'TouchID_IsTouchIdSuported',\r\n TOUCH_ID_CLEAR_ALL: 'TouchID_ClearAll',\r\n TOUCH_ID_PARAMS_FOR_TOKEN: 'TouchID_GetParamsForToken',\r\n TOUCH_ID_IS_OPEN_SETTINGS_SUPPORTED: 'TouchID_IsOpenSettings',\r\n\r\n /* WebViewManager */\r\n WEB_SECOND_SET_CB: 'WebView_WebSecondSetCb',\r\n WEB_SECOND_NAVIFATE: 'WebView_WebSecondNavigate',\r\n WEB_DEPOSIT_WIDGET_NAVIFATE: 'WebView_WebDepositWidgetNavigate',\r\n WEB_SECOND_SHOW: 'WebView_WebSecondShow',\r\n WEB_SECOND_HIDE: 'WebView_WebSecondHide',\r\n WEB_SECOND_CLOSE: 'WebView_WebSecondClose',\r\n WEB_SECOND_UPDATE_SIZE: 'WebView_WebSecondUpdateSize',\r\n WEB_DEPOSIT_WIDGET_SUPPORTED: 'WebView_DepositWidgetSupported',\r\n\r\n /* Info */\r\n INFO_GET_ALL_INFO: 'Info_GetAllInfo',\r\n INFO_SET_URL: 'Info_SetUrl',\r\n\r\n /* Url Scheme*/\r\n URL_SCHEME_SET_CB: 'UrlScheme_SetCb',\r\n URL_SCHEME_GET_URL_SCHEME: 'UrlScheme_GetUrlScheme',\r\n URL_SCHEME_CLEAR: 'UrlScheme_Clear',\r\n\r\n /* Fabric */\r\n FABRIC_ADD_EVENT: 'Fabric_AddEvents',\r\n\r\n /* Push Notifications */\r\n PUSH_IS_DEVICE_ENABLE: 'PushUA_IsDeviceEnable',\r\n PUSH_SET_CB: 'PushUA_SetCb',\r\n PUSH_GET_ACTION: 'PushUA_GetAction',\r\n PUSH_ADD_TAG: 'PushUA_AddTag',\r\n PUSH_REM_TAG: 'PushUA_RemTag',\r\n PUSH_SET_ALIAS: 'PushUA_SetAlias',\r\n PUSH_PROMPT_PERMISSION: 'PushUA_PromptPermission',\r\n\r\n /* Geo */\r\n GEO_SET_CB: 'GeoLocation_SetCb',\r\n GEO_GET_LOCATION: 'GeoLocation_GetGeoLocation',\r\n GEO_IS_PERMISSION_SUPPORTED: 'GeoLocation_IsPermissionPopupSupported',\r\n GEO_SHOW_PERMISSION: 'GeoLocation_ShowGeoPermission',\r\n\r\n /* LEXIS NEXIS*/\r\n LEXIS_NEXIS_GET_INFO: 'LexisNexis_GetInfo',\r\n LEXIS_NEXIS_IS_SUPPORTED: 'LexisNexis_IsSupported',\r\n\r\n /* AppStore Rating Popup */\r\n RATE_APP: 'StoreRating_RateApp',\r\n\r\n /* On demand */\r\n ON_DEMAND_IS_READY: 'OnDemand_IsReady',\r\n ON_DEMAND_CLOSE_GAME: 'OnDemand_CloseGame',\r\n ON_DEMAND_SET_CB: 'OnDemand_SetCb',\r\n ON_DEMAND_LOAD_CHILL: 'OnDemand_LoadChill',\r\n ON_DEMAND_CLOSE_BY_X: 'OnDemand_CloseByX',\r\n ON_DEMAND_CLOSE_BY_TIME_OUT: 'OnDemand_CloseByTimeOut',\r\n ON_DEMAND_CLOSE_BY_LOW_DISK_SPACE: 'OnDemand_CloseByLowDiskSpace',\r\n ON_DEMAND_DELETE_GAME_FOLDER: 'OnDemand_DeleteGameFolder',\r\n\r\n\r\n /* On Demand Nyx */\r\n ON_DEMAND_NYX_SET_CB: 'OnDemandNyx_SetCb',\r\n ON_DEMAND_NYX_NAVIGATE: 'OnDemandNyx_Navigate',\r\n ON_DEMAND_NYX_CLOSE: 'OnDemandNyx_Close',\r\n ON_DEMAND_NYX_CHANGE_HEADER_HEIGHT: 'OnDemandNyx_ChangeHeaderHeight',\r\n ON_DEMAND_NYX_IS_IFRAME_SUPPORT: 'OnDemandNyx_IsIframeSupport',\r\n ON_DEMAND_NYX_GET_LOCAL_HOST_URL: 'OnDemandNyx_GetNyxLocalHostUrl',\r\n\r\n\r\n /* Lobby Pop Up */\r\n\r\n LOBBY_POPUP_IS_SUPPORTED: 'LobbyPopUp_IsSupported',\r\n LOBBY_POPUP_SHOW: 'LobbyPopUp_Show',\r\n LOBBY_POPUP_CLOSE: 'LobbyPopUp_Close',\r\n LOBBY_POPUP_SET_CB: 'LobbyPopUp_SetCb',\r\n\r\n\r\n /* Fire Base*/\r\n FIRE_BASE_GET_DATA: 'FireBase_GetData',\r\n\r\n\r\n /* Native Logs */\r\n\r\n /* Url Scheme*/\r\n NATIVE_LOGS_SET_CB: 'NativeLogs_SetCb'\r\n};\r\n\r\n\r\n\r\nconst SERIVCES_PARAMS_LIST = {\r\n WEB_VIEW_SPLASH: 'splash',\r\n WEB_VIEW_SPLASH_SHOW: '0',\r\n WEB_VIEW_SPLASH_FADE: '1'\r\n};\r\n\r\n\r\nconst LOCAL_HOST = {\r\n HTTP: 'http://localhost:8089',\r\n HTTPS: 'https://localhost:8089'\r\n};\r\n\r\nconst OPEN_SETTINGS = {\r\n TOUCH_ID_IOS: 'App-Prefs:TOUCHID_PASSCODE',\r\n TOUCH_ID_ANDROID: 'android.settings.SECURITY_SETTINGS'\r\n};\r\n\r\nexport {KEY_NAME, SERIVCES_FUNC_LIST, SERIVCES_PARAMS_LIST, ROTATION_KEYS, FEATURE_CB_FUNC, ON_DEMAND, ODR_FOLDERS, ODR_SHARED_GAMES, LOCAL_HOST, LEXIS_NEXIS, OPEN_SETTINGS};","export function hexToRgba(hex: string, opacity: number = 1): string {\r\n var c;\r\n if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)){\r\n c = hex.substring(1).split('');\r\n if(c.length === 3){\r\n c = [c[0], c[0], c[1], c[1], c[2], c[2]];\r\n }\r\n c = '0x'+c.join('');\r\n return 'rgba('+[(c>>16)&255, (c>>8)&255, c&255].join(',')+',' + opacity +')';\r\n }\r\n throw new Error('Bad color Hex code');\r\n}","import styled, { css } from \"styled-components\";\r\nimport { IButtonCommonProps, IButtonColorSet, IButtonPreset } from \"../button-props.interface\";\r\nimport {hexToRgba} from \"../../../../themes/hex-to-rgba\";\r\n\r\ninterface IButtonBoxProps extends IButtonCommonProps {\r\n colorSet: IButtonColorSet;\r\n\r\n height: number;\r\n strokeWidth: number;\r\n iconSize: number;\r\n lateralPadding: number;\r\n\r\n hasLabel: boolean;\r\n hasIcon: boolean;\r\n}\r\nexport const ButtonBox = styled.button`\r\n cursor: ${props => props.disabled ? \"default\" : \"pointer\"};\r\n user-select: none;\r\n\r\n border-radius: ${props => props.rounded ? \"100px\" : props.theme.layout.border.radius};\r\n ${props => props.margin ? css`\r\n margin: ${props.margin};\r\n ` : null};\r\n\r\n /* Override user-agent styles */\r\n background: none;\r\n outline: none;\r\n\r\n ${({theme}) => theme.font.presets.ultra};\r\n /**\r\n * This is not the actual text size.\r\n * The text size is set in the span wrapping the text, here i'm just creating a context for the em units to compute relative to this\r\n */\r\n font-size: ${props => props.fixedSize ? \"10px\" : \"1rem\"};\r\n /**\r\n * If we have only an icon and no label, we want a square (or circle) button\r\n * that means the width = height =>\r\n * border x 2 + lateral-padding x 2 + icon_size = height =>\r\n * lateral_padding = (height - icon_size - 2 x border)/2 =>\r\n * lateral_padding = (height - icon_size)/2 - border\r\n *\r\n * If we have label (with or without icon), don't bother, put 1em or whatever value decided by design (hardcoded or from the theme)\r\n */\r\n padding: 0 ${props => {\r\n if (props.hasIcon && !props.hasLabel) {\r\n return \"calc(\"+((props.height - props.iconSize)/2)+\"em - \"+props.strokeWidth+\"px)\";\r\n } else {\r\n return props.lateralPadding + \"em\";\r\n }\r\n }};\r\n line-height: 0.8;\r\n letter-spacing: 0.05em;\r\n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n /** content-box because the border is in px. So when computing heights, paddings etc in em border is not taken in consideration */\r\n /* box-sizing: content-box;\r\n height: calc(${props => props.height }em - 2*${props => props.strokeWidth }px); */\r\n /** OOORRR */\r\n box-sizing: border-box;\r\n height: ${props => props.height}em;\r\n\r\n width: ${props => props.fullWidth ? \"100%\" : \"auto\"};\r\n transition: all 0.2s ease-in-out;\r\n\r\n border-width: ${props => props.strokeWidth}px;\r\n border-style: solid;\r\n\r\n color: ${props => colorSet(props).text};\r\n background-color: ${props => colorSet(props).bg};\r\n border-color: ${props => colorSet(props).border};\r\n box-shadow: ${props => (props.elevated && colorSet(props).shadow) ? colorSet(props).shadow : \"none\"};\r\n\r\n /* Putting the &:hover rules inside the hover media queries prevents the button to remain in hover state after pressing it.\r\n We wouldn't need this is the pressed/active state would be different from the hover state */\r\n @media ${({theme}) => theme.mediaQuery.hover } {\r\n &:hover {\r\n color: ${props => colorSet(props, I_WANT_THE_HOVER_COLORS).text};\r\n background-color: ${props => colorSet(props, I_WANT_THE_HOVER_COLORS).bg};\r\n border-color: ${props => colorSet(props, I_WANT_THE_HOVER_COLORS).border};\r\n box-shadow: ${props => (props.elevated && colorSet(props, I_WANT_THE_HOVER_COLORS).shadow) ? colorSet(props, I_WANT_THE_HOVER_COLORS).shadow : \"none\"};\r\n }\r\n }\r\n\r\n ${props => (props.rotated45 && props.hasIcon && !props.hasLabel) ? css`\r\n transform: rotate(45deg);\r\n ` : null}\r\n`;\r\n\r\nconst I_WANT_THE_HOVER_COLORS = true;\r\nfunction colorSet(props: IButtonBoxProps, hoverSet?: boolean) {\r\n const setKey: keyof IButtonPreset[\"colors\"] = props.disabled ? \"disabled\" : (hoverSet || props.active ? \"hover\" : \"normal\");\r\n if (props.colorSet[setKey]) {\r\n return props.colorSet[setKey];\r\n } else {\r\n if (setKey === \"disabled\") {\r\n return {\r\n text: hexToRgba(props.colorSet[\"normal\"].text, 0.8),\r\n bg: hexToRgba(props.colorSet[\"normal\"].bg, 0.8),\r\n border: hexToRgba(props.colorSet[\"normal\"].border, 0.8),\r\n shadow: props.colorSet[\"normal\"].shadow\r\n };\r\n }\r\n if (setKey === \"hover\") {\r\n return {\r\n ...props.colorSet[\"normal\"],\r\n text: props.colorSet[\"normal\"].bg,\r\n bg: props.colorSet[\"normal\"].text,\r\n };\r\n }\r\n }\r\n}\r\n","import styled from \"styled-components\";\r\n\r\ninterface IButtonLabelProps {\r\n fontSize: number;\r\n lateralPadding: number;\r\n allowLabelWrap?: boolean;\r\n}\r\n\r\nexport const ButtonLabelDefaultBox = styled.span`\r\n text-transform: uppercase;\r\n padding: 1px ${({lateralPadding}) => lateralPadding}em 0px;\r\n font-size: ${({fontSize}) => fontSize}em;\r\n line-height: 1.15;\r\n max-height: 2.2em;\r\n\r\n white-space: ${({allowLabelWrap}) => allowLabelWrap ? 'unset' : 'nowrap'};\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n`;","import styled from \"styled-components\";\r\nimport {ButtonLabelDefaultBox} from \"./button-label.default.box\";\r\n\r\nexport const ButtonLabelMrGreenBox = styled(ButtonLabelDefaultBox)`\r\n /**\r\n we must do the lowercase and then only first letter upper case because the translations is all upper case\r\n it's known issue that if the translation have 2 words for example: log in it will be Log in and not Log In\r\n **/\r\n text-transform: lowercase;\r\n \r\n &::first-letter {\r\n text-transform: uppercase;\r\n }\r\n`;","import {styledByTheme} from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {ButtonLabelMrGreenBox} from \"./button-label.mrgreen.box\";\r\nimport {ButtonLabelDefaultBox} from \"./button-label.default.box\";\r\n\r\n\r\nexport const ButtonLabelBox = styledByTheme(ButtonLabelDefaultBox)\r\n .forMrGreen(ButtonLabelMrGreenBox)\r\n .apply();","import styled, { css } from \"styled-components\";\r\nimport { CssRule } from \"../../../../themes/architecture/css-helpers/css-rule\";\r\n\r\ninterface IButtonIconWrapperProps {\r\n rotated45?: boolean;\r\n reverseOnRTL?: boolean;\r\n}\r\n\r\nexport const ButtonIconWrapperBox = styled.span`\r\n ${props => props.rotated45 ? css`\r\n transform: rotate(-45deg);\r\n ` : null}\r\n\r\n ${props => props.reverseOnRTL ? css`\r\n ${CssRule.For.RTL.build()} &{\r\n transform: scaleX(-1);\r\n }\r\n ` : null}\r\n`;\r\n","import React from \"react\";\r\nimport { withTheme } from \"styled-components\";\r\nimport { OrbitTheme } from \"../../../themes/architecture/orbit-theme.interface\";\r\nimport { SvgSizeUnit } from \"../../icon/svg-icon/svg.icon\";\r\nimport { IButtonCommonProps, ButtonPreset, ButtonStroke, ButtonSizeVariant, IButtonIconProps } from \"./button-props.interface\";\r\nimport { ButtonBox } from \"./boxes/button.box\";\r\nimport { ButtonLabelBox } from \"./boxes/button-label.box\";\r\nimport { ButtonIconWrapperBox } from \"./boxes/button-icon-wrapper.box\";\r\n\r\ninterface IButtonProps extends IButtonCommonProps {\r\n preset: ButtonPreset;\r\n stroke?: ButtonStroke;\r\n icon?: IButtonIconProps;\r\n sizeVariant?: ButtonSizeVariant;\r\n className?: string;\r\n allowLabelWrap?: boolean;\r\n tooltip?: string;\r\n\r\n /**\r\n * theme is addded by styled-component's withTheme\r\n * children should not be here, but typescript complains otherwise, when using this component with children\r\n */\r\n theme: OrbitTheme;\r\n children?: React.ReactNode;\r\n\r\n /* button interactions */\r\n onClick?(): void;\r\n onMouseEnter?(): void;\r\n onMouseLeave?(): void;\r\n}\r\n\r\nclass $Button extends React.Component {\r\n render() {\r\n let {\r\n children, theme, preset, icon, stroke, sizeVariant, rotated45, rounded, elevated, allowLabelWrap, tooltip,\r\n onClick, onMouseEnter, onMouseLeave,\r\n ...otherProps\r\n } = this.props;\r\n let hasIcon = !!icon;\r\n let hasLabel = !!children;\r\n\r\n onClick = this.props.disabled ? undefined : onClick;\r\n onMouseEnter = this.props.disabled ? undefined : onMouseEnter;\r\n onMouseLeave = this.props.disabled ? undefined : onMouseLeave;\r\n\r\n let presetValues = theme.baseUIComponents.button.presets[preset];\r\n let themePresetDefaults = theme.baseUIComponents.button.defaults;\r\n\r\n stroke = stroke ?? presetValues.stroke ?? themePresetDefaults.stroke;\r\n rounded = rounded ?? presetValues.rounded ?? themePresetDefaults.rounded;\r\n elevated = elevated ?? presetValues.elevated ?? themePresetDefaults.elevated;\r\n sizeVariant = sizeVariant || \"regular\";\r\n\r\n let iconSize = icon && icon.size ? icon.size : \"regular\";\r\n let iconPlacement = icon && icon.placement ? icon.placement : \"left\";\r\n\r\n let strokeWidth = theme.baseUIComponents.button.strokeValues[stroke];\r\n let height = theme.baseUIComponents.button.sizeVariantValues[sizeVariant].height;\r\n let iconSizeValue = theme.baseUIComponents.button.sizeVariantValues[sizeVariant].iconSize[iconSize];\r\n let fontSize = theme.baseUIComponents.button.sizeVariantValues[sizeVariant].fontSize || presetValues.fontSize || themePresetDefaults.fontSize;\r\n let lateralPadding = sizeVariant === \"small\" ? 0.6 : 1;\r\n\r\n /**\r\n * Rotation is supported for icon only buttons. We support this for casino 777 play game button which is a diamond shaped button\r\n */\r\n rotated45 = rotated45 && hasIcon && !hasLabel;\r\n\r\n return \r\n { (icon && iconPlacement === \"left\") ? this.renderIcon(icon.Component, iconSizeValue, {rotated45, reverseOnRTL: icon.reverseOnRTL}) : null }\r\n { children ? {children} : null }\r\n { (icon && iconPlacement === \"right\") ? this.renderIcon(icon.Component, iconSizeValue, {rotated45, reverseOnRTL: icon.reverseOnRTL}) : null }\r\n \r\n }\r\n\r\n private renderIcon(IconComponent: IButtonIconProps[\"Component\"], size: number, options?: {rotated45?: boolean, reverseOnRTL?: boolean}) {\r\n return \r\n \r\n \r\n }\r\n\r\n}\r\n\r\nexport const Button = withTheme($Button);\r\n","var map = {\n\t\"./888/888.company-model\": [\n\t\t950,\n\t\t2,\n\t\t23,\n\t\t99\n\t],\n\t\"./evolution/evolution.company-model\": [\n\t\t899,\n\t\t2,\n\t\t90\n\t],\n\t\"./netent/netent.company-model\": [\n\t\t910,\n\t\t2,\n\t\t95\n\t],\n\t\"./nyx/integrations/nyx.new-integration.company-model\": [\n\t\t552,\n\t\t2,\n\t\t22,\n\t\t51\n\t],\n\t\"./nyx/integrations/nyx.old-integration.company-model\": [\n\t\t493,\n\t\t2,\n\t\t22,\n\t\t52\n\t],\n\t\"./nyx/nyx.company-model\": [\n\t\t880,\n\t\t2,\n\t\t22,\n\t\t52,\n\t\t51,\n\t\t114\n\t],\n\t\"./pariplay/pariplay.company-model\": [\n\t\t920,\n\t\t2,\n\t\t96\n\t],\n\t\"./play-n-go/play-n-go.company-model\": [\n\t\t921,\n\t\t2,\n\t\t91\n\t],\n\t\"./playtech/playtech.company-model\": [\n\t\t928,\n\t\t2,\n\t\t89\n\t],\n\t\"./pragmatic/pragmatic.company-model\": [\n\t\t929,\n\t\t2,\n\t\t92\n\t],\n\t\"./red-tiger/red-tiger.company-model\": [\n\t\t951,\n\t\t2,\n\t\t50,\n\t\t100\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 = 689;\nmodule.exports = webpackAsyncContext;","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 pendingPlay: 'PENDING_PLAY',\r\n}\r\n\r\nexport const CHANNEL_ELEMENTS = {\r\n depositButton: 'deposit_button',\r\n withdrawButton: 'withdraw_button',\r\n uploadDocumentsButton: 'upload_documents_button',\r\n transactionHistoryButton: 'transaction_history_button',\r\n retryButton: 'retry_button',\r\n plusButton: 'plus_button',\r\n urlParam: 'url_param',\r\n deepLink: 'deep_link',\r\n floatingIcon: 'floating_icon',\r\n safezoneHeaderButton: 'safezone_header_button',\r\n safezoneUsefulLink: 'safezone_useful_link'\r\n}\r\n\r\nexport const DISPLAY_MESSAGE_IDS = {\r\n sofRequired: 100,\r\n retryCloseDrawerMessage: 101,\r\n psRedirectFocusDialog: 102,\r\n timeSpentReminder: 104,\r\n nightLimitWarning: 105,\r\n nightLimitKick: 106,\r\n lugasCooldown:108,\r\n lugasActiveOnAnotherOperator:109,\r\n lugasLogout:110,\r\n loginMessage:112,\r\n realityCheckGermany: 113\r\n}\r\n\r\nexport const DISPLAY_MESSAGE_NAMES = {\r\n DISRUPTIVE_WARNING_MESSAGE_NAME: \"DisruptiveWarningMessage\",\r\n DISRUPTIVE_KICKOFF_MESSAGE_NAME: \"DisruptiveKickOffMessage\",\r\n LUGAS_COOLDOWN_MESSAGE_NAME:\"LugasCoolingPeriod\",\r\n LUGAS_ACTIVE_MESSAGE_NAME:\"LugasParallelPlaying\",\r\n LUGAS_LOGOUT_MESSAGE_NAME:\"LugasLogout\",\r\n REALITY_CHECK_GERMANY_MESSAGE_NAME: \"RealityCheck\",\r\n LOGIN_MESSAGE: \"LoginMessage\"\r\n}\r\n\r\nexport const ACTION_TAKEN_NAMES = {\r\n CONFIRM_ACTION: \"confirm\",\r\n CANCEL_ACTION: \"cancel\",\r\n}","var map = {\n\t\"./ballysdover/theme.definition\": [\n\t\t944,\n\t\t0,\n\t\t1,\n\t\t70\n\t],\n\t\"./casino777/theme.definition\": [\n\t\t909,\n\t\t0,\n\t\t1,\n\t\t71\n\t],\n\t\"./casino888/cip/theme.definition\": [\n\t\t945,\n\t\t0,\n\t\t1,\n\t\t75\n\t],\n\t\"./casino888/cis/theme.definition\": [\n\t\t882,\n\t\t0,\n\t\t1,\n\t\t76\n\t],\n\t\"./casino888/theme.definition\": [\n\t\t918,\n\t\t0,\n\t\t1,\n\t\t77\n\t],\n\t\"./delawarepark/theme.definition\": [\n\t\t919,\n\t\t0,\n\t\t1,\n\t\t78\n\t],\n\t\"./harrahs/theme.definition\": [\n\t\t946,\n\t\t0,\n\t\t1,\n\t\t79\n\t],\n\t\"./harrington/theme.definition\": [\n\t\t947,\n\t\t0,\n\t\t1,\n\t\t80\n\t],\n\t\"./mrgreen/theme.definition\": [\n\t\t894,\n\t\t0,\n\t\t1,\n\t\t81\n\t],\n\t\"./si/cis/theme.definition\": [\n\t\t915,\n\t\t0,\n\t\t1,\n\t\t46,\n\t\t82\n\t],\n\t\"./si/theme.definition\": [\n\t\t916,\n\t\t0,\n\t\t1,\n\t\t46,\n\t\t72\n\t],\n\t\"./wsop/cip/theme.definition\": [\n\t\t948,\n\t\t0,\n\t\t1,\n\t\t73\n\t],\n\t\"./wsop/theme.definition\": [\n\t\t949,\n\t\t0,\n\t\t1,\n\t\t74\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 = 695;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./ara\": [\n\t\t497,\n\t\t27\n\t],\n\t\"./ara.ts\": [\n\t\t497,\n\t\t27\n\t],\n\t\"./chi\": [\n\t\t498,\n\t\t33\n\t],\n\t\"./chi.ts\": [\n\t\t498,\n\t\t33\n\t],\n\t\"./dan\": [\n\t\t499,\n\t\t42\n\t],\n\t\"./dan.ts\": [\n\t\t499,\n\t\t42\n\t],\n\t\"./dut\": [\n\t\t500,\n\t\t43\n\t],\n\t\"./dut.ts\": [\n\t\t500,\n\t\t43\n\t],\n\t\"./eng\": [\n\t\t329\n\t],\n\t\"./eng.ts\": [\n\t\t329\n\t],\n\t\"./fin\": [\n\t\t501,\n\t\t28\n\t],\n\t\"./fin.ts\": [\n\t\t501,\n\t\t28\n\t],\n\t\"./fre\": [\n\t\t502,\n\t\t29\n\t],\n\t\"./fre.ts\": [\n\t\t502,\n\t\t29\n\t],\n\t\"./ger\": [\n\t\t503,\n\t\t30\n\t],\n\t\"./ger.ts\": [\n\t\t503,\n\t\t30\n\t],\n\t\"./gre\": [\n\t\t504,\n\t\t31\n\t],\n\t\"./gre.ts\": [\n\t\t504,\n\t\t31\n\t],\n\t\"./ita\": [\n\t\t505,\n\t\t32\n\t],\n\t\"./ita.ts\": [\n\t\t505,\n\t\t32\n\t],\n\t\"./jpn\": [\n\t\t506,\n\t\t34\n\t],\n\t\"./jpn.ts\": [\n\t\t506,\n\t\t34\n\t],\n\t\"./nor\": [\n\t\t507,\n\t\t35\n\t],\n\t\"./nor.ts\": [\n\t\t507,\n\t\t35\n\t],\n\t\"./por\": [\n\t\t508,\n\t\t36\n\t],\n\t\"./por.ts\": [\n\t\t508,\n\t\t36\n\t],\n\t\"./rum\": [\n\t\t509,\n\t\t37\n\t],\n\t\"./rum.ts\": [\n\t\t509,\n\t\t37\n\t],\n\t\"./rus\": [\n\t\t510,\n\t\t38\n\t],\n\t\"./rus.ts\": [\n\t\t510,\n\t\t38\n\t],\n\t\"./spa\": [\n\t\t511,\n\t\t39\n\t],\n\t\"./spa.ts\": [\n\t\t511,\n\t\t39\n\t],\n\t\"./swe\": [\n\t\t512,\n\t\t40\n\t],\n\t\"./swe.ts\": [\n\t\t512,\n\t\t40\n\t],\n\t\"./tha\": [\n\t\t513,\n\t\t41\n\t],\n\t\"./tha.ts\": [\n\t\t513,\n\t\t41\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 = 696;\nmodule.exports = webpackAsyncContext;","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 {IGamePartsViewModel} from \"../game-parts/game-parts-view-model.interface\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {IGameSize} from \"../open-game-api-callers/open-game-api-response.interface\";\r\nimport {\r\n Nullable,\r\n NullableUndefinedString,\r\n UndefinedNumber\r\n} from \"../../../../../common/types/nullable-types\";\r\nimport {IRunningGameControllerViewModel} from \"../game-controller/running-game-controller.interface\";\r\nimport {IOpenHistoryGameParams} from \"../../game-runner.service.interface\";\r\nimport {IFreePlayVoucherViewModel} from \"../../../free-play/vouchers/free-play-voucher-view-model.interface\";\r\n\r\nexport enum GameModeEnum {\r\n Demo = 0,\r\n Real = 1,\r\n History = 2\r\n}\r\n\r\nexport interface IGameSessionDataViewModel {\r\n readonly totalBets: number;\r\n readonly totalWins: number;\r\n readonly vendorGameSessionId: NullableUndefinedString;\r\n readonly regulationGameSessionId: NullableUndefinedString;\r\n readonly regulationParticipationTicketId: NullableUndefinedString;\r\n readonly netPosition: number;\r\n}\r\n\r\nexport interface IGameFreePlayContextViewModel {\r\n readonly isFreePlay: boolean;\r\n readonly isCurrentFreePlayMandatory: boolean;\r\n readonly shouldShowFreePlayHeader: boolean;\r\n readonly currentFreePlayVoucher: IFreePlayVoucherViewModel | null;\r\n readonly otherAvailableVouchersForCurrentGame: IFreePlayVoucherViewModel[];\r\n}\r\n\r\nexport interface IGameContextViewModel {\r\n readonly gameMode: GameModeEnum;\r\n readonly gameInfo: GameInfo;\r\n readonly controller: IRunningGameControllerViewModel;\r\n readonly gameParts: IGamePartsViewModel;\r\n readonly launchGameUrl: string | null;\r\n readonly gameSize: Nullable;\r\n readonly isGameResizable: boolean;\r\n readonly freePlayContext: IGameFreePlayContextViewModel;\r\n readonly historyGameParams: IOpenHistoryGameParams | undefined;\r\n readonly gameSessionData: IGameSessionDataViewModel;\r\n readonly referrerId: UndefinedNumber;\r\n readonly allowSwitchBetweenDemoAndReal: boolean;\r\n}","const PRIORITY_LEVEL = {\r\n BASE: 'base',\r\n POP_UP: 'popup',\r\n OPEN_SESSION: 'open-session',\r\n FP: 'fp',\r\n OMG_BEHIND: 'omg-behind',\r\n GAME_FRAME: 'game-frame',\r\n NEXT_GAME: 'next-game',\r\n GAME_LOADING_INDICATOR: 'game-loading-indicator',\r\n GAME_FRAME_LOADER: 'game-frame-loader',\r\n GAME_FRAME_FP: 'game-frame-fp',\r\n MINI_CASHIER: 'mini-cashier',\r\n CASHIER: 'cashier',\r\n LOGIN: 'login',\r\n EXTERNAL_LINK: 'external-link',\r\n INTERNAL_OVER_EXTERNAL_LINK: 'internal-over-external-link',\r\n OMG: 'omg',\r\n GEO_FREEZE_WINDOW: 'geo-freeze-window',\r\n TEMP_ACCOUNT: 'temp-account',\r\n MEMBERSHIP: 'membership',\r\n MESSAGE: 'message',\r\n SECONDARY_MESSAGE: 'secondary-message',\r\n TOUCH_ID: 'touch-id',\r\n TOUCH_ID_POPUP: 'touch-id-popup',\r\n LOCK: 'lock',\r\n SPAIN_SUMMARY_MESSAGE: 'spain-summary-message',\r\n GAMES_QUESTIONNAIRE: 'games-questionnaire'\r\n // MEMBERSHIP: 'membership'\r\n};\r\n\r\n\r\nconst PRIORITY_LEVEL_ZINDEX_MAPPER = {\r\n [PRIORITY_LEVEL.BASE]: 8000,\r\n [PRIORITY_LEVEL.POP_UP]: 8010,\r\n [PRIORITY_LEVEL.OPEN_SESSION]: 8020,\r\n [PRIORITY_LEVEL.FP]: 8030,\r\n [PRIORITY_LEVEL.OMG_BEHIND]: 8035,\r\n [PRIORITY_LEVEL.GAME_LOADING_INDICATOR]: 8037,\r\n [PRIORITY_LEVEL.NEXT_GAME]: 8038,\r\n [PRIORITY_LEVEL.GAME_FRAME]: 8040,\r\n [PRIORITY_LEVEL.GAME_FRAME_FP]: 8041,\r\n [PRIORITY_LEVEL.GAME_FRAME_LOADER]: 8042,\r\n [PRIORITY_LEVEL.MINI_CASHIER]: 8045,\r\n [PRIORITY_LEVEL.LOGIN]: 8050,\r\n [PRIORITY_LEVEL.SPAIN_SUMMARY_MESSAGE]: 8055,\r\n [PRIORITY_LEVEL.EXTERNAL_LINK]: 8060,\r\n [PRIORITY_LEVEL.INTERNAL_OVER_EXTERNAL_LINK]: 8061,\r\n [PRIORITY_LEVEL.OMG]: 8070,\r\n [PRIORITY_LEVEL.CASHIER]: 8072,\r\n [PRIORITY_LEVEL.GAMES_QUESTIONNAIRE]: 8073,\r\n [PRIORITY_LEVEL.GEO_FREEZE_WINDOW]: 8074,\r\n [PRIORITY_LEVEL.TEMP_ACCOUNT]: 8075,\r\n [PRIORITY_LEVEL.MEMBERSHIP]: 8078,\r\n [PRIORITY_LEVEL.MESSAGE]: 8080,\r\n [PRIORITY_LEVEL.SECONDARY_MESSAGE]: 8082,\r\n [PRIORITY_LEVEL.TOUCH_ID]: 8090,\r\n [PRIORITY_LEVEL.TOUCH_ID_POPUP]: 9002,\r\n}\r\n\r\nconst WRAPPER_DEFAULT_INDEX = 7999;\r\n\r\nexport { PRIORITY_LEVEL, PRIORITY_LEVEL_ZINDEX_MAPPER, WRAPPER_DEFAULT_INDEX };\r\n","export const 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\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 DialogBoldTextBox = styled(DialogTextBox)`\r\n font-weight: bold;\r\n ${dialogTextMixin}\r\n`;\r\n\r\nexport const DialogHighlightedTextBox = styled.div`\r\n margin-top: 2rem;\r\n ${dialogHighlightedTextMixin}\r\n`;\r\n\r\nexport const ListDialogTextBox = styled.div`\r\n color: ${({theme}) => theme.colors.textContrast};\r\n margin-top: 4rem;\r\n font-size: 1.5rem;\r\n text-align: left;\r\n`;\r\n\r\nexport const DialogDimmedTextBox = styled.div` \r\n margin-top: 2rem;\r\n font-size: 1.4rem;\r\n text-align: center;\r\n color: ${({theme}) => theme.colors.textMiddleDark};\r\n `;","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\nimport {OverflowProperty} from 'csstype';\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 readonly isHidden: boolean;\r\n display(): void;\r\n hide(): void;\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 overflow?: OverflowProperty;\r\n createAsHidden?: boolean;\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 { grayColors } from \"../../../architecture/gray-colors\";\r\n\r\nexport const baseColors = {\r\n base01: \"#c81503\", //red si cis\r\n base01Contrast: \"#ffffff\",\r\n base01Dark: \"#ca2e1e\",\r\n base01Light: \"#e94838\",\r\n base01LightMedium: \"#e63422\",\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 base05: \"#c1c1c18f\",\r\n\r\n base06: \"#828282\",\r\n\r\n base07: \"#e1e2e3\",\r\n\r\n base08: \"#707372\",\r\n\r\n base08Shadow: \"#000000bf\",\r\n\r\n base09: \"#b2b2b2\",\r\n\r\n base10: \"#272727\",\r\n\r\n ...grayColors\r\n};","import {ClientThemeName} from \"@sparkware/uc-sdk-core\";\r\n\r\nexport const ThemeName = {\r\n Casino888: ClientThemeName.Casino888,\r\n Casino888Cip: ClientThemeName.Casino888Cip,\r\n Casino888Cis: ClientThemeName.Casino888Cis,\r\n Casino777: ClientThemeName.Casino777,\r\n Harrahs: ClientThemeName.CasinoHarrahs,\r\n Wsop: ClientThemeName.CasinoWsop,\r\n WsopCip: ClientThemeName.CasinoWsopCip,\r\n BallysDover: ClientThemeName.CasinoBallysDover,\r\n Delawarepark: ClientThemeName.CasinoDelawarepark,\r\n Harrington: ClientThemeName.CasinoHarrington,\r\n SI: ClientThemeName.CasinoSI, //sports illustrator\r\n SICis: ClientThemeName.CasinoSICis,\r\n MrGreen: ClientThemeName.CasinoMrGreen,\r\n}\r\n"],"sourceRoot":""}