{"version":3,"sources":["app-react/themes/architecture/theme-names.ts","common/const/game_groups_consts.ts","app-react/themes/architecture/css-helpers/flex.ts","app-react/themes/architecture/gray-colors.ts","app-react/services/arenas/arena-consts.ts","app-react/services/game-runner/interfaces/game-step/game-run-step.interface.ts","app-react/themes/assets.ts","app-react/components/modal-dialog/boxes/actions/buttons-wrapper.box.ts","app-react/components/modal-dialog/boxes/actions/button-wrapper.box.ts","app-react/components/modal-dialog/boxes/actions/link-action.box.ts","app-react/components/modal-dialog/boxes/actions/link-wrapper.box.ts","app-react/components/modal-dialog/modal-dialog-actions.component.tsx","app-react/basic-components/space-between-items-consts.ts","sdk/src/exceptions/cgp_error_codes.ts","utils/disposable-object.ts","common/const/free_play_consts.ts","common/const/jackpot_map_ids.ts","app-react/themes/definitions/mrgreen/base-colors.ts","app-react/components/base-components/orbit-suspense/orbit-suspense.tsx","sdk/src/services/toaster/toaster_service_consts.ts","sdk/src/utils/date_formatter.ts","common/const/responsible-gaming.ts","app-react/components/base-components/routed-component/routed.component.ts","app-react/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/basic-ui-components/x-close-button/x-close-button.box.ts","app-react/components/raw-components/aspect-ratio-container/aspect-ratio-container.component.tsx","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/css-constants.ts","common/const/wallet_balance_type.ts","app-react/basic-ui-components/form/select.component.tsx","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.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/themes/architecture/styled-by-theme.tsx","app-react/services/external-links/handlers/my-account/my-account.external-link-handler.interface.ts","common/utils/image-preload.ts","app-react/themes/architecture/sections/theme-layout.interface.ts","common/const/cashier-session-types.ts","app-react/services/gaming-history/gaming-history-type.ts","common/interfaces/orbit-component-to-sdk-adapter/components-props/time-spent-reminder-options.ts","app-react/components/geo/boxes/geo-modal-wrapper.box.ts","common/utils/cashier-util.ts","app-react/components/balance-box/balance-value.component.tsx","sdk/src/events/events.ts","sdk/src/utils/event.ts","app-react/components/daily-deal/boxes/daily-deal-container.box.ts","app-react/components/daily-deal/boxes/daily-deal-chest-glow.box.ts","app-react/components/daily-deal/boxes/daily-deal-chest.box.ts","app-react/components/daily-deal/boxes/daily-deal-text-strip.box.ts","app-react/components/daily-deal/boxes/daily-deal-chest-halo.box.ts","app-react/components/daily-deal/daily-deal.component.tsx","app-react/components/link-to-offer/boxes/link-to-offer-base/link-to-offer-box-base.ts","app-react/components/link-to-offer/boxes/link-to-offer-icon/link-to-offer-icon.default.box.ts","app-react/components/link-to-offer/boxes/link-to-offer-icon/link-to-offer-icon.box.ts","app-react/components/link-to-offer/boxes/link-to-offer-dialog-close/link-to-offer-dialog-close.box.ts","app-react/components/link-to-offer/boxes/link-to-offer-dialog-close/link-to-offer-dialog-close.default.box.ts","app-react/components/link-to-offer/link-to-offer.component.tsx","app-react/components/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","common/cy-classes.ts","app-react/components/inside-orbit-menu-container/inside-orbit-menu-container.consts.ts","app-react/themes/definitions/casino777/base-colors.ts","app-react/services/games-filter/games-filter.service.interface.ts","common/const/ab-testing-names.ts","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","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.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/cell/boxes/cell-title/cell-title.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/cell/boxes/cell-title/cell-title.default.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/cell/game-feature-cell.component.tsx","app-react/components/lobby-game-info-preview/common/game-info-container/features/table/boxes/table-container/table-container.default.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/table/boxes/table-container/table-container.casino777.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/table/boxes/table-container/table-container.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/table/game-features-table.component.tsx","app-react/components/lobby-game-info-preview/common/game-info-container/about/boxes/game-description-text/game-description-text.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/about/boxes/game-description-text/game-description-text.default.box.ts","app-react/basic-components/general-title/general-title.default.box.ts","app-react/components/lobby-game-info-preview/common/boxes/section-title/section-title.default.box.ts","app-react/basic-components/general-title/general-title.casino777.box.ts","app-react/components/lobby-game-info-preview/common/boxes/section-title/section-title.casino777.box.ts","app-react/components/lobby-game-info-preview/common/boxes/section-title/section-title.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/about/game-about.component.tsx","app-react/components/lobby-game-info-preview/common/game-info-container/jackpot/boxes/game-jackpot-preview/game-jackpot-preview.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/jackpot/boxes/game-jackpot-preview/game-jackpot-preview.default.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/jackpot/boxes/jackpot-amount-preview/jackpot-amount-preview.default.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/jackpot/boxes/jackpot-amount-preview/jackpot-amount-preview.casino777.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/jackpot/boxes/jackpot-amount-preview/jackpot-amount-preview.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/jackpot/game-jackpot-preview.component.tsx","app-react/components/lobby-game-info-preview/common/game-info-container/game-preview-info-container.default.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/game-preview-info-container.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/game-preview-info-container.component.tsx","app-react/components/lobby-game-info-preview/intermediate-page/game-icon-and-play-buttons/boxes/container/container.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/game-icon-and-play-buttons/boxes/container/container.default.box.ts","app-react/basic-components/game-icon/game-icon.box.ts","app-react/basic-components/game-icon/game-icon.default.box.ts","app-react/basic-components/play-buttons/play-buttons.box.ts","app-react/basic-components/play-buttons/play-buttons.default.box.ts","app-react/basic-components/game-icon-wrapper/game-icon-wrapper.box.ts","app-react/basic-components/game-icon-wrapper/game-icon-wrapper.default.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/game-icon-and-play-buttons/game-icon-and-play-buttons.component.tsx","app-react/components/lobby-game-info-preview/intermediate-page/boxes/intermediate-page/intermediate-page.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/boxes/intermediate-page/intermediate-page.default.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/boxes/stripe-image-and-buttons/stripe-image-and-buttons.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/boxes/stripe-image-and-buttons/stripe-image-and-buttons.default.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/boxes/gradient/gradient.default.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/boxes/gradient/gradient.casino777.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/boxes/gradient/gradient.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/only-real-money-warning/boxes/warning-image/warning-image.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/only-real-money-warning/boxes/warning-image/warning-image.default.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/only-real-money-warning/boxes/warning-text/warning-text.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/only-real-money-warning/boxes/warning-text/warning-text.default.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/only-real-money-warning/boxes/warning-message/warning-message.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/only-real-money-warning/boxes/warning-message/warning-message.default.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/only-real-money-warning/only-real-money-warning.component.tsx","app-react/components/lobby-game-info-preview/intermediate-page/open-game-intermediate-page.component.tsx","app-react/services/restrictions/no-game-restriction.ts","app-react/services/games/game-info.tsx","app-react/services/configurations/inject-admin-arenas.ts","app-react/services/games/games.service.ts","app-react/services/configurations/configurations.service.ts","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.box.ts","app-react/components/single-game/regular-template/boxes/min-max-bet-amount/min-max-bet-amount.default.box.ts","app-react/components/single-game/regular-template/boxes/min-max-bet-amount/min-max-bet-amount.casino777.box.ts","app-react/components/single-game/regular-template/boxes/min-max-bet-amount/min-max-bet-amount.si.box.ts","app-react/components/single-game/regular-template/boxes/min-max-bet-amount/min-max-bet-amount.box.ts","app-react/components/single-game/regular-template/parts/info-page-button/info-page-button.component.tsx","app-react/components/single-game/regular-template/boxes/game-buttons/game-buttons.box.ts","app-react/components/single-game/regular-template/boxes/game-buttons/game-buttons.default.box.ts","app-react/components/single-game/regular-template/parts/play-demo-button/play-demo-button.component.tsx","app-react/components/single-game/regular-template/boxes/game-details-container/game-details-container.default.box.ts","app-react/components/single-game/regular-template/boxes/game-details-container/game-details-container.casino777.box.ts","app-react/components/single-game/regular-template/boxes/game-details-container/game-details-container.box.ts","app-react/components/single-game/regular-template/boxes/jackpot-amount/jackpot-amount.default.box.ts","app-react/components/single-game/regular-template/boxes/jackpot-amount/jackpot-amount.casino777.box.ts","app-react/components/single-game/regular-template/boxes/jackpot-amount/jackpot-amount.si.box.ts","app-react/components/single-game/regular-template/boxes/jackpot-amount/jackpot-amount.box.ts","app-react/components/single-game/regular-template/boxes/game-info-container/game-info-container.box.ts","app-react/components/single-game/regular-template/boxes/game-info-container/game-info-container.default.box.ts","app-react/components/single-game/regular-template/boxes/amount-container/amount-container.box.ts","app-react/components/single-game/regular-template/boxes/two-rows-game-title-container/two-rows-game-title-container.box.ts","app-react/components/single-game/regular-template/parts/game-details-container/game-details-container.component.tsx","app-react/components/single-game/regular-template/boxes/game/game.default.box.ts","app-react/components/single-game/regular-template/boxes/game/game.casino777.box.ts","app-react/components/single-game/regular-template/boxes/game/game.cis.box.ts","app-react/components/single-game/regular-template/boxes/game/game.box.ts","app-react/components/single-game/regular-template/boxes/play-real-button/play-real-button.default.box.ts","app-react/components/single-game/regular-template/boxes/play-real-button/play-real-button.casino777.box.ts","app-react/components/single-game/regular-template/boxes/play-real-button/play-real-button.box.tsx","app-react/components/single-game/regular-template/boxes/game-image-container/game-image-container.default.box.ts","app-react/components/single-game/regular-template/boxes/game-image-container/game-image-container.casino777.box.ts","app-react/components/single-game/video-template/single-game-video-template.component.tsx","app-react/components/single-game/regular-template/boxes/game-image-container/game-image-container.box.ts","app-react/components/single-game/regular-template/boxes/game-number-badge/game-number-badge.box.ts","app-react/components/single-game/regular-template/single-game-regular-template.component.tsx","utils/css-class-name-builder.ts","app-react/components/single-game/jackpot-template/boxes/game/game.default.box.ts","app-react/components/single-game/jackpot-template/boxes/game/game.box.ts","app-react/components/single-game/jackpot-template/boxes/game-image-container/game-image-container.default.box.ts","app-react/components/single-game/jackpot-template/boxes/game-image-container/game-image-container.box.ts","app-react/components/single-game/jackpot-template/boxes/game-details-container/game-details-container.box.ts","app-react/components/single-game/jackpot-template/boxes/game-details-container/game-details-container.default.box.ts","app-react/components/single-game/jackpot-template/boxes/game-title/game-title.default.box.ts","app-react/components/single-game/jackpot-template/boxes/game-title/game-title.casino777.box.ts","app-react/components/single-game/jackpot-template/boxes/game-title/game-title.box.ts","app-react/components/single-game/jackpot-template/boxes/jackpot-amount/jackpot-amount.default.box.ts","app-react/components/single-game/jackpot-template/boxes/jackpot-amount/jackpot-amount.casino777.box.ts","app-react/components/single-game/jackpot-template/boxes/jackpot-amount/jackpot-amount.box.ts","app-react/components/single-game/jackpot-template/parts/game-details-container/game-details-container.component.tsx","app-react/components/single-game/jackpot-template/single-game-jackpot-template.component.tsx","app-react/components/single-game/live-template/boxes/live-game-container/live-game-container.box.ts","app-react/components/single-game/live-template/boxes/live-game-container/live-game-container.default.box.ts","app-react/components/single-game/live-template/single-game-live-template.component.tsx","app-react/components/live-streaming-tile/video-common-components/video-tile/boxes/video-tile.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile/boxes/video-tile-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-overlay-item/video-overlay-item.box.ts","app-react/components/live-streaming-tile/video-common-components/video-overlay-item/video-overlay-item.default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-sound-button/boxes/video-sound-button.box.ts","app-react/components/live-streaming-tile/video-common-components/video-sound-button/boxes/video-sound-button-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-sound-button/video-sound-button.component.tsx","app-react/components/live-streaming-tile/video-common-components/video-tile-overlay/video-tile-overlay.component.tsx","app-react/components/live-streaming-tile/video-common-components/video-tile-overlay/boxes/video-tile-overlay.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-overlay/boxes/video-tile-overlay-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-static-image-overlay/video-tile-static-image-overlay-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.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.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-strategy-filters-editor.ts","app-react/services/games-filter/evaluators/and-game-filters-evaluator.ts","app-react/components/filters/filters-games-list-mobile/boxes/menu-button/filters-mobile-button.default.box.ts","app-react/components/filters/filters-games-list-mobile/boxes/menu-button/filters-mobile-button.casino777.box.ts","app-react/components/filters/filters-games-list-mobile/boxes/menu-button/filters-mobile-button.box.ts","app-react/components/filters/filters-games-list-mobile/boxes/menu-button/filters-mobile-icon.default.box.ts","app-react/components/filters/filters-games-list-mobile/boxes/menu-button/filters-mobile-icon.casino777.box.ts","app-react/components/filters/filters-games-list-mobile/boxes/menu-button/filters-mobile-icon.box.ts","app-react/components/header/top-header-left/filters/filters-mobile-button.component.tsx","app-react/components/filters/advanced-filtering/boxes/indicator-container.box.ts","app-react/components/filters/advanced-filtering/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/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.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.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-filter-button-label/live-casino-filter-button-label.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-filter-button-label/live-casino-filter-button-label.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-filter-button-label/live-casino-filter-button-label.si.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-filter-button-label/live-casino-filter-button-label.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-arena-navbar-button/live-casino-arena-navbar-button.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-arena-navbar-button/live-casino-arena-navbar-button.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-arena-navbar-button/live-casino-arena-navbar-button.si.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-arena-navbar-button/live-casino-arena-navbar-button.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/live-casino-arena-navbar-button.component.tsx","app-react/components/arena-host/new-live-casino-arena/new-live-casino-arena.component.tsx","app-react/services/arenas/models/arenas/new-live-casino/new-live-casino-arena.model.tsx","app-react/services/arenas/models/arenas/live-casino/live-casino-arena.model.tsx","app-react/services/arenas/arenas.service.tsx","app-react/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.tsx","app-react/services/sitemap/breadcrumbs/non-navigatable-breadcrumb.tsx","app-react/services/sitemap/breadcrumbs/navigatable-breadcrumb.tsx","app-react/services/sitemap/sitemap-node.ts","app-react/services/sitemap/sitemap.service.ts","app-react/services/marketing/marketing.service.ts","app-react/services/language/language-switcher/language-switcher-item.ts","app-react/services/language/language-switcher/language-switcher-section.ts","app-react/services/language/language-switcher/selected-language-switcher-item.ts","app-react/services/language/language.service.ts","app-react/services/configurations/helpers/side-menu-typeguards.helpers.ts","app-react/services/side-menu/side-menu.service.ts","app-react/services/game-search/game-search-result.ts","app-react/services/external-links/external-links.service.interface.ts","app-react/components/game-search/search-result/search-box-title/boxes/search-title-box/search-title.box.ts","app-react/components/game-search/search-result/search-box-title/boxes/search-title-box/search-title.default.box.ts","app-react/components/game-search/search-result/search-box-title/search-box-title.component.tsx","app-react/components/game-search/search-result/found-games/boxes/search-games-list/search-games-list.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/search-link.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/search-link.default.box.ts","app-react/components/game-search/search-result/found-games/boxes/search-no-game-found/search-no-games-found.default.box.ts","app-react/components/game-search/search-result/found-games/boxes/search-no-game-found/search-no-games-found.casino777.box.ts","app-react/components/game-search/search-result/found-games/boxes/search-no-game-found/search-no-games-found.box.ts","app-react/components/game-search/search-result/search-game-item/boxes/search-game-item/search-game-item.box.ts","app-react/components/game-search/search-result/highlight-search-list-item/boxes/search-match.box.ts","app-react/components/game-search/search-result/highlight-search-list-item/boxes/search-match.default.box.ts","app-react/components/game-search/search-result/highlight-search-list-item/highlight-search-list-item.component.tsx","app-react/components/game-search/search-result/search-game-item/boxes/search-text-wrapper/search-text-wrapper.box.ts","app-react/components/game-search/search-result/search-game-item/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/analytics/analytics-data-layer.service.interface.ts","app-react/services/external-links/strategies/external-links-legacy.strategy.ts","app-react/services/external-links/strategies/external-links-modern.strategy.ts","app-react/services/external-links/external-links.service.ts","app-react/services/cms/cms-api/cms-api.service.ts","app-react/components/cms-banner/banner-content/banner-content.component.tsx","app-react/services/cms/cms-banners/banner-definition/banner-definition.tsx","app-react/services/cms/cms-banners/cms-banners.service.ts","app-react/services/cms/cms-pages/cms-pages.service.ts","app-react/services/cms/cms-segmentation/cms-segmentation.service.ts","app-react/services/deep-link/deep-link-actions/deep-link-action-base.ts","app-react/services/deep-link/deep-link-actions/cashier/cashier-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/login/login-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/play-game/play-game-deep-link-action-base.ts","app-react/services/deep-link/deep-link-actions/play-game/play-game-real/play-game-real-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/play-game/play-game-demo/play-game-demo-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/register/register-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/my-account/my-account-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/redirect/redirect-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/terminate/terminate-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/upload-document/upload-document-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/freeplay/freeplay-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/open-list/open-list-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/control-center/control-center-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/free-to-play/free-to-play-deeplink-action.ts","app-react/services/deep-link/deep-link-action-factory/deep-link-actions-factory.service.ts","app-react/services/sdk-component-factory/sdk-component-factory.service.ts","app-react/components/sticky-handler/sticky-handler.ts","app-react/services/sticky-handler-factory/sticky-handler-factory.service.ts","app-react/services/game-preview-features-selector/preview-features/boolean-game-preview-feature.ts","app-react/services/game-preview-features-selector/preview-features/money-game-preview-feature.ts","app-react/services/game-preview-features-selector/preview-features/numeric-game-preview-feature.ts","app-react/services/game-preview-features-selector/preview-features/all-features.ts","app-react/services/game-preview-features-selector/game-preview-features-selector.service.ts","app-react/services/game-route-handler/game-route-handler.service.ts","app-react/app-bootstrap/launcher-overrides-reader/launcher-overrides-reader.ts","app-react/services/launcher/launcher.service.ts","app-react/services/spinner/spinner.service.ts","app-react/services/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.box.ts","app-react/components/tooltip/tooltips/icon-title-text/boxes/icon.box.ts","app-react/components/tooltip/tooltips/icon-title-text/boxes/separator/separator.default.box.ts","app-react/components/tooltip/tooltips/icon-title-text/boxes/separator/separator.777.box.ts","app-react/components/tooltip/tooltips/icon-title-text/boxes/separator/separator.box.ts","app-react/components/tooltip/tooltips/icon-title-text/icon-title-text.tooltip.tsx","app-react/components/tooltip/tooltips/ios-add-to-home/boxes/icon-container.box.ts","app-react/components/tooltip/tooltips/ios-add-to-home/boxes/ios-add-to-home-share-icon.box.ts","app-react/components/tooltip/tooltips/ios-add-to-home/boxes/message-body-container.box.ts","app-react/components/tooltip/tooltips/ios-add-to-home/ios-add-to-home.component.tsx","app-react/services/progressive-web-app/progressive-web-app.service.tsx","app-react/services/manifest/pwa-manifest.service.ts","app-react/services/manifest/pwa-manifest-constants.ts","app-react/services/mini-orbit/adapters/poker/poker-communication-adapter.ts","app-react/services/mini-orbit/adapters/sport/sport-communication-adapter.ts","app-react/services/mini-orbit/adapter-factory/mini-orbit-communication-adapter-factory.service.ts","utils/memoize.ts","app-react/services/live-table-feeds-service/live-table-feeds.service.ts","app-react/services/drawer/drawer-content-decorator.ts","app-react/services/drawer/drawer-handler.ts","app-react/services/drawer/drawer.service.ts","app-react/services/daily-deal/daily-deal.service.ts","app-react/services/jackpots-with-state/jackpot-handler/jackpot-handler.ts","app-react/services/jackpots-with-state/jackpots-with-state.service.ts","app-react/services/jackpots/jackpots.service.ts","utils/ab-testing-feature-check.ts","app-react/services/ab-testing/ab-testing-feature-data-provider.service.ts","utils/gradual-increase-helper.ts","app-react/services/gradual-increase-helper-factory/gradual-increase-helper-factory.service.ts","app-react/services/safezone/safezone.service.ts","app-react/components/safezone/boxes/full-safezone-content.box.tsx","app-react/components/safezone/boxes/full-safezone-content-default.box.tsx","app-react/components/on-error/boxes/on-error.box.tsx","app-react/components/on-error/boxes/on-error-default.box.tsx","app-react/components/on-error/boxes/on-error-icon.box.tsx","app-react/components/on-error/boxes/on-error-title.box.tsx","app-react/components/on-error/boxes/on-error-message.box.tsx","app-react/components/on-error/boxes/on-error-buttons.box.ts","app-react/components/on-error/on-error.component.tsx","app-react/components/safezone/full-safezone.component.tsx","app-react/services/homepage/homepage.service.tsx","app-react/services/safezone/safezone-handler-base.ts","app-react/services/safezone/full-safezone-handler.tsx","app-react/services/safezone/mini-safezone-handler.ts","app-react/services/safezone/safezone-object-factory.service.ts","app-react/services/wallet-proxy/wallet-proxy.service.ts","app-react/components/game-popup/boxes/game-view/games-view.default.box.ts","app-react/components/game-popup/boxes/game-view/games-view.box.ts","app-react/components/game-popup/boxes/game-icon-container/game-icon-container.default.box.ts","app-react/components/game-popup/boxes/game-icon-container/game-icon-container.box.ts","app-react/components/game-popup/boxes/game-view-section/game-view-section.box.ts","app-react/components/game-popup/boxes/game-popup/game-popup.default.box.ts","app-react/components/game-popup/boxes/game-popup/game-popup.box.ts","app-react/components/game-popup/boxes/sub-title-container/sub-title-container.box.ts","app-react/components/game-popup/boxes/game-view-divider/games-view-divider.default.box.ts","app-react/components/game-popup/boxes/menu-container/menu-container.box.ts","app-react/components/game-popup/boxes/description-container/description-container.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/side-menu-item.box.ts","app-react/components/side-menu-rework/side-menu-link/side-menu-item.component.tsx","app-react/components/side-menu-rework/side-menu-link/boxes/link/generic-side-menu-link.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/link/generic-side-menu-label.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/link/generic-side-menu-icon.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/link/generic-pre-icon-menu-link.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/link/generic-side-menu-image.box.ts","app-react/components/side-menu-rework/side-menu-link/internal-nav-side-menu-link.component.tsx","app-react/components/loyalty-bar/loyalty-bar-wrapper.component.tsx","app-react/components/side-menu-rework/side-menu-link/loyaltybar-side-menu-link.component.tsx","app-react/components/side-menu-rework/side-menu-link/boxes/link/deposit-side-menu-link.default.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/link/deposit-side-menu-link.casino777.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/link/deposit-side-menu-link.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/link/signup-side-menu-link.box.ts","app-react/components/side-menu-rework/side-menu-link/icons/arrow-side-menu-link.icon.ts","app-react/components/side-menu-rework/side-menu-link/signup-side-menu-link.component.tsx","app-react/components/side-menu-rework/side-menu-link/deposit-side-menu-link.component.tsx","app-react/components/side-menu/boxes/side-menu-component.box.ts","app-react/components/side-menu-rework/side-menu-link/boxes/side-menu-list.box.ts","app-react/components/side-menu-rework/side-menu-links-group/side-menu-links-group.component.tsx","app-react/components/game-popup/boxes/game-popup-checkbox-container/game-popup-checkbox-container.box.ts","app-react/components/game-popup/boxes/game-popup-checkbox/game-popup-checkbox.box.ts","app-react/components/game-popup/game-popup.component.tsx","app-react/services/game-popup/game-popup.service.tsx","app-react/services/analytics/analytics-data-layer.service.ts","app-react/components/session-cooldown-popup/boxes/session-cooldown.popup.box.ts","app-react/components/session-cooldown-popup/boxes/session-cooldown-popup.default.box.ts","app-react/components/session-cooldown-popup/boxes/session-cooldown-popup-text.box.ts","app-react/components/session-cooldown-popup/boxes/session-cooldown-popup-text.default.box.ts","app-react/components/session-cooldown-popup/boxes/session-cooldown-popup-timer.box.ts","app-react/components/session-cooldown-popup/boxes/session-cooldown-popup-timer.default.box.ts","app-react/components/session-cooldown-popup/boxes/session-cooldown-popup-timer-remaining.box.ts","app-react/components/session-cooldown-popup/boxes/session-cooldown-popup-timer-remaining.default.box.ts","app-react/components/session-cooldown-popup/session-cooldown-popup.component.tsx","app-react/services/session-cooldown/session-cooldown.service.tsx","app-react/components/time-spent-reminder/with-dropdown/time-spent-reminder-with-dropdown.component.tsx","app-react/services/media-query/media-query-listener.ts","app-react/services/media-query/media-query.service.ts","app-react/orbit-api.ts","app-react/orbit-api.interface.ts","app-react/services/tools/tools.service.ts","app-react/components/vertical-games-list/boxes/vertical-games-list.box.ts","app-react/components/vertical-games-list/boxes/header.box.ts","app-react/components/vertical-games-list/boxes/games-list.box.ts","app-react/components/vertical-games-list/boxes/game.box.ts","app-react/components/vertical-games-list/boxes/game-details.box.ts","app-react/components/vertical-games-list/boxes/game-divider.box.ts","app-react/components/balance-box/balance-box-buttons/boxes/button-wrapper.box.ts","app-react/components/vertical-games-list/boxes/game-image.box.ts","app-react/components/vertical-games-list/css-classes.ts","app-react/components/vertical-games-list/boxes/game-details-name.box.ts","app-react/components/vertical-games-list/boxes/game-details-jp.box.ts","app-react/components/vertical-games-list/vertical-games-list-game.component.tsx","app-react/components/vertical-games-list/boxes/header-title.box.ts","app-react/components/vertical-games-list/boxes/header-close.box.ts","app-react/components/vertical-games-list/boxes/dj-widget.box.ts","app-react/components/vertical-games-list/vertical-games-list.component.tsx","app-react/services/vertical-games-list/vertical-games-list.service.tsx","app-react/services/user-game-orientation/user-game-orientation.service.ts","app-react/services/api/api-controller-base.ts","app-react/services/api/api.service.ts","app-react/components/time-spent-reminder/with-dropdown/boxes/tsr-with-dropdown.box.ts","app-react/components/time-spent-reminder/with-dropdown/boxes/tsr-with-dropdown-option-selector.box.ts","app-react/components/time-spent-reminder/with-dropdown/boxes/tsr-with-dropdown-main-text.default.box.ts","app-react/components/time-spent-reminder/with-dropdown/boxes/tsr-with-dropdown-main-text.casino777.box.ts","app-react/components/time-spent-reminder/with-dropdown/boxes/tsr-with-dropdown-main-text.box.ts","app-react/components/time-spent-reminder/with-dropdown/boxes/tsr-with-dropdown-selector-container.box.ts","app-react/components/geo/geo-permission-popup/geo-permission-popup.component.tsx","app-react/components/time-spent-reminder/with-balance/boxes/tsr-with-balance.box.ts","app-react/components/time-spent-reminder/with-balance/time-spent-reminder-with-balance.component.tsx","app-react/components/idle-recommendation/boxes/idle-recommendation-toaster.box.ts","app-react/components/idle-recommendation/boxes/idle-recommendation-header.box.ts","app-react/components/idle-recommendation/boxes/idle-recommendation-header-title-wrapper.box.ts","app-react/components/idle-recommendation/boxes/idle-recommendation-header-title.box.ts","app-react/components/idle-recommendation/boxes/idle-recommendation-game-details.box.ts","app-react/components/idle-recommendation/boxes/idle-recommendation-toaster-background.box.ts","app-react/components/idle-recommendation/idle-recommendation.component.tsx","app-react/components/about-component/boxes/about.box.ts","app-react/components/about-component/boxes/about-info-section.box.ts","app-react/components/about-component/boxes/about-footer-section.box.ts","app-react/components/about-component/about.component.tsx","app-react/components/geo/geo-install-plugin/boxes/geo-dialog-list.box.ts","app-react/components/geo/geo-install-plugin/boxes/geo-dialog-list-item.box.ts","app-react/components/geo/geo-install-plugin/boxes/geo-dialog-colored-text.box.ts","app-react/components/geo/geo-install-plugin/geo-install-plugin-popup-component.tsx","app-react/basic-ui-components/layout/spacer.box.ts","app-react/components/geo/geo-freeze/geo-freeze-popup.component.tsx","app-react/services/orbit-component-to-sdk-adapter/orbit-component-to-sdk-adapter.service.tsx","app-react/services/omg-proxy/omg-proxy.service.ts","app-react/services/casinofied/message-broker/message-broker.consts.ts","app-react/services/casinofied/message-broker/message-broker.service.ts","app-react/services/casinofied/casinofied-helper-functions.ts","app-react/services/casinofied/app-launcher/apps/adapters/casinofied-zoid-application-adapter.ts","app-react/services/casinofied/app-launcher/apps/adapters/casinofied-regular-application-adapter.ts","app-react/services/casinofied/app-launcher/apps/casinofied-application-base.ts","app-react/services/casinofied/app-launcher/apps/casinofied-application.interface.ts","app-react/services/casinofied/app-launcher/apps/inside-drawer.application.tsx","app-react/services/casinofied/app-launcher/apps/chat/chat.application.ts","app-react/services/casinofied/app-launcher/casinofied-app-sdk-loader.ts","app-react/services/casinofied/app-launcher/components/casinofied-bubble.component.tsx","app-react/services/casinofied/app-launcher/components/casinofied-component-base.ts","app-react/services/casinofied/app-launcher/apps/adapters/unified-cashier-zoid-adapter.ts","app-react/services/casinofied/app-launcher/apps/deposit-widget/deposit-widget.application.ts","app-react/components/payments-redirect-focus/boxes/payment-redirect-focus-title/payment-redirect-focus-title.box.ts","app-react/components/payments-redirect-focus/boxes/payment-redirect-focus-title/payment-redirect-focus-title.default.box.ts","app-react/components/payments-redirect-focus/boxes/payment-redirect-focus-container/payment-redirect-focus.box.ts","app-react/components/payments-redirect-focus/payments-redirect-focus.component.tsx","app-react/services/casinofied/app-launcher/apps/payments-redirect/payments-redirect.application.tsx","app-react/services/casinofied/app-launcher/apps/full-cashier/full-cashier.application.ts","app-react/services/casinofied/app-launcher/apps/cashout-widget/cashout-widget.application.ts","app-react/services/casinofied/app-launcher/apps/transaction-history/transaction-history.application.ts","app-react/services/casinofied/app-launcher/apps/customer-relations/customer-relations.application.ts","app-react/services/casinofied/app-launcher/apps/free-to-play-bonus-games/free-to-play-bonus-games.application.ts","app-react/services/casinofied/app-launcher/apps/help-centre/help-centre.application.ts","app-react/services/casinofied/app-launcher/apps/control-center/init-params-helper.ts","app-react/services/casinofied/app-launcher/apps/control-center/control-center-full.application.ts","app-react/services/external-links/external-links-z-indexes.ts","app-react/services/casinofied/app-launcher/apps/control-center/control-center-mini.application.ts","app-react/services/casinofied/app-launcher/apps/control-center/control-center-analytics-helper.ts","app-react/services/casinofied/app-launcher/casinofied-app-factory.ts","app-react/services/casinofied/app-launcher/casinofied-app-launcher.service.ts","app-react/services/casinofied/action-handler/action-handler-base.ts","app-react/services/casinofied/action-handler/handlers/open-banking.action-handler.ts","app-react/services/casinofied/action-handler/handlers/upload-documents.action-handler.ts","app-react/services/casinofied/action-handler/handlers/open-deposit.action-handler.ts","app-react/services/casinofied/action-handler/handlers/open-withdraw.action-handler.ts","app-react/services/casinofied/action-handler/handlers/open-link.action-handler.ts","app-react/services/casinofied/action-handler/handlers/open-chat.action-handler.ts","app-react/services/casinofied/action-handler/handlers/open-link-with-form-post.action-handler.ts","app-react/services/casinofied/action-handler/handlers/open-control-center-full.action-handler.ts","app-react/services/casinofied/action-handler/handlers/open-client-page.action-handler.ts","app-react/services/casinofied/action-handler/handlers/logout.action-handler.ts","app-react/services/casinofied/action-handler/casinofied-action-handler.service.ts","app-react/services/floating-bubbles/floating-bubbles.service.ts","app-react/components/source-of-funds/boxes/source-of-funds.box.ts","app-react/components/source-of-funds/source-of-funds-popup.component.tsx","app-react/services/restriction-ruler/restriction-ruler.service.tsx","app-react/services/restriction-ruler/restriction-ruler.service.interface.ts","app-react/services/red-tiger/red-tiger.service.ts","app-react/services/casinofied/analytics-publisher/casinofied-analytics.service.ts","app-react/services/http/http-with-request-time-measurement.service.ts","app-react/services/ab-testing-ai-sort/ab-testing-ai-sort-games-lists.service.ts","app-react/services/cashier/cashier.service.ts","app-react/services/limits-toaster/limits-toaster.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.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-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/storage/local-storage-keys.ts","app-react/services/game-animated-icons-manager/game-animated-icons-manager.service.ts","app-react/services/webgl-context-manager/webgl-context-manager.service.ts","app-react/services/exit-popup/exit-popup-consts.ts","app-react/services/exit-popup/exit-popup.service.tsx","app-react/services/tooltip/tooltip.model.ts","app-react/services/tooltip/on-boarding-tooltip.model.ts","app-react/services/tooltip/tooltip.service.ts","app-react/services/gaming-history/models/paginator/history-paginator-base.model.ts","app-react/services/gaming-history/models/record/history-record-base.model.ts","app-react/services/gaming-history/models/record/user-gaming-history-record.model.ts","app-react/services/gaming-history/models/paginator/user-gaming-history-paginator.model.ts","app-react/services/gaming-history/models/record/session-gaming-history-record.model.ts","app-react/services/gaming-history/models/paginator/session-gaming-history-paginator.model.ts","app-react/services/gaming-history/gaming-history.service.ts","app-react/services/companies/companies.service.ts","app-react/services/because-you-played/because-you-played.service.ts","app-react/services/game-runner/running-game-browser-tab-controller.ts","common/interfaces/crm-sdk-lib.interface.ts","app-react/services/game-runner/loading-indicators/game-loading-indicator-base.model.ts","app-react/components/game-window/loading-indicators/hybrid-embedded/boxes/root/hybrid-embedded-game-loading-indicator-root.box.ts","app-react/components/game-window/loading-indicators/hybrid-embedded/boxes/header/hybrid-embedded-game-loading-indicator-header.box.ts","app-react/components/game-window/loading-indicators/hybrid-embedded/boxes/content/hybrid-embedded-game-loading-indicator-content.box.ts","app-react/components/game-window/loading-indicators/hybrid-embedded/boxes/spinner/hybrid-embedded-game-loading-indicator-spinner.box.ts","app-react/components/game-window/loading-indicators/hybrid-embedded/boxes/progress/hybrid-embedded-game-loading-indicator-progress.box.ts","app-react/themes/defaults/icons/loading-circle-large.icon.tsx","app-react/components/game-window/loading-indicators/hybrid-embedded/hybrid-embedded-game-loading-indicator.component.tsx","app-react/services/game-runner/loading-indicators/hybrid-embedded-game-loading-indicator.model.tsx","app-react/components/game-window/loading-indicators/web-app/web-app-game-loading-indicator.component.tsx","app-react/services/game-runner/loading-indicators/web-app-game-loading-indicator.model.tsx","app-react/services/game-runner/game-runner.service.ts","app-react/services/hybrid/hybrid.service.ts","app-react/services/video-live-stream/static-video-playing.service.ts","app-react/services/storage/session-storage.service.ts","app-react/services/storage/cookies.service.ts","app-react/services/free-play/free-play-game/free-play-game.model.ts","app-react/services/free-play/vouchers/voucher-base.model.ts","app-react/services/free-play/vouchers/free-play/free-play-voucher.model.ts","app-react/services/free-play/vouchers/jackpot-free-play/jackpot-free-play-voucher.model.ts","app-react/services/free-play/vouchers/free-spins/free-spins-voucher.model.ts","app-react/services/free-play/vouchers/jackpot-free-spins/jackpot-free-spins-voucher.model.ts","app-react/services/free-play/providers/vouchers-provider-base.ts","app-react/services/free-play/providers/888/888-free-play-vouchers.provider.ts","app-react/services/free-play/free-play-constants.ts","app-react/services/free-play/free-play-tooltip-notification.handler.tsx","app-react/services/free-play/providers/3rdparty/third-party-vouchers.provider.ts","app-react/services/free-play/free-play.service.ts","app-react/services/restrictions/restrictions.service.ts","app-react/services/free-to-play/free-to-play.service.ts","app-react/services/gnwp/gnwp.service.ts","app-react/services/scrip-loader/script-loader.service.ts","app-react/services/admin-banner/admin-banner.service.ts","app-react/services/session-timer/session-timer.service.ts","app-react/services/geo-location/geo-location.service.ts","app-react/services/crm/crm.service.ts","app-react/services/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/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/service-factory.ts","app-react/components/user-menu/logo-box/boxes/logo-container/logo-container.default.box.ts","app-react/components/user-menu/logo-box/boxes/logo-container/logo-container.casino888.box.ts","app-react/components/user-menu/logo-box/boxes/logo-container/logo-container.casino777.box.ts","app-react/components/user-menu/logo-box/boxes/logo-container/logo-container.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/default-logo-icon/logo-image.casino777.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/default-logo-icon/logo-image.harrington.delaware.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/default-logo-icon/logo-image.ballysdover.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/default-logo-icon/logo-image.wsop.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/default-logo-icon/logo-icon.harrahs.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/default-logo-icon/logo-image.default.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/default-logo-icon/logo-image.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/vip-logo-icon/vip-logo-icon.default.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/vip-logo-icon/vip-logo-image.casino777.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/vip-logo-icon/vip-logo-image.harrington.delaware.ballysdover.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/vip-logo-icon/vip-logo-image.si.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/vip-logo-icon/vip-logo-icon.harrahs.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/vip-logo-icon/vip-logo-image.wsop.box.ts","app-react/components/user-menu/logo-box/boxes/logo-image/vip-logo-icon/vip-logo-icon.box.ts","app-react/components/user-menu/logo-box/logo-box.component.tsx","app-react/components/user-info/user-info.component.tsx","app-react/components/profile-box/profile-picture/boxes/profile-picture.box.ts","app-react/components/profile-box/profile-picture/boxes/profile-user-name.box.ts","app-react/components/profile-box/profile-picture/profile-picture.component.tsx","app-react/components/profile-box-messages-indicator/boxes/indicator.box.ts","app-react/components/profile-box-messages-indicator/boxes/indicator-icon.box.ts","app-react/components/profile-box-messages-indicator/boxes/indicator-badge.box.ts","app-react/components/profile-box-messages-indicator/boxes/indicator-text.box.ts","app-react/components/profile-box-messages-indicator/boxes/indicator-icon-wrapper-default.box.ts","app-react/components/profile-box-messages-indicator/boxes/indicator-icon-wrapper.777.box.ts","app-react/components/profile-box-messages-indicator/boxes/indicator-icon-wrapper.box.ts","app-react/components/profile-box-messages-indicator/profile-box-messages-indicator.component.tsx","app-react/components/profile-box-messages-indicator/indicators/omg-indicator.component.tsx","app-react/components/profile-box-messages-indicator/indicators/freeplay-indicator.component.tsx","app-react/components/profile-box/boxes/profile-messages-divider.box.ts","app-react/components/profile-box/boxes/profile-buttons.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-button.default.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-button.casino777.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-button.casino888.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-button.ballysdover.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-button.harrington.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-button.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.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-goups-container.box.ts","app-react/components/side-menu/boxes/side-menu-container.box.ts","app-react/components/side-menu/boxes/mobile-menu-item-container.box.ts","app-react/components/side-menu/boxes/mobile-menu-item-link.box.ts","app-react/components/side-menu/mobile-help-menu-item/mobile-help-center-menu-item.component.tsx","app-react/components/side-menu/mobile-lang-switcher-menu-item/boxes/mobile-lang-switcher-menu-item-selected-lang.box.ts","app-react/components/side-menu/mobile-lang-switcher-menu-item/boxes/mobile-lang-switcher-container.box.ts","app-react/components/side-menu/boxes/mobile-language-menu-item.box.ts","app-react/components/side-menu/mobile-lang-switcher-menu-item/mobile-lang-switcher-menu-item.component.tsx","app-react/components/side-menu/horizontal-ruler/side-menu-horizontal-line.box.ts","app-react/components/side-menu/boxes/mobile-menu-items-container.box.ts","app-react/components/main-nav/boxes/related-sites/related-sites-wrapper.box.ts","app-react/components/main-nav/boxes/related-sites/related-site-link.box.ts","app-react/components/header/top-header-right/state-selector-button/state-selector-button.component.tsx","app-react/components/side-menu/mobile-state-selector-menu-item/mobile-state-selector-menu-item.component.tsx","app-react/components/side-menu/side-menu.component.tsx","app-react/components/language-switcher-dropdown/boxes/language-switcher-dropdown.default.box.ts","app-react/components/language-switcher-dropdown/boxes/language-switcher-dropdown.box.ts","app-react/components/language-switcher-dropdown/language-switcher-section/boxes/section-list/language-switcher-section-list.default.box.ts","app-react/components/language-switcher-dropdown/language-switcher-section/boxes/section-list/language-switcher-section-list.box.ts","app-react/components/language-switcher-dropdown/language-switcher-section/boxes/section-title/language-switcher-section-title.default.box.ts","app-react/components/language-switcher-dropdown/language-switcher-section/boxes/section-title/language-switcher-section-title.box.ts","app-react/components/language-switcher-dropdown/language-switcher-section/boxes/section-list/section-list-item/language-switcher-section-list-item.default.box.ts","app-react/components/language-switcher-dropdown/language-switcher-section/boxes/section-list/section-list-item/language-switcher-section-list-item.box.ts","app-react/components/language-switcher-dropdown/language-switcher-section/boxes/section-list/section-list-item/section-list-item-label/language-switcher-item-label.default.box.ts","app-react/components/language-switcher-dropdown/language-switcher-section/boxes/section-list/section-list-item/section-list-item-label/language-switcher-item-label.box.ts","app-react/components/language-switcher-dropdown/language-switcher-section/boxes/section-list/section-list-item/section-list-item-checkbox/language-switcher-item-checkbox.default.box.ts","app-react/components/language-switcher-dropdown/language-switcher-section/boxes/section-list/section-list-item/section-list-item-checkbox/language-switcher-item-checkbox.box.ts","app-react/components/language-switcher-dropdown/language-switcher-section/language-switcher-section.component.tsx","app-react/components/language-switcher-dropdown/language-switcher-section/boxes/section-separator/language-switcher-section-separator.default.box.ts","app-react/components/language-switcher-dropdown/language-switcher-section/boxes/section-separator/language-switcher-section-separator.box.ts","app-react/components/language-switcher-dropdown/language-switcher-dropdown.component.tsx","app-react/components/main-nav/boxes/mobile/mobile-menu-header.default.box.ts","app-react/components/main-nav/boxes/mobile/mobile-menu-header.si.box.ts","app-react/components/main-nav/boxes/mobile/mobile-menu-header.box.ts","app-react/components/main-nav/boxes/mobile/back/mobile-back.box.ts","app-react/components/main-nav/boxes/mobile/back/mobile-back-label.box.ts","app-react/components/main-nav/boxes/main-nav-canvas/main-nav-canvas.default.box.ts","app-react/components/main-nav/boxes/main-nav-canvas/main-nav-canvas.casino777.box.ts","app-react/components/main-nav/boxes/main-nav-canvas/main-nav-canvas.si.box.ts","app-react/components/main-nav/boxes/main-nav-canvas/main-nav-canvas.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/icon/burger-icon.default.box.ts","app-react/components/header/top-header-left/mobile-burger-menu/boxes/icon/burger-icon.casino777.box.ts","app-react/components/header/top-header-left/mobile-burger-menu/boxes/icon/burger-icon.si.box.ts","app-react/components/header/top-header-left/mobile-burger-menu/boxes/icon/burger-icon.box.ts","app-react/components/header/top-header-left/mobile-burger-menu/boxes/container/burger-menu-container.box.ts","app-react/components/header/top-header-left/mobile-burger-menu/boxes/container/burger-menu-container.default.box.ts","app-react/components/header/top-header-left/mobile-burger-menu/mobile-burger-menu.component.tsx","app-react/components/header/boxes/language-switcher/header-language-switcher.box.ts","app-react/components/header/top-header-right/language-switcher/header-language-switcher.component.tsx","app-react/components/header/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.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.box.ts","app-react/components/tooltip/boxes/tooltip-close-button.box.ts","app-react/components/tooltip/boxes/tooltip-container/tooltip-container.default.ts","app-react/components/tooltip/boxes/tooltip-container/tooltip-container.box.ts","app-react/components/tooltip/boxes/tooltip-glow/tooltip-glow.default.ts","app-react/components/tooltip/boxes/tooltip-glow/tooltip-glow.777.ts","app-react/components/tooltip/boxes/tooltip-glow/tooltip-glow.box.ts","app-react/components/tooltip/boxes/tooltip-content.box.ts","app-react/components/tooltip/tooltip-container.component.tsx","app-react/components/game-window/loading-indicators/boxes/game-loading-indicator-root.box.ts","app-react/components/game-window/loading-indicators/game-loading-indicator.component.tsx","app-react/components/current-game-container/current-game-container.component.tsx","app-react/components/app/app.component.tsx","app-react/services/storage/in-memory-local-storage.service.ts","app-react/app-bootstrap/b2c-framework-loader/b2c-framework-loader.ts","settings/configuration/config.ts","app-react/themes/select-theme.ts","main.ts","app-react/components/lobby-header/boxes/lobby-header.default.box.ts","app-react/components/lobby-header/boxes/lobby-header.casino777.box.ts","app-react/components/lobby-header/boxes/lobby-header.si.box.ts","app-react/components/lobby-header/boxes/lobby-header.box.ts","app-react/components/lobby-header/boxes/title/lobby-header-title.default.box.ts","app-react/components/lobby-header/boxes/title/lobby-header-title.si.box.ts","app-react/components/lobby-header/boxes/title/lobby-header-title.box.ts","app-react/components/lobby-header/boxes/line/lobby-header-line.default.box.ts","app-react/components/lobby-header/boxes/line/lobby-header-line.casino777.box.ts","app-react/components/lobby-header/boxes/line/lobby-header-line.box.ts","app-react/components/lobby-header/boxes/buttons/lobby-header-buttons-container.box.ts","app-react/components/lobby-header/boxes/buttons/lobby-header-button.default.box.ts","app-react/components/lobby-header/boxes/buttons/lobby-header-button.777.box.ts","app-react/components/lobby-header/boxes/buttons/lobby-header-button.box.ts","app-react/components/lobby-header/boxes/title/lobby-header-title.container.box.ts","app-react/components/lobby-header/lobby-header.component.tsx","app-react/basic-ui-components/icon/svg-icon/svg.icon.tsx","app-react/basic-components/loading-dots/boxes/loading-dot.box.ts","app-react/basic-components/loading-dots/boxes/loading-dots.box.ts","app-react/basic-components/loading-dots/loading-dots.component.tsx","app-react/components/arena-host/seo-bread-crumbs/seo-breadcrumbs-container.box.ts","app-react/components/arena-host/seo-bread-crumbs/seo-bread-crumbs.component.tsx","app-react/components/sdk/sdk.component.tsx","app-react/components/clock/clock.component.tsx","app-react/themes/architecture/styled-by-device.tsx","app-react/themes/architecture/by-theme-registry.ts","sdk/src/services/games_information/games_information_service_interface.ts","app-react/components/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","common/const/service-worker-constants.ts","app-react/services/storage/session-storage-keys.ts","app-react/components/game-window/header-bar/common/boxes/close-game-button/game-header-bar-close-button.box.ts","app-react/components/game-window/game-css-constants.ts","app-react/themes/defaults/icons/info.icon.tsx","app-react/components/free-play/voucher-card-css-constants.ts","app-react/themes/architecture/asset.ts","sdk/src/components/external_links/external_links_consts.ts","sdk/src/services/hybrid/native/native_const.js","app-react/themes/architecture/css-helpers/css-rule.ts","app-react/basic-components/blank-separator/blank-horizontal-separator.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/live-casino-grid-item-infobar.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/live-casino-grid-item-infobar.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/live-casino-grid-item-infobar.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/bet-interval/live-casino-grid-item-bet-interval.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/bet-interval/live-casino-grid-item-bet-interval.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/bet-interval/live-casino-grid-item-bet-interval.si.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/bet-interval/live-casino-grid-item-bet-interval.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/closed-message/live-casino-grid-item-closed-message.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/closed-message/live-casino-grid-item-closed-message.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/closed-message/live-casino-grid-item-closed-message.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/thumbnail/live-casino-grid-item-thumbnail-overlay.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/thumbnail/live-casino-grid-item-thumbnail-overlay.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/thumbnail/live-casino-grid-item-thumbnail.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/thumbnail/live-casino-grid-item-thumbnail.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/wrapper/live-casino-grid-item-wrapper.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/wrapper/live-casino-grid-item-wrapper.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/wrapper/live-casino-grid-item-wrapper.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/title/live-casino-grid-item-title.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/title/live-casino-grid-item-title.si.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/title/live-casino-grid-item-title.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/bet-behind/live-casino-grid-item-bet-behind-button.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/bet-behind/live-casino-grid-item-bet-behind-button.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/bet-behind/live-casino-grid-item-bet-behind-button.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/jackpot/live-casino-grid-item-jackpot.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/jackpot/live-casino-grid-item-jackpot.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/jackpot/live-casino-grid-item-jackpot.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/closed-message/live-casino-grid-item-open-at.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/live-casino-arena-grid-item.component.tsx","app-react/components/free-play/boxes/voucher-card/voucher-card.box.ts","app-react/components/free-play/boxes/voucher-card/voucher-card-side.box.ts","app-react/components/free-play/boxes/voucher-card/face/voucher-card-face.box.ts","app-react/components/free-play/boxes/voucher-card/face/content/voucher-card-face-content.box.ts","app-react/components/free-play/boxes/voucher-card/common/footer/voucher-card-side-footer.box.ts","app-react/components/free-play/boxes/voucher-card/face/footer/voucher-card-face-footer.box.ts","app-react/components/free-play/boxes/voucher-card/face/content/icon/voucher-card-face-icon-container.box.ts","app-react/components/free-play/boxes/voucher-card/face/content/details/voucher-card-face-details.box.ts","app-react/components/free-play/boxes/voucher-card/face/content/details/original-amount/voucher-card-face-original-amount.box.ts","app-react/components/free-play/boxes/voucher-card/face/content/details/name/voucher-card-face-voucher-name.box.ts","app-react/components/free-play/boxes/voucher-card/face/content/details/current-amount/voucher-card-face-current-amount-container.box.ts","app-react/components/free-play/boxes/voucher-card/face/content/icon/voucher-card-face-icon.box.ts","app-react/components/free-play/boxes/voucher-card/face/content/details/current-amount/voucher-card-face-current-amount.box.ts","app-react/components/free-play/boxes/voucher-card/common/footer/side-toggle/voucher-card-side-toggle-button.box.ts","app-react/components/free-play/boxes/voucher-card/common/footer/footer-content/voucher-card-side-footer-content.box.ts","app-react/components/free-play/boxes/voucher-card/face/header/voucher-card-face-header.box.ts","app-react/components/free-play/parts/voucher-card/face/voucher-card-face-header.component.tsx","app-react/components/free-play/parts/voucher-card/face/voucher-card-face.component.tsx","app-react/components/free-play/boxes/voucher-card/back/voucher-card-back.box.ts","app-react/components/free-play/boxes/voucher-card/back/header/voucher-card-back-header.box.ts","app-react/components/free-play/boxes/voucher-card/back/content/voucher-card-back-content.box.ts","app-react/components/free-play/boxes/voucher-card/back/footer/voucher-card-back-footer.box.ts","app-react/components/free-play/parts/voucher-card/back/voucher-card-back.component.tsx","app-react/components/free-play/parts/voucher-card/voucher-card.component.tsx","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-filter-buttons/live-casino-filter-buttons.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-filter-buttons/live-casino-filter-buttons.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-filter-buttons/live-casino-filter-buttons.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.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/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/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/draws/live-casino-grid-item-draws.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/draws/live-casino-grid-item-draws.defatult.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/draws/live-casino-grid-item-draw.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/draws/live-casino-grid-item-draw.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/draws/live-casino-grid-item-draw.si.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/draws/live-casino-grid-item-draw.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/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/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/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/info-item/live-casino-grid-item-info-item.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/info-item/live-casino-grid-item-info-item.si.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/info-item/live-casino-grid-item-info-item.box.ts","app-react/basic-components/lobby-grid/lobby-grid.default.box.ts","app-react/basic-components/lobby-grid/lobby-grid.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/grid-item/live-casino-grid-item.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/grid-item/live-casino-grid-item.default.box.ts","app-react/basic-ui-components/button/base/boxes/button.box.ts","app-react/basic-ui-components/button/base/boxes/button-label.box.ts","app-react/basic-ui-components/button/base/boxes/button-icon-wrapper.box.ts","app-react/basic-ui-components/button/base/button.component.tsx","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/infobar-icon/live-casino-grid-item-infobar-icon.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/infobar-icon/live-casino-grid-item-infobar-icon.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/thumbnail/live-casino-grid-item-thumbnail-image.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/thumbnail/live-casino-grid-item-thumbnail-image.default.box.ts","app-react/themes/hex-to-rgba.ts","common/const/casinofied-analytics-consts.ts","sdk/src/services/overlay_manager/overlay_manager_levels.ts","app-react/components/raw-components/link/link.tsx","app-react/services/companies/companies-models lazy /^/.*/.company/-model$/ groupOptions: {} namespace object","app-react/themes/definitions lazy /^/.*/theme/.definition$/ groupOptions: {} namespace object","settings/configuration/languages lazy /^/.*$/ groupOptions: {} namespace object","app-react/services/game-runner/interfaces/game-context/game-context-view-model.interface.ts","app-react/components/single-game/css-constants.ts","app-react/services/dialog/dialog.service.interface.ts","sdk/src/services/regulation/regulation_const.ts","app-react/themes/definitions/si/base-colors.ts","app-react/components/modal-dialog/boxes/text/dialog-text.box.ts"],"names":["ThemeName","GAME_GROUP","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","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","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","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_png","SpriteSheetPC1920_png","texture_png","top_banner_placeholder_gif","vertical_line_glow_png","www_splash_page_logo_1_111_png","_3px_tile_png","_888casinologo_png","brilliant_png","close_modal_dialog_hover_png","history_bg_title_png","home_content_banner_png","home_page_top_banner_png","info_img_png","jackpots_bg_png","lang_reg_icon_png","lang_selected_icon_png","letter_info_png","letter_play_png","letter_design_png","live_arena_banner_png","live_chat_png","live_content_banner_png","notification_off_png","only_real_money_game_warning_png","pay_icon_png","swiper_layout_bottom_shaddow_png","user_menu_box_icon_png","user_png","_888casinologo_dark_png","blackSquare_png","div_lang_png","germany_panic_icon_png","ballysdover_logo_png","delaware_park_logo_png","hccasinologo_png","harrington_logo_png","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","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","ButtonsWrapperDefaultBox","buttonsOnSeparateLines","ButtonWrapperDefaultBox","ButtonSpacerDefaultBox","LinkActionBox","button","theme","font","presets","body","colors","brandPrimary","LinkWrapperDefaultBox","ModalDialogActionsComponent","this","className","classNames","CyClass","onClick","primaryAction","disabled","preset","fullWidth","text","secondaryAction","useWarningPreset","linkAction","React","Component","PC_HORIZONTAL_SPACE_BETWEEN_ITEMS","multiplier","MOBILE_HORIZONTAL_SPACE_BETWEEN_ITEMS","CGP_ERROR_CODES","GENERAL_ERROR_SUPPORT","RESTRICTED_COUNTRY","INVALID_CREDENTIALS","LOGIN_RESTRICTION","INVALID_REFRESH_TOKEN","CAPTCHA_REQUIRED","TOUCH_ID_CHANGE_PASS","TOUCH_ID_EXPIRE","GENERAL_ERROR","OPENING_GAME_ERROR","UNSUPPORTED_ANONYMOUS","TIME_LIMIT_REACHED_DAILY","TIME_LIMIT_REACHED_WEEKLY","TIME_LIMIT_REACHED_MONTHLY","TOKEN_NOT_VALID","PENDING_ACTION_REQUIRED","INVALID_GRANT","isRefreshTokenError","errorCode","toString","DisposableObject","_reactions","_gameEventsSubscription","_sdkEventsSubscriptions","_namedIntervals","_namedTimeouts","_domEventsSubscriptions","expression","effect","opts","push","mobxReaction","subscription","unsubscribe","index","findIndex","s","splice","name","handler","interval","ref","namedSetInterval","clear","clearInterval","i","namedSetTimeout","clearTimeout","t","forEach","r","off","dispose","FP_VOUCHER_TYPES","FP_MESSAGE_MODE","POPUP","EMBEDDED_INTERNAL","JackpotInternalId","JackpotType","JACKPOT_STATE","baseColors","base01","base01Contrast","base01Dark","base01Light","base02","base02Contrast","base02Dark","base02Light","base03","base03Contrast","base03Dark","base03Light","base04","base05","gold","yellow","OrbitSuspense","fallback","children","PureComponent","TOASTER_NOTIFICATION_TYPES","PENDING_TOASTERS_KEY","DISPLAYED_TOASTERS_KEY","TOAST_TYPES","TRANSITIONS","POSITION","TOASTER_UI_CONFIG","globalClass","titleFont","titleSize","titleColor","messageFont","messageSize","messageColor","backgroundColor","progressColor","progressBackgroundColor","buttonColor","buttonFont","buttonTextColor","buttonCornerRadius","LIB_CSS_IDS","closeBtn","container","cover","toastBody","toastTexts","DEFAULT_CONFIG","imageWidth","layout","close","rtl","position","TOP_RIGHT","targetFirst","timeout","drag","pauseOnHover","resetOnHover","progressBar","animateInside","transitionIn","FADE_IN_LEFT","transitionOut","FADE_OUT_RIGHT","transitionInMobile","transitionOutMobile","DateFormatter","_token","_timezone","_timezoneClip","_masks","shortDate","mediumDate","longDate","fullDate","shortTime","mediumTime","longTime","isoDate","isoTime","isoDateTime","isoUtcDateTime","shortTime12","shortTime24","_i18n","dayNames","monthNames","date","mask","utc","arguments","length","Object","prototype","call","test","undefined","Date","isNaN","SyntaxError","String","slice","_","d","D","m","y","H","M","L","o","getTimezoneOffset","flags","dd","_pad","ddd","dddd","mm","mmm","mmmm","yy","yyyy","h","hh","HH","MM","ss","l","Math","round","tt","T","TT","Z","match","pop","replace","floor","abs","S","$0","val","len","valAsString","format","GermanyResponsibleGamingButtonPlacement","RoutedComponent","OrbitComponent","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","XCloseButtonBox","closeModalDialog","AspectRatioBox","expectedWidth","expectedHeight","AspectRatioContentBox","useBGColorDuringLoadAnimation","isLoading","backgroundDark","AspectRatioContainerComponent","width","height","ITEM_WRAPPER_BOX","RED","GREEN","BalanceType","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","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","germanyPanicButton","ACTIVE","backgroundContrast","portrait","IN_DETAILED_HISTORY","PanicButtonTooltipBox","textDark","sAndAbove","landscape","hoverNone","PanicButtonPopupBox","PanicButtonPopupTimeBox","span","PanicButtonPopupOkBox","PanicButtonPopupComponent","_closeDialog","dialogHandler","now","TimeSpan","getHours","getMinutes","textMessage1","textMessage2","_getTime","textMessage3","TooltipClickHereBox","PanicButtonTooltipCloseBox","PanicButtonMobileOverlayBox","ResponsibleGamingButtonsGermanyComponent","state","isTooltipVisible","setState","panicRestrictUser","then","data","console","log","_openPopup","catch","err","_sendAnalytics","dialog","showModal","shouldBeClosedOnlyByUser","hideCloseButton","isHighPriority","hover","event","stopPropagation","label","analytics","sendAnalytics","_closeToolTip","_getTooltipBox","_restrictUser","Fragment","onMouseEnter","_onMouseEnterPanicBtn","onMouseLeave","_onMouseLeavePanicBtn","onClickPanicBtn","placement","inDetailedHistory","_renderTooltipClickHere","_renderCloseBtn","_renderMobileOverlay","OrbitComponentWithState","AdminBannerBoxPC","AdminBannerBoxMobile","AdminBannerBox","AdminBannerComponent","bannerSegmentation","JSON","stringify","adminBanner","getSegmentationsForAdminBanner","bannerConfig","getConfigForAdminBanner","bannerAdminPlaceholderId","config","segmentation","BannerComponent","adminBannerEnabled","_shouldUseAdminBanner","StyledByTheme","getRegistryItem","ComponentDefinition","themeName","forwardedRef","forwardRef","ByThemeRegistry","defaultComponent","MyAccountTab","imagePreload","fromMinutes","Promise","res","rej","onload","timeoutRejection","error","backgroundUrl","imageObj","onerror","setTimeout","totalMilliseconds","imagePreloadWithDefault","defaultPath","HeaderArenasStyle","CASHIER_SESSION_TYPES","TRANSACTIONS_HISTORY","WITHDRAWAL","FULL_CASHIER_CDH","FULL_CASHIER","QUICK_DEPOSIT","COOLING_OFF","VERIFY_ID","MOBILE_VERIFY_ID","GamingHistoryType","TSR_TYPE","GeoModalWrapperBox","isDepositSessionType","sessionType","Check","isNullOrUndefined","isCashoutSessionType","BalanceValue","balance","bankroll","walletProxy","balanceType","numberIndex","search","symbolIndex","min","WrapperComponent","defaultProps","BOTH","SYSTEM_EVENTS","ON_INIT_COMPLETE","ON_ORBIT_INIT_COMPLETE","RUN_AUTOLOGIN","RUN_AUTOLOGIN_TOUCH_ID","MESSAGE_OPEN","MESSAGE_CLOSE","ON_BEFORE_OAUTH_STATE_CHANGE","OAUTH_STATE_CHANGE","AUTOLOGIN_SUCCESS","AUTOLOGIN_FAILED","SUCCESSFULLY_LOGIN_RESPONSE","ON_RUN_AUTOLOGIN","FAIL_LOGIN_RESPONSE","CLOSE_GAME","LOGIN_FORM_OPEN","LOGIN_FORM_CLOSE","GET_NEW_TOUCH_TOKEN","SCREEN_CHANGE_STATE","POST_MESSAGE_ARRIVE","HYBRID_POST_MESSAGE_ARRIVE","EXTEND_USER_TIME_TO_LIVE","SCREEN_RESIZE_CHANGED","GAME_OPEN","OPEN_GAME_ERROR","FULL_SCREEN_CHANGE","OPEN_OVERLAY","CLOSE_OVERLAY","CLOSE_ALL_OVERLAY","EXTERNAL_LINK_OPEN","EXTERNAL_LINK_CLOSED","EXTERNAL_LINK_OPENED","APP_RESUMED","APP_PAUSED","LOGIN_SESSION_RESUMED","ANALYTIC_TRIGGER_ACTIVATED","ANALYTIC_DATA_LAYER_UPDATE","ANALYTICS_EXPERIMENT_ACTIVATED","ANALYTICS_OPTIMIZE_TRIGGER","INCOMING_MARKETING_DATA","INCOMING_MARKETING_FLOW","PLAYER_ACTION","BALANCE_UPDATED","CURRENCY_UPDATED","RECENTLY_PLAYED_GAMES_UPDATED","LIVE_FEEDS_LATEST_WINNERS_UPDATED","LIVE_FEEDS_WINNINGS_UPDATED","LIVE_FEEDS_TOTAL_JACKPOTS_UPDATED","LIVE_FEEDS_JACKPOT_AMOUNTS_UPDATED","LIVE_FEEDS_STATE_JACKPOTS_UPDATED","OMG_AWAITING_MESSAGES_UPDATED","OMG_OPEN_AWAITING_MESSAGES","OAUTH_REMOVE_FROM_LOCAL_STORAGE","LOCAL_STORAGE_CHANGED","ELEMENT_CREATED","FREE_PLAY_UPDATED","FREE_PLAY_VOUCHER_REMOVED","FREE_PLAY_OPEN_VOUCHERS_MSG","RESIZE_FORM","BEGIN_LOGIN_AFTER_REGISTRATION","LOGIN_COMPLETED_AFTER_REGISTERATION","LOGIN_FAILED_AFTER_REGISTRATION","DETACH_REGISTER_EVENT","FREE_PLAY_VOUCHER_MSG_OPENED","FREE_PLAY_OPEN_INTERNAL_VOUCHERS_MESSAGE","TOAST_CREATED","TOAST_SHOW","TOAST_HIDE","TOAST_CLOSE_BUTTON","TOAST_USER_DISMISS","HYBRID_ALERT","HYBRID_OPEN_MAIL","HYBRID_UPDATE_INFO_KEY","FIREBASE_GOT_NEW_TOKEN","TOUCH_ID_GET_TOKEN_FROM_SRV","TOUCH_ID_INIT_SCREEN_SHOW","TOUCH_ID_TRY_AGAIN_SKIP","TOUCH_ID_CHECK_TOKEN_ENABLE","TOUCH_ID_TOKEN_ENABLE_RES","TOUCH_ID_CLEAR_TOKEN","TOUCH_ID_NATIVE_CANCEL","TOUCH_ID_LOGIN_ERROR","TOUCH_ID_AUTO_LOGIN","TOUCH_ID_STATE_CHANGED","WEB_VIEW_NAVIGATE_GAME","WEB_VIEW_NAVIGATE_DEPOSIT_WIDGET","WEB_VIEW_NAVIGATE_MIT_ID","WEB_VIEW_NAVIGATE_CASHIER","SECOND_WEB_VIEW_OLD_CALL","SECOND_WEB_VIEW_CLOSE","SECOND_WEB_VIEW_OPEN","SECOND_WEB_VIEW_CLOSE_ALL","MINI_CASHIER_HEIGHT_CHANGED","CONTENT_LOADED","OVERLAY_OPEN_AWAIT","OVERLAY_CLOSE_EXPIRED","FABRIC_ADD_EVENT","ADD_TAG_OPEN_APP_VER","ADD_TAG","REM_TAG","DEEPLINK_RECEIVED","ROUTE_CHANGED","RESTRICTIONS_CHANGED","SESSION_TIMER_UPDATE","WINDOW_FOCUS_GAIN","WINDOW_FOCUS_LOSS","GEO_HYBRID_UPDATE_ENABLE","GEO_HYBRID_GT_CB","GEO_HYBRID_GET_LOCATION","GEO_HYBRID_GET_LOCATION_RES","GEO_LOCATION_FAILED","GEO_LOCATION_SUCCEED","GEO_KICK_EVENT","SESSION_EVENT_KICK","SESSION_EVENT_WALLET","SESSION_EVENT_OMG_RECEIVED","SESSION_EVENT_FREE_PLAY_RECEIVED","SESSION_EVENT_FREE_PLAY_REMOVED","SESSION_EVENT_FREE_PLAY_BATCH_ADDED","SESSION_EVENT_FREE_PLAY_BATCH_UPDATED","SESSION_EVENT_FREE_PLAY_BATCH_REMOVED","SESSION_EVENT_THIRD_PARTY_FREE_PLAY_UPDATED","SESSION_EVENT_NET_POSITION_UPDATE","SESSION_EVENT_RECEIVED_TOASTER","SESSION_EVENT_UPDATERESTRICTION_RECEIVED","SESSION_EVENT_PLAYER_BURNOUT_MESSAGE_RECEIVED","NET_POSITION_VALUE_UPDATE","SECOND_WEB_VIEW_NAVIGATE_SPORT","TIME_UPDATED_FROM_SERVER","ON_BROWSER_PAGE_HIDE","TOKEN_LIFETIME_EXPIRED","LIVE_TABLES_UPDATE","LOADING_INDICATOR_EMBEDDED_UPDATE","LOADING_INDICATOR_EMBEDDED_UPDATE_V2","LOADING_INDICATOR_EMBEDDED_CLOSED_BY_X","GAMES_QUESTIONNAIRE_COMPLETED","GAME_SEQUENCE_FINISH","GAME_POPUP_SHOW","USER_APPROVE_GAME_POPUP","BONUS_ABUSE_PARKING_MONEY","SHOW_POPUP_ABOVE_HYBRID_SECOND_WEB_VIEW","CLOSE_POPUP_ABOVE_HYBRID_SECOND_WEB_VIEW","DEPOSIT_WIDGET_CLOSED","DAILY_DEAL_REMOVE_INDICATION","LOCATION_POPUP_OPEN","LOCATION_POPUP_CLOSED","PLAYER_MESSAGES_STRATEGY_READY","CHANGE_OVERLAY_PRIORITY","OMG_DISPLAYED","LIVE_GAME_SWITCHED","PROMOTIONS_CHANGED","ODR_CLEAR_ALL_GAMES","SERIAL_UPDATE","CLIENT_EVENTS","MENU_CLICKED","LOGIN_BUTTON_CLICKED","REALITY_CHECK_OPENED","REALITY_CHECK_CLOSED","USER_EVENTS","ON_CLICK","ON_DOUBLE_CLICK","ON_SUBMIT","ON_MOUSE_MOVE","ON_MOUSE_DOWN","ON_KEY_PRESS","ON_DOM_MOUSE_SCROLL","ON_MOUSE_WHEEL","ON_TOUCH_START","ON_TOUCH_MOVE","ON_TOUCH_END","ON_MSPOINTER_MOVE","ON_RESIZE","ON_FOCUS","ON_CHANGE","ON_BLUR","USER_ACTIVITY_EVENTS_ALL","USER_ACTIVITY_EVENTS_FOR_HYBRID","Event","_subscriptions","callback","context","eName","eCallback","eContext","Error","isArray","eventName","cleanFunctions","eventIdx","on","self","onceCallback","_originalCallback","params","subscriptions","getAllSubscriptions","events","concat","ex","cb","cleanFn","isHybridEmbedded","PcBox","DailyDealContainerBox","glowRotateAnimation","keyframes","DailyDealChestGlowBox","dailyDeal","glow","chestScaleAnimation","DailyDealChestBox","img","DailyDealTextStripBox","textStrip","DailyDealChestHaloBox","halo","DailyDealComponent","_onDailyDealClick","getCurrentArena","arenaName","visitDailyDeal","dailyDealCampaignId","hybrid","isEmbedded","chest","LinkToOfferBoxBase","CssRule","For","mobile","build","hasCircle","linkToOfferIconKeyframes","hexToRgba","LinkToOfferIconBox","shouldAnimate","not","tablet","LinkToOfferDialogCloseBox","zIndex","LinkToOfferComponent","_onCloseDialog","playerOfferings","hasOpenedPopup","closeCurrentPopup","setWelcomeOfferConfig","linkToOfferConfig","welcomeBonus","CloseIconComponent","linkToOfferCloseIcon","isHighPriorityOffer","getMaxCGPOverlayZIndex","sizeIsHeight","currentOffer","currentLinkToOffer","_onLinkToOfferClicked","shouldUseLinkToOfferAnimation","offer","analyticsCategory","routing","currentRoute","arenaType","options","onPopupClosed","showOfferPopup","GameImageAnimatedBox","commonGameImageCssMixin","GameImageAnimatedComponent","animatedImageWrapper","pixiAnimationRegistration","_captureAnimatedImageElementRef","element","unregister","loadPixiAnimatedIcon","gameAnimatedIconsManager","register","jsonUrl","animationJsonUrl","wrapper","timings","animationTiming","onAnimationLoad","onAnimationBeforeUnload","onAnimationUnload","GameImageComponent","_loadAnimatedIconTimeout","onSettled","loadingAnimation","attemptLoadAnimatedIcon","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","INSIDE_ORBIT_MENU_CONTAINER","base04Contrast","base04Dark","base04Light","base05Contrast","base05Dark","base05Light","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","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","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","propEvaluator","defineProperty","propertyName","get","evaluate","configurable","enumerable","rootObject","keys","propName","createPropertyEvaluator","StatementsEvaluator","_statementsEvaluators","_defaultValue","evaluators","evaluatedValue","_applyValueTransformation","defaultValue","value","parsePropertyValue","ObjectEvaluator","_object","_evaluatedValue","isUndefined","properties","obj","configEvaluator","ArrayEvaluator","_itemsEvaluators","item","createPropertyContext","SimpleValueEvaluator","_value","applyValueTransformation","getCurrentPropertyPath","StatementEvaluator","_statementDefinition","rules","definition","rule","createSegmentationRule","createLogicalOperator","condition","BaseLogicalOperator","_rules","OrLogicalOperator","AndLogicalOperator","SegmentationRule","_ruleDefinition","innerRules","operator","createComparisonOperator","segmentValue","getSegmentValue","compare","BaseComparisonOperator","EqualOperator","value1","value2","_isBooleanAsString","NotEqualOperator","PropertyLevelContext","_originalContext","_currentPropertyName","operatorName","logicalOperatorName","ruleDefinition","statementDefinition","createStatementEvaluator","propertyPath","propertyOwner","getLauncherGames","PropertyEvaluator","_propertyName","_valueEvaluator","propertyContext","createStatementsDefinition","subLists","statementsDefinition","statements","sublist","Segment","Games","segment","_createStatementsRule","GamesIdPropertyEvaluator","_owner","_adminConfig","gamesAdminRefKey","owner","listsv2","gameTypes","launcherGames","IsFalsyOperator","GreaterThanOperator","isNumber","LessThanOperator","AnyOfOperator","includes","PreviewFeatureType","ConfigurationEvaluationContext","dataProvider","isObject","_hasStatementsOrDefaultValue","_createStatementsEvaluators","statementsDefinitions","toUpperCase","logger","isString","assetPath","propertyValue","gamesSettings","gamesTags","_mergeGamesFromLauncher","existingGamesTags","demoSettings","demoCTAAnonymous","pc","demoCTAAuthorized","intermediatePageAnonymous","intermediatePageAuthorized","SdkInitializer","_applicationConfiguration","_sdkHooksProvider","_windowService","_theme","_waitForMapperCGP","resolve","getGameTypesMappingForSdk","_waitForHeaderRegulationDataElement","headerRegulationDataElement","waitForElement","module","API","Logger","logLevel","sdkApi","sdkConfigOverrides","getSdkConfigOverrides","initialize","CGP_OBJECT_NAME","Country","getCountryServiceOverrides","Skin","getSkinServiceOverrides","Game","getGameServiceOverrides","Integration","getIntegrationServiceOverrides","Themes","getThemesServiceOverrides","Http2","getHttp2ServiceOverrides","JackpotToasters","getJackpotToastersServiceOverrides","OrbitComponentRender","getOrbitComponentRenderOverrides","CashierProxy","getCashierProxyOverrides","GameRunnerProxy","getGameRunnerProxyOverrides","CasinofiedAnalyticsProxy","getCasinofiedAnalyticsProxyOverrides","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","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","os","isAndroid","TextTranslation","translationService","translationKey","_parameters","TranslationService","translatedTexts","parameters","translatedPhrase","langData","debug","currentLanguage","_resolveBraces","str","objectKeys","objectKey","resolveConfigurationValue","CURRENCY_SYMBOLS","CAD","NOK","USD","EUR","GBP","DKK","SEK","RON","CurrencyService","withDecimal","minBet","maxBet","getCurrencyIso3","currencyIso3","AnalyticsService","category","omitStructuredLogger","engine","sendToDWH","addLabel","addValue","addCustomData","customData","appID","setAppID","setEventType","eventType","eventData","getGoogleClientID","LobbyGameInfoPreviewService","serviceFactory","_setGamePreviewTimeout","_clearGamePreviewTimeout","_allowPreview","_currentGamePreviewPinned","_resetGamePreview","currentPreviewedGame","gamesMap","clearGamePreview","allowGamePreview","_setCurrentPreviewedGame","RunningGameService","_listenForLastRealGame","_listenForLastOpenDemoGame","isGameRunning","continuePlayingCurrentGame","stopCurrentGameAutoplay","closeRunningGame","lastGameInfo","lastPlayedRealGame","gameInfos","correlatedGamesForLastPlayedRealGame","onGameClose","closeOptions","isReal","isGamePlayed","showNextGameSuggestion","setLastPlayedRealGame","getGameInfo","getCorrelatedGames","correlatedGames","getGamesInfoArray","gameInfosArray","_setLastPlayedRealGame","_setCorrelatedGamesForLastPlayedRealGame","setLastOpenDemoGame","_setLastOpenDemoGame","lastOpenDemoGame","GameInfoButtonDefaultBox","GameInfoButtonCasino777Box","GameInfoButtonBox","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","CellValueTextBox","CellTitleBox","GameFeatureCellComponent","_renderNoInfo","check","_renderCheckbox","_renderDescription","_renderValue","TableContainerDefaultBox","table","boxBorder","boxBorderLight","TableContainerBoxCasino777Box","brandSecondaryDark","TableContainerBox","GameFeaturesTableComponent","cells","reduce","acc","curr","cell","features","chunks","splitArrayToChunks","cellSpacing","chunk","_renderGameInfoTableRow","GameDescriptionTextBox","h2","generalTitle","GeneralTitleDefaultBox","SectionTitleDefaultBox","common","secondary","RTL","spriteSheet","BasePcBox","BaseMobileBox","GeneralTitleCasino777Box","SectionTitleCasino777Box","SectionTitleBox","GameAboutComponent","aboutText","GameJackpotPreviewBox","JackpotAmountPreviewDefaultBox","JackpotAmountPreviewCasino777Box","JackpotAmountPreviewBox","GameJackpotPreviewComponent","GamePreviewInfoContainerBox","GamePreviewInfoContainerComponent","hasJackpot","generalSettings","shouldRenderJackpotPreview","gamesPreviewConfig","shouldDisplayJackpot","gameTitleComponent","gamePreviewFeaturesSelector","getPreviewFeatures","_renderJackpotPreview","ContainerBox","GameIconBox","singleGame","defaultBackgroundImage","PlayButtonsBox","GameIconWrapperBox","xs","GameIconAndPlayButtonsComponent","_openRealGame","open","openGameParams","isRealMode","_openDemoGame","allowDemoButtonInIntermediatePage","gameImageInsideIntermediatePage","_renderDemoButton","IntermediatePageBox","texture","StripeImageAndButtonsBox","GradientDefaultBox","GradientCasino777Box","GradientBox","WarningImageBox","WarningTextBox","WarningMessageBox","RealMoneyOnlyWarningComponent","onlyRealMoneyGameWarning","OpenGameIntermediatePageComponent","allowWithdrawOnlyFromReal","pageName","_renderOnlyRealMoneyWarning","showIntermediatePage","isCalledFromIntermediatePage","NoGameRestriction","gameInfoComparerByTitle","game1","game2","List_Type","GameInfo","_rawGameData","_aboutText","allowSwitchGameMode","numberOfLines","_hasCustomFilter","filterName","filtersList","filter","hasBonusGames","numberOfDecks","isMultiHand","hasFreeSpins","subGroupName","isEliteLounge","hasSideBets","maxBetPerSpot","ClassicSlots","isAllowedCategory","isCardOrTableGame","isLiveCasino","gameGroup","_isAuthorized","forceDemoButton","_isMobile","isAnonymousSupported","siteMap","isUrlInSiteMap","Boolean","gameGroupId","isVideoSlot","isScratchCards","SLOTS","LIVE","CARD_AND_TABLE","gameCategory","companyName","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","shouldUseModernMode","_openInModernMode","_openInLegacyMode","cmsSegmentation","isCstatus","_showIntermediatePage","_shouldRedirectToMembership","_openMembership","closeGame","_sendOpenGameAnalytics","gameController","marketingParams","eventsTrigger","updateMarketingParams","openGame","gameMode","GameModeEnum","Real","freePlayParams","skipFreePlaySuggestion","referrerId","Demo","shouldSuggestNextGame","shouldShowIntermediatePage","openGameOptions","showRegister","isCisOrCip","showRegisterButton","freePlayData","freePlayId","freePlayType","marketing","getMarketingData","gameHandler","openLink","source","dl","listTitle","_replaceUnderscore","analyticsLabel","gameIndex","analyticsAction","openFromDrawer","listPosition","aiEngine","AIListTypeID","AdminListID","sendElasticInfoEvent","words","arena_icon","restriction","VIDEO_SLOT","SLOT","BACCARAT","BLACKJACK","CARRIBEAN_POKER","CRAPS","KENO","POKER","POKER_TEMPLATE_GAMES","ROULETTE","SCRATCH_CARD","VIDEO_POKER","LIVE_CASINO","isBlackJack","isRoulette","isBaccarat","isVideoPoker","ROULETTE_LIKE","ARCADE","POWER_VIDEO_POKER","PAI_GOW_POKER","CRAZY_BLACKJACK","externalGameCode","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","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","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","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","AiEngineService","_isLoadTrendingRecommendedGamesForPlayerInProgress","_onOauthChange","onGamesQuestionnaireCompleted","_updateAiRecommendedGames","_loadTrendingRecommendedGamesForPlayer","_trendingGamesRecommendations","gamesByBets","gamesByActiveUsers","tempGameTypesMap","aiRecommendedGames","trendingRecommendedGamesForPlayer","BETS","ACTIVE_USERS","_allAiRecommendedGameTypes","_initalizeTrendingRecommendations","getAIRecommendations","filterOutRecentlyPlayedGames","aiRecommendationsData","_setAiRecommendedGames","maxGames","_setAllAiRecommendedGameTypes","_sendAIRecommendationAnalytics","analyticsObject","sendAIRecommendations","listIDs","insightController","getCasinoRecommendedDynamicListsForPlayer","listsIDs","allAiRecommendedGameTypes","gamesMapOverride","ignoreNumberOfGames","fixedGameTypes","aiGameTypes","originalIndexes","sort","gt1","gt2","index1","index2","getTrendingRecommendedGamesForPlayer","trendingRecommendedGames","_setTrendingRecommendedGamesForPlayer","listTypeId","trendingRecommendedGamesForPlayerByBets","trendingRecommendedGamesForPlayerByActiveUsers","gamesTypesArray","aiGamesByScore","_getGamesTypesByListTypeID","first","second","firstGamePlace","indexOf","secondGamePlace","DeepLinkJsonObjectBuilder","actionsChain","deepLinkObject","resultedMarketingParams","currentActionIndex","currentActionsChainPointer","actionPropName","idPropName","descriptor","actionParams","wtc","nextAction","join","DeepLinkJsonObjectParser","actionNextPropName","idNextPropName","DEEP_LINK_HASH_PARAM","DEEP_LINK_QUERY_PARAM","SPECIFIC_NAVIGATION","SPECIFIC_NAVIGATION_PARAM","DeepLinkParserService","deepLinkJson","_extractDeepLinkJsonFromFragment","_extractDeepLinkJsonFromDeepLinkQueryParam","isDeepLinkFromSpecificNavigation","_extractDeepLinkJsonFromSpecificNavigationQueryParam","_isDeepLinkObject","fragment","hash","decodeUriComponentRecursive","queryParams","getParamValue","DeepLinkService","_isExecuting","_executeDeepLinkFromSdkEvent","_waitForAutologin","deepLinkActionsFactory","createActionFromDeepLinkObject","_executeAction","_executeDeepLinkFromPostMessage","postEvent","messageData","ActionName","deepLinkJsonObject","_subscribeToCurrentUriReaction","onDeepLinkReceived","postMessage","_executeDeepLinkFromCurrentRoute","execute","lastTimeDeepLinkWasExecuted","reactionDisposer","createActionFromCurrentRoute","urlWithoutHash","getUrlWithoutHash","navigate","isArrayOfStrings","CGP_EVENTS_NAMES","SdkEvents","CGP","onEvent","SAFEZONE_CONTAINERS_ID","COMPONENT_NAMES","SdkEventsTrigger","fire","gametype","message","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","getUserSegments","format$$$","linkParams","useCallbackURL","getSourceSubBrandName","callbackUrl","getExternalBrandCallbackURL","openExternalLink","view","openResponsibleGamingLink","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","refreshThirdPartyVouchers","closeCurrentDetailHistory","campaignId","getRichPageUrl","getDailyDealCampaigns","getJackpotsWithState","getJackpotAmountByGameType","getNumberOfAwaitingMessages","openOmgAwaitingMessages","getFreeplayVouchers","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","bringOmgToFront","getBurnoutAnimationZIndex","getCompanyByName","request","openHistoryGame","currentRegulation","getCurrentBrowserTabId","hasOpenOverlays","gnwp","scriptLoader","startGeoLocationOnOpenRealGame","buttons","sdkButtonToModalButton","sdkBtnOpts","cssClass","primarySdkButton","secondarySdkButton","modalDialogButtonsComponentProps","getButtonsForNonRetryGeoFlow","_convertButtonsToOrbitFormat","reject","getRetryMessageButtons","stopGameTimeReminders","isEligibleForGameGeoRetry","startAutoRetryGeoProcess","NoGamesFilterStrategy","isFilteringAvailable","GamesFilterService","_currentFilteringStrategy","_setCurrentStrategy","currentArena","getGamesFilteringStrategy","filteredGamesMap","urlHash","filterIds","currentAppliedFiltersIds","filterId","renderMobileFiltersIndicator","renderPCFiltersIndicator","showFiltersEditor","OPEN_SAFEZONE_SOURCE_VALUES","CHANNEL","OPEN_SAFEZONE_SOURCE","CLOSE_SAFEZONE_SOURCE_VALUES","SafeZoneDeeplink","ApiListType","ACTIONS","SAFEZONE_EVENTS","UsefulLinkActions","link","_findHandler","linkId","handlerName","charAt","openTransactionHistory","channel","CHANNEL_SOURCE","casinoClient","area","AreaType","UserArea","CHANNEL_ELEMENTS","transactionHistoryButton","openOldCashier","openMyAccount","tabId","ComPoints","openContactUs","target","AppLauncher","apps","CR_HELP_CENTER","enabled","_openHelpWidget","onContactUs","_openLinkAction","appLauncher","openControlCenterFull","businessCorrelationID","tools","getGuid","safezoneUsefulLink","appSpecificParameters","USER_AREA","deeplink","ControlCenterDeeplink","TimeSpentReminderPage","openHelpPage","openHelpWidget","NavigationMenu","AppIdentifiers","CRHelpCenter","CasinoClient","shouldOpenLocal","local","sourceLink","li","boxBorderDark","textHover","backgroundHover","hideArrow","UsefulLinksItemDefaultBox","UsefulLinksItemCasino777Box","UsefulLinksItemCipBox","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","GameTitleBox","GAME_GROUP_LIVE_CASINO","MinMaxBetAmountDefaultBox","dangerLight","mAndAbove","MinMaxBetAmountCasino777Box","MinMaxBetAmountSIBox","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","GameNumberBadgeBox","SingleGameRegularTemplateComponent","isMobileOS","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","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","indicatorBadge","backgroundInGridLayout","HomepageHeaderArenaBadgeSIBox","HomepageHeaderArenaBadgeBox","HomePageHeaderArenasContainerDefaultBox","headerArenasStyle","Menu","HomePageHeaderArenasContainerMrGreenBox","HomePageHeaderArenasContainerBox","HomepageHeaderArenaLinkBox","HomepageHeaderArenaSkeletonDefaultBox","HomepageHeaderArenaSkeletonSIBox","HomepageHeaderArenaSkeletonBox","HomePageHeaderArenaTileComponent","aspectRatioSizes","_handleDoneLoading","HomePageHeaderArenasComponent","menuButtonIconMap","Map","sideMenuLiveCasino","sideMenuSlots","sideMenuNewGames","sideMenuJackpots","sideMenuExclusive888","sideMenuCasinoGames","_handleArenaAction","jsonAction","_handleArenaRedirect","iconKey","trim","has","prop","placeholder","dynamic","seoConfig","categories","preventDefault","newGamesIndication","homepage","newAddedGames","headerArenasStyleIsMenu","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","_createFiltersCategories","filtersCategories","availableFilters","f","currentFilters","some","isApplied","_createEvaluator","game","filterResult","applyFilter","IncludeGame","FilterCategoryBox","FilterCategoryContentBox","FilterItemBox","InputBox","input","FilterItemTitleBox","SubFiltersBox","FilterItemContainerBox","FilterCategoryItemComponent","_onFilterToggle","toggleFilter","subFilters","sf","filterCategoryId","inputType","checked","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","_onClearAll","clearFilters","AdvancedGamesFilterDrawerRenderer","isMinimized","minOverlayZIndex","supportsCloseIntent","ArenaGameFilterEditor","arenaGameFilter","categoryEditor","_subFilters","_on","_setOn","_resetOtherFiltersInTheCategory","isAdhocFilter","ArenaGameSubFilterEditor","parent","ArenaGameFiltersCategoryEditor","arenaGameFilterCategory","_filters","shouldBeDisplayed","_getAllAppliedFilters","subFilter","AdvancedStrategyFiltersEditor","_categories","getAppliedFiltersIds","_getAppliedFiltersIds","AndGameFiltersEvaluator","_evaluators","NotApplicable","ExcludeGame","AND","FiltersMobileButtonDefaultBox","FiltersMobileButtonCasino777Box","FiltersMobileButtonBox","FiltersMobileIconDefaultBox","FiltersMobileIconCasino777Box","FiltersMobileIconBox","FiltersMobileButtonComponent","shouldHideFiltersButtonMobile","IndicatorContainerBox","family","AppliedFilterIndicatorBox","AppliedFiltersBox","RemoveFilterButtonBox","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","filterCategoryDef","createCategoryDefinition","_createArenaGameFiltersCategory","NextToArenaTitle","reactElement","_createFiltersEditor","FilterLinkIconDefaultPCBox","FilterLinkIconDefaultMobileBox","FilterLinkIconDefaultBox","FilterLinkIconCasino777Box","MobileSIBox","FilterLinkIconSIBox","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","LiveCasinoFilterButtonIconBox","filterButtonLabel","LiveCasinoFilterButtonLabelDefaultBox","LiveCasinoFilterButtonLabelCasino777Box","LiveCasinoFilterButtonLabelSIBox","LiveCasinoFilterButtonLabelBox","LiveCasinoArenaNavbarButtonDefaultBox","Link","filterButtonBackground","ipad","LiveCasinoArenaNavbarButtonCasino777Box","LiveCasinoArenaNavbarButtonSIBox","iconBackgroundActive","LiveCasinoArenaNavbarButtonBox","LiveCasinoArenaNavbarButton","buttonIconMap","rouletteIcon","pokerIcon","blackjackIcon","baccaratIcon","eliteLoungeIcon","gameShowsIcon","newGamesIcon","topGamesIcon","tripleEightExclusiveIcon","IconComponent","seoPage","onFilterClicked","buttonLabelRef","NewLiveCasinoArenaComponent","_topImageRef","updateAiRecommendedLiveGames","FilterButtonComponent","LIVE_CASINO_PAGE_WRAPPER","_renderLiveCasinoArenaNavbar","tablesConfigs","promotionalBannerConfig","NewLiveCasinoArenaModel","LiveCasinoArenaComponent","default","LiveCasinoArenaModel","ArenasService","_arenas","_loadArenas","_createArena","arenasConfigs","arenasWithoutFilterButton","BreadcrumbsItemComponent","noLinkClass","itemProp","itemScope","itemType","NonNavigatableBreadcrumb","NavigatableBreadcrumb","_url","_navigate","SiteMapNode","_urlParts","_children","_loadChildren","UriPath","toArray","ch","requestedUrlParts","_createChildrenBreadcrumbs","childBreadcrumbs","createBreadcrumbs","child","toFlatSiteMap","SiteMapService","_root","_flatSiteMapByUrl","_initSiteMap","uri","_setBreadcrumbs","_createBreadCrumbs","sitemap","breadcrumbs","uriPath","uriParts","MarketingService","sCut","_sCut","_sCutQueryParams","urlParts","getUrlWithoutSearchAndHash","parameterName","parameterValue","dlAsNumber","sCutData","additionalParams","testData","_convertParameterToNumber","dlp","_getDlp","encodeUriRecursive","sr","TestData","AdditionalParams","LanguageSwitcherItem","_executeOnClickJs","openSelf","_createCookie","sendFunnelParameters","appendSCutToUrl","createDomainCookie","onClickJs","Function","func","LanguageSwitcherSection","_fallbackTitleKey","_items","SelectedLanguageSwitcherItem","LanguageService","_defaultLanguageData","_lastUrlWithoutTheFragmentQueriedForLanguageSwitcher","_loadLanguageData","_isLanguageSwitcherEnabled","_setLanguageSwitcher","languageSwitcher","_updateLanguageSwitcher","getElementsByTagName","contains","textOverrides","_getDefaultTexts","_setTranslatedTexts","langSwitcherConfig","languagesSection","_extractLangSwitcherSection","languages","languageSettings","countriesSection","countries","countrySettings","items","itemsConfig","sectionConfig","fallbackTitleKey","cfg","cmsApi","getLanguageSwitcherConfiguration","isCustomLink","isCustomElement","SideMenuService","_linkAction","_setIsMobileMenuOpen","gameSearch","closeSearchResult","closeMobileLanguageSwitcher","flowResult","closeOverlay","isExternalLink","isInternalLink","_internalLink","_externalLink","proceedLink","tabState","useDirectLink","noConcatScut","openExternalBrand","isMobileLanguageSwitcher","SUGGESTED_CATEGORIES","OpenMembershipResponse","GameSuggestion","_gameInfo","_analyticsLabel","_index","_aiSortingType","aiSortingType","SearchLinkSuggestion","_linkConfig","_analyticsAction","GameSearchResult","_games","_suggestedCategories","_suggestedGames","SearchTitleBox","SearchBoxTitleComponent","SearchGamesListBox","SearchLinkBox","SearchNoGamesFoundDefaultBox","SearchNoGamesFoundCasino777Box","SearchNoGamesFoundBox","SearchGameItemBox","SearchMatchBox","HighlightSearchListItemComponent","searchText","removeSpecialCharacters","currentSearchText","beforeHighlightText","highlightText","numberOfSpecialCharacters","afterHighlightText","SearchTextWrapperBox","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","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","SESSION_STATUS","ExternalLinksLegacyStrategy","onPlayerAction","_onPlayerActionHandler","actionName","openCashier","registration","StraightToCashier","marketingData","sdkOpenParams","addCloseOption","priorityLevel","resolveByCallback","actionCallback","response","deposit","unknown","GNWP_SOURCES","PENDING_PLAY","rich","richPageUrl","PRIORITY_LEVEL","INTERNAL_OVER_EXTERNAL_LINK","externalBrandLink","stateOfResidenceIdentifier","prepareUrlForExternalBrand","tab","UseModernStrategy","ExternalLinksModernStrategy","_handlers","myAccount","openRegistration","openMembership","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","_openCashier","_playGame","cashierAction","_findNextActionOfType","actionType","next","isActionOfType","MyAccountDeepLinkAction","RedirectDeepLinkAction","TerminateDeepLinkAction","UploadDocumentDeepLinkAction","FreePlayDeepLinkAction","freePlayArriveSubscribe","onFreeplayVouchersUpdated","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","useSquareIconsForGames","themeDefinition","globalStyles","VoidCommunicationAdapter","openUrlInExternalBrowser","MiniOrbitService","_communicationAdapter","_onKickUserCount","_currentMiniOrbitConfig","_extractCurrentMiniOrbitConfig","splash","onSplashRemoved","onSiteLoaded","_reportAutologinResult","enableBasePathOverride","miniOrbitCommunicationAdapterFactory","createAdapter","onUserKicked","onAutologinSuccess","onAutologinFailed","currentLocationBasePath","miniOrbitConfigSection","basePaths","miniOrbitConfig","miniOrbitArenas","arenasHeaderButtons","openControlCenter","DialogConsumerContentDefaultBox","noPadding","disableFullscreenMobile","DialogConsumerContentCasino777Box","DialogConsumerContentBox","transparentBackgroundOpacity","iPhoneVer10","DialogOverlayDefaultBox","DialogOverlayMrGreenBox","gameModeRealBackground","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","HeaderService","_headerResizeObserver","_onHeaderResize","_headerElement","headerElement","_headerRegulationDataElement","stickToBottomTooltipModifier","phase","beforeWrite","fn","popperWidth","rects","popper","popperHeight","styles","elements","adaptive","strategy","clientWidth","arrow","offsetTooltipModifier","flipTooltipModifier","padding","preventOverflowTooltipModifier","IconTitleTextTooltipContainerBox","showCursor","IconTitleTextTooltipTextContainerBox","IconTitleTextTooltipTitleBox","IconTitleTextTooltipIconBox","SeparatorDefaultBox","Separator777Box","SeparatorBox","IconTitleTextTooltip","IconContainerBox","IOSAddToHomeShareIconBox","MessageBodyContainerBox","MessageBodyBoldContainerBox","IosAddToHomeScreenComponent","logoIcon","appIcon","iosShareIcon","iosShare","BRAND","onClicked","ProgressiveWebAppService","_clickSubscription","_isPwaOnIOSShownThisSession","_gameWasOpen","_toolTip","_onToolTipClick","closeTooltip","_tryToShowPwaInstall","_shouldAutoPrompt","pwaEvent","PWA_PROMPT_EVENT","setGlobalProperty","PWA_PROMPT_CALLBACK","PWA_INSTALLED_CALLBACK","_onAppInstalled","isUKOrIrl","shouldAutoPopup","PWA_SHOULD_AUTO_POPUP_LOCAL_STORAGE_KEY","_subscribeToMainScreenClick","_initIOSPwa","isSafari","_onBeforeInstallEvent","onBeforeInstallEvent","isIphone","pwaEnabled","_isIOSPwaEligible","_showIOSTooltip","currentDialogs","shownTimes","PWA_IOS_SHOWN_INSTALL_OFFER_COUNT","createOnBoardingTooltip","styling","textColor","borderColor","showCloseButton","invertCloseButtonColors","closeOnClickOutside","showOverlay","modifiers","onTooltipRendered","_onTooltipRendered","onTooltipClosed","hasGlow","shouldPrompt","isAppBannerUKorIRL","_unsubscribeToMainScreenClick","outcome","PWAManifestService","_orbitExtraProperties","pwaResources","_isPwaEnabled","_setManifestHrefInHead","_initIOS","manifestUrl","_addManifestIOSIconsInHead","_loadManifestJSON","manifestJson","iconInfo","_addLinkTagToHead","rel","linkDOM","sizes","linkTag","POKER_COMMUNCATION_OBJECT_NAME","PokerCommunicationAdapter","_pokerCommunicationObject","adapter","_pokerSupportsSoftLogin","kickUser","SPORT_COMMUNCATION_OBJECT_NAME","SportCommunicationAdapter","_showCasinoNavbar","status","_sportCommunicationObject","showCasinoNavbar","performUCAction","sendTechnicalEvent","cleanUp","onUserKickedSuccessCallback","onUserKickedErrorCallback","MiniOrbitCommunicationAdapterFactoryService","keyResolver","args","memoize","_memoize","LiveTableFeedsService","_liveTableUpdateSubscription","_getLiveCasinoGameRecommendationsForPlayer","getLiveCasinoGameRecommendationsForPlayer","engineType","_previousOpenTablesIds","_stop","_liveCasinoRecommendedGames","currentOpenTablesIds","_tablesData","tableData","IsOpen","arraysEqual","_setLiveCasinoRecommendedGames","GameTypes","Engine","currentFilter","_start","onLiveTableFeedsUpdate","_onLiveFeedsUpdate","OperationHoursStartTime","_convertTimeToLocalTimeZone","rouletteLastNumbers","RouletteLast5Numbers","rouletteLast5NumbersConverted","_manipulateFeedData","_sendEvent","_updateOpenTimeToLocal","_verifyRouletteLastNumbers","evoLiveFeedResponseTime","computeSplashTimeInSeconds","timeUTC","toLocalTime","toHoursAndMinutesString","filteredGameIds","_shouldSortGames","sortingOptions","numberOfSortingExemptGames","abTestingAiSortGamesLists","arenaHasAiSorting","startTime","currentDate","getCurrentDate","timeToOpen","gamesID","closeGamesArr","currentGame","_isGameOpenSoon","DrawerContentDecorator","_originalDrawerContent","_id","onClose","Drawer","itemIndex","getLastVisibleDrawerItemIndex","drawerItem","currentContent","currentDrawerContent","existingContentIndex","_drawerContentStack","contentIndexToRemove","_removeOneDrawerItems","clone","itemOnTheStackTop","_closeDrawerContentItem","_getNonMinimizedContents","nonClosableItems","drawerContent","DrawerService","_closeDrawers","DailyDealService","removeDailyDealIndicator","setDailyDealCampaignId","subscribe","_fetchDailyDealCampaign","onDailyDealRemoveIndication","dailyDeals","MarketingCampaignId","JackpotHandler","gradualIncreaseAmountHelper","onAuthChangeReaction","previousUpdateTime","gradualRealAmountInCents","isFastGradualIncreaseFinish","removeGradualIncreaseAmountHelper","jackpot","newState","createGradualIncreaseAmountHelper","updateAmount","amountInCents","useGradualAmountIncrease","setCurrentJackpotAmount","frequency","gradualIncreaseHelperFactory","create","updateAmountFunction","amount","restart","JackpotsWithStateService","updateCurrentJackpots","readJackpotsData","onJackpotsWithStateUpdate","jackpotsAddition","jpData","setJackpotData","rawJackpots","jpId","rawJackpot","Jackpot","readJackpotState","jpType","Casino777","Dark","JackpotsService","onJackpotsAmountsUpdate","jackpotsAmounts","amounts","currentJackpotAmounts","abTestingFeatureIsValid","featureObject","featureProperties","AbTestingFeatureDataProviderService","_playersLikeYouGamesListTypeId","_setIsVideoLiveStreamEnabled","_setIsStaticVideoListEnabled","_setIsBecauseYouPlayedEnabled","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","onShowGamePopup","openAfterLoginGamePopup","menuLinks","subTitleText","descriptionText","popupTitleText","onCloseHandler","gamePopupApprovedCallback","welcomeTitleText","suggestedGameText","yourActivityText","_gameMap","openPopup","getMenuItems","USER_GROUP_TO_HEADER_ARENAS_MAPPING","JACKPOTS","EXCLUSIVE888","GAME_SHOWS","CASINO_GAMES","LIVE_BLACKJACK","LIVE_ROULETTE","CASINO_SKILL","CASINO_SOFT","SCRATCH_CARDS","CASINO_MIXT","HomepageService","_setHeaderArenas","getHomePageHeaderArenas","group","_orderHeaderArenas","_updateNewAddedGames","_setNewAddedGames","_newAddedGames","newGamesCount","arenasNames","headerOrderedAreans","getHomePageHeaderArenasByUserOrientation","_sendUserOrientationArenasAnalytics","groupName","selfUpdatedByNewestGamesList","getSelfUpdatedByNewestGamesList","seenGames","_getNewAddedGamesFromLocalStorage","newGames","gi","_resetNewAddedGames","_setNewAddedGamesFromLocalStorage","_getNewAddedGamesLocalStorageKey","miniBannerComponentIdFromAB","miniTopBannerComponentID","miniBannerComponentIdFromConfig","topBanner","bannerAdminIDFromConfig","preferredStyle","SmallTiles","useMiniTopBanner","BigTiles","topBannerConfig","getHomePageTopBannerHeight","_getMiniBannerComponentID","AnalyticsDataLayerService","_push","intent","login_session_id","user_type","rm_status","rg_risk_level","sub_brand_name","sub_brand_id","registration_country","registration_date","product_package","SessionCooldownPopupBox","SessionCooldownPopupTextBox","DialogTextBox","SessionCooldownPopupTimerBox","DialogHighlightedTextBox","SessionCooldownPopupTimerRemainingBox","SessionCooldownPopupComponent","_prependZero","countdown","minutes","seconds","UK_TSR_OPTIONS","SESSION_COOLDOWN_STORAGE_KEY","SessionColldownService","_sessionCooldownConfig","getSessionCooldownConfig","_cooldownData","endDateMs","_dialogHandler","_timerUpdateEventHandler","_realityCheckOpenedEventHandler","_realityCheckClosedEventHandler","featureEnabled","_onUserLogin","_onUserLogout","_checkForValidStorageCooldownData","onSessionTimerUpdate","_handleTimerUpdate","onRealityCheckClosed","_showCooldownDialog","onRealityCheckOpened","_startSessionCooldown","_closeCooldownDialog","_disposeStorageCooldownData","_writeStorageCooldownData","_setCooldownCountdownValue","cooldownTime","_resetCooldownCountdown","_cooldownCountdown","_loadStorageCooldownData","currentTimeMs","cooldownData","timeMs","subtract","fromSeconds","_endSessionCooldown","_decreaseCooldownCountdown","MediaQueryListener","media","mediaQueryList","matchMedia","onChangeEventListener","onchange","removeListener","mQueryEventData","isMatched","matches","MediaQueryService","mediaQueryListeners","tempRecords","mediaQueries","mediaType","sExact","mExact","lExact","xxl","anyHover","anyHoverNone","pointer","pointerFine","pointerCoarse","pointerNone","anyPointer","anyPointerFine","anyPointerCoarse","anyPointerNone","OrbitApi","ORBIT_VERSION","fullVersion","gamesTypes","errorLogs","executeDeepLink","MAX_FIELD_SIZE","MAX_FIELDS_COUNT","fieldsCount","foundGames","missingGames","gameImage","gameImageAlt","ToolsService","uuidv4","VerticalGamesListBox","HeaderBox","GamesListBox","GameDetailsBox","GameDividerBox","ButtonWrapperBox","NO_JACKPOT","GameDetailsNameBox","GameDetailsJpBox","VerticalGamesListGameComponent","displayJackpotInfo","HeaderTitleBox","HeaderCloseButtonBox","DjWidgetBox","VerticalGamesListComponent","_onJackpotWidgetClicked","_closeDrawer","widgetConf","isMobileLandscape","_shouldMinimizeJackpotWidget","_shouldMinimizeWidget","scrollTop","onScroll","_onScroll","_renderHeader","_renderGamesList","SEO_CATEGORY","VerticalGamesListService","GAME_GROUP_COOKIE","UserGameOrientationService","_updateUserGameOrientation","orientation","userGameOrientationEnableConfig","User","enableUserGameOrientation","gameGroupCookie","_setUserOrientation","getUserGameOrientation","gameOrientation","_setGameOrientationCookie","setDate","getDate","ApiControllerBase","route","_getRoutePrefix","isUSRegulation","_buildApiRoute","BonusManagerController","_httpPost","ABTestingController","InsightController","req","NetPositionController","OpenSessionsController","RestrictionRulerController","clientRequest","ThirdPartyFreePlayController","UserEligibilityController","GameController","HistoryController","UserController","ApiService","bonusManagerController","aBTestingController","netPositionController","openSessionsController","restrictionRulerController","thirdPartyFreePlayController","userEligibilityController","historyController","TsrWithDropdownDefaultBox","TsrWithDropdownBox","TsrWithDropdownOptionSelectorBox","TsrWithDropdownMainTextDefaultBox","dialogHighlightedTextMixin","TsrWithDropdownMainTextCasino777Box","TsrWithDropdownMainTextBox","TsrWithDropdownSelectorContainerBox","TRACKING_UK_TSR_OPTION_NAMES","UK_TSR_RESUME_GAME_OPT","UK_TSR_CONTINUE_OPT","UK_TSR_STOP_REMINDERS_OPT","UK_TSR_REVIEW_REMINDERS_OPT","UK_TSR_HISTORY_OPT","UK_TSR_CLOSE_GAME_OPT","UK_TSR_LOGOUT_OPT","TSR_OPTIONS_BY_TYPE","SESSION_TIMER","GAME_TIMER","TimeSpentReminderWithDropdownComponent","_businessCorrelationId","_renderLoggedInText","playingTimeWithoutUnits","playingTime","_renderSelectorContainer","_renderSelect","selectedOption","_updateSelection","timerType","tsrOption","selection","_actionAlreadyTriggered","_sendActionDataTracking","_closeDialogBox","gameRouteHandler","_onReviewReminders","_onStopFurtherReminders","onStopReminders","_sendActionDataToElastic","messageActionTaken","CGPEventCategory","CGPEventAction","setTarget","messageDisplay","displayMessageID","DISPLAY_MESSAGE_IDS","timeSpentReminder","displayMessageName","GeoPermissionsPopupComponent","_onOkPressed","onOkPressed","headerText1","headerText2","TsrWithBalanceBox","TimeSpentReminderWithBalanceComponent","_executeContinueButtonAction","_executeCloseGameButtonAction","_getFormattedSessionBalance","balanceAbsoluteValue","totalNetLoss","_getFormattedPlayingTime","_getSessionBalanceText","isInGame","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","OmgProxyService","setNumberOfAwaitingMessages","onOmgAwaitingMessagesUpdated","updatedNumberOfMessages","numberOfAwaitingMessages","STANDARD_TOPIC_HEADER","publisher","MessageBrokerService","channels","MessageBroker","identity","topics","loginSuccess","publish","logoutSuccess","getCasinofiedDeviceInfo","getCasinofiedDeviceType","OS","isNative","browserType","getCasinofiedCommonUserInfo","userMode","regulationTypeID","isVip","isPromotionPermitted","RMS","userFirstName","userLastName","getCasinofiedGeoInfoParams","geoLocationInfo","timeZoneUTCOffset","loginIp","ISP","isp","proxyType","stateID","stateId","getCasinofiedCommonAppContextParams","productPackageFromID","languageCode","currencyCode","gaClientID","DeviceType","Tablet","SmartPhone","PC","CasinofiedZoidApplicationAdapter","applicationSdk","clonedInitParams","messageBrokerChannels","zoidInitParams","onInitSucceeded","payload","_onInitSucceeded","onInitFailed","_onInitFailed","openApp","_openApp","_onClose","performAction","_onPerformAction","closeIntentResult","_onCloseIntentResult","closeIntent","navigation","session","appInitSucceeded","appInitFailed","appClosed","CasinofiedRegularApplicationAdapter","applicationObject","messageBroker","launchInfo","applicationContext","CasinofiedApplicationBase","openAppData","_componentFactory","appSdkLoader","useZoidIntegration","appId","_openAppData","_sessionID","_topicsSubscriptions","_openPromise","_applicationAdapter","_isDisposed","_miniatureComponent","containerID","rootElement","firstChild","_appInitFailed","_isAnonymousModeAllowed","_setIsLoading","loadAppSdk","widgetUrl","appShowStartTime","isDisposed","timeoutValue","widgetLoadTimeoutMS","openTimeout","_setAppInitFailed","_unsubscribeFromTopics","onAppInitTimeout","appInitParams","errorDescription","_isCurrentApp","sessionID","onAppInitSuccess","loadingTime","onAppInitFailed","getAppInitParamsStartTime","_getAppInitCommonParams","commonParams","onGetAppInitParams","loadSubject","duration","_showApp","sdkObjectName","appObject","_getAppSdkObjectName","_createApplicationAdapter","onAppInitRequest","_getInitAppParams","_getUserInfo","geoInfo","productPackageToID","productPackageID","deviceInfo","_isMinimized","componentData","_getMiniatureComponentID","_setIsMinimized","waitForAppToOpen","createComponent","show","minimizeApp","appCloseParams","closeReason","appInitResultReportingDetails","appInitResult","reportData","reportDuration","appInitRequest","InsideDrawerApplication","_drawerContentHandler","_retryOpen","Message","retryButton","_shouldMinimizeOnDrawerClose","_publishMinimizeApp","Overlay","_getOnCloseReason","retryCloseDrawerMessage","ChatApplication","chatSpecificParams","SOF","OMG","CasinofiedAppSdkLoader","_loadedAppsSDKs","appLauncherConfigs","appConfigs","sdks","sdkloadStartTime","loadScripPromise","CasinofiedBubbleComponent","_floatingBubbleHandler","floatingBubbles","addBubble","_containerID","_componentID","_appSdkLoader","_displayComponent","componentController","_componentController","UnifiedCashierZoidAdapter","_onCloseAlreadyCalled","DepositWidgetApplication","componentFactory","PaymentRedirectFocusTitleBox","PaymentRedirectFocusDefaultBox","PaymentRedirectFocusBox","PaymentsRedirectFocusComponent","redirectApp","mftName","_renderButtonContainer","PaymentsRedirectApplication","_focusDialogHandler","_containerElement","psRedirectFocusDialog","paymentsRedirectIcon","sendLogLevelOnly","FullCashierApplication","_onExternalLinkClosedSubscription","_onExternalLinkClosed","linkSource","SessionType","onExternalLinkClosed","FullCashier","appData","CashoutWidgetApplication","TransactionHistoryApplication","CustomerRelationsApplication","featureType","sourceAppID","CustomerRelations","FreeToPlayBonusGamesApplication","_bonusWheelContainerElement","setIsPromotionOpened","HelpCentreApplication","getInitAppParamsForControlCenter","getAppSpecificParamsForControlCenter","initialSource","ExternalLinksZIndexes","ControlCenterFullApplication","analyticsHelper","setCorrelationID","setSource","trackAppOpen","trackCloseExternal","trackAppInitSuccess","trackAppInitFailed","ControlCenterMiniApplication","trackCloseInternal","ControlCenterAnalyticsHelper","eventNames","sessionStatus","_pushSafezoneEvent","ready","closeExternal","closeInternal","safezoneEvent","CasinofiedAppFactory","CRChat","OpenBanking","UnifiedCashier","Redirect","UnifiedCashout","TransactionHistory","CasinoBonusGameWidget","ControlCenterFull","ControlCenterMini","CasinofiedAppLauncherService","_appFactory","_onBeforeOAuthStateChangedHandler","_closeAllApps","_openAppHandler","_onBrowserUnload","_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","actionData","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","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","performEligibility","_waitForUserToBeLoggedIn","LoginCountry","StateID","ntsEligibility","errorID","hasErrors","abEligibility","eligibilityData","_getCashierWidgetEligibility","_getWidgetEligibility","transactionHistoryWidget","transactionHistoryWidgetEligibility","depositWidget","cashoutWidget","cashoutWidgetEligibility","depositEligibility","_reportEligibilityEvents","openDepositWidget","promoCode","_getCashoutWidgetEligibility","openCashoutWidget","_getTransactionHistoryWidgetEligibility","openTransactionHistoryWidget","cashOutEligibility","_openCashierExternalLink","LIMIT_NAMES","CIPropRead","getProperty","ExternalLinkHandlerBase","getStringProperty","_parseMessageData","getNumericProperty","ExternalLinkIframeBox","ExternalLinkIframeContainerBox","maxWidth","maxHeight","ExternalLinkCloseButtonBox","ExternalLinkCloseButtonWrapperBox","ExternalLinkIframeComponent","_captureIframeElementRef","onIframeCreated","_onCloseClick","allow","getIframeAllowAttributeValue","allowFullScreen","ExternalLinkIframeRenderer","iframeElement","formElement","urlBuilder","searchParams","paramValue","paramName","formField","submit","handleIframeCreation","iframeElementRef","httpVerb","_formPostInIframe","ExternalLinkInIframeHandlerBase","_handlePostMessage","renderer","contentWindow","_onPostMessageReceived","_renderer","_closeExternalLinkDialog","addSdkEventSubscription","onPostMessage","_getGnwpSource","_createRenderer","_getIframeRendererParams","RegistrationExternalLinkHandler","MEMBERSHIP","_getGnwpUrl","_showExternalLinkDialog","getRegistrationUrl","Membership","_shouldHideCloseButton","_extractActionId","_openDeposit","CASHIER_ACTIONS","_openLoginForm","_onRegistrationCompleted","UserInfo","SourceProductPackage","registrationCookiesData","_storeRegistrationCookie","_openUploadDocumentsV4","_openBankId","_openDownloadAppPage","channelElement","uploadDocumentsButton","registrationCompleted","Store","set","MyAccountExternalLinkHandler","MY_ACCOUNT","getMyAccountUrl","MyAccount","_openQuickDeposit","promCode","_extractGameId","originDeepLinkID","_openRichPage","_openSport","internalUrl","_extractUrl","_openInternalUrl","externalUrl","_openExternalUrl","Header","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","_activeLimitToasters","_toasterDisplayDurationSec","_getPlayerLimits","getPlayerLimits","limitsDataRaw","depositLimitRaw","displayableLimits","limit","limitName","DEPOSIT_LIMIT","limitPeriods","playTimeLimitRaw","PLAYTIME_LIMIT","bankrollLimitRaw","BANKROLL_LIMIT","_handleUserLogout","_showLimitsToaster","hasData","Type","Title","SubTitle","_getFormatedLimitsText","DurationInSec","MobileImage","PCImage","onLiveGameSwitched","typeId","unit","formatedString","period","_getIntervalLabelFromType","_getFormatedTimeUnit","limits","_getFormatedWithSeparators","_getFormatedDepositLimitForType","_getFormatedPlayTimeLimitForType","_displayDepositLimits","_displayPlayTimeLimits","_displayBankrollLimits","PlayerBurnoutService","_isRealMoneyPrize","_burnoutMessageEventSubscription","_omgDisplayedEventSubscription","_gameShowEventSubscription","_gameCloseEventSubscription","_currentlyDisplayedOmgs","_onAuthStateChange","renderAnimation","_onOmgDisplayedEvent","omgData","showOmg","checkIfOmgDisplayed","PlayerBurnout","isRealMoneyPrize","onBurnoutMessageReceived","_onBurnoutMessageReceivedEvent","onOmgDisplayed","OfferBase","offerConfig","_offerShown","sessionStorage","_getSessionStageKey","offerShown","WelcomeOffer","linkToOfferIcon","WOFShellBox","wheelOfFortune","shell","rotateBackward","rotateStarting","rotateFullRotation","rotateFinish","WOFColorsBox","showSpin","WOFWrapperBox","WheelOfFortuneComponent","enableWheelOfFortuneAnimation","WheelOfFortuneOffer","hasWheelOfFortunePromotion","LinkToOfferBannerBox","RegistrationOffer","isRegistrationOfferEnabled","PlayerOfferingsService","_allOffers","_shownOffer","_registrationPopupTimerId","_preventShowingRegistrationPopupThisDemoSession","isEnabledFromConfig","PlayerOfferings","isWheelOfFortuneEnabled","hasWheelOfFortuneConfigSection","hasRegistrationOfferConfigSection","registrationOffer","enableAnimation","_hasWheelOfFortunePromotion","userBalance","_setWOFEnableAnimation","_updateWheelOfFortuneAvailability","_resetShownFlagForAllOffers","welcomeOfferConfig","_welcomeOfferConfig","currentPopup","_updateOfferToShow","onPromotionsChanged","Cid","IsPromotionDisplayedInClient","listenForLastOpenDemoGame","_showRegistrationPopup","_initPopupTimer","shouldBeVisible","welcomeOffer","updateConfig","offers","_getAllOffers","selectedOffer","_setCurrentLinkOffer","getEligiblePromotionCodes","promoCodes","_fetchUserHasWheelOfFortune","hasWheelOfFortune","_setHasWheelOfFortunePromotion","_renderBanner","_setCurrentPopup","loadPixi","PIXI","createPixiApplication","Application","backgroundAlpha","antialias","forceCanvas","force2DCanvasContext","contextLostHandler","stop","_e","selfDestroyOnContextLost","LocalStorageKeys","PixiAppService","_pixiAppCreatorWithWebGlManager","webGlContextManager","makeCreator","resourcesUrls","loader","load","GameAnimatedIconsManagerService","intersectionObserver","observedTargets","isGameOpened","intersectionCallback","VIEWPORT_EXIT","selectAndLoadAnimations","debounceTimeout","selectionRunning","selectionRunAgainNeeded","alreadyRunningAnimationCount","eligibleTargets","remainingSlots","shuffle","loadAnimatedIcon","delete","WebGLContextManagerService","_activeContexts","creatorFn","webGl2Context","getContext","webGl1Context","isContextLost","EXIT_POPUP_DEFAULT_CONFIG","EXIT_POPUP_LOCAL_STORAGE_KEY","ExitPopupService","_numberOfAppearancesInSession","_sessionChance","_initDataFromLocalStorage","_setExitPopupDataInLocalStorage","_showExitPopup","closedGameType","_updateMessageChance","recommendedGame","_dontShowAgainGAEvent","dontShowPopupAgain","analyticObject","_calcRandomChance","randomChance","ceil","_isMessageCanBeShown","_openExitPopupMessage","playedGameType","_getCorrelatedGame","correlatedGame","_onPopupClosed","_onCloseButtonClicked","_onOpenRealGame","_clickDontShowPopupAgain","exitPopUpData","_getExitPopupDataInLocalStorage","numberOfAppearancesInSession","chance","sessionChance","newChance","exitPopupData","TooltipModel","tooltipService","_onDocumentClickHandler","tooltipContainer","_domEventSubscription","_autoCloseTimeout","_popperInstance","attachTo","elementToAttach","_getElementToAttach","createPopper","_createTooltipPopper","ev","removeTooltip","OnBoardingTooltipModel","orbitOverlayConsumersCount","countCurrentConsumers","sdkHasOpenOverlays","areRunningApps","isThereRunningApps","areOpenDialogs","TooltipService","toolTips","toolTipModel","_setDefaultTooltipOptions","tooltipModel","HistoryPaginatorBaseModel","pageSize","_numberOfHistoryDays","_nextPageIndex","numberOfDays","_resetPaging","loadNextPage","records","_pages","fromLastDays","pageNumber","nextPage","requestKey","RequestKey","minDate","MinDate","maxDate","MaxDate","serverResponse","notInLayoutGames","GameHistoryData","record","_getGameTypeFromRecord","hasMoreRecords","_createNextPageRequest","_getNextPage","_getGamesInfo","newRecords","recordData","companies","getLegacyCompanyByName","company","_createRecordModel","_getRoundIdFromRecord","PagingData","HistoryRecordBaseModel","gameImageInHistoryPage","_isDetailHistorySupported","canPlayGame","UserGamingHistoryRecordModel","DateInTimeZone","formatHistoryRecordDateTime","_gameSessionID","_participationTicketID","participationID","GameId","IsSupportDetailedHistory","_isDetailHistoryAllowedOnCurrentPlatform","supportsHistoryMoreDetails","IsBigWin","FreePlayCurrentAmount","FreePlayWinningAmount","_formatValue","BetAmount","OriginalWinningsAmount","ProfitAmount","AvailableMoneyPerOffering","_isFreePlayRound","_getFreePlayAmounts","_getRealMoneyAmounts","AdditionalData","AAMSGameSessionID","AAMSParticipationTicketID","AllowedPlatformType","supportsDetailHistory","History","historyGameParams","gameRoundId","gameRoundDate","gameRoundDateInTimeZone","historyRecordData","UserGamingHistoryPaginatorModel","getHistory","GameTypeId","SessionGamingHistoryRecordModel","TotalBets","TotalWins","SessionBalance","SessionEndDateTime","GameSessionId","SessionGamingHistoryPaginatorModel","getGameSessionHistory","GamingHistoryService","maxPageSize","CompaniesService","companyIdentifier","_getCompanyConstructor","CompanyConstructor","getCompany","applyRegulation","BECAUSE_YOU_PLAYED_LAST_REAL_GAME_LOCAL_STORAGE_KEY","BecauseYouPlayedService","_lastPlayedGames","_getLastPlayedGamesFromLocalStorage","lastPlayedGameByArena","_createDefaultPlayedGameByArenaObject","_setLastPlayedGame","_resetLastPlayedGames","_updateCurrentBecauseYouPlayedGames","currentValue","lastPlayedGameType","lastPlayedGame","_createEmptyLastPlayedGamesList","filterGamesByArenaType","lastGamePlayedGameTypeForArena","lastGamePlayedForCurrentArena","_getLastPlayedGameTypeForArena","_setCurrentBecauseYouPlayedGames","ReasonIsNotEligible","RunningGameBrowserTabController","_activeGameInAnotherTabDetectionTimer","_detectActiveGameInAnotherTab","isGameRunningInAnotherTab","currentRunningGame","_setActiveGame","_onGameClosed","activeGame","_currentBrowserTabId","_activeGameTabId","currentRunningGameTab","currentRunningGameType","GameLoadingIndicatorBaseModel","HybridEmbeddedGameLoadingIndicatorRootBox","HybridEmbeddedGameLoadingIndicatorHeaderBox","HybridEmbeddedGameLoadingIndicatorContentBox","HybridEmbeddedGameLoadingIndicatorSpinnerBox","HybridEmbeddedGameLoadingIndicatorProgressCircle1Box","HybridEmbeddedGameLoadingIndicatorProgressCircle2Box","angle","HybridEmbeddedGameLoadingIndicatorProgressCircle3Box","LoadingCircleLargeIcon","gradientUnits","x1","y1","x2","y2","gradientTransform","stopColor","stopOpacity","accumulate","additive","attributeType","calcMode","dur","repeatCount","to","HybridEmbeddedGameLoadingIndicatorComponent","_onCloseButtonClick","closeLoadingIndicator","totalPackages","packagesStatus","currentPackage","_renderPackageDownloadStatusLabel","downloadPercentage","_renderConnectingSpinner","_renderProgressIndicator","TOASTER_TIMEOUT","HybridEmbeddedGameLoadingIndicatorModel","_slowConnectionToasterTimer","_showToaster","MessageID","TIMED","ON_DEMAND","ON_DEMAND_CATEGORY","totalSeconds","_updateProgress","percentage","numberOfPackages","_clearToasterTimer","onHybridEmbeddedGameLoadingIndicatorUpdateV1","onHybridEmbeddedGameLoadingIndicatorUpdateV2","statusBar","closeGameLoadingIndicator","hybridGameLoadingIndicatorClosed","WebAppGameLoadingIndicatorComponent","WebAppGameLoadingIndicatorModel","GameRunnerService","gameTabController","_runGameStarted","_reOpenPendingGame","GAME_FRAME","persistedGameParams","SessionStorageKeys","currentGameParams","initialGameParams","onDepositWidgetClosed","_refreshCurrentGameBalance","gameCommunicationChannel","supportsBalanceRefresh","refreshBalance","initialRunGameParams","_openHistoryGame","_logOpenGameError","_showGameOpenError","messageText","error_code","getGeneralErrorMessage","errMsgToLog","logError","_runGame","openDemoGame","loadingIndicator","gameLoadingIndicator","Continue","_closeCurrentRunningGame","_setGameLoadingIndicator","_createGameLoadingIndicator","getRegulatedCompany","_setCurrentRunningGame","createWaitForClosePromise","triggerLegacyGameOpenEvent","waitForGameToClose","triggerLegacyGameCloseEvent","freePlayContext","isFreePlay","stopAutoplay","resumeGamePlay","gameInternalRealityCheckInterval","getRealityCheckExpectedByTheGame","expectedValueByTheGame","shouldShowRealityCheckMessageWhileGameIsOpen","shouldShowTimeLimitMessageWhileGameIsOpen","HybridService","gameUrl","prepareGameUrl","getCompiledGameVersion","executeWaitForHybridGameStep","navigateToOnDemandStandalone","isNativeSupportSecondWebView","isOnDemandHtmlGame","isOnDemandStandalone","getOnDemandOrigin","showHybridAlert","StaticVideoPlayingService","posterImage","StaticVideoPlayer","SessionStorageService","StorageServiceBase","CookiesService","expiration_date","toUTCString","setFullYear","getFullYear","cookie","FreePlayGameModel","voucher","VoucherBaseModel","voucherData","_voucherData","ID","FreePlayTypeId","CompanyID","gamesDictionary","GameTypeIDList","CurrentBalance","freePlayGames","ExpirationDate","isExpired","newVoucherData","OriginAmount","_formatVoucherAmount","timeToExpiration","timeToExpirationRoundedToSeconds","isCloseToExpiration","expiration","FreePlayVoucherModel","freePlay","backgroundTypeFP","typeFP","JackpotFreePlayVoucherModel","backgroundTypeJFP","typeJFP","FreeSpinsVoucherModel","SpinBetAmount","backgroundTypeFS","typeFS","JackpotFreeSpinsVoucherModel","backgroundTypeJFS","typeJFS","VouchersProviderBase","FreePlay","FreeJackpotPlay","FreeSpin","FreeJackpotSpin","Tripe8FreePlayVouchersProvider","_cgpEventsSubscriptions","_onFreePlayBatchAddedHandler","vouchers","existingVoucher","_findVoucher","updateVoucherData","voucherModel","_createVoucherModel","_onFreePlayBatchUpdatedHandler","_onFreePlayBatchRemovedHandler","voucherIds","v","onFreePlayBatchAdded","onFreePlayBatchUpdated","onFreePlayBatchRemoved","voucherId","FREE_PLAY_TOOLTIP_DISPLAYED_NUMBER","FREE_PLAY_TOOLTIP_IS_DISPLAYED_IN_SESSION","FreePlayTooltipNotificationHandler","freePlayService","_freePlayIndicatorElementRef","_alreadyNotifiedVouchers","userVouchers","hasNewVouchers","_showTooltipOnFreePlay","_closeTooltip","hasVouchers","_toolTipDisplayCount","_toolTipWasDisplayedOnCurrentSession","_shouldShowTooltip","translateService","FPGiftIcon","giftIcon","_onTooltipClicked","ThirdPartyVouchersProvider","onThirdPartyVouchersReceived","FreePlayService","_toolTipHandler","_setVoucherProviders","setFreePlayIndicatorDOMElementRef","newProviders","_vouchersProviders","vp","allVouchers","provider","isValid","v1","v2","hasGame","refreshVouchers","RestrictionsService","FreeToPlayService","_checkEligibilityPromise","_isEnabled","_checkEligibility","_setIsPromotionEligible","shouldShowPromotion","crm","isPromotionRestricted","_isPromotionEligible","_isPromotionOpened","isOpened","CASINO_BONUS_GAME_WIDGET","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","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","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","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","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","_omgProxy","_jackpotsWithState","_jackpots","_gradualIncreaseHelperFactory","_walletProxy","_safezone","_safezoneObjectFactory","_tools","_sessionCooldown","_mediaQuery","_api","_orbitComponentToSdkAdapter","_messageBroker","_appLauncher","_actionHandler","_floatingBubbles","_restrictionRuler","_redTiger","_casinofiedAnalytics","_liveStreamPlaying","_staticVideoPlaying","_httpWithRequestTimeMeasurement","_cashier","_playerOfferings","_qaEnvironmentPopUpBlockerService","_limitsToaster","_burnoutService","_pixiAppService","_gameAnimatedIconsManagerService","_webGlContextManagerService","_gamingHistory","_tippingHistory","_companies","_freeToPlayService","_gameRunner","_hybrid","_sessionStorage","_cookies","_freePlay","_restrictions","_gnwp","_scriptLoader","_adminBanner","_sessionTimer","_geoLocation","_crm","_specificDialogs","_stateOfResidenceIdentifier","_loyaltyIndicator","SplashService","forceInit","fireOrbitInitComplete","LogoContainerDefaultBox","LogoContainerCasino888Box","logoBackground","logoDecoration","LogoContainerCasino777Box","LogoContainerBox","LogoImageDefaultBoxCasino777","LogoImageDefaultBoxHarringtonDelaware","LogoImageDefaultBallysDover","LogoImageDefaultWSOP","LogoImageDefaultHarrash","LogoImageDefaultBox","LogoImageBox","LogoVipImageDefaultBox","LogoVipImageDefaultBoxCasino777","LogoVipImageDefaultBoxHarringtonDelawareBallysDover","LogoVipImageSIBox","LogoVipImageDefaultBoxHarrash","LogoVipImageDefaultBoxWSOP","LogoVipImageBox","LogoBox","withAnalytics","goHome","useDarkLogo","logoURL","TheLogoImageBox","_getLogoImageURL","shownData","selectedUserInfo","useSpanWrapper","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","IndicatorBadgeBox","IndicatorTextDefaultBox","IndicatorTextCasino777Box","IndicatorTextBox","IndicatorIconWrapperDefaultBox","IndicatorIconWrapper777Box","IndicatorIconWrapperBox","ProfileBoxMessagesIndicator","_captureElementRef","indicatorIsActive","indicatorActive","iconComponent","numberOfMessagesIsDefinedAndGreaterThanZero","hasAwaitingMessages","OmgIndicator","omgProxy","notificationIcon","FreePlayIndicatorComponent","freeplayIcon","ProfileMessagesDividerDefaultBox","ProfileMessagesDividerCasino777Box","ProfileMessagesDividerHarrahsWsopBox","ProfileMessagesDividerBox","ProfileButtonsDefaultBox","ProfileButtonsHarrahsWsopBox","ProfileButtonsBox","ProfileCashierButtonDefaultBox","ProfileCashierButtonCasino777Box","ProfileCashierButtonCasino888Box","ProfileCashierButtonBallysDoverBox","ProfileCashierButtonHarringtonBox","ProfileCashierButtonWsopBox","ProfileCashierButtonHarrahsBox","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","SideMenuHorizontalLineBox","horizontalLineBackgroundColor","horizontalLineBackgroundImage","MobileMenuItemsContainerBox","RelatedSitesWrapperBox","RelatedSiteLinkBox","RelatedSiteLink","StateSelectorButtonComponent","currentState","twoCharsIcon","usaMapIcon","color","handleClick","MobileStateSelectorMenuItemComponent","_openStateSelectorPopup","SideMenu","_renderMobileStateSelector","shouldDisplayStateSelectorButton","linkBlocks","menuLinksBlockOrder","_renderSideMenuSection","_renderMobileMenuElements","_renderBottomMenuSection","_renderBrandList","_renderRelatedSitesLinks","_renderInsideOrbitMenuContainerMobile","_renderStoreButton","shouldDisplayHelpLink","helpLinkMobile","shouldDisplayLanguageSwitcher","shouldDisplayStateSelector","_renderMobileHelp","_renderMobileLangSwitcher","brand_sites","sites","relatedSited","related_sites","LanguageSwitcherDropdownDefaultBox","LanguageSwitcherDropdownBox","LanguageSwitcherListDefaultBox","LanguageSwitcherListBox","h4","LanguageSwitcherTitleDefaultBox","LanguageSwitcherTitleBox","LanguageSwitcherListItemDefaultBox","LanguageSwitcherListItemBox","LanguageSwitcherItemLabelDefaultBox","isSelected","LanguageSwitcherItemLabelBox","isChecked","LanguageSwitcherItemCheckboxDefaultBox","LanguageSwitcherItemCheckboxBox","LanguageSwitcherSectionComponent","_selectItem","makeCurrent","htmlId","isCurrent","_renderOneItem","LanguageSwitcherSectionSeparatorDefaultBox","LanguageSwitcherSectionSeparatorBox","LanguageSwitcherDropdownComponent","_renderSection","MobileMenuHeaderDefaultBox","MobileMenuHeaderSiBox","MobileMenuHeaderBox","MobileBackDefaultBox","MobileBackSiBox","MobileBackBox","MobileBackLabelBox","MainNavCanvasDefaultBox","MainNavCanvasCasino777Box","MainNavCanvasSIBox","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","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","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","UserMenuCloseIconCasino777DefaultBox","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","BurgerIconDefaultBox","BurgerIconCasino777Box","BurgerIconSiBox","BurgerIconBox","BurgerMenuContainerBox","MobileBurgerMenuComponent","HeaderLanguageSwitcherBox","HeaderLanguageSwitcherComponent","_timer","_toggleDropdown","_clearCollapseTimeout","_colapseDropdown","_startCollapseTimeout","earthGlobeIcon","DepositHeaderButtonBox","depositHeaderIcon","DepositHeaderButtonComponent","NavbarSeparatorDefaultBox","NavbarSeparatorSiBox","NavbarSeparatorBox","HeaderNavbarContainerDefaultBox","nav","HeaderNavbarContainerWsopBox","HeaderNavbarContainerHarrahsBox","HeaderNavbarContainerCasino777Box","HeaderNavbarContainerSIBox","HeaderNavbarContainerBox","HeaderNavbarMobileWrapperDefaultBox","HeaderNavbarMobileWrapperSiBox","HeaderNavbarMobileWrapperBox","HeaderNavbarLeftContainerBox","HeaderNavbarRightContainerBox","HeaderComponent","_captureHeaderRef","setHeaderElement","_headerConfig","header_buttons","safeZoneIcon","help","_renderDeposit","secondaryLogoUrl","componentIDs","_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","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","TooltipArrowBox","TooltipCloseButtonBox","invertColors","TooltipContainerBox","isAnimated","TooltipGlowDefaultBox","TooltipGlow777Box","TooltipGlowBox","TooltipContentBox","ToolTipComponent","toolTip","onToolTipRendered","currentTooltip","shouldShowCloseButton","ToolTipContainerComponent","GameLoadingIndicatorRootBox","isHidden","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","LobbyHeaderBox","LobbyHeaderTitleDefaultBox","LobbyHeaderTitleSIBox","LobbyHeaderTitleBox","LobbyHeaderLinePCBox","LobbyHeaderLineMobileBox","LobbyHeaderLineDefaultBox","LobbyHeaderLineCasino777Box","LobbyHeaderLineBox","LobbyHeaderButtonsContainerBox","LobbyHeaderDefaultButtonsBox","LobbyHeader777ButtonsBox","LobbyHeaderButtonsBox","LobbyHeaderTitleContainerBox","LobbyHeaderComponent","handleSearchClick","renderingOptions","lobbyHeaderClasses","SearchIcon","searchIcon","_renderFiltersIndicatorNextToTheTitle","_renderFiltersIndicatorUnderTheTitle","Svg","svg","flipOnRTL","SvgIcon","defaultSize","Px","Percent","ratio","version","xmlns","Load","LoadingDotBox","animationDelay","LoadingDotsBox","LoadingDotsComponent","SeoBreadcrumbsContainerBox","SeoBreadCrumbsComponent","SdkComponent","_elementRef","_renderSdkComponent","_sdkComponentRenderer","sdkComponentFactory","sdkComponentRenderer","_disposeSdkComponent","sdkProps","_passOnClick","ClockComponent","datetime","ClockComponentBox","_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","CONTACT_US","FORGOT_PASSWORD","FORGOT_USERNAME","PENDING_LOGIN","DOCUMENT_UPLOAD","KEY_NAME","FUNC","FUNC_CB","HYBRID_CB","HYBRID_CB_GLOBAL_NAME","HYBRID_CB_FEATURE_FUNC","SRV","MSG","ERROR","DATA","VAL","DISPLAY_ALSO_FACE_ID","LAZY_PUSH","ODR_DEL_GAMES","VERSION","LN_SERVER","LN_ORG_ID","LN_SESSION_ID","JS_LN_SERVER","TIME_OUT","TIME_OUT_BEFORE_DISPLAY","CLOSE_BY_TIME_OUT","CLOSE_BY_X","CLOSE_NO_CHILL","CLOSE_BY_LOW_DISK_SPACE","FOLDER_STRUCT","FOLDER_SHARED_NAME","CLOSE_X_POS_P","CLOSE_Y_POS_P","CLOSE_X_POS_L","CLOSE_Y_POS_L","MAIL_TO","PORT","KEYBORD","ROTATION","FORCE","WEB_ID","TYPE","PROGRESS_BAR_FAKE","PROGRESS_BAR_REAL","RESOURCE_NAME","X_OF_MENY","GAME_ID","SHARED_FOLDER","SERVICE","FEATURE_CB","ACTION","OPEN_LINK","DEBUG","RELOAD","AUTOLOGIN","SESSIONTIMER","HEADER_HEIGHT","BANK_ID","MIT_ID","PHONE","LEFT","RIGHT","TOP","BOTTOM","SHOW","DP_TO_PX","LOG_CATEGORY","LOG_ACTION","LOG_LABLE","LOG_VALUE","LOG_LEVEL","GAME_LOADING_START","GAME_LOADING_END","GAME_LOADING_CLOSE_BY_X","GAME_LOADING_CLOSE_BY_TIME_OUT","GAME_LOADING_CLOSE_BY_LOW_DISK_SPACE","GAME_LOADING_CLOSE_BY_NO_CHILL","GAME_LOADING_ERROR","CHILL_LOADING_ERROR","CHILL_LOADING","GAME_LOADING_REAL_ODR_STARTED","ON_DEMAND_DELETE_GAMES","LEXIS_NEXIS","SESSION_ID_LOAD_ERROR","SESSION_ID_LOAD_OK","SESSION_ID_REQUEST_SENT","SESSION_ID_CALL","SESSION_ID_LOAD_EMPTY","SESSION_ID_CLOSE_BY_TIME_OUT","LEXIS_NEXIS_CATEGORY","ODR_FOLDERS","SHARED_ONE_FOLDER","SHARED_MANY_FOLDER","SHARED_NONE","SHARED_GGP","ODR_SHARED_GAMES","EMPTY","RED_TIGER","PRAGMATIC_PLAY","PLAY_N_GO","PLAY_TECH","FEATURE_CB_FUNC","HYBRID_WEB_CALL","HYBRID_URL_SCHEME_CALL","HYBRID_PUSH_CALL","HYBRID_GEO_CALL","HYBRID_ON_DEMAND_CALL","HYBRID_ON_DEMAND_NYX_CALL","HYBRID_LOBBY_POP_UP_CALL","HYBRID_FIRE_BASE","HYBRID_NATIVE_LOGS","HYBRID_SERIAL_EXTENTIONS","SERIVCES_FUNC_LIST","WEB_VIEW_WEB_SHOW","WEB_VIEW_SAFARI","WEB_VIEW_SAFARI_PING","WEB_VIEW_ACCOMPLISHED","WEB_VIEW_IS_HTML_COMPILED_GAMES","WEB_VIEW_GET_DP_2_PX","GENERAL_INIT_HYBRID","GENERAL_ALERT","GENERAL_ALERT_D","GENERAL_SET_ROTATION","GENERAL_SET_CB","GENERAL_OPEN_MAIL","GENERAL_OPEN_EXTERNAL_LINK","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","negateNextRule","formatRule","EMBEDDED_HYBRID","MINI_ORBIT","BlankHorizontalSeparatorBox","LiveCasinoGridItemInfobarDefaultBox","infobarBackground","LiveCasinoGridItemInfobarCasino777Box","LiveCasinoGridItemInfobarBox","LiveCasinoGridItemBetIntervalDefaultBox","LiveCasinoGridItemBetIntervalCasino777Box","LiveCasinoGridItemBetIntervalSIBox","LiveCasinoGridItemBetIntervalBox","LiveCasinoGridItemClosedMessageDefaultBox","closedMessageBackground","LiveCasinoGridItemClosedMessageCasino777Box","LiveCasinoGridItemClosedMessageBox","LiveCasinoGridItemThumbnailOverlayBox","LiveCasinoGridItemThumbnailBox","LiveCasinoGridItemWrapperDefaultBox","LiveCasinoGridItemWrapperCasino777Box","LiveCasinoGridItemWrapperBox","LiveCasinoGridItemTitleDefaultBox","LiveCasinoGridItemTitleSIBox","LiveCasinoGridItemTitleBox","LiveCasinoGridItemBetBehindButtonDefaultBox","LiveCasinoGridItemBetBehindButtonCasino777Box","LiveCasinoGridItemBetBehindBox","LiveCasinoGridItemJackpotDefaultBox","LiveCasinoGridItemJackpotCasino777Box","LiveCasinoGridItemJackpotBox","LiveCasinoGridItemOpenAtBox","LiveCasinoArenaGridItem","isMobilePhone","Dealer","dealerIcon","jpValue","tableIsFull","BetBehind","_renderDealerName","_renderSeatsCount","_renderRouletteDraws","_renderBetBehindButton","_renderGameThumbnailImage","_renderGameInfobar","_renderGameIsClosed","_renderGameThumbnail","_renderGameItem","VoucherCardBox","VoucherCardSideBox","backgroundImageUrl","VoucherCardFaceBox","backSideShown","VoucherCardFaceContentBox","VoucherCardSideFooterBox","VoucherCardFaceFooterBox","VoucherCardFaceIconContainerBox","VoucherCardFaceDetailsBox","VoucherCardFaceOriginalAmountBox","VoucherCardFaceVoucherNameBox","VoucherCardFaceCurrentAmountContainerBox","VoucherCardFaceIconBox","iconUrl","VoucherCardFaceCurrentAmountBox","VoucherCardSideToggleButtonBox","VoucherCardSideFooterContentBox","VoucherCardFaceHeaderBox","VoucherCardFaceHeaderComponent","_expirationTimer","expirationMessage","VoucherCardFaceComponent","formattedOriginalAmount","formattedCurrentBalance","_renderOriginalAmount","voucherName","_renderCurrentAmount","onToggleSide","VoucherCardBackBox","VoucherCardBackHeaderBox","VoucherCardBackContentBox","VoucherCardBackFooterBox","VoucherCardBackComponent","CloseIcon","closeIcon","voucherDescription","VoucherCardComponent","_onToggleSide","showBackSide","_onCardSideClickHandler","LiveCasinoFilterButtonsDefaultBox","LiveCasinoFilterButtonsCasino777Box","LiveCasinoFilterButtonsCasinoSICisBox","LiveCasinoFilterButtonsBox","LiveCasinoNavbarScrollBox","LiveCasinoNavbarOverflowBox","LiveCasinoNavbarDefaultBox","LiveCasinoNavbarCipBox","LiveCasinoNavbarCasino777Box","LiveCasinoNavbarCisBox","LiveCasinoNavbarSICisBox","LiveCasinoNavbarBox","ButtonsActiveIndicatorDefaultBox","activeIndicatorBg","activeIndicatorWidth","activeIndicatorPosition","ButtonsActiveIndicatorSIBox","ButtonsActiveIndicatorBox","LiveCasinoArenaNavbar","navbarRef","buttonsRefs","scrollContainerRef","_scrollEventHandler","_buttonsRefsFilters","_updateActiveIndicatorPosition","activeButton","currentFilterIndex","scrollContainer","activeIndicator","offsetWidth","widthOffset","appliedFilterIds","activeFilterButtonIndex","filterButton","_onFilterClicked","_getFilterInFirstEnter","filterIndex","_updateStateForFilterChange","setCurrentFilter","nextProps","nextState","nextContext","newFilters","_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","VouchersSwiperTitleBox","VouchersSwiperBackgroundBox","backgroundVouchersSlider","VouchersGamesListTitleDefaultBox","VouchersGamesListTitleCasino777Box","VouchersGamesListTitleCasinoSICisBox","thin","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","LiveCasinoGridDefaultBox","LiveCasinoGridCasino777Box","LiveCasinoGridCasinoSICisBox","LiveCasinoGridBox","LiveCasinoGridItemSkeletonBox","LiveCasinoGridItemSkeletonTitleBox","LiveCasinoGridItemSkeletonWrapperBox","LiveCasinoArenaGrid","_gameElementRef","_gridElementRef","_cmsBannerRendered","_captureGameElementRef","gameElement","_computeNumberOfGamesInARow","_captureGridElementRef","_cmsBannerPosition","_numberOfGamesPerRow","displayRowPlace","gameIds","getLiveGames","_getCurrentSubArenaConfig","maxGamesToShow","_setCMSBannerPosition","_getPromotionalBanner","shouldRenderPromoBanner","_prepareGames","_renderGridSkeleton","_renderGridItem","_renderArenaGrid","LiveCasinoGridItemDrawsBox","LiveCasinoGridItemDrawDefaultBox","drawColor","drawRedItemBackground","drawGreenItemFirstChildBackground","drawRedItemFirstChildBackground","LiveCasinoGridItemDrawCasino777Box","LiveCasinoGridItemDrawSIBox","LiveCasinoGridItemDrawSICisBox","LiveCasinoGridItemDrawBox","ROULETTE_NUMBERS_MAP","red","green","RouletteDrawsComponent","drawValue","_getDrawColor","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","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","LiveCasinoGridItemInfoItemDefaultBox","LiveCasinoGridItemInfoItemSIBox","LiveCasinoGridItemInfoItemBox","LobbyGridDefaultBox","LobbyGridBox","LiveCasinoGridItemBox","ButtonBox","rounded","hasIcon","hasLabel","iconSize","strokeWidth","lateralPadding","colorSet","bg","elevated","shadow","I_WANT_THE_HOVER_COLORS","rotated45","hoverSet","setKey","ButtonLabelBox","fontSize","allowLabelWrap","ButtonIconWrapperBox","$Button","stroke","otherProps","presetValues","baseUIComponents","themePresetDefaults","defaults","iconPlacement","strokeValues","sizeVariantValues","iconSizeValue","renderIcon","Em","withTheme","LiveCasinoGridItemInfobarIconBox","LiveCasinoGridItemThumbnailImageBox","hex","opacity","partyJackpotToaster","omg","urlParam","nightLimitKick","DISRUPTIVE_KICKOFF_MESSAGE_NAME","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","anchorRef","_getAnchorProps","_renderAnchor","webpackAsyncContext","__webpack_require__","code","ids","exports","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","base07","dialogTextMixin","DialogDimmedTextBox"],"mappings":"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","file":"static/js/orbit-main.b6f162b7.chunk.js","sourcesContent":["export enum ThemeName {\r\n Casino888 = \"casino888\",\r\n Casino888Cip = \"casino888/cip\",\r\n Casino888Cis = \"casino888/cis\",\r\n Casino777 = \"casino777\",\r\n Harrahs = \"harrahs\",\r\n Wsop = \"wsop\",\r\n WsopCip = \"wsop/cip\",\r\n BallysDover = \"ballysdover\",\r\n Delawarepark = \"delawarepark\",\r\n Harrington = \"harrington\",\r\n SI = \"si\", //sports illustrator\r\n MrGreen = \"mrgreen\",\r\n SICis = \"si/cis\"\r\n}\r\n","export enum GAME_GROUP {\r\n ARCADE = 209,\r\n BACCARAT = 11,\r\n BACKGAMMONN = 40,\r\n BLACKJACK = 12,\r\n CARRIBEAN_POKER = 18,\r\n CRAPS = 10,\r\n CRAZY_BLACKJACK = 20,\r\n HEAD_TO_HEAD = 207,\r\n HI_LO = 202,\r\n KENO = 16,\r\n LIVE_CASINO = 201,\r\n PAI_GOW_POKER = 17,\r\n POKER = 100,\r\n POKER_TEMPLATE_GAMES = 206,\r\n POOLS = 212,\r\n POWER_VIDEO_POKER = 19,\r\n ROULETTE = 13,\r\n ROULETTE_LIKE = 203,\r\n SCRATCH_CARD = 204,\r\n SLOT = 14,\r\n VIDEO_SLOT = 30,\r\n VIDEO_POKER = 15,\r\n VIDEO_SLOT_BONUS_GAME = 31\r\n}\r\n","import 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 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 {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\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_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_888casinologo_png: new Asset(\"images/888casinologo.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\tbrilliant_png: new Asset(\"images/brilliant.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\tclose_modal_dialog_hover_png: new Asset(\"images/close_modal_dialog_hover.png\", {'777_com': true}),\n\t\thistory_bg_title_png: new Asset(\"images/history_bg_title.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'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\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\", {}),\n\t\t\tfreeToPlay_json: new Asset(\"images/f2p/freeToPlay.json\", {}),\n\t\t\tfreeToPlay_png: new Asset(\"images/f2p/freeToPlay.png\", {})\n\t\t},\n\t\tfree_play: {\n\t\t\tfp_left_arrow_png: new Asset(\"images/free-play/fp-left-arrow.png\", {}),\n\t\t\tfp_right_arrow_png: new Asset(\"images/free-play/fp-right-arrow.png\", {}),\n\t\t\tfp_step_msg_bg_png: new Asset(\"images/free-play/fp-step-msg-bg.png\", {}),\n\t\t\tfp_vouchers_bg_png: new Asset(\"images/free-play/fp-vouchers-bg.png\", {}),\n\t\t\tfreeplay_bg_type_fp_png: new Asset(\"images/free-play/freeplay-bg-type-fp.png\", {'777_com': true}),\n\t\t\tfreeplay_bg_type_fs_png: new Asset(\"images/free-play/freeplay-bg-type-fs.png\", {'777_com': true}),\n\t\t\tfreeplay_bg_type_jfp_png: new Asset(\"images/free-play/freeplay-bg-type-jfp.png\", {'777_com': true}),\n\t\t\tfreeplay_bg_type_jfs_png: new Asset(\"images/free-play/freeplay-bg-type-jfs.png\", {'777_com': true}),\n\t\t\tfreeplay_type_fp_png: new Asset(\"images/free-play/freeplay-type-fp.png\", {'777_com': true}),\n\t\t\tfreeplay_type_fs_png: new Asset(\"images/free-play/freeplay-type-fs.png\", {'777_com': true}),\n\t\t\tfreeplay_type_jfp_png: new Asset(\"images/free-play/freeplay-type-jfp.png\", {'777_com': true}),\n\t\t\tfreeplay_type_jfs_png: new Asset(\"images/free-play/freeplay-type-jfs.png\", {'777_com': true})\n\t\t},\n\t\tgames_icons_background: {\n\t\t\tBGcardandtable_png: new Asset(\"images/games-icons-background/BGcardandtable.png\", {'777_com': true,'harrahs_nj': true}),\n\t\t\tBGGameBlack_png: new Asset(\"images/games-icons-background/BGGameBlack.png\", {'777_com': true,'harrahs_nj': true}),\n\t\t\tBGGameBlackSquare_png: new Asset(\"images/games-icons-background/BGGameBlackSquare.png\", {'777_com': true}),\n\t\t\tBGicon_png: new Asset(\"images/games-icons-background/BGicon.png\", {'777_com': true,'harrahs_nj': true}),\n\t\t\tBGredTiger_png: new Asset(\"images/games-icons-background/BGredTiger.png\", {'777_com': true})\n\t\t},\n\t\tgame_frame: {\n\t\t\tdemo_left_corner_png: new Asset(\"images/game_frame/demo_left_corner.png\", {'777_com': true}),\n\t\t\tdemo_right_corner_png: new Asset(\"images/game_frame/demo_right_corner.png\", {'777_com': true}),\n\t\t\tfreeplay_indicator_png: new Asset(\"images/game_frame/freeplay_indicator.png\", {'777_com': true,'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,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpost_login_diamond_vip_avatar_regular_png: new Asset(\"images/avatars/diamond-vip/post-login-diamond-vip-avatar-regular.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpost_login_diamond_vip_avatar_selected_pressed_png: new Asset(\"images/avatars/diamond-vip/post-login-diamond-vip-avatar-selected-pressed.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_diamond_vip_avatar_hover_png: new Asset(\"images/avatars/diamond-vip/pre-login-diamond-vip-avatar-hover.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_diamond_vip_avatar_pressed_png: new Asset(\"images/avatars/diamond-vip/pre-login-diamond-vip-avatar-pressed.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_diamond_vip_avatar_regular_png: new Asset(\"images/avatars/diamond-vip/pre-login-diamond-vip-avatar-regular.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true})\n\t\t\t},\n\t\t\tgold_vip: {\n\t\t\t\tmy_account_gold_vip_png: new Asset(\"images/avatars/gold-vip/my-account-gold-vip.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpost_login_gold_vip_avatar_hover_png: new Asset(\"images/avatars/gold-vip/post-login-gold-vip-avatar-hover.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpost_login_gold_vip_avatar_regular_png: new Asset(\"images/avatars/gold-vip/post-login-gold-vip-avatar-regular.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpost_login_gold_vip_avatar_selected_pressed_png: new Asset(\"images/avatars/gold-vip/post-login-gold-vip-avatar-selected-pressed.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_gold_vip_avatar_hover_png: new Asset(\"images/avatars/gold-vip/pre-login-gold-vip-avatar-hover.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_gold_vip_avatar_pressed_png: new Asset(\"images/avatars/gold-vip/pre-login-gold-vip-avatar-pressed.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_gold_vip_avatar_regular_png: new Asset(\"images/avatars/gold-vip/pre-login-gold-vip-avatar-regular.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tPREV_post_login_gold_vip_avatar_regular_png: new Asset(\"images/avatars/gold-vip/PREV_post-login-gold-vip-avatar-regular.png\", {'777_com': true}),\n\t\t\t\tWpost_login_gold_vip_avatar_regular_png: new Asset(\"images/avatars/gold-vip/Wpost-login-gold-vip-avatar-regular.png\", {'777_com': true})\n\t\t\t},\n\t\t\tplatinum_vip: {\n\t\t\t\tmy_account_vip_platinum_png: new Asset(\"images/avatars/platinum-vip/my-account-vip-platinum.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpost_login_vip_platinum_avatar_hover_png: new Asset(\"images/avatars/platinum-vip/post-login-vip-platinum-avatar-hover.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpost_login_vip_platinum_avatar_regular_png: new Asset(\"images/avatars/platinum-vip/post-login-vip-platinum-avatar-regular.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpost_login_vip_platinum_avatar_selected_pressed_png: new Asset(\"images/avatars/platinum-vip/post-login-vip-platinum-avatar-selected-pressed.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_vip_platinum_avatar_hover_png: new Asset(\"images/avatars/platinum-vip/pre-login-vip-platinum-avatar-hover.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_vip_platinum_avatar_pressed_png: new Asset(\"images/avatars/platinum-vip/pre-login-vip-platinum-avatar-pressed.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_vip_platinum_avatar_regular_png: new Asset(\"images/avatars/platinum-vip/pre-login-vip-platinum-avatar-regular.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true})\n\t\t\t},\n\t\t\treg: {\n\t\t\t\tpost_login_hover_png: new Asset(\"images/avatars/reg/post-login-hover.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'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,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpost_login_reg_vip_avatar_icon_selected_pressed_png: new Asset(\"images/avatars/reg-vip/post-login-reg-vip-avatar-icon-selected-pressed.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpost_login_reg_vip_avatar_regular_png: new Asset(\"images/avatars/reg-vip/post-login-reg-vip-avatar-regular.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_reg_vip_avatar_icon_hover_png: new Asset(\"images/avatars/reg-vip/pre-login-reg-vip-avatar-icon-hover.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_reg_vip_avatar_icon_pressed_png: new Asset(\"images/avatars/reg-vip/pre-login-reg-vip-avatar-icon-pressed.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpre_login_reg_vip_avatar_icon_regular_png: new Asset(\"images/avatars/reg-vip/pre-login-reg-vip-avatar-icon-regular.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tMy_account_VIP_REG_icon_png: new Asset(\"images/avatars/reg-vip/My-account-VIP-REG-icon.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tpost_login_reg_vip_avatar_selected_pressed_png: new Asset(\"images/avatars/reg-vip/post-login-reg-vip-avatar-selected-pressed.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true})\n\t\t\t}\n\t\t},\n\t\tbadges: {\n\t\t\texclusive_png: new Asset(\"images/badges/exclusive.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\thot_png: new Asset(\"images/badges/hot.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tnew_badge_png: new Asset(\"images/badges/new-badge.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tvip_badge_png: new Asset(\"images/badges/vip-badge.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true})\n\t\t},\n\t\tbanners: {\n\t\t\t_777InstantWin_arena_banner_mobile_png: new Asset(\"images/banners/777InstantWin_arena_banner_mobile.png\", {'777_com': true}),\n\t\t\t_777InstantWin_arena_banner_pc_png: new Asset(\"images/banners/777InstantWin_arena_banner_pc.png\", {'777_com': true}),\n\t\t\t_777InstantWin_arena_banner_tablet_png: new Asset(\"images/banners/777InstantWin_arena_banner_tablet.png\", {'777_com': true}),\n\t\t\tall_casino_games_arena_banner_mobile_png: new Asset(\"images/banners/all_casino_games_arena_banner_mobile.png\", {'777_com': true}),\n\t\t\tall_casino_games_arena_banner_pc_png: new Asset(\"images/banners/all_casino_games_arena_banner_pc.png\", {'777_com': true}),\n\t\t\tall_casino_games_arena_banner_tablet_png: new Asset(\"images/banners/all_casino_games_arena_banner_tablet.png\", {'777_com': true}),\n\t\t\tblackjack_arena_banner_mobile_png: new Asset(\"images/banners/blackjack_arena_banner_mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tblackjack_arena_banner_pc_png: new Asset(\"images/banners/blackjack_arena_banner_pc.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tblackjack_arena_banner_tablet_png: new Asset(\"images/banners/blackjack_arena_banner_tablet.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tcasino_games_arena_banner_mobile_png: new Asset(\"images/banners/casino_games_arena_banner_mobile.png\", {'777_com': true}),\n\t\t\tcasino_games_arena_banner_pc_png: new Asset(\"images/banners/casino_games_arena_banner_pc.png\", {'777_com': true}),\n\t\t\tcasino_games_arena_banner_tablet_png: new Asset(\"images/banners/casino_games_arena_banner_tablet.png\", {'777_com': true}),\n\t\t\tevo_lobby_banner_mobile_png: new Asset(\"images/banners/evo_lobby_banner_mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true}),\n\t\t\tevo_lobby_banner_pc_png: new Asset(\"images/banners/evo_lobby_banner_pc.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true}),\n\t\t\tevo_lobby_banner_tablet_png: new Asset(\"images/banners/evo_lobby_banner_tablet.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true}),\n\t\t\tjackpot_arena_banner_mobile_png: new Asset(\"images/banners/jackpot_arena_banner_mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tjackpot_arena_banner_pc_png: new Asset(\"images/banners/jackpot_arena_banner_pc.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tjackpot_arena_banner_tablet_png: new Asset(\"images/banners/jackpot_arena_banner_tablet.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tlive_arena_banner_mobile_png: new Asset(\"images/banners/live_arena_banner_mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\tlive_arena_banner_pc_png: new Asset(\"images/banners/live_arena_banner_pc.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\tlive_arena_banner_tablet_png: new Asset(\"images/banners/live_arena_banner_tablet.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\tnew_games_arena_banner_mobile_png: new Asset(\"images/banners/new_games_arena_banner_mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'si_mi': true}),\n\t\t\tnew_games_arena_banner_pc_png: new Asset(\"images/banners/new_games_arena_banner_pc.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'si_mi': true}),\n\t\t\tnew_games_arena_banner_tablet_png: new Asset(\"images/banners/new_games_arena_banner_tablet.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'si_mi': true}),\n\t\t\troulette_arena_banner_mobile_png: new Asset(\"images/banners/roulette_arena_banner_mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\troulette_arena_banner_pc_png: new Asset(\"images/banners/roulette_arena_banner_pc.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\troulette_arena_banner_tablet_png: new Asset(\"images/banners/roulette_arena_banner_tablet.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tscrach_card_arena_banner_mobile_png: new Asset(\"images/banners/scrach_card_arena_banner_mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\tscrach_card_arena_banner_pc_png: new Asset(\"images/banners/scrach_card_arena_banner_pc.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\tscrach_card_arena_banner_tablet_png: new Asset(\"images/banners/scrach_card_arena_banner_tablet.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\tslots_arena_banner_mobile_png: new Asset(\"images/banners/slots_arena_banner_mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tslots_arena_banner_pc_png: new Asset(\"images/banners/slots_arena_banner_pc.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tslots_arena_banner_tablet_png: new Asset(\"images/banners/slots_arena_banner_tablet.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tvideo_poker_arena_banner_mobile_png: new Asset(\"images/banners/video_poker_arena_banner_mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'harrahs_nj': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tvideo_poker_arena_banner_pc_png: new Asset(\"images/banners/video_poker_arena_banner_pc.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'harrahs_nj': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tvideo_poker_arena_banner_tablet_png: new Asset(\"images/banners/video_poker_arena_banner_tablet.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'harrahs_nj': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t_888exclusive_arena_banner_mobile_png: new Asset(\"images/banners/888exclusive_arena_banner_mobile.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true}),\n\t\t\t_888exclusive_arena_banner_pc_png: new Asset(\"images/banners/888exclusive_arena_banner_pc.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true}),\n\t\t\t_888exclusive_arena_banner_tablet_png: new Asset(\"images/banners/888exclusive_arena_banner_tablet.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true}),\n\t\t\t_888exclusive_arena_preview_image_png: new Asset(\"images/banners/888exclusive_arena_preview_image.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\tcards_arena_banner_mobile_png: new Asset(\"images/banners/cards_arena_banner_mobile.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tcards_arena_banner_pc_png: new Asset(\"images/banners/cards_arena_banner_pc.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tcards_arena_banner_tablet_png: new Asset(\"images/banners/cards_arena_banner_tablet.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tInstantWin_arena_banner_mobile_png: new Asset(\"images/banners/InstantWin_arena_banner_mobile.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\tInstantWin_arena_banner_pc_png: new Asset(\"images/banners/InstantWin_arena_banner_pc.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\tInstantWin_arena_banner_tablet_png: new Asset(\"images/banners/InstantWin_arena_banner_tablet.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\tvirtual_sports_arena_banner_mobile_png: new Asset(\"images/banners/virtual_sports_arena_banner_mobile.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\tvirtual_sports_arena_banner_pc_png: new Asset(\"images/banners/virtual_sports_arena_banner_pc.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\tvirtual_sports_arena_banner_tablet_png: new Asset(\"images/banners/virtual_sports_arena_banner_tablet.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'si_mi': true}),\n\t\t\tprogressive_slots_arena_banner_mobile_png: new Asset(\"images/banners/progressive_slots_arena_banner_mobile.png\", {'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tprogressive_slots_arena_banner_pc_png: new Asset(\"images/banners/progressive_slots_arena_banner_pc.png\", {'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tprogressive_slots_arena_banner_tablet_png: new Asset(\"images/banners/progressive_slots_arena_banner_tablet.png\", {'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tsi_exclusive_arena_banner_mobile_png: new Asset(\"images/banners/si_exclusive_arena_banner_mobile.png\", {'si_mi': true}),\n\t\t\tsi_exclusive_arena_banner_pc_png: new Asset(\"images/banners/si_exclusive_arena_banner_pc.png\", {'si_mi': true}),\n\t\t\tsi_exclusive_arena_banner_tablet_png: new Asset(\"images/banners/si_exclusive_arena_banner_tablet.png\", {'si_mi': true}),\n\t\t\tblackjack_arena_banner_mobile_rtl_png: new Asset(\"images/banners/blackjack_arena_banner_mobile_rtl.png\", {'wsop_nj': true}),\n\t\t\tblackjack_arena_banner_pc_rtl_png: new Asset(\"images/banners/blackjack_arena_banner_pc_rtl.png\", {'wsop_nj': true}),\n\t\t\tblackjack_arena_banner_tablet_rtl_png: new Asset(\"images/banners/blackjack_arena_banner_tablet_rtl.png\", {'wsop_nj': true}),\n\t\t\troulette_arena_banner_mobile_rtl_png: new Asset(\"images/banners/roulette_arena_banner_mobile_rtl.png\", {'wsop_nj': true}),\n\t\t\troulette_arena_banner_pc_rtl_png: new Asset(\"images/banners/roulette_arena_banner_pc_rtl.png\", {'wsop_nj': true}),\n\t\t\troulette_arena_banner_tablet_rtl_png: new Asset(\"images/banners/roulette_arena_banner_tablet_rtl.png\", {'wsop_nj': true})\n\t\t},\n\t\tlogos: {\n\t\t\tdiamond_vip: {\n\t\t\t\tvip_diamond_logo_mobile_png: new Asset(\"images/logos/diamond-vip/vip-diamond-logo-mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tvip_diamond_logo_pc_png: new Asset(\"images/logos/diamond-vip/vip-diamond-logo-pc.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\t\tvip_diamond_logo_pc_dark_png: new Asset(\"images/logos/diamond-vip/vip-diamond-logo-pc-dark.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\t\t\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}\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,'si_mi': true,'wsop_nj': true}),\n\t\t\tdefault_game_strip_card_and_table_mobile_png: new Asset(\"games/preview_default_images/default_game_strip_card_and_table_mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tdefault_game_strip_live_png: new Asset(\"games/preview_default_images/default_game_strip_live.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tdefault_game_strip_live_mobile_png: new Asset(\"games/preview_default_images/default_game_strip_live_mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tdefault_game_strip_slots_png: new Asset(\"games/preview_default_images/default_game_strip_slots.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true}),\n\t\t\tdefault_game_strip_slots_mobile_png: new Asset(\"games/preview_default_images/default_game_strip_slots_mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_mi': true,'wsop_nj': true})\n\t\t}\n\t},\n\tfallbackCMSComponent: {\n\t\tdefault_cgp_shell_css: new Asset(\"fallbackCMSComponent/default-cgp-shell.css\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrington_de': true,'si_mi': true}),\n\t\tdefaultFooter_html: new Asset(\"fallbackCMSComponent/defaultFooter.html\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrington_de': true,'si_mi': true}),\n\t\tharrahsFooter_html: new Asset(\"fallbackCMSComponent/harrahsFooter.html\", {'harrahs_nj': true}),\n\t\twsopFooter_html: new Asset(\"fallbackCMSComponent/wsopFooter.html\", {'wsop_nj': true})\n\t}\n};","import styled from 'styled-components';\r\nimport {flexColumnContainerMixin, flexRowReverseContainerMixin} from '../../../../themes/architecture/css-helpers/flex';\r\n\r\nexport const ButtonsWrapperDefaultBox = styled.div<{buttonsOnSeparateLines?: boolean;}>`\r\n max-width: 289px;\r\n width: 100%;\r\n margin: 5rem auto 0;\r\n ${({buttonsOnSeparateLines}) => buttonsOnSeparateLines ? flexColumnContainerMixin : flexRowReverseContainerMixin }\r\n`;\r\n","import styled from 'styled-components';\r\nimport {flexGrowItem, flexFixedSizeItem} from '../../../../themes/architecture/css-helpers/flex';\r\n\r\nexport const ButtonWrapperDefaultBox = styled.div<{buttonsOnSeparateLines?: boolean; flexBasis?: string;}>`\r\n ${flexGrowItem}\r\n width: ${({buttonsOnSeparateLines}) => buttonsOnSeparateLines ? \"100%\" : \"40%\" };\r\n`;\r\n\r\nexport const ButtonSpacerDefaultBox = styled.div`\r\n ${flexFixedSizeItem}\r\n width: 1rem;\r\n height: 1.5rem;\r\n`;\r\n","import styled from 'styled-components';\r\n\r\nexport const LinkActionBox = styled.button`\r\n margin: 0 auto;\r\n\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n background: transparent;\r\n padding: 5px 0px 0px;\r\n border: 0;\r\n border-radius: 0;\r\n line-height: 1;\r\n ${({theme}) => theme.font.presets.body};\r\n font-size: 1.6rem;\r\n font-weight: 700;\r\n color: ${({theme}) => theme.colors.brandPrimary};\r\n text-decoration: underline;\r\n cursor: pointer;\r\n`;\r\n","import styled from 'styled-components';\r\n\r\nexport const LinkWrapperDefaultBox = styled.div`\r\n width: 100%;\r\n margin-top: 3rem;\r\n text-align: center;\r\n`;\r\n","import React from 'react';\r\nimport { Button } from '../../basic-ui-components/button/base/button.component';\r\nimport {ButtonsWrapperDefaultBox} from './boxes/actions/buttons-wrapper.box';\r\nimport {ButtonWrapperDefaultBox, ButtonSpacerDefaultBox} from './boxes/actions/button-wrapper.box';\r\nimport {LinkActionBox} from './boxes/actions/link-action.box';\r\nimport {LinkWrapperDefaultBox} from './boxes/actions/link-wrapper.box';\r\nimport classNames from \"classnames\";\r\nimport {CyClass} from \"../../../common/cy-classes\";\r\n\r\n\r\nexport interface IModalDialogActionProps {\r\n text: string;\r\n onClick(): void;\r\n className?: string;\r\n disabled?:boolean;\r\n}\r\nexport interface IModalDialogButtonsComponentProps {\r\n buttonsOnSeparateLines?: boolean;\r\n primaryAction: IModalDialogActionProps;\r\n secondaryAction?: IModalDialogActionProps & {useWarningPreset?: boolean};\r\n linkAction?: IModalDialogActionProps;\r\n className?: string;\r\n}\r\n\r\nexport class ModalDialogActionsComponent extends React.Component {\r\n render() {\r\n return <>\r\n \r\n \r\n \r\n {this.props.primaryAction.text}\r\n \r\n \r\n {this.props.secondaryAction ? <>\r\n \r\n {this.props.secondaryAction.text}\r\n \r\n : null}\r\n \r\n {this.props.linkAction ? \r\n {this.props.linkAction.text}\r\n : null}\r\n ;\r\n }\r\n}\r\n","export function PC_HORIZONTAL_SPACE_BETWEEN_ITEMS(multiplier: number = 1) {\r\n return (15 * multiplier) + 'px';\r\n}\r\n\r\nexport function MOBILE_HORIZONTAL_SPACE_BETWEEN_ITEMS(multiplier: number = 1) {\r\n return (5 * multiplier) + 'px';\r\n}","export const CGP_ERROR_CODES = {\r\n GENERAL_ERROR_SUPPORT: 100000,\r\n RESTRICTED_COUNTRY: 100105,\r\n INVALID_CREDENTIALS: 110,\r\n LOGIN_RESTRICTION: 100115,\r\n INVALID_REFRESH_TOKEN: 100120,\r\n CAPTCHA_REQUIRED: 170,\r\n TOUCH_ID_CHANGE_PASS: 100300,\r\n TOUCH_ID_EXPIRE: 100305,\r\n GENERAL_ERROR: 900000,\r\n OPENING_GAME_ERROR: 100205,\r\n UNSUPPORTED_ANONYMOUS: 100210,\r\n TIME_LIMIT_REACHED_DAILY: 100155,\r\n TIME_LIMIT_REACHED_WEEKLY: 100180,\r\n TIME_LIMIT_REACHED_MONTHLY: 100181,\r\n\r\n TOKEN_NOT_VALID: 20,\r\n PENDING_ACTION_REQUIRED: 50,\r\n INVALID_GRANT: 'invalid_grant'\r\n};\r\n\r\n\r\nexport function isRefreshTokenError(errorCode: string): boolean {\r\n errorCode = errorCode?.toString();\r\n return errorCode === CGP_ERROR_CODES.INVALID_REFRESH_TOKEN.toString() || errorCode === CGP_ERROR_CODES.INVALID_GRANT;\r\n}\r\n","import {IReactionDisposer, IReactionOptions, IReactionPublic, reaction as mobxReaction} from \"mobx\";\r\nimport {\r\n IGameEventSubscription\r\n} from \"../app-react/services/game-runner/interfaces/game-communication/game-communication-channel.interface\";\r\nimport {CGPEventSubscription} from \"../app-react/services/sdk/cgp-sdk.interface\";\r\nimport {TimeIntervalName} from \"../common/utils/time-interval-names\";\r\nimport {TimeSpan} from \"@sparkware/app-utils\";\r\nimport {namedSetInterval, namedSetTimeout} from \"../common/utils/time-functions\";\r\nimport {\r\n TimerSubscriptionRef\r\n} from \"../app-react/services/companies/game-session-behaviors/common/game-session-behavior-base\";\r\nimport {DomEventSubscription} from \"./event-listener-registration\";\r\n\r\nexport class DisposableObject {\r\n private _reactions: IReactionDisposer[] = [];\r\n protected addReaction(expression: (r: IReactionPublic) => T, effect: (arg: T, r: IReactionPublic) => void, opts?: IReactionOptions): void {\r\n this._reactions.push(mobxReaction(expression, effect, opts));\r\n }\r\n\r\n private _gameEventsSubscription: IGameEventSubscription[] = [];\r\n protected addGameEventSubscription(subscription: IGameEventSubscription): IGameEventSubscription {\r\n this._gameEventsSubscription.push(subscription);\r\n\r\n return {\r\n unsubscribe: () => {\r\n const index = this._gameEventsSubscription.findIndex(s => s === subscription);\r\n if(index >= 0) {\r\n this._gameEventsSubscription[index].unsubscribe();\r\n this._gameEventsSubscription.splice(index, 1);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _sdkEventsSubscriptions: CGPEventSubscription[] = [];\r\n protected addSdkEventSubscription(subscription: CGPEventSubscription): void {\r\n this._sdkEventsSubscriptions.push(subscription);\r\n }\r\n\r\n private _namedIntervals: number[] = [];\r\n protected addNamedInterval(name: TimeIntervalName, handler: () => void, interval: TimeSpan | number): TimerSubscriptionRef {\r\n const ref = namedSetInterval(name, handler, interval);\r\n this._namedIntervals.push(ref);\r\n return {\r\n clear: () => {\r\n clearInterval(ref);\r\n const index = this._namedIntervals.findIndex(i => i === ref);\r\n if(index >= 0) {\r\n this._namedIntervals.splice(index, 1);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _namedTimeouts: number[] = [];\r\n protected addNamedTimeout(name: TimeIntervalName, handler: () => void, interval: TimeSpan | number): TimerSubscriptionRef {\r\n const ref = namedSetTimeout(name, handler, interval);\r\n this._namedTimeouts.push(ref);\r\n return {\r\n clear: () => {\r\n clearTimeout(ref);\r\n const index = this._namedTimeouts.findIndex(t => t === ref);\r\n if(index >= 0) {\r\n this._namedTimeouts.splice(index, 1);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _domEventsSubscriptions: DomEventSubscription[] = [];\r\n protected addDomEventSubscription(subscription: DomEventSubscription): DomEventSubscription {\r\n this._domEventsSubscriptions.push(subscription);\r\n return subscription;\r\n }\r\n\r\n dispose(): void {\r\n this._reactions.forEach(r => r());\r\n this._reactions = [];\r\n this._gameEventsSubscription.forEach(s => s.unsubscribe());\r\n this._gameEventsSubscription = [];\r\n this._namedIntervals.forEach(i => clearInterval(i));\r\n this._namedIntervals = [];\r\n this._namedTimeouts.forEach(t => clearTimeout(t));\r\n this._namedTimeouts = [];\r\n this._sdkEventsSubscriptions.forEach(s => s.off());\r\n this._sdkEventsSubscriptions = [];\r\n this._domEventsSubscriptions.forEach(s => s.dispose());\r\n this._domEventsSubscriptions = [];\r\n\r\n }\r\n}","export enum FP_VOUCHER_TYPES {\r\n FreeSpin = '1',\r\n FreePlay = '2',\r\n FreeJackpotSpin = '3',\r\n FreeJackpotPlay = '4'\r\n}\r\n\r\nexport const FP_MESSAGE_MODE = {\r\n POPUP: 'popup',\r\n EMBEDDED_INTERNAL: 'embedded-internal'\r\n};\r\n","export enum JackpotInternalId {\r\n Daily = 8000,\r\n Twilight = 8001,\r\n HourlyCaptain8 = 8002\r\n}\r\n\r\nexport enum JackpotType {\r\n Daily = \"Daily\",\r\n HighNoon = \"HighNoon\",\r\n Twilight = \"Twilight\",\r\n Party = \"Party\",\r\n HourlyCaptain8 = \"HourlyCaptain8\"\r\n}\r\n\r\nexport enum JACKPOT_STATE {\r\n Cold = 1,\r\n Regular = 2,\r\n Hot = 3,\r\n OffHours = 4 // used only for Hourly Party Jackpots for now\r\n}\r\n","import {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 React, { Suspense } from \"react\";\r\n\r\nexport class OrbitSuspense extends React.PureComponent {\r\n render() {\r\n return }>\r\n {this.props.children}\r\n \r\n }\r\n}\r\n","/**\r\n * Created by fabianbr on 6/20/2017.\r\n */\r\n\r\nimport {IziToastSettings} from \"izitoast\";\r\n\r\nexport const PENDING_TOASTERS_KEY = 'pending_toasters';\r\n\r\nexport const DISPLAYED_TOASTERS_KEY = 'displayed_toasters';\r\n\r\nexport enum TOASTER_NOTIFICATION_TYPES {\r\n\tSHOW = 1,\r\n\tOK_PRESSED = 3,\r\n\tGAME_OPEN = 3\r\n};\r\n\r\nexport const TOASTER_UI_CONFIG = {\r\n\tglobalClass: 'CGPToasterLayout cy-toaster-layout',\r\n\ttitleFont: 'Main',\r\n\ttitleSize: 'mediumSecondary',\r\n\ttitleColor: 'main',\r\n\tmessageFont: 'Main',\r\n\tmessageSize: 'mediumSecondary',\r\n\tmessageColor: 'base01',\r\n\tbackgroundColor: 'darkMain',\r\n\tprogressColor: 'main',\r\n\tprogressBackgroundColor: 'base02',\r\n\tbuttonColor: 'main',\r\n\tbuttonFont: 'Type04',\r\n\tbuttonTextColor: 'darkMain',\r\n\tbuttonCornerRadius: 'ctacornerradius'\r\n};\r\n\r\nexport const LIB_CSS_IDS = {\r\n\tcloseBtn: 'iziToast-close',\r\n\tcontainer: 'iziToast-wrapper',\r\n\tcover: '.iziToast-cover',\r\n toastBody: '.iziToast-body',\r\n toastTexts: '.iziToast-texts'\r\n};\r\n\r\nexport enum TOAST_TYPES {\r\n\tTIMED = 'timed_toaster',\r\n\tACKNOWLEDGE = 'acknowledge_toaster',\r\n\tACTION = 'action_toaster'\r\n};\r\n\r\nexport enum TRANSITIONS {\r\n\tBOUNCE_IN_LEFT = 'bounceInLeft',\r\n\tBOUNCE_IN_RIGHT = 'bounceInRight',\r\n\tBOUNCE_IN_UP = 'bounceInUp',\r\n\tBOUNCE_IN_DOWN = 'bounceInDown',\r\n\tFADE_IN = 'fadeIn',\r\n\tFADE_IN_DOWN = 'fadeInDown',\r\n\tFADE_IN_UP = 'fadeInUp',\r\n\tFADE_IN_LEFT = 'fadeInLeft',\r\n\tFADE_IN_RIGHT = 'fadeInRight',\r\n\tFLIP_IN_X = 'flipInX',\r\n\tFADE_OUT = 'fadeOut',\r\n\tFADE_OUT_UP = 'fadeOutUp',\r\n\tFADE_OUT_DOWN = 'fadeOutDown',\r\n\tFADE_OUT_LEFT = 'fadeOutLeft',\r\n\tFADE_OUT_RIGHT = 'fadeOutRight',\r\n\tFLIP_OUT_X = 'flipOutX'\r\n};\r\n\r\nexport enum POSITION {\r\n\tBOTTOM_RIGHT = 'bottomRight',\r\n\tBOTTOM_LEFT = 'bottomLeft',\r\n\tTOP_RIGHT = 'topRight',\r\n\tTOP_LEFT = 'topLeft',\r\n\tTOP_CENTER = 'topCenter',\r\n\tBOTTOM_CENTER = 'bottomCenter',\r\n\tCENTER = 'center'\r\n};\r\n\r\nexport let DEFAULT_CONFIG: Partial = {\r\n\t// class: '',\r\n\t// title: '',\r\n\t// titleSize: 14,\r\n\t// titleColor: 'black',\r\n\t// message: '',\r\n\t// messageSize: 13,\r\n\t// messageColor: 'black',\r\n\t// backgroundColor: '#E8E8E8',\r\n\t// color: '', // blue, red, green, yellow\r\n\t// icon: '',\r\n\t// iconText: '',\r\n\t// iconColor: '',\r\n\t// image: '',\r\n\timageWidth: 45,\r\n\t// zindex: 99999,\r\n\tlayout: 2, //layout 2 means 3 separate lines, one for title one for message text and one for buttons\r\n\t// balloon: false,\r\n\tclose: true,\r\n\trtl: false,\r\n\tposition: POSITION.TOP_RIGHT,\r\n\t// target: '',\r\n\ttargetFirst: false,\r\n\ttimeout: 5000,\r\n\t// maxWidth: '412px',\r\n\tdrag: false,\r\n\tpauseOnHover: true,\r\n\tresetOnHover: false,\r\n\tprogressBar: true,\r\n\t// progressBarColor: '#CCCCCC',\r\n\tanimateInside: false,\r\n\t// buttons: {},\r\n\ttransitionIn: TRANSITIONS.FADE_IN_LEFT,\r\n\ttransitionOut: TRANSITIONS.FADE_OUT_RIGHT,\r\n\ttransitionInMobile: TRANSITIONS.FADE_IN_LEFT,\r\n\ttransitionOutMobile: TRANSITIONS.FADE_OUT_RIGHT\r\n\t// onOpened: function () {},\r\n\t// onClosed: function () {}\r\n};\r\n","/**\r\n * Created by andreyna on 7/25/2016.\r\n */\r\n\r\n/*\r\n * DateFormatter based on DateFormat of Steven Levithan \r\n * Date Format 1.2.3\r\n * (c) 2007-2009 Steven Levithan \r\n * MIT license\r\n *\r\n * Accepts a date, a mask, or a date and a mask.\r\n * Returns a formatted version of the given date.\r\n * The date defaults to the current date/time.\r\n * The mask defaults to dateFormat.masks.default.\r\n *\r\n * Url: http://blog.stevenlevithan.com/archives/date-time-format\r\n */\r\n\r\nclass DateFormatter {\r\n\r\n private _token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\\1?|[LloSZ]|\"[^\"]*\"|'[^']*'/g;\r\n\r\n private _timezone = /\\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\\d{4})?)\\b/g;\r\n\r\n private _timezoneClip = /[^-+\\dA-Z]/g;\r\n\r\n // Some common format strings\r\n private _masks = {\r\n \"default\": \"ddd mmm dd yyyy HH:MM:ss\",\r\n shortDate: \"m/d/yy\",\r\n mediumDate: \"mmm d, yyyy\",\r\n longDate: \"mmmm d, yyyy\",\r\n fullDate: \"dddd, mmmm d, yyyy\",\r\n shortTime: \"h:MM TT\",\r\n mediumTime: \"h:MM:ss TT\",\r\n longTime: \"h:MM:ss TT Z\",\r\n isoDate: \"yyyy-mm-dd\",\r\n isoTime: \"HH:MM:ss\",\r\n isoDateTime: \"yyyy-mm-dd'T'HH:MM:ss\",\r\n isoUtcDateTime: \"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'\",\r\n shortTime12: \"h:MM TT\",\r\n shortTime24: \"HH:MM\"\r\n }\r\n\r\n // Internationalization strings\r\n private _i18n = {\r\n dayNames: [\r\n \"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\",\r\n \"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"\r\n ],\r\n monthNames: [\r\n \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\",\r\n \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"\r\n ]\r\n }\r\n\r\n\r\n /*\r\n * Samples:\r\n * format(\"longTime\");\r\n * format(\"UTC:h:MM:ss TT Z\");\r\n * format(now, \"dddd, mmmm dS, yyyy, h:MM:ss TT\")\r\n * format(\"Jun 9 2007\", \"fullDate\");\r\n *\r\n * Default formats:\r\n * -------------------------------------------------------------------------\r\n * Name\tMask Example\r\n * -------------------------------------------------------------------------\r\n * default \tddd mmm dd yyyy HH:MM:ss\tSat Jun 09 2007 17:46:21\r\n * shortDate \tm/d/yy\t6/9/07\r\n * mediumDate \tmmm d, yyyy\tJun 9, 2007\r\n * longDate \tmmmm d, yyyy\tJune 9, 2007\r\n * fullDate \tdddd, mmmm d, yyyy\tSaturday, June 9, 2007\r\n * shortTime\t h:MM TT\t5:46 PM\r\n * mediumTime\t h:MM:ss TT\t5:46:21 PM\r\n * longTime\t h:MM:ss TT Z\t5:46:21 PM EST\r\n * isoDate\t yyyy-mm-dd\t2007-06-09\r\n * isoTime\t HH:MM:ss\t17:46:21\r\n * isoDateTime\t yyyy-mm-dd'T'HH:MM:ss\t2007-06-09T17:46:21\r\n * isoUtcDateTime\tUTC:yyyy-mm-dd'T'HH:MM:ss'Z'\t2007-06-09T22:46:21Z\r\n * -------------------------------------------------------------------------\r\n *\r\n * -------------------------------------------------------------------------\r\n * Masks:\r\n * -------------------------------------------------------------------------\r\n * Mask\t Description\r\n * -------------------------------------------------------------------------\r\n * d\t\t\tDay of the month as digits; no leading zero for single-digit days.\r\n * dd\t\t\tDay of the month as digits; leading zero for single-digit days.\r\n * ddd\t\t\tDay of the week as a three-letter abbreviation.\r\n * dddd\t\t\tDay of the week as its full name.\r\n * m\t\t\tMonth as digits; no leading zero for single-digit months.\r\n * mm\t\t\tMonth as digits; leading zero for single-digit months.\r\n * mmm\t\t\tMonth as a three-letter abbreviation.\r\n * mmmm\t\t\tMonth as its full name.\r\n * yy\t\t\tYear as last two digits; leading zero for years less than 10.\r\n * yyyy\t\t\tYear represented by four digits.\r\n * h\t\t\tHours; no leading zero for single-digit hours (12-hour clock).\r\n * hh\t\t\tHours; leading zero for single-digit hours (12-hour clock).\r\n * H\t\t\tHours; no leading zero for single-digit hours (24-hour clock).\r\n * HH\t\t\tHours; leading zero for single-digit hours (24-hour clock).\r\n * M\t\t\tMinutes; no leading zero for single-digit minutes. Uppercase M unlike CF timeFormat's m to avoid conflict with months.\r\n * MM\t\t\tMinutes; leading zero for single-digit minutes. Uppercase MM unlike CF timeFormat's mm to avoid conflict with months.\r\n * s\t\t\tSeconds; no leading zero for single-digit seconds.\r\n * ss\t\t\tSeconds; leading zero for single-digit seconds.\r\n * l or L\t\tMilliseconds. l gives 3 digits. L gives 2 digits.\r\n * t\t\t\tLowercase, single-character time marker string: a or p.\r\n * tt\t\t\tLowercase, two-character time marker string: am or pm.\r\n * T\t\t\tUppercase, single-character time marker string: A or P. Uppercase T unlike CF's t to allow for user-specified casing.\r\n * TT\t\t\tUppercase, two-character time marker string: AM or PM. Uppercase TT unlike CF's tt to allow for user-specified casing.\r\n * Z\t\t\tUS timezone abbreviation, e.g. EST or MDT. With non-US timezones or in the Opera browser, the GMT/UTC offset is returned, e.g. GMT-0500.\r\n * o\t\t\tGMT/UTC timezone offset, e.g. -0500 or +0230.\r\n * S\t\t\tThe date's ordinal suffix (st, nd, rd, or th). Works well with d.\r\n * '…' or \"…\"\tLiteral character sequence. Surrounding quotes are removed.\r\n * UTC\t\t\tMust be the first four characters of the mask. Converts the date from local time to UTC/GMT/Zulu time before applying the mask. The \"UTC:\" prefix is removed.\r\n */\r\n format(date: any, mask?: string, utc?: boolean): string {\r\n // You can't provide utc if you skip other args (use the \"UTC:\" mask prefix)\r\n if (arguments.length === 1 && Object.prototype.toString.call(date) === \"[object String]\" && !/\\d/.test(date)) {\r\n mask = date;\r\n date = undefined;\r\n }\r\n\r\n // Passing date through Date applies Date.parse, if necessary\r\n date = date ? new Date(date) : new Date();\r\n if (isNaN(date)) {\r\n throw SyntaxError(\"invalid date\");\r\n }\r\n\r\n mask = String(this._masks[mask] || mask || this._masks[\"default\"]);\r\n\r\n // Allow setting the utc argument via the mask\r\n if (mask.slice(0, 4) === \"UTC:\") {\r\n mask = mask.slice(4);\r\n utc = true;\r\n }\r\n\r\n let _ = utc ? \"getUTC\" : \"get\",\r\n d = date[_ + \"Date\"](),\r\n D = date[_ + \"Day\"](),\r\n m = date[_ + \"Month\"](),\r\n y = date[_ + \"FullYear\"](),\r\n H = date[_ + \"Hours\"](),\r\n M = date[_ + \"Minutes\"](),\r\n s = date[_ + \"Seconds\"](),\r\n L = date[_ + \"Milliseconds\"](),\r\n o = utc ? 0 : date.getTimezoneOffset(),\r\n flags = {\r\n d: d,\r\n dd: this._pad(d),\r\n ddd: this._i18n.dayNames[D],\r\n dddd: this._i18n.dayNames[D + 7],\r\n m: m + 1,\r\n mm: this._pad(m + 1),\r\n mmm: this._i18n.monthNames[m],\r\n mmmm: this._i18n.monthNames[m + 12],\r\n yy: String(y).slice(2),\r\n yyyy: y,\r\n h: H % 12 || 12,\r\n hh: this._pad(H % 12 || 12),\r\n H: H,\r\n HH: this._pad(H),\r\n M: M,\r\n MM: this._pad(M),\r\n s: s,\r\n ss: this._pad(s),\r\n l: this._pad(L, 3),\r\n L: this._pad(L > 99 ? Math.round(L / 10) : L),\r\n t: H < 12 ? \"a\" : \"p\",\r\n tt: H < 12 ? \"am\" : \"pm\",\r\n T: H < 12 ? \"A\" : \"P\",\r\n TT: H < 12 ? \"AM\" : \"PM\",\r\n Z: utc ? \"UTC\" : (String(date).match(this._timezone) || [\"\"]).pop().replace(this._timezoneClip, \"\"),\r\n o: (o > 0 ? \"-\" : \"+\") + this._pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),\r\n S: [\"th\", \"st\", \"nd\", \"rd\"][d % 10 > 3 ? 0 : ((d % 100 - d % 10) !== 10 ? 1 : 0) * d % 10]\r\n };\r\n\r\n return mask.replace(this._token, ($0) => {\r\n return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);\r\n });\r\n }\r\n\r\n private _pad(val: number, len: number = 2): string {\r\n let valAsString = String(val);\r\n while (valAsString.length < len) {\r\n valAsString = \"0\" + valAsString;\r\n }\r\n return valAsString;\r\n }\r\n\r\n formatCurrentDateToUtc(): string {\r\n return this.format(new Date(), 'UTC:yyyy-mm-dd\\'T\\'HH:MM:ss\\'Z\\'');\r\n }\r\n\r\n formatUtc(date: Date): string {\r\n return this.format(date, 'UTC:yyyy-mm-dd\\'T\\'HH:MM:ss\\'Z\\'');\r\n }\r\n}\r\n\r\nexport default new DateFormatter();","\r\nexport enum GermanyResponsibleGamingButtonPlacement {\r\n inGame = 0,\r\n inDetailedHistory = 1\r\n}","import {OrbitComponent} from '../orbit-component/orbit-component';\r\n\r\nexport class RoutedComponent extends OrbitComponent {\r\n}\r\n","import 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 width: 100%;\r\n background-color: ${props => props.theme.colors.brandSecondary};\r\n color: ${props => props.theme.colors.moneyColor};\r\n padding: 2px 0;\r\n border-top-right-radius: 2px;\r\n border-bottom-right-radius: 2px;\r\n`;","import 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 styled from \"styled-components\";\r\n\r\nexport const XCloseButtonBox = styled.button`\r\n cursor: pointer;\r\n background-image: url(\"${props => props.theme.images.closeModalDialog.toString()}\");\r\n background-size: contain;\r\n background-repeat: no-repeat;\r\n background-position: center center;\r\n &:hover {\r\n opacity: 0.5;\r\n }\r\n`;","import 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 const ITEM_WRAPPER_BOX = 'item-wrapper-box';\r\nexport const RED = 'red';\r\nexport const GREEN = 'green';","export enum BalanceType {\r\n CASH = \"cash\",\r\n BONUS = \"bonus\",\r\n BOTH = \"both\"\r\n}\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport {OrbitComponent} from \"../../components/base-components/orbit-component/orbit-component\";\r\n\r\nconst SelectWrapperBox = styled.div<{width?: string;}>`\r\n display: inline-block;\r\n position: relative;\r\n width: ${({width}) => width};\r\n color: ${({theme}) => theme.colors.textLight};\r\n`;\r\n\r\nconst SelectBox = styled.select<{width?: string; hasError?: boolean;}>`\r\n height: 4.5rem;\r\n width: ${({width}) => width};\r\n ${({theme}) => theme.font.presets.regular};\r\n font-size: 1.4rem;\r\n transition: border-radius 0.2s linear, border-color 0.2s linear;\r\n background-color: ${props => props.theme.colors.backgroundMiddleDark};\r\n color: inherit;\r\n border-radius: ${({theme}) => theme.layout.border.radius};\r\n border-color: ${props => props.hasError ? props.theme.colors.danger : props.theme.colors.boxBorderLighter};\r\n &:hover {\r\n border-color: ${props => props.hasError ? props.theme.colors.danger : props.theme.colors.boxBorderContrast};;\r\n }\r\n border-width: 1px;\r\n border-style: solid;\r\n padding: 0 4rem 0 1.6rem;\r\n\r\n /* REMOVE THE DEFAULT ARROW */\r\n /* for Firefox */\r\n -moz-appearance: none;\r\n /* for Safari, Chrome, Opera */\r\n -webkit-appearance: none;\r\n /* for IE10 */\r\n &::-ms-expand {\r\n display: none;\r\n }\r\n`;\r\n\r\nconst SelectBoxArrow = styled.div`\r\n position: absolute;\r\n right: 0.6rem;\r\n top: 0;\r\n width: 3rem;\r\n padding: 0.7rem;\r\n margin-top: 0.72rem;\r\n pointer-events: none;\r\n border-radius: 50%;\r\n\r\n transition: transform 0.2s linear;\r\n transform: rotate(90deg);\r\n`;\r\n\r\ninterface ISelectProps {\r\n // standard props from native html select element that will be passed directly\r\n id?: string;\r\n name?: string;\r\n value?: string | number;\r\n onChange?(event: React.ChangeEvent): void;\r\n className?: string;\r\n\r\n // custom props, not native html select element\r\n hasError?: boolean;\r\n width?: string;\r\n}\r\n\r\nexport class Select extends OrbitComponent { // React.SelectHTMLAttributes\r\n render() {\r\n let {width, ...passThroughProps} = this.props;\r\n width = width || \"auto\";\r\n const selectWidth = width !== \"auto\" ? \"100%\" : \"auto\";\r\n\r\n const ArrowIcon = this.services.theme.currentTheme.icons.rightArrowIcon;\r\n return \r\n \r\n {this.props.children}\r\n \r\n \r\n \r\n \r\n ;\r\n }\r\n}","/**\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 {TopBannerDefaultBox} from \"./top-banner.default.box\";\r\nimport {styledByTheme} from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {TopBanner777Box} from \"./top-banner.777.box\";\r\nimport {TopBannerSIBox} from \"./top-banner.si.box\";\r\n\r\nexport const TopBannerBox = styledByTheme(TopBannerDefaultBox)\r\n .forCasino777(TopBanner777Box)\r\n .forSI(TopBannerSIBox)\r\n .apply();","import {TopBannerImageDefaultBox} from \"./top-banner-image.default.box\";\r\n\r\nexport const TopBannerImageBox = TopBannerImageDefaultBox;","import styled from \"styled-components\";\r\nimport { Image } from \"../../../raw-components/image/image\";\r\n\r\nexport const TopBannerImageDefaultBox = styled(Image)`\r\n position: absolute;\r\n width: 100%;\r\n height: auto;\r\n bottom: 0;\r\n`;","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../themes/architecture/styled-by-device\";\r\nimport {NEW_LIVE_CASINO_PAGE} from \"../../../../themes/css-global-classes\";\r\nimport { Image } from \"../../../raw-components/image/image\";\r\n\r\nconst PCBox = styled(Image)``;\r\n\r\nconst MobileBox = styled(Image)`\r\n .${NEW_LIVE_CASINO_PAGE} & {\r\n max-height: 40px;\r\n }\r\n`;\r\n\r\nexport const TopBannerLogoImageDefaultBox = styledByDevice(PCBox, MobileBox);","import styled from \"styled-components\";\r\nimport {LIVE_CASINO_PAGE} from \"../../../../themes/css-global-classes\";\r\nimport {TopBannerLogoImageDefaultBox} from \"./top-banner-logo-image.default.box\";\r\n\r\nexport const TopBannerLogoImageCasino777Box = styled(TopBannerLogoImageDefaultBox)`\r\n .${LIVE_CASINO_PAGE} &{\r\n display:none;\r\n }\r\n`;","import {TopBannerLogoImageDefaultBox} from \"./top-banner-logo-image.default.box\";\r\nimport {styledByTheme} from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {TopBannerLogoImageCasino777Box} from \"./top-banner-logo-image.casino777.box\";\r\n\r\nexport const TopBannerLogoImageBox = styledByTheme(TopBannerLogoImageDefaultBox).forCasino777(TopBannerLogoImageCasino777Box).apply() ;\r\n","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../themes/architecture/styled-by-device\";\r\n\r\nconst DefaultBox = styled.h1`\r\n font-weight: 300;\r\n ${({theme}) => theme.font.presets.medium};\r\n color: ${props => props.theme.colors.textLight};\r\n`;\r\n\r\nconst PCBox = styled(DefaultBox)`\r\n font-size: 2rem;\r\n text-transform: capitalize;\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n font-size: 1.8rem;\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n font-size: 1.2rem;\r\n }\r\n`;\r\n\r\nexport const TopBannerTitleDefaultBox = styledByDevice(PCBox, MobileBox);","import styled from \"styled-components\";\r\nimport {LIVE_CASINO_PAGE} from \"../../../../themes/css-global-classes\";\r\nimport {TopBannerTitleDefaultBox} from \"./top-banner-title.default.box\";\r\n\r\nexport const TopBannerTitleCasino777Box = styled(TopBannerTitleDefaultBox)`\r\n ${({theme}) => theme.font.presets.bold};\r\n .${LIVE_CASINO_PAGE} &{\r\n display:none;\r\n }\r\n`;\r\n","import {TopBannerTitleDefaultBox} from \"./top-banner-title.default.box\";\r\nimport {styledByTheme} from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {TopBannerTitleCasino777Box} from \"./top-banner-title.casino777.box\";\r\n\r\nexport const TopBannerTitleBox = styledByTheme(TopBannerTitleDefaultBox).forCasino777(TopBannerTitleCasino777Box).apply();","import styled from \"styled-components\";\r\n\r\nexport const TopBannerLiveLogoDefaultBox = styled.div`\r\n position: absolute;\r\n width: 100%;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n display: flex;\r\n align-items: center;\r\n flex-direction: column;\r\n justify-content: center;\r\n`;\r\n","import styled from \"styled-components\";\r\nimport {TopBannerLiveLogoDefaultBox} from \"./top-banner-live-logo.default.box\";\r\n\r\nexport const TopBannerLiveLogoCasino777Box = styled(TopBannerLiveLogoDefaultBox)`\r\n`;","import {TopBannerLiveLogoDefaultBox} from \"./top-banner-live-logo.default.box\";\r\nimport {styledByTheme} from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {TopBannerLiveLogoCasino777Box} from \"./top-banner-live-logo.casino777.box\";\r\n\r\nexport const TopBannerLiveLogoBox = styledByTheme(TopBannerLiveLogoDefaultBox).forCasino777(TopBannerLiveLogoCasino777Box).apply();","import React, {RefObject} from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\nimport {TopBannerBox} from \"./boxes/top-banner/top-banner.box\";\r\nimport {TopBannerImageBox} from \"./boxes/top-banner-image/top-banner-image.box\";\r\nimport {TopBannerLogoImageBox} from \"./boxes/top-banner-logo-image/top-banner-logo-image.box\";\r\nimport {TopBannerTitleBox} from \"./boxes/top-banner-title/top-banner-title.box\";\r\nimport {TopBannerLiveLogoBox} from \"./boxes/top-banner-live-logo/top-banner-live-logo.box\";\r\nimport {ThemeProvider} from \"styled-components\";\r\n\r\nexport interface TopImageComponentProps {\r\n image: string;\r\n title?: string;\r\n altText?: string;\r\n className?: string;\r\n topImageRef?: RefObject;\r\n}\r\n\r\n@observer\r\nexport class TopImageComponent extends OrbitComponent {\r\n\r\n private _renderLogoAndTitle() {\r\n if(this.props.title) {\r\n const srcLogo = this.services.device.isMobile\r\n ? this.services.theme.currentTheme.images.liveArena.casinoLiveLogoMobile.toString()\r\n : this.services.theme.currentTheme.images.liveArena.casinoLiveLogoPC.toString();\r\n return (\r\n \r\n \r\n {this.services.translation.translate(this.props.title)}\r\n \r\n )\r\n }\r\n return null;\r\n }\r\n\r\n render() {\r\n\r\n if(!this.props.image) {\r\n return null;\r\n }\r\n\r\n // TODO: maybe get also an image placeholder to enable lazy loading\r\n return (\r\n \r\n \r\n \r\n {this._renderLogoAndTitle()}\r\n \r\n \r\n )\r\n\r\n }\r\n}\r\n","import styled from \"styled-components\";\r\nimport {ACTIVE} from \"../../../../../../themes/css-global-classes\";\r\n\r\nexport const PanicButtonBox = styled.div`\r\n width: 15.7rem;\r\n height: 2.7rem;\r\n background: url(\"${props => props.theme.images.germanyPanicButton.toString()}\") center center / 100% 100% no-repeat;\r\n\r\n &.${ACTIVE} {\r\n &::after{\r\n display: block;\r\n }\r\n }\r\n\r\n &::before {\r\n content: '';\r\n display: inline-block;\r\n position: relative;\r\n top: 2.1rem;\r\n width: 15rem;\r\n height: 0.6rem;\r\n background: transparent;\r\n }\r\n\r\n &::after{\r\n display: none;\r\n content: \" \";\r\n position: relative;\r\n left: 3rem;\r\n top: 0.7rem;\r\n width: 1px;\r\n border-width: 5px;\r\n border-style: solid;\r\n border-color: transparent transparent ${({theme}) => theme.colors.backgroundContrast} transparent;\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow}{\r\n @media ${({theme}) => theme.mediaQuery.portrait}{\r\n left: 7.5rem;\r\n }\r\n }\r\n }\r\n`;\r\n","export const IN_DETAILED_HISTORY= 'in-detailed-history';\r\nexport const IN_GAME = \"in-game\";","import styled from \"styled-components\";\r\nimport {ACTIVE} from \"../../../../../../themes/css-global-classes\";\r\nimport {IN_DETAILED_HISTORY} from \"../css-classes\";\r\n\r\nexport const PanicButtonTooltipBox = styled.div`\r\n display: none;\r\n background-color: white;\r\n text-align: center;\r\n border-radius: 0.3rem;\r\n padding: 0.5rem;\r\n margin-top: 1.7rem;\r\n cursor: default;\r\n\r\n position: absolute !important;\r\n z-index: 107;\r\n ${({theme}) => theme.font.presets.body};\r\n font-size: 1.2rem;\r\n color: ${({theme}) => theme.colors.textDark};\r\n\r\n &.${ACTIVE} {\r\n display: block;\r\n }\r\n\r\n &.${IN_DETAILED_HISTORY} {\r\n @media ${({theme}) => theme.mediaQuery.sAndAbove}{\r\n @media ${({theme}) => theme.mediaQuery.landscape}{\r\n left: initial;\r\n transform: translateX(-58%);\r\n }\r\n }\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow}{\r\n @media ${({theme}) => theme.mediaQuery.portrait}{\r\n left: 1rem;\r\n width: calc(100% - 2rem);\r\n box-sizing: border-box;\r\n }\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.hoverNone}{\r\n padding: 0.5rem 1rem 0.5rem 1rem;\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\n\r\nexport const PanicButtonPopupBox = styled.div`\r\n display:flex;\r\n flex-direction: column;\r\n align-items: center;\r\n padding: 5rem 5rem 0;\r\n ${({theme}) => theme.font.presets.body};\r\n font-size: 1.5rem;\r\n color: ${({theme}) => theme.colors.textLight};\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow } {\r\n padding: 5rem 0 0;\r\n }\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const PanicButtonPopupTimeBox = styled.span`\r\n color: ${({theme}) => theme.colors.brandPrimary}; \r\n padding-left: 0.5rem;\r\n padding-right: 0.5rem;\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const PanicButtonPopupOkBox = styled.div`\r\n width: 100%;\r\n margin-top: 5rem;\r\n`;","import {OrbitComponent} from \"../../../../base-components/orbit-component/orbit-component\";\r\nimport {PanicButtonPopupBox} from \"./boxes/panic-button-popup.box\";\r\nimport React from 'react';\r\nimport {TimeSpan} from \"@sparkware/app-utils\";\r\nimport {IModalDialogHandler} from \"../../../../../services/dialog/dialog.service.interface\";\r\nimport {PanicButtonPopupTimeBox} from \"./boxes/panic-button-popup-time.box\";\r\nimport {PanicButtonPopupOkBox} from \"./boxes/panic-button-popup-ok.box\";\r\nimport { DialogTextBox } from \"../../../../modal-dialog/boxes/text/dialog-text.box\";\r\nimport { ModalDialogActionsComponent } from \"../../../../modal-dialog/modal-dialog-actions.component\";\r\n\r\ninterface PanicButtonPopupComponentProps{\r\n textMessage1:string,\r\n textMessage2:string,\r\n textMessage3:string,\r\n dialogHandler: IModalDialogHandler;\r\n}\r\n\r\nexport class PanicButtonPopupComponent extends OrbitComponent{\r\n\r\n private _getTime():string{\r\n const now = new Date();\r\n return new TimeSpan(0,now.getHours(),now.getMinutes()).toString();\r\n }\r\n\r\n private _closeDialog = () => {\r\n this.props.dialogHandler.close();\r\n }\r\n\r\n render(){\r\n return (\r\n \r\n {this.props.textMessage1}\r\n \r\n {this.props.textMessage2}\r\n {this._getTime()}\r\n {this.props.textMessage3}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}","import styled from \"styled-components\";\r\n\r\nexport const TooltipClickHereBox = styled.span`\r\n text-decoration: underline;\r\n font-weight: bold;\r\n padding-left: 0.5rem;\r\n padding-right: 0.5rem;\r\n cursor: pointer;\r\n margin-bottom: 0;\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const PanicButtonTooltipCloseBox = styled.div`\r\n position: absolute;\r\n right: 0.2rem;\r\n top: 0.1rem;\r\n width: 1rem;\r\n height: 1rem;\r\n cursor: pointer;\r\n \r\n &::before, &::after {\r\n position: absolute;\r\n content: ' ';\r\n height: 1rem;\r\n width: 0.1rem;\r\n background-color: black;\r\n }\r\n &::before {\r\n transform: rotate(45deg);\r\n }\r\n &::after {\r\n transform: rotate(-45deg);\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {ACTIVE} from \"../../../../../../themes/css-global-classes\";\r\n\r\nexport const PanicButtonMobileOverlayBox = styled.div`\r\n display: none;\r\n position:absolute;\r\n width: 100vw;\r\n height: 100vh;\r\n background-color:rgba(0, 0, 0, 0);\r\n top:0;\r\n left:0;\r\n z-index: 106;\r\n \r\n &.${ACTIVE}{\r\n display: block;\r\n }\r\n`;","import React from 'react';\r\nimport {CyClass} from \"../../../../../../common/cy-classes\";\r\nimport {PanicButtonBox} from \"./boxes/panic-button.box\";\r\nimport {PanicButtonTooltipBox} from \"./boxes/panic-button-tooltip.box\";\r\nimport classNames from 'classnames';\r\nimport {observer} from \"mobx-react\";\r\nimport {PanicButtonPopupComponent} from \"./panic-button-popup.component\";\r\nimport {TooltipClickHereBox} from \"./boxes/panic-button-tooltip-click-here\";\r\nimport {OrbitComponentWithState} from \"../../../../base-components/orbit-component-with-state/orbit-component-with-state\";\r\nimport {ACTIVE} from \"../../../../../themes/css-global-classes\";\r\nimport {IN_DETAILED_HISTORY} from \"./css-classes\";\r\nimport {GermanyResponsibleGamingButtonPlacement} from \"../../../../../../common/const/responsible-gaming\";\r\nimport {PanicButtonTooltipCloseBox} from \"./boxes/panic-button-tooltip-close.box\";\r\nimport {PanicButtonMobileOverlayBox} from \"./boxes/panic-button-mobile-overlay.box\";\r\n\r\ninterface TooltipState{\r\n isTooltipVisible:boolean\r\n}\r\n\r\nexport interface ResponsibleGamingButtonsGermanyComponentProps{\r\n placement:GermanyResponsibleGamingButtonPlacement\r\n}\r\n\r\n@observer\r\nexport class ResponsibleGamingButtonsGermanyComponent extends OrbitComponentWithState {\r\n state: TooltipState = {\r\n isTooltipVisible: false\r\n };\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n this.setState({\r\n isTooltipVisible: false\r\n })\r\n }\r\n\r\n private _restrictUser(): void {\r\n this.setState({isTooltipVisible: false});\r\n this.services.user.panicRestrictUser().then((data) => {\r\n console.log(data);\r\n this._openPopup();\r\n }).catch((err) => {\r\n console.log(err);\r\n });\r\n this._sendAnalytics(\"activate\");\r\n }\r\n\r\n private _openPopup() {\r\n this.services.dialog.showModal((dialogHandler) =>\r\n ,\r\n {\r\n title: this.services.translation.translate(\"panic_restriction_popup_title\"),\r\n shouldBeClosedOnlyByUser: true,\r\n hideCloseButton: true,\r\n isHighPriority: true\r\n })\r\n }\r\n\r\n private _onMouseEnterPanicBtn() {\r\n if (this.services.mediaQuery.hover) {\r\n this.setState({isTooltipVisible: true});\r\n this._sendAnalytics(\"click\");\r\n }\r\n }\r\n\r\n private _onMouseLeavePanicBtn() {\r\n if (this.services.mediaQuery.hover) {\r\n this.setState({isTooltipVisible: false});\r\n }\r\n }\r\n\r\n private _closeToolTip(event) {\r\n event.stopPropagation();\r\n this.setState({isTooltipVisible: false});\r\n }\r\n\r\n private onClickPanicBtn() {\r\n if (!this.services.mediaQuery.hover) {\r\n this.setState({isTooltipVisible: true});\r\n this._sendAnalytics(\"click\");\r\n }\r\n }\r\n\r\n private _sendAnalytics(label: string) {\r\n this.services.analytics.sendAnalytics(\"Navigation\", \"Header\", \"Icon_panic_\" + label);\r\n }\r\n\r\n private _renderCloseBtn() {\r\n if (!this.services.mediaQuery.hover) {\r\n return this._closeToolTip(event)}/>\r\n }\r\n return null;\r\n }\r\n\r\n private _renderTooltipClickHere() {\r\n if (this.services.mediaQuery.sAndBelow && this.services.mediaQuery.portrait) {\r\n return (
{this._getTooltipBox()}
);\r\n } else {\r\n return this._getTooltipBox();\r\n }\r\n }\r\n\r\n private _getTooltipBox() {\r\n return this._restrictUser()}>klicken Sie hier.\r\n }\r\n\r\n private _renderMobileOverlay(){\r\n if (!this.services.mediaQuery.hover) {\r\n return this._closeToolTip(event)}/>\r\n }\r\n return null;\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n this._onMouseEnterPanicBtn()}\r\n onMouseLeave={() => this._onMouseLeavePanicBtn()}\r\n onClick={() => this.onClickPanicBtn()}>\r\n \r\n
\r\n Um eine 24-stündige Spielpause einzulegen,\r\n {this._renderTooltipClickHere()}\r\n {this._renderCloseBtn()}\r\n
\r\n \r\n
\r\n {this._renderMobileOverlay()}\r\n
\r\n )\r\n }\r\n}","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../themes/architecture/styled-by-device\";\r\n\r\nconst AdminBannerBoxPC = styled.div`\r\n 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 React from 'react';\r\nimport { StyledComponent } from 'styled-components';\r\nimport { OrbitTheme } from './orbit-theme.interface';\r\nimport { OrbitComponent } from '../../components/base-components/orbit-component/orbit-component';\r\nimport { ByThemeRegistry } from './by-theme-registry';\r\n\r\nclass StyledByTheme, O extends object = {}>\r\n extends ByThemeRegistry> {\r\n\r\n apply(): StyledComponent {\r\n const getRegistryItem = this.getRegistryItem;\r\n let ComponentDefinition = class extends OrbitComponent{\r\n render() {\r\n let Component: any = getRegistryItem(this.services.theme.currentTheme.themeName);\r\n\r\n return (\r\n \r\n {this.props.children}\r\n \r\n );\r\n }\r\n };\r\n\r\n let finalComponent = React.forwardRef((props, ref) => );\r\n\r\n return (finalComponent as any) as StyledComponent;\r\n }\r\n}\r\n\r\n\r\nexport function styledByTheme<\r\n C extends keyof JSX.IntrinsicElements | React.ComponentType,\r\n O extends object = {}\r\n>(defaultComponent: StyledComponent): StyledByTheme {\r\n return new StyledByTheme(defaultComponent);\r\n}\r\n","export enum MyAccountTab {\r\n ResponsibleGaming = 1,\r\n ChangePassword = 2,\r\n Bonuses = 3,\r\n PersonalDetails = 4,\r\n InviteAFriend = 5,\r\n Reports = 6,\r\n LCChallenges = 7, //LC I think it comes from something with Loyalty\r\n LCRedemption = 8,\r\n Tournament = 10,\r\n FreePlay = 11,\r\n FreeBets = 12,\r\n ComPoints = 13,\r\n MyChallenges = 16\r\n}\r\n\r\nexport interface IOpenMyAccountOptions {\r\n tabId?: MyAccountTab;\r\n}\r\nexport interface IMyAccountExternalLinkHandler {\r\n openMyAccount(options?: IOpenMyAccountOptions): Promise;\r\n}","import { TimeSpan } from \"@sparkware/app-utils\";\r\n\r\nexport interface ImagePreloadPromiseResponse {\r\n error: string | null;\r\n backgroundUrl: string;\r\n imageObj: HTMLImageElement;\r\n}\r\n\r\nexport function imagePreload(src: string, timeout?: TimeSpan) {\r\n timeout = timeout || TimeSpan.fromMinutes(2);\r\n return new Promise((res, rej) => {\r\n let image = new Image();\r\n image.onload = () => {\r\n clearTimeout(timeoutRejection);\r\n res({error: null, backgroundUrl: src, imageObj: image});\r\n };\r\n image.onerror = ()=> {\r\n rej({\r\n error: 'Could not load image on path => ' + src,\r\n backgroundUrl: src\r\n });\r\n };\r\n const timeoutRejection = setTimeout(() => {\r\n rej({\r\n error: 'Timeout. Could not load image on path => ' + src,\r\n backgroundUrl: src\r\n });\r\n }, timeout.totalMilliseconds);\r\n image.src = src;\r\n });\r\n}\r\n\r\nexport function imagePreloadWithDefault(src: string | null | undefined, defaultPath: string) {\r\n if (src) {\r\n return imagePreload(src).catch(() => {\r\n return imagePreload(defaultPath);\r\n });\r\n } else {\r\n return imagePreload(defaultPath);\r\n }\r\n}\r\n","\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 const CASHIER_SESSION_TYPES = {\r\n DEPOSIT: 1,\r\n TRANSACTIONS_HISTORY: 2,\r\n WITHDRAWAL: 4,\r\n FULL_CASHIER_CDH: 9,\r\n FULL_CASHIER: 8,\r\n QUICK_DEPOSIT: 16,\r\n COOLING_OFF: 18,\r\n VERIFY_ID: 20,\r\n MOBILE_VERIFY_ID: 21\r\n};\r\n","export enum GamingHistoryType {\r\n UserHistory = 1,\r\n SessionHistory = 2\r\n}\r\n","import {TimeSpan} from \"@sparkware/app-utils\";\r\n\r\nexport enum TSR_TYPE {\r\n SESSION_TIMER,\r\n GAME_TIMER\r\n}\r\n\r\nexport type ITimeSpentReminderOptions = ISessionTimeSpentReminderComponentProps | IGameTimeSpentReminderComponentProps;\r\n\r\nexport interface ITimeSpentReminderComponentBaseProps {\r\n playingTime: TimeSpan;\r\n}\r\n\r\ninterface ISessionTimeSpentReminderComponentProps extends ITimeSpentReminderComponentBaseProps {\r\n timerType: TSR_TYPE.SESSION_TIMER;\r\n}\r\n\r\ninterface IGameTimeSpentReminderComponentProps extends ITimeSpentReminderComponentBaseProps {\r\n timerType: TSR_TYPE.GAME_TIMER;\r\n onStopReminders: () => void;\r\n}\r\n\r\nexport interface ITimeSpentReminderWithBalanceComponentProps extends ITimeSpentReminderComponentBaseProps {\r\n totalNetLoss: number;\r\n isInGame: boolean;\r\n}","import styled from \"styled-components\";\r\n\r\nexport const GeoModalWrapperBox = styled.div`\r\n max-width: 560px;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-content: center;\r\n align-items: center;\r\n\r\n width: 25vw;\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n width: 82vw;\r\n }\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow + \" and \" + theme.mediaQuery.landscape} {\r\n width: 56vw;\r\n }\r\n`;\r\n","import { CASHIER_SESSION_TYPES } from './../const/cashier-session-types';\r\nimport { Check } from '@sparkware/app-utils';\r\n\r\nexport function isDepositSessionType(sessionType: number | string | null | undefined): boolean {\r\n if(Check.isNullOrUndefined(sessionType)) {\r\n return true;\r\n }\r\n\r\n sessionType = sessionType.toString();\r\n return sessionType === CASHIER_SESSION_TYPES.QUICK_DEPOSIT.toString()\r\n || sessionType === CASHIER_SESSION_TYPES.FULL_CASHIER.toString()\r\n || sessionType === CASHIER_SESSION_TYPES.DEPOSIT.toString();\r\n}\r\n\r\nexport function isCashoutSessionType(sessionType: number | string | null | undefined): boolean {\r\n // cashout should be open only when session type is defined and only if is withdrawal\r\n if(Check.isNullOrUndefined(sessionType)) {\r\n return false;\r\n }\r\n\r\n sessionType = sessionType.toString();\r\n return sessionType === CASHIER_SESSION_TYPES.WITHDRAWAL.toString();\r\n}","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","/**\r\n * System event symbols, used internally for identifying events uniquely.\r\n */\r\nconst SYSTEM_EVENTS = {\r\n ON_INIT_COMPLETE : 'ON_INIT_COMPLETE',\r\n ON_ORBIT_INIT_COMPLETE : 'ON_ORBIT_INIT_COMPLETE',\r\n RUN_AUTOLOGIN : 'RUN_AUTOLOGIN',\r\n RUN_AUTOLOGIN_TOUCH_ID : 'RUN_AUTOLOGIN_TOUCH_ID',\r\n MESSAGE_OPEN : 'MESSAGE_OPEN',\r\n MESSAGE_CLOSE : 'MESSAGE_CLOSE',\r\n ON_BEFORE_OAUTH_STATE_CHANGE : 'ON_BEFORE_OAUTH_STATE_CHANGE',\r\n OAUTH_STATE_CHANGE : 'OAUTH_STATE_CHANGE',\r\n AUTOLOGIN_SUCCESS : 'AUTOLOGIN_SUCCESS',\r\n AUTOLOGIN_FAILED : 'AUTOLOGIN_FAILED',\r\n SUCCESSFULLY_LOGIN_RESPONSE : 'SUCCESSFULLY_LOGIN_RESPONSE',\r\n ON_RUN_AUTOLOGIN : 'ON_RUN_AUTOLOGIN',\r\n FAIL_LOGIN_RESPONSE : 'FAIL_LOGIN_RESPONSE',\r\n CLOSE_GAME : 'CLOSE_GAME',\r\n LOGIN_FORM_OPEN : 'LOGIN_FORM_OPEN',\r\n LOGIN_FORM_CLOSE : 'LOGIN_FORM_CLOSE',\r\n GET_NEW_TOUCH_TOKEN : 'GET_NEW_TOUCH_TOKEN',\r\n SCREEN_CHANGE_STATE : 'SCREEN_CHANGE_STATE',\r\n POST_MESSAGE_ARRIVE : 'POST_MESSAGE_ARRIVE',\r\n HYBRID_POST_MESSAGE_ARRIVE : 'HYBRID_POST_MESSAGE_ARRIVE',\r\n EXTEND_USER_TIME_TO_LIVE : 'EXTEND_USER_TIME_TO_LIVE',\r\n SCREEN_RESIZE_CHANGED : 'SCREEN_RESIZE_CHANGED',\r\n GAME_OPEN : 'GAME_OPEN',\r\n OPEN_GAME_ERROR : 'OPEN_GAME_ERROR',\r\n FULL_SCREEN_CHANGE : 'FULL_SCREEN_CHANGE',\r\n OPEN_OVERLAY : 'OPEN_OVERLAY',\r\n CLOSE_OVERLAY : 'CLOSE_OVERLAY',\r\n CLOSE_ALL_OVERLAY : 'CLOSE_ALL_OVERLAY',\r\n EXTERNAL_LINK_OPEN : 'EXTERNAL_LINK_OPEN',\r\n EXTERNAL_LINK_CLOSED : 'EXTERNAL_LINK_CLOSED',\r\n EXTERNAL_LINK_OPENED : 'EXTERNAL_LINK_OPENED',\r\n APP_RESUMED : 'APP_RESUMED',\r\n APP_PAUSED : 'APP_PAUSED',\r\n LOGIN_SESSION_RESUMED : \"LOGIN_SESSION_RESUMED\",//triggered on page refresh, autologin (continue other's client session), open app or resume app with successful refresh token\r\n ANALYTIC_TRIGGER_ACTIVATED : 'ANALYTIC_TRIGGER_ACTIVATED',\r\n ANALYTIC_DATA_LAYER_UPDATE : 'ANALYTIC_DATA_LAYER_UPDATE',\r\n ANALYTICS_EXPERIMENT_ACTIVATED: 'ANALYTICS_EXPERIMENT_ACTIVATED',\r\n ANALYTICS_OPTIMIZE_TRIGGER : 'ANALYTICS_OPTIMIZE_TRIGGER',\r\n INCOMING_MARKETING_DATA : 'INCOMING_MARKETING_DATA',\r\n INCOMING_MARKETING_FLOW : 'INCOMING_MARKETING_FLOW',\r\n PLAYER_ACTION: 'PLAYER_ACTION',\r\n\r\n BALANCE_UPDATED: 'BALANCE_UPDATED',\r\n CURRENCY_UPDATED: 'CURRENCY_UPDATED',\r\n RECENTLY_PLAYED_GAMES_UPDATED: 'RECENTLY_PLAYED_GAMES_UPDATED',\r\n LIVE_FEEDS_LATEST_WINNERS_UPDATED: 'LIVE_FEEDS_LATEST_WINNERS_UPDATED',\r\n LIVE_FEEDS_WINNINGS_UPDATED: 'LIVE_FEEDS_WINNINGS_UPDATED',\r\n LIVE_FEEDS_TOTAL_JACKPOTS_UPDATED: 'LIVE_FEEDS_TOTAL_JACKPOTS_UPDATED',\r\n LIVE_FEEDS_JACKPOT_AMOUNTS_UPDATED: 'LIVE_FEEDS_JACKPOT_AMOUNTS_UPDATED',\r\n LIVE_FEEDS_STATE_JACKPOTS_UPDATED: 'LIVE_FEEDS_STATE_JACKPOTS_UPDATED',\r\n OMG_AWAITING_MESSAGES_UPDATED: 'OMG_AWAITING_MESSAGES_UPDATED',\r\n OMG_OPEN_AWAITING_MESSAGES: 'OMG_OPEN_AWAITING_MESSAGES',\r\n OAUTH_REMOVE_FROM_LOCAL_STORAGE: 'SYSTEM_EVENTS.OAUTH_REMOVE_FROM_LOCAL_STORAGE',\r\n LOCAL_STORAGE_CHANGED: 'LOCAL_STORAGE_CHANGED',\r\n ELEMENT_CREATED: 'ELEMENT_CREATED',\r\n FREE_PLAY_UPDATED: 'FREE_PLAY_UPDATED',\r\n FREE_PLAY_VOUCHER_REMOVED: 'FREE_PLAY_VOUCHER_REMOVED',\r\n FREE_PLAY_OPEN_VOUCHERS_MSG: 'FREE_PLAY_OPEN_VOUCHERS_MSG',\r\n RESIZE_FORM: 'RESIZE_FORM',\r\n BEGIN_LOGIN_AFTER_REGISTRATION: 'BEGIN_LOGIN_AFTER_REGISTRATION',\r\n LOGIN_COMPLETED_AFTER_REGISTERATION: 'LOGIN_COMPLETED_AFTER_REGISTERATION',\r\n LOGIN_FAILED_AFTER_REGISTRATION: 'LOGIN_FAILED_AFTER_REGISTRATION',\r\n REGISTRATION_COMPLETED: 'REGISTRATION_COMPLETED',\r\n DETACH_REGISTER_EVENT: 'DETACH_REGISTER_EVENT',\r\n FREE_PLAY_VOUCHER_MSG_OPENED: 'FREE_PLAY_VOUCHER_MSG_OPENED',\r\n FREE_PLAY_OPEN_INTERNAL_VOUCHERS_MESSAGE: 'FREE_PLAY_OPEN_INTERNAL_VOUCHERS_MESSAGE',\r\n TOAST_CREATED: 'TOAST_CREATED',\r\n TOAST_SHOW: 'TOAST_SHOW',\r\n TOAST_HIDE: 'TOAST_HIDE',\r\n TOAST_CLOSE_BUTTON: 'TOAST_CLOSE_BUTTON',\r\n TOAST_USER_DISMISS: 'USER_DISMISSED_TOAST',\r\n HYBRID_ALERT: 'HYBRID_ALERT',\r\n HYBRID_OPEN_MAIL: 'HYBRID_OPEN_MAIL',\r\n HYBRID_UPDATE_INFO_KEY : 'HYBRID_UPDATE_INFO_KEY',\r\n FIREBASE_GOT_NEW_TOKEN: 'FIREBASE_GOT_NEW_TOKEN',\r\n TOUCH_ID_GET_TOKEN_FROM_SRV: 'TOUCH_ID_GET_TOKEN_FROM_SRV',\r\n TOUCH_ID_INIT_SCREEN_SHOW: 'TOUCH_ID_INIT_SCREEN_SHOW',\r\n TOUCH_ID_TRY_AGAIN_SKIP: 'TOUCH_ID_TRY_AGAIN_SKIP',\r\n TOUCH_ID_CHECK_TOKEN_ENABLE: 'TOUCH_ID_CHECK_TOKEN_ENABLE',\r\n TOUCH_ID_TOKEN_ENABLE_RES: 'TOUCH_ID_TOKEN_ENABLE_RES',\r\n TOUCH_ID_CLEAR_TOKEN: 'TOUCH_ID_CLEAR_TOKEN',\r\n TOUCH_ID_NATIVE_CANCEL: 'TOUCH_ID_NATIVE_CANCEL',\r\n TOUCH_ID_LOGIN_ERROR: 'TOUCH_ID_LOGIN_ERROR',\r\n TOUCH_ID_AUTO_LOGIN: 'TOUCH_ID_AUTO_LOGIN',\r\n TOUCH_ID_STATE_CHANGED: 'TOUCH_ID_STATE_CHANGED',\r\n WEB_VIEW_NAVIGATE_GAME: 'WEB_VIEW_NAVIGATE_GAME',\r\n WEB_VIEW_NAVIGATE_DEPOSIT_WIDGET: 'WEB_VIEW_NAVIGATE_DEPOSIT_WIDGET',\r\n WEB_VIEW_NAVIGATE_MIT_ID: 'WEB_VIEW_NAVIGATE_MIT_ID',\r\n WEB_VIEW_NAVIGATE_CASHIER: 'WEB_VIEW_NAVIGATE_CASHIER',\r\n SECOND_WEB_VIEW_OLD_CALL: 'SECOND_WEB_VIEW_OLD_CALL',\r\n SECOND_WEB_VIEW_CLOSE: 'SECOND_WEB_VIEW_CLOSE',\r\n SECOND_WEB_VIEW_OPEN: 'SECOND_WEB_VIEW_OPEN',\r\n SECOND_WEB_VIEW_CLOSE_ALL: 'SECOND_WEB_VIEW_CLOSE_ALL',\r\n MINI_CASHIER_HEIGHT_CHANGED: 'MINI_CASHIER_HEIGHT_CHANGED',\r\n CONTENT_LOADED: 'CONTENT_LOADED',\r\n OVERLAY_OPEN_AWAIT: 'OVERLAY_OPEN_AWAIT',\r\n OVERLAY_CLOSE_EXPIRED: 'OVERLAY_CLOSE_EXPIRED',\r\n FABRIC_ADD_EVENT : 'FABRIC_ADD_EVENT',\r\n ADD_TAG_OPEN_APP_VER : 'ADD_TAG_OPEN_APP_VER',\r\n ADD_TAG : 'ADD_TAG',\r\n REM_TAG : 'REM_TAG',\r\n DEEPLINK_RECEIVED: 'DEEPLINK_RECEIVED',\r\n ROUTE_CHANGED: 'ROUTE_CHANGED',\r\n RESTRICTIONS_CHANGED: 'RESTRICTIONS_CHANGED',\r\n SESSION_TIMER_UPDATE: 'SESSION_TIMER_UPDATE',\r\n WINDOW_FOCUS_GAIN: 'WINDOW_FOCUS_GAINED',\r\n WINDOW_FOCUS_LOSS: 'WINDOW_FOCUS_LOST',\r\n GEO_HYBRID_UPDATE_ENABLE : 'GEO_HYBRID_UPDATE_ENABLE',\r\n GEO_HYBRID_GT_CB : 'GEO_HYBRID_GT_CB',\r\n GEO_HYBRID_GET_LOCATION : 'GEO_HYBRID_GET_LOCATION',\r\n GEO_HYBRID_GET_LOCATION_RES : 'GEO_HYBRID_GET_LOCATION_RES',\r\n GEO_LOCATION_FAILED : 'GEO_LOCATION_FAILED',\r\n GEO_LOCATION_SUCCEED: 'GEO_LOCATION_SUCCEED',\r\n GEO_KICK_EVENT: 'GEO_KICK_EVENT',\r\n SESSION_EVENT_KICK: 'SESSION_EVENT_KICK',\r\n SESSION_EVENT_WALLET: 'SESSION_EVENT_WALLET',\r\n SESSION_EVENT_OMG_RECEIVED: 'SESSION_EVENT_OMG_RECEIVED',\r\n\tSESSION_EVENT_FREE_PLAY_RECEIVED: 'SESSION_EVENT_FREE_PLAY_RECEIVED', //TODO - obsolete. This should be removed once free play from SDK will be removed\r\n SESSION_EVENT_FREE_PLAY_REMOVED: 'SESSION_EVENT_FREE_PLAY_REMOVED',\r\n SESSION_EVENT_FREE_PLAY_BATCH_ADDED: 'SESSION_EVENT_FREE_PLAY_BATCH_ADDED',\r\n SESSION_EVENT_FREE_PLAY_BATCH_UPDATED: 'SESSION_EVENT_FREE_PLAY_BATCH_UPDATED',\r\n SESSION_EVENT_FREE_PLAY_BATCH_REMOVED: 'SESSION_EVENT_FREE_PLAY_BATCH_REMOVED',\r\n\tSESSION_EVENT_THIRD_PARTY_FREE_PLAY_UPDATED: 'SESSION_EVENT_THIRD_PARTY_FREE_PLAY_UPDATED',\r\n\tSESSION_EVENT_NET_POSITION_UPDATE: 'SESSION_EVENT_NET_POSITION_UPDATE',\r\n SESSION_EVENT_RECEIVED_TOASTER: 'SESSION_EVENT_RECEIVED_TOASTER',\r\n SESSION_EVENT_UPDATERESTRICTION_RECEIVED: 'SESSION_EVENT_UPDATERESTRICTION_RECEIVED',\r\n SESSION_EVENT_PLAYER_BURNOUT_MESSAGE_RECEIVED: 'SESSION_EVENT_PLAYER_BURNOUT_MESSAGE_RECEIVED',\r\n NET_POSITION_VALUE_UPDATE: 'NET_POSITION_VALUE_UPDATE',\r\n SECOND_WEB_VIEW_NAVIGATE_SPORT: 'SECOND_WEB_VIEW_NAVIGATE_SPORT',\r\n TIME_UPDATED_FROM_SERVER: 'TIME_UPDATED_FROM_SERVER',\r\n ON_BROWSER_PAGE_HIDE: 'ON_BROWSER_PAGE_HIDE',\r\n\tTOKEN_LIFETIME_EXPIRED: 'TOKEN_LIFETIME_EXPIRED',\r\n\tLIVE_TABLES_UPDATE: 'LIVE_TABLES_UPDATE',\r\n LOADING_INDICATOR_EMBEDDED_UPDATE: 'LOADING_INDICATOR_EMBEDDED_UPDATE',\r\n LOADING_INDICATOR_EMBEDDED_UPDATE_V2: 'LOADING_INDICATOR_EMBEDDED_UPDATE_V2',\r\n LOADING_INDICATOR_EMBEDDED_CLOSED_BY_X: 'LOADING_INDICATOR_EMBEDDED_CLOSED_BY_X',\r\n GAMES_QUESTIONNAIRE_COMPLETED: 'GAMES_QUESTIONNAIRE_COMPLETED',\r\n GAME_SEQUENCE_FINISH: 'GAME_SEQUENCE_FINISH',\r\n GAME_POPUP_SHOW: 'GAME_POPUP_SHOW',\r\n USER_APPROVE_GAME_POPUP: 'USER_APPROVE_GAME_POPUP',\r\n BONUS_ABUSE_PARKING_MONEY : 'BONUS_ABUSE_PARKING_MONEY',\r\n SHOW_POPUP_ABOVE_HYBRID_SECOND_WEB_VIEW : 'SHOW_POPUP_ABOVE_HYBRID_SECOND_WEB_VIEW',\r\n CLOSE_POPUP_ABOVE_HYBRID_SECOND_WEB_VIEW : 'CLOSE_POPUP_ABOVE_HYBRID_SECOND_WEB_VIEW',\r\n DEPOSIT_WIDGET_CLOSED : 'DEPOSIT_WIDGET_CLOSED',\r\n DAILY_DEAL_REMOVE_INDICATION: 'DAILY_DEAL_REMOVE_INDICATION',\r\n LOCATION_POPUP_OPEN : 'LOCATION_POPUP_OPEN',\r\n LOCATION_POPUP_CLOSED : 'LOCATION_POPUP_CLOSED',\r\n PLAYER_MESSAGES_STRATEGY_READY: 'PLAYER_MESSAGES_STRATEGY_READY',\r\n CHANGE_OVERLAY_PRIORITY: 'CHANGE_OVERLAY_PRIORITY',\r\n OMG_DISPLAYED: 'OMG_DISPLAYED',\r\n LIVE_GAME_SWITCHED: 'LIVE_GAME_SWITCHED',\r\n PROMOTIONS_CHANGED: 'PROMOTIONS_CHANGED',\r\n ODR_CLEAR_ALL_GAMES: 'ODR_CLEAR_ALL_GAMES',\r\n SERIAL_UPDATE: 'SERIAL_UPDATE'\r\n};\r\n\r\n/**\r\n * Client event symbols, used internally for identifying events uniquely.\r\n */\r\nconst CLIENT_EVENTS = {\r\n MENU_CLICKED: 'MENU_CLICKED',\r\n LOGIN_BUTTON_CLICKED: 'LOGIN_BUTTON_CLICKED',\r\n REALITY_CHECK_OPENED: 'REALITY_CHECK_OPENED',\r\n REALITY_CHECK_CLOSED: 'REALITY_CHECK_CLOSED'\r\n};\r\n\r\nconst USER_EVENTS = {\r\n ON_CLICK: 'click',\r\n ON_DOUBLE_CLICK: 'dblclick',\r\n ON_SUBMIT: 'submit',\r\n ON_MOUSE_MOVE: 'mousemove',\r\n ON_MOUSE_DOWN: 'mousedown',\r\n ON_KEY_PRESS: 'keypress',\r\n ON_DOM_MOUSE_SCROLL: 'DOMMouseScroll',\r\n ON_MOUSE_WHEEL: 'mousewheel',\r\n ON_TOUCH_START: 'touchstart',\r\n ON_TOUCH_MOVE: 'touchmove',\r\n ON_TOUCH_END: 'touchend',\r\n ON_MSPOINTER_MOVE: 'MSPointerMove',\r\n ON_RESIZE: 'resize',\r\n ON_FOCUS: 'focus',\r\n ON_CHANGE: 'change',\r\n ON_BLUR: 'blur'\r\n};\r\n\r\nconst USER_ACTIVITY_EVENTS_ALL = [\r\n SYSTEM_EVENTS.MESSAGE_CLOSE,\r\n SYSTEM_EVENTS.FULL_SCREEN_CHANGE,\r\n SYSTEM_EVENTS.CLOSE_OVERLAY,\r\n SYSTEM_EVENTS.CLOSE_ALL_OVERLAY,\r\n SYSTEM_EVENTS.APP_RESUMED,\r\n SYSTEM_EVENTS.PLAYER_ACTION,\r\n SYSTEM_EVENTS.TOAST_USER_DISMISS,\r\n SYSTEM_EVENTS.OMG_OPEN_AWAITING_MESSAGES,\r\n SYSTEM_EVENTS.FREE_PLAY_VOUCHER_MSG_OPENED,\r\n SYSTEM_EVENTS.BALANCE_UPDATED,\r\n\tSYSTEM_EVENTS.EXTEND_USER_TIME_TO_LIVE,\r\n SYSTEM_EVENTS.GAME_OPEN,\r\n SYSTEM_EVENTS.CLOSE_GAME\r\n];\r\n\r\n/**\r\n * we need this because app resume in hybrid poker nj happen every few minutes because they save the screen open.\r\n * so the user will ever have inactivity kick.\r\n * @type {[string,string,string,string,string,string,string,string,string,string]}\r\n */\r\nconst USER_ACTIVITY_EVENTS_FOR_HYBRID = [\r\n SYSTEM_EVENTS.MESSAGE_CLOSE,\r\n SYSTEM_EVENTS.FULL_SCREEN_CHANGE,\r\n SYSTEM_EVENTS.CLOSE_OVERLAY,\r\n SYSTEM_EVENTS.CLOSE_ALL_OVERLAY,\r\n SYSTEM_EVENTS.PLAYER_ACTION,\r\n SYSTEM_EVENTS.TOAST_USER_DISMISS,\r\n SYSTEM_EVENTS.OMG_OPEN_AWAITING_MESSAGES,\r\n SYSTEM_EVENTS.FREE_PLAY_VOUCHER_MSG_OPENED,\r\n SYSTEM_EVENTS.BALANCE_UPDATED,\r\n SYSTEM_EVENTS.EXTEND_USER_TIME_TO_LIVE,\r\n SYSTEM_EVENTS.GAME_OPEN,\r\n SYSTEM_EVENTS.CLOSE_GAME,\r\n SYSTEM_EVENTS.POST_MESSAGE_ARRIVE\r\n];\r\n\r\nexport {SYSTEM_EVENTS, CLIENT_EVENTS, USER_EVENTS, USER_ACTIVITY_EVENTS_ALL, USER_ACTIVITY_EVENTS_FOR_HYBRID};","export interface SystemEventSubscription {\r\n off(): void;\r\n}\r\n\r\n/**\r\n * Event based module, publish / subscribe with hierarchical events and notifications.\r\n *\r\n * Usage:\r\n * Event.on('test_one_event', function() {\r\n * console.log('test 1 event fired');\r\n * console.log(arguments);\r\n * });\r\n *\r\n * Event.once('test_two_event', function() {\r\n * console.log('test 2 event fired, once.');\r\n * console.log(arguments);\r\n * });\r\n *\r\n * var three = Event.on('test_three_event', function() {\r\n * console.log('test 3 event fired');\r\n * });\r\n *\r\n * Event.fire('test_one_event', {eventID: 1}); // fires ok\r\n * Event.fire('test_two_event', {eventID: 2}); // fires ok\r\n * Event.fire('test_two_event', {eventID: 3}); // didnt trigger the event since it was unsubscribed (subscribed once only)\r\n * three.off(); // will remove the test_three_event\r\n * Event.fire('test_three_event', {eventID: 4}); // didnt trigger, was remove line above.\r\n *\r\n *\r\n */\r\nclass Event {\r\n /**\r\n * @constructor\r\n */\r\n constructor() {\r\n this._subscriptions = {};\r\n }\r\n\r\n private _subscriptions: any;\r\n\r\n /**\r\n * Attach a callback to an EventName\r\n */\r\n on(name: string | string[], callback: Function, context?: any): SystemEventSubscription {\r\n\r\n if(!(name)) {\r\n throw new Error('The name argument for Event.on is required');\r\n }\r\n\r\n if(!callback) {\r\n throw new Error('The callback argument name for Event.on is required');\r\n }\r\n\r\n context = context || this;\r\n\r\n // allows to subscribe multiple events for the same callback as single events. Clears the syntax on the other end.\r\n if (Array.isArray(name)) {\r\n let cleanFunctions: SystemEventSubscription[] = [];\r\n for (let eventIdx = 0, len = name.length, eventName; eventIdx < len; eventIdx++) {\r\n eventName = name[eventIdx];\r\n cleanFunctions.push(this.on(eventName, callback, context));\r\n }\r\n\r\n // Quit after done.\r\n return {\r\n off: () => cleanFunctions.forEach(subscription => subscription.off())\r\n };\r\n }\r\n\r\n if ('undefined' === typeof this._subscriptions[name]) {\r\n this._subscriptions[name] = [];\r\n }\r\n\r\n this._subscriptions[name].push({\r\n callback: callback,\r\n context: context\r\n });\r\n\r\n // return back a clean remove function with the params encapsulated\r\n return ((eName, eCallback, eContext): SystemEventSubscription => {\r\n return {\r\n off: () => {\r\n this.off(eName, eCallback, eContext);\r\n }\r\n };\r\n })(name, callback, context);\r\n }\r\n\r\n\r\n /**\r\n * Attach a callback to an name, but once only. Will disapear after first execution.\r\n *\r\n */\r\n once(name: string | string[], callback: Function, context?: any): SystemEventSubscription {\r\n context = context || this;\r\n var self = this,\r\n onceCallback: any = function() {\r\n self.off(name, onceCallback, context);\r\n callback.apply(this, arguments);\r\n };\r\n\r\n // preserve the original callback to allow subscribe once method to be removed later if needed.\r\n onceCallback._originalCallback = callback;\r\n\r\n return this.on(name, onceCallback, context);\r\n }\r\n\r\n\r\n /**\r\n * Notify subscriptions by calling their name\r\n */\r\n fire(name: string, params: any = {}) {\r\n let subscriptions = this.getAllSubscriptions();\r\n //clone the subscriptions array\r\n let events = [].concat(subscriptions[name] || []);\r\n\r\n events.forEach(event => {\r\n try {\r\n event.callback.call(event.context, params);\r\n } catch (ex) {\r\n console.error(ex);\r\n }\r\n });\r\n }\r\n\r\n\r\n /**\r\n * Remove a specific name callback from the stack.\r\n *\r\n * Used mostly internally.. but not only. A diffrent \".off\" is binded when you \".on\" and a referance to this \".off\"\r\n * is set.\r\n */\r\n off(name: string | string[], callback: Function, context: any): void {\r\n if (Array.isArray(name)) {\r\n name.forEach(eventName => this.off(eventName, callback, context));\r\n return;\r\n }\r\n context = context || this;\r\n\r\n let events = this._subscriptions[name],\r\n matchCallback = cb => {\r\n return cb === callback || cb._originalCallback === callback;\r\n };\r\n if (events === undefined) {\r\n return;\r\n }\r\n\r\n for (let eventIdx = events.length - 1; 0 <= eventIdx; eventIdx--) {\r\n let event = events[eventIdx];\r\n\r\n // TODO: make this code typesafe so that we can use '==='\r\n // eslint-disable-next-line\r\n if (matchCallback(event.callback) && event.context == context) {\r\n events.splice(eventIdx, 1);\r\n }\r\n }\r\n\r\n // if no callbacks left remove the event name from the tree completly.\r\n if (0 === events.length) {\r\n delete this._subscriptions[name];\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Removes all the subscriptions by reseting the queue.\r\n *\r\n *\r\n * @returns {Object} this - an instance of the current running Event object.\r\n * @public\r\n */\r\n removeAllSubscriptions(): void {\r\n this._subscriptions = [];\r\n }\r\n\r\n\r\n /**\r\n * Get all the active subscriptions tree\r\n */\r\n getAllSubscriptions(): any {\r\n return this._subscriptions;\r\n }\r\n\r\n\r\n /**\r\n * Detach events that the object subscribe to.\r\n */\r\n detachEvents(events: any[]): void {\r\n // Remove reference events.\r\n if (!events) {\r\n return;\r\n }\r\n\r\n events.forEach((event) => {\r\n if (Array.isArray(event)) {\r\n event.forEach((cleanFn) => {\r\n cleanFn.off();\r\n });\r\n } else {\r\n event.off();\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default new Event();","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../themes/architecture/styled-by-device\";\r\n\r\nconst MobileBox = styled.div<{isHybridEmbedded: boolean}>`\r\n position: fixed;\r\n z-index:15;\r\n bottom: ${props => props.isHybridEmbedded? 'calc(env(safe-area-inset-bottom) + 84px)' : '34px'};\r\n\r\n right: 3px;\r\n \r\n cursor: pointer;\r\n \r\n display: grid;\r\n grid-template-rows: 45px 30px;\r\n justify-items: center; \r\n`;\r\n\r\nconst PcBox = styled(MobileBox)`\r\n transform: scale(1.2);\r\n right: 20px;\r\n`;\r\n\r\nexport const DailyDealContainerBox = styledByDevice(PcBox, MobileBox);\r\n","import styled, {keyframes} from \"styled-components\";\r\n\r\n\r\nconst glowRotateAnimation = keyframes`\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n 20%, 25% {\r\n transform: rotate(90deg);\r\n } \r\n 45%, 50% {\r\n transform: rotate(180deg);\r\n } \r\n 70%, 75% {\r\n transform: rotate(270deg);\r\n }\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n `;\r\n\r\nexport const DailyDealChestGlowBox = styled.div`\r\n\r\n background: url(${({theme}) => theme.images.dailyDeal.glow.toString()}) center no-repeat;\r\n position: relative;\r\n bottom: 25px;\r\n \r\n grid-column: 1;\r\n grid-row: 1;\r\n \r\n height: 106px;\r\n width: 106px; \r\n z-index: -1;\r\n \r\n transform: rotate(30deg);\r\n animation: ${glowRotateAnimation} 4s infinite;\r\n`;\r\n","import styled, {keyframes} from \"styled-components\";\r\n\r\nconst chestScaleAnimation = keyframes`\r\n 0% { \r\n transform: scale(1);\r\n }\r\n 40%, 50% { \r\n transform: scale(1.2);\r\n }\r\n 100% { \r\n transform: scale(1);\r\n }\r\n `;\r\n\r\n\r\nexport const DailyDealChestBox = styled.img` \r\n \r\n grid-column: 1;\r\n grid-row: 1;\r\n \r\n position: relative;\r\n height: 50px;\r\n \r\n animation: ${chestScaleAnimation} 2s infinite;\r\n`;\r\n","import styled from \"styled-components\";\r\n\r\nexport const DailyDealTextStripBox = styled.span`\r\n background: url(${({theme}) => theme.images.dailyDeal.textStrip.toString()}) center no-repeat;\r\n background-size: cover;\r\n \r\n display: block;\r\n \r\n width: 120px;\r\n height: 30px;\r\n \r\n color: ${({theme}) => theme.colors.textLight};\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n \r\n padding: 2.5px 10px 0;\r\n text-align: center;\r\n font-size: 13px;\r\n line-height: 19px; \r\n}\r\n`;\r\n","import styled from \"styled-components\";\r\n\r\nexport const DailyDealChestHaloBox = styled.div`\r\n\r\n background: url(${({theme}) => theme.images.dailyDeal.halo.toString()}) center no-repeat;\r\n position: relative;\r\n bottom: 15px;\r\n \r\n grid-column: 1;\r\n grid-row: 1;\r\n \r\n height: 90px;\r\n width: 83px; \r\n z-index: -1;\r\n`;\r\n","import React from 'react';\r\nimport { observer } from 'mobx-react';\r\nimport {OrbitComponent} from \"../base-components/orbit-component/orbit-component\";\r\nimport {DailyDealContainerBox} from \"./boxes/daily-deal-container.box\";\r\nimport {DailyDealChestGlowBox} from \"./boxes/daily-deal-chest-glow.box\";\r\nimport {DailyDealChestBox} from \"./boxes/daily-deal-chest.box\";\r\nimport {DailyDealTextStripBox} from \"./boxes/daily-deal-text-strip.box\";\r\nimport {DailyDealChestHaloBox} from \"./boxes/daily-deal-chest-halo.box\";\r\n\r\n@observer\r\nexport class DailyDealComponent extends OrbitComponent {\r\n\r\n render() {\r\n if (!this.services.dailyDeal.dailyDealCampaignId) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {this.services.translation.translate(\"DAILY_DEAL_WIDGET_STRIP\") } \r\n \r\n \r\n );\r\n }\r\n\r\n private _onDailyDealClick = () => {\r\n this.services.analytics.sendAnalytics('Daily_Deal', 'Click', this.services.arenas.getCurrentArena().arenaName);\r\n this.services.dailyDeal.visitDailyDeal();\r\n }\r\n}\r\n","import styled, { css } from \"styled-components\";\r\nimport { CssRule } from \"../../../../themes/architecture/css-helpers/css-rule\";\r\n\r\nexport const LinkToOfferBoxBase = styled.div<{shouldAnimate: boolean, hasCircle: boolean, isHybridEmbedded: boolean}>`\r\n background-size: contain;\r\n height: 50px;\r\n width: 50px;\r\n position: fixed;\r\n bottom: ${props => props.isHybridEmbedded? 'calc(env(safe-area-inset-bottom) + 100px)' : '50px'};\r\n right: 55px;\r\n cursor: pointer;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 3;\r\n ${CssRule.For.mobile.build()} & {\r\n right: 40px;\r\n }\r\n ${props => props.hasCircle? css`\r\n background-repeat: no-repeat;\r\n background-color: ${props => props.theme.colors.brandPrimary};\r\n border-radius: 50%;\r\n ` : '' }\r\n`;","import styled, {css, keyframes, DefaultTheme} from \"styled-components\";\r\nimport {hexToRgba} from \"../../../../themes/hex-to-rgba\";\r\nimport {LinkToOfferBoxBase} from \"../link-to-offer-base/link-to-offer-box-base\";\r\nimport { CssRule } from \"../../../../themes/architecture/css-helpers/css-rule\";\r\n\r\n\r\nconst linkToOfferIconKeyframes = (props: {theme: DefaultTheme}) => keyframes`\r\n 0% {\r\n transform: scale(0.9);\r\n box-shadow: 0 0 0 0 ${hexToRgba(props.theme.colors.brandPrimary, 0.5)};\r\n }\r\n 60% {\r\n transform: scale(1);\r\n }\r\n 80% {\r\n transform: scale(1);\r\n box-shadow: 0 0 0 35px ${hexToRgba(props.theme.colors.brandPrimary, 0)};\r\n }\r\n 100% {\r\n transform: scale(0.9);\r\n box-shadow: 0 0 0 0 ${hexToRgba(props.theme.colors.brandPrimary, 0)};\r\n }\r\n`;\r\n\r\nexport const LinkToOfferIconDefaultBox = styled(LinkToOfferBoxBase)`\r\n ${props => props.shouldAnimate ? css`animation: ${linkToOfferIconKeyframes} 1.2s infinite` : ''};\r\n /* temporary solution for disabling button on mobile landscape - remove once banners will support landscape mode for phones */\r\n ${CssRule.For.mobile.landscape.not.tablet.build()} & {\r\n visibility: hidden;\r\n }\r\n`;\r\n","import {LinkToOfferIconDefaultBox} from \"./link-to-offer-icon.default.box\";\r\n\r\nexport const LinkToOfferIconBox = LinkToOfferIconDefaultBox;\r\n","import {LinkToOfferDialogCloseDefaultBox} from \"./link-to-offer-dialog-close.default.box\";\r\n\r\nexport const LinkToOfferDialogCloseBox = LinkToOfferDialogCloseDefaultBox;\r\n","import styled from \"styled-components\";\r\nimport {LinkToOfferBoxBase} from \"../link-to-offer-base/link-to-offer-box-base\";\r\n\r\nexport const LinkToOfferDialogCloseDefaultBox = styled(LinkToOfferBoxBase)<{zIndex?: number}>`\r\n z-index: ${props => props.zIndex ?? 201};\r\n`;\r\n","import React from 'react';\r\nimport { OrbitComponent } from '../base-components/orbit-component/orbit-component';\r\nimport {observer} from \"mobx-react\";\r\nimport {LinkToOfferIconBox} from \"./boxes/link-to-offer-icon/link-to-offer-icon.box\";\r\nimport {LinkToOfferDialogCloseBox} from \"./boxes/link-to-offer-dialog-close/link-to-offer-dialog-close.box\";\r\nimport {LinkToOfferConfiguration} from \"../../services/configurations/config-data-sections/link-to-offer.configuration\";\r\nimport { IOffer } from '../../services/player-offerings/player-offerings.service';\r\nimport { IShowOfferOptions } from '../../services/player-offerings/player-offerings.service.interface';\r\n\r\nexport interface LinkToOfferComponentProps {\r\n linkToOfferConfig: LinkToOfferConfiguration;\r\n}\r\n\r\n\r\n@observer\r\nexport class LinkToOfferComponent extends OrbitComponent {\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n this.services.playerOfferings.setWelcomeOfferConfig(this.props.linkToOfferConfig?.welcomeBonus ?? null);\r\n }\r\n\r\n render() {\r\n if (this.services.playerOfferings.hasOpenedPopup) {\r\n let CloseIconComponent = this.services.theme.currentTheme.icons.linkToOfferCloseIcon;\r\n\r\n return (\r\n {this._onCloseDialog()}}\r\n shouldAnimate={false}\r\n hasCircle={true}\r\n zIndex={this.services.playerOfferings.isHighPriorityOffer ? this.services.dialog.getMaxCGPOverlayZIndex() + 2: null}\r\n isHybridEmbedded={this.services.device.hybrid.isEmbedded}\r\n >\r\n \r\n \r\n );\r\n }\r\n\r\n const currentOffer = this.services.playerOfferings.currentLinkToOffer;\r\n if(!currentOffer) {\r\n return null;\r\n }\r\n\r\n return (\r\n {this._onLinkToOfferClicked(currentOffer)}}\r\n shouldAnimate={currentOffer.shouldUseLinkToOfferAnimation()}\r\n hasCircle={currentOffer.shouldUseLinkToOfferAnimation()}\r\n isHybridEmbedded={this.services.device.hybrid.isEmbedded}\r\n >\r\n { currentOffer.render() }\r\n \r\n );\r\n }\r\n\r\n\r\n private _onLinkToOfferClicked(offer: IOffer): void {\r\n\r\n this.services.analytics.sendAnalytics(offer.analyticsCategory, 'Open_Floating_Button', this.services.routing.currentRoute.data.arenaType);\r\n\r\n const options: IShowOfferOptions = {\r\n onPopupClosed: () => {\r\n this.services.analytics.sendAnalytics(offer.analyticsCategory, 'Close_Floating_Button', this.services.routing.currentRoute.data.arenaType);\r\n }\r\n };\r\n this.services.playerOfferings.showOfferPopup(offer, options);\r\n }\r\n\r\n private _onCloseDialog = () => {\r\n if (this.services.playerOfferings.hasOpenedPopup) {\r\n this.services.playerOfferings.closeCurrentPopup();\r\n }\r\n };\r\n}\r\n","import {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}","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-filters-mobile-button' |\r\n 'cy-apply-filters-button' |\r\n 'cy-clear-filters-button' |\r\n 'cy-side-menu' |\r\n 'cy-mini-orbit-side-menu-open-button' |\r\n 'cy-right-drawer' |\r\n 'cy-overlay' |\r\n 'cy-registration-popup-content' |\r\n 'cy-vertical-games-list' |\r\n 'cy-vertical-games-list-close-btn' |\r\n 'cy-lang-switcher-back' |\r\n 'cy-language-switcher-dropdown' |\r\n 'cy-lang-switch-label' |\r\n 'cy-lang-switch-current-lang' |\r\n 'cy-toaster-layout'|\r\n 'cy-modal-dialog' |\r\n 'cy-modal-dialog-header' |\r\n 'cy-modal-dialog-consumer-content' |\r\n 'cy-source-of-funds-open-chat-btn' |\r\n 'cy-language-switcher-button' |\r\n 'cy-cms-banner-container' |\r\n 'cy-temp-account-days-number' |\r\n 'cy-temp-account-message-body' |\r\n 'cy-omg-indicator' |\r\n 'cy-jackpot-widget' |\r\n 'cy-cgp-red-tiger-widget-click-detector' |\r\n 'cy-game-jackpot-amount' |\r\n 'cy-useful-links-section' |\r\n 'cy-useful-links-item' |\r\n 'cy-cgp-about-area' |\r\n 'cy-lobby-grid-arena' |\r\n 'cy-link-to-offer-banner-box' |\r\n 'cy-link-to-offer-wheel-of-fortune' |\r\n 'cy-link-to-offer-dialog-close-box' |\r\n 'cy-open-membership-deeplink' |\r\n 'cy-open-cashier-deeplink' |\r\n 'cy-link-to-offer-icon-box'|\r\n 'cy-games-grid-container' |\r\n 'cy-orbit-swiper-streaming-tile' |\r\n 'cy-orbit-swiper-streaming-tile-footer' |\r\n 'cy-cross-brand-link' |\r\n 'cy-arenas-header-button' |\r\n 'cy-live-video-item' |\r\n 'cy-players-like-you' |\r\n 'cy-because-you-played' |\r\n 'cy-game-title' |\r\n 'cy-lists-intersection-observer-target' |\r\n 'cy-inactivity-timeout-select' |\r\n 'cy-about-session-balance-amount' |\r\n 'cy-filters-games-list' |\r\n 'cy-full-safe-zone-root' |\r\n 'cy-game-net-position-value' |\r\n 'cy-game-duration-value' |\r\n 'cy-deposit-widget' |\r\n 'cy-deposit-widget-init-params' |\r\n 'cy-payments-redirect-focus' |\r\n 'cy-uk-tsr-main-text-box' |\r\n 'cy-withdraw-button' |\r\n 'cy-cashout-widget' |\r\n 'cy-cashout-widget-init-params' |\r\n 'cy-top-picks-list' |\r\n 'cy-arenas-header' |\r\n 'cy-logo' |\r\n 'cy-main-wrapper' |\r\n 'cy-clock-component' |\r\n 'cy-game-navbar-free-play-indicator' |\r\n 'cy-free-play-vouchers-container' |\r\n 'cy-header-menu-gift-button' |\r\n 'cy-overlay-content' |\r\n 'cy-user-menu-user-details' |\r\n 'cy-user-menu-my-account-button' |\r\n 'cy-state-select-approve-button' |\r\n 'cy-wrong-app-message' |\r\n 'cy-swiper-buttons' |\r\n 'cy-burnout-animation-container' |\r\n 'cy-tooltip-container' |\r\n 'cy-logo-container' |\r\n 'cy-navbar-container' |\r\n 'cy-user-profile-fp-indicator' |\r\n 'cy-free-play-indicator-dot' |\r\n 'cy-help-widget-app' |\r\n 'cy-header-help-button' |\r\n 'cy-form-post-form' |\r\n 'cy-michigan-responsible-gaming-button' |\r\n 'cy-free-to-play-icon' |\r\n 'cy-modal-dialog-link' |\r\n 'cy-italy-other-limit-radio' |\r\n 'cy-standard-limit-radio' |\r\n 'cy-jackpot-widget-collecting-amount' |\r\n 'cy-jackpot-widget-amount'|\r\n 'cy-transaction-history-init-params' |\r\n 'cy-transaction-history-widget' |\r\n 'cy-netherlands-ksa-button' |\r\n 'cy-vouchers-previous-button' |\r\n 'cy-vouchers-next-button' |\r\n 'cy-voucher-card-face' |\r\n 'cy-voucher-card-back' |\r\n 'cy-game-restriction-geo-location-primary-button' |\r\n 'cy-game-restriction-geo-location-secondary-button' |\r\n 'cy-header-control-center-button' |\r\n 'cy-control-center-mini-app' |\r\n 'cy-control-center-mini-widget-init-params' |\r\n 'cy-control-center-full-app' |\r\n 'cy-control-center-full-widget-init-params' |\r\n 'cy-header-state-selector-button' |\r\n 'cy-state-select-dropdown' |\r\n 'cy-state-select-other-button';\r\n\r\n\r\n\r\nexport function CyClass(className: CyCssClass): string {\r\n return className.toString();\r\n}\r\n\r\nexport function CySelector(className: CyCssClass): string {\r\n return '.' + className.toString();\r\n}\r\n\r\nexport function CySelectors(...classNames: CyCssClass[]): string {\r\n return classNames.map(clsName => '.' + clsName).join(' ');\r\n}\r\n","export const INSIDE_ORBIT_MENU_CONTAINER = 'inside-orbit-menu-container';","import {grayColors} from \"../../architecture/gray-colors\";\r\n\r\nexport const baseColors = {\r\n base01: \"#0ea79b\", //brandTeal\r\n base01Contrast: \"#19322f\", //blackTeal\r\n base01Dark: \"#8cd1ba\", //softTeal\r\n base01Light: \"#c3e3c7\", //lightGreen\r\n\r\n base02: \"#fcf6d5\", //brandYellow\r\n base02Contrast: \"#4c1723\", //blackRed\r\n base02Dark: \"#a4867c\", //tan\r\n base02Light: \"#eadfc3\", //sepia\r\n\r\n base03: \"#bc3554\", //pink\r\n base03Contrast: \"#fcf6d5\", //brandYellow,\r\n base03Dark: \"#b01619\", //brick\r\n base03Light: \"#ff014f\", //red\r\n\r\n base04: \"#ffd683\", //peach\r\n base04Contrast: \"#4c1723\", //blackRed\r\n base04Dark: \"#ffbe0b\", //papaya\r\n base04Light: \"#ffff00\", //yellow\r\n\r\n\r\n base05: \"#7aec37\", //inchWorm\r\n base05Contrast: \"#000000\",\r\n base05Dark: \"#135823\",\r\n base05Light: \"#d5ec37\", //pear //#87ee4b\r\n\r\n ...grayColors\r\n}","import {GameInfo} from '../games/game-info';\r\nimport React from \"react\";\r\nimport {Nullable} from \"../../../common/types/nullable-types\";\r\n\r\nexport interface IFiltersGroup {\r\n text: string;\r\n filters: ActiveFilter[];\r\n isMultiSelect: boolean;\r\n}\r\n\r\nexport interface ActiveFilter {\r\n readonly id: string;\r\n readonly text: string;\r\n readonly on: boolean;\r\n readonly isDynamic: boolean;\r\n}\r\n\r\n\r\n\r\nexport enum PcFilterIndicatorRenderingLocation {\r\n BelowArenaTitle,\r\n NextToArenaTitle\r\n}\r\nexport interface IPcFilterIndicatorRenderingOptions {\r\n reactElement: React.ReactElement;\r\n location: PcFilterIndicatorRenderingLocation;\r\n}\r\n\r\nexport interface IGamesFilterService {\r\n\r\n readonly filteredGamesMap: Record;\r\n readonly isFilterOn: boolean;\r\n readonly currentAppliedFiltersIds: string[];\r\n readonly isFilteringAvailable: boolean;\r\n isFilterApplied(filterId: string): boolean;\r\n applyFilters(filterIds: string[]): Promise;\r\n clearFilters(): Promise;\r\n renderMobileFiltersIndicator(): React.ReactElement;\r\n renderPCFiltersIndicator(): Nullable;\r\n showFiltersEditor(): void;\r\n}\r\n","export const FEATURE_GAME_RECOMMENDATIONS = 'GameRecommendations';\r\nexport const FEATURE_ROUTE_OVERWRITE = \"AbRouteOverwrite\";\r\nexport const FEATURE_DEPOSIT_WIDGET = \"DepositWidget\"; //used only on backend side\r\nexport const FEATURE_CASHOUT_WIDGET = \"CashoutWidget\"; //used only on backend side\r\nexport const FEATURE_TRANSACTION_HISTORY_WIDGET = \"TransactionHistoryWidget\";\r\nexport const FEATURE_NAME_SAFE_ZONE_TOGGLE = \"AbTestingSafeZoneToggle\";\r\nexport const FEATURE_NAME_LIST_ON_TOP = \"ListOnTop\";\r\nexport const FEATURE_NAME_PARTY_JACKPOTS = \"PartyJackpots\";\r\nexport const FEATURE_NAME_TOP_BANNER_REDESIGN = \"AbTopBannerRedesign\";\r\nexport const FEATURE_NAME_SEARCH_GAME_SUGGESTED_BY_AI = \"SearchGameSuggestionByAI\";\r\nexport const FEATURE_NAME_PLAYERS_LIKE_YOU_GAMES_LIST_TYPE_ID = \"PlayersLikeYouGamesListTypeId\";\r\nexport const FEATURE_NAME_VIDEO_LIVE_STREAM = \"LiveStreamEnabled\";\r\nexport const FEATURE_NAME_STATIC_VIDEO_LIST = \"StaticVideoListEnabled\";\r\nexport const FEATURE_NAME_AI_SORT_GAME_LIST = \"AbTestingAiSortGamesLists\";\r\nexport const FEATURE_NAME_BECAUSE_YOU_PLAYED_LIST = \"BecauseYouPlayedListEnabled\";\r\nexport const FEATURE_NAME_DISABLE_ANIMATED_GAME_ICONS = \"DisableAnimatedIcons\";\r\n","/**\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 \"HIGH_LIMIT\": \"High Limit\",\r\n \"LANGUAGES\": \"Languages\",\r\n \"HELP\": \"Help\",\r\n \"LIVE_CHAT\": \"Live Chat\",\r\n \"DEMO\": \"Demo\",\r\n \"PLAY\": \"Play\",\r\n \"NOT_NOW\": \"Not now\",\r\n \"MAYBE_LATER\": \"Maybe later\",\r\n \"NO_THANKS\": \"No, thanks\",\r\n \"LETS_PLAY\": \"Let's Play!\",\r\n \"GOT_IT\": \"GOT IT!\",\r\n \"LIMITS\": \"Limits\",\r\n \"LIVE\": \"Live\",\r\n \"SEE_ALL\": \"See All\",\r\n \"WINNING_IN_THE_LAST_30_DAYS\": \"Winning in the last 30 days\",\r\n \"TOTAL_JACKPOTS\": \"Total Jackpots\",\r\n \"TOP_GAMES\": \"TOP SLOT GAMES\",\r\n \"TOP_PROGRESSIVES\": \"TOP PROGRESSIVES\",\r\n \"LIVE_CASINO_TABLES\": \"SELECTED LIVE TABLES\",\r\n \"TOP_CASINO_GAMES\": \"TOP CASINO GAMES\",\r\n \"JACKPOTS\": \"JACKPOTS\",\r\n \"RECENTLY_PLAYED\": \"Recently Played\",\r\n \"BECAUSE_YOU_PLAYED\": \"Because You Played {gameName}\",\r\n \"MINIMUM_BET\": \"Min Bet\",\r\n \"MAXIMUM_BET\": \"Max Bet\",\r\n \"PAYLINES\": \"Paylines\",\r\n \"BONUS_GAME\": \"Bonus game\",\r\n \"MAX_PER_SPOT\": \"Max Per Spot\",\r\n \"MULTIPLAYER\": \"Multiplayer\",\r\n \"MULTIHAND\": \"Multihand\",\r\n \"DECKS\": \"Decks\",\r\n \"SIDE_BETS\": \"Side Bets\",\r\n \"ABOUT\": \"About\",\r\n \"GAME_JACKPOT\": \"Game Jackpot\",\r\n \"SLOT_GAMES\": \"Slot Games\",\r\n \"CARD_AND_TABLE_GAMES\": \"Card & Table Games\",\r\n \"JACKPOT_GAMES\": \"Jackpot Games\",\r\n \"JACKPOT_CENTRAL\": \"Jackpot Central\",\r\n \"OTHER\": \"Other\",\r\n \"POKER_GAMES\": \"POKER GAMES\",\r\n \"YOUR_SEARCH_DID_NOT_MATCH_ANY_GAMES\": \"Your search did not match any games\",\r\n \"PREMIER_ONLINE_LIVE_CASINO\": \"Premier live casino\",\r\n \"All_SLOTS\": \"All Slots\",\r\n \"All_CARD_AND_TABLE_GAMES\": \"All Card & Table Games\",\r\n \"USEFUL_LINKS\": \"Useful links\",\r\n \"PRIVACY_POLICY\": \"Privacy Policy\",\r\n \"USER_AGREEMENT\": \"User Agreement\",\r\n \"RESPONSIBLE_GAMBLING\": \"Responsible Gambling\",\r\n \"SAFE_ZONE\": \"Control Center\",\r\n \"CONTACT\": \"Contact Us\",\r\n \"COMP_POINTS\": \"Comp Points\",\r\n \"GAMING_HISTORY\": \"Gaming History\",\r\n \"TIPPING_HISTORY\": \"Tipping History\",\r\n \"TIPPING_HISTORY_AMOUNT\": \"Tip Amount\",\r\n \"CASHIER_HISTORY\": \"Cashier History\",\r\n \"GAMING_SESSION_HISTORY\": \"Session History\",\r\n \"MY_CHALLENGES\": \"My Challenges\",\r\n \"SCRATCHCARDS\": \"SCRATCH CARDS\",\r\n \"QUICK_LINKS_TITLE\": \"QUICK LINKS\",\r\n \"NO_SEARCH_RESULTS\": \"No Search Results Found...\",\r\n \"SEARCH_YOUR_GAME\": \"Search for games...\",\r\n \"SEARCH_RESULTS_TITLE\": \"TOP SEARCH RESULTS\",\r\n \"SUGGESTED_GAMES\": \"SUGGESTED GAMES\",\r\n \"SUGGESTED_CATEGORIES\": \"SUGGESTED CATEGORIES\",\r\n \"BACK\": \"Back\",\r\n \"HIT_THE_JACKPOT\": \"Hit The Jackpot\",\r\n \"OUR_JACKPOTS\": \"OUR JACKPOTS\",\r\n \"MY_CLUB\": \"My Club\",\r\n \"LOW_ROLLERS\": \"Low Rollers\",\r\n \"CASH_BALANCE\": \"Cash Balance\",\r\n \"BONUS_BALANCE\": \"Bonus Balance\",\r\n \"YOU_MAY_LIKE\": \"YOU MAY LIKE\",\r\n \"TOP_PICKS_FOR\": \"TOP PICKS FOR {USERNAME}\",\r\n \"888CLUB\": \"888club\",\r\n \"888POKER\": \"888poker\",\r\n \"BACK_TO_888POKER\": \"Back to 888poker\",\r\n \"BACK_TO_888SPORT\": \"Back to 888sport\",\r\n \"VIDEO_POKER_GAMES\": \"Video Poker Games\",\r\n \"VIDEO_POKER\": \"Video Poker\",\r\n \"SEO_IMAGE_CATEGORIES_TITLE\": \"Best {categoryName} experience at 888casino\",\r\n \"SEO_IMAGE_CATEGORIES_ALT\": \"online casino - {categoryName}\",\r\n \"SEO_IMAGE_GAME_TITLE\": \"{gameName} {categoryName}\",\r\n \"TOP_NETENT_SLOTS\": \"TOP NETENT SLOTS\",\r\n \"PLAY_50_FREESPINS\": \"PLAY 50 FREESPINS\",\r\n \"HOLIDAY_GAMES\": \"HOLIDAY GAMES\",\r\n \"ORIGINALS\": \"888 Originals\",\r\n \"RELATED_GAMES\": \"BECAUSE YOU PICKED: {gameName}\",\r\n \"DAILY_JACKPOT_GAMES\": \"Daily Jackpot Games\",\r\n \"LOW_STAKES\": \"Low Stakes\",\r\n \"TOP_EXCLUSIVE_SLOTS\": \"Top Exclusive Slots\",\r\n \"TOP_10_IN_YOUR_COUNTRY\": \"Top 10 in your country\",\r\n \"NEW_GAMES_LIST_TITLE\": \"New Online Casino Games\",\r\n \"NEW_GAMES\": \"New Games\",\r\n \"DAILY_JACKPOT\": \"Daily Jackpot\",\r\n \"PROGRESSIVE_JACKPOT\": \"Progressive Jackpot\",\r\n \"777_JUKEBOX\": \"777 Jukebox\",\r\n \"RETRO_SLOTS\": \"Retro Slots\",\r\n \"SELECTED_LIVE_CASINO_TABLES\": \"Selected Live Casino Tables\",\r\n \"BLACKJACK_GAMES\": \"Blackjack Games\",\r\n \"ROULETTE_GAMES\": \"Roulette Games\",\r\n \"DROP_THE_JACKPOT\": \"Drop The Jackpot\",\r\n \"777_LIVE\": \"777 Live\",\r\n \"ROULETTE_&_BLACKJACK\": \"Roulette & Blackjack\",\r\n \"SCRATCH_CARDS\": \"Scratch Cards\",\r\n \"CLASSIC_SLOTS\": \"Classic Slots\",\r\n \"777_FAVORITES\": \"777 Favorites\",\r\n \"FEATURED\": \"Featured\",\r\n \"LOW_VOLATILITY\": \"Low Volatility\",\r\n \"HIGH_VOLATILITY\": \"High Volatility\",\r\n \"IN_HOUSE_SLOTS\": \"In House Slots\",\r\n \"MORE_GAMES\": \"More Games\",\r\n \"ALL_JACKPOTS\": \"All Jackpots\",\r\n \"ONLINE_JACKPOTS\": \"Online Jackpots\",\r\n \"All_GAMES\": \"All Games\",\r\n \"POPULAR_GAMES_TITLE\": \"Popular Games\",\r\n \"MORE\": \"More\",\r\n \"HOMEPAGE-SPOOKY_SPINS\": \"Spooky Spins\",\r\n \"THE_DAILY_JACKPOT\": \"888 Daily Jackpot\",\r\n \"HIGH_NOON_JACKPOT\": \"High Noon Jackpot\",\r\n \"TWILIGHT_JACKPOT\": \"Twilight Jackpot\",\r\n \"POWER8_JACKPOT\": \"POWER 8 JACKPOT\",\r\n \"RED_TIGER_DAILY_JACKPOT\": \"Red Tiger's Daily Jackpot\",\r\n \"RED_TIGER_HOURLY_JACKPOT\": \"Red Tiger Hourly Jackpot\",\r\n \"PROGRESSIVE_JACKPOTS\": \"Progressive Jackpots\",\r\n \"INSTANT_GAMES\": \"Instant Win Games\",\r\n \"INSTANT_WIN_GAMES_ARENA\": \"Instant Win Games\",\r\n \"ALL_INSTANT_WIN_GAMES\": \"All Instant Win Games\",\r\n \"INFO_TITLE_ARENA_INSTANT_WIN_GAMES\": \"Instant Win Games\",\r\n \"INFO_TEXT_ARENA_INSTANT_WIN_GAMES\": \"Instant Win Games are so much FUN! Get ready to scratch & match with the best scratch cards under the sun. We’ve got many games for you to enjoy like Volcano Eruption, Panda Mania, and Merlin’s Millions. Short on time? No worries, try our Keno and Bingo games, or sizzling-hot new games like Chicken Extreme, 7-UP, and Epic Gems. It’s a party and you’re invited. Instant Win Games are really easy to play. No skills needed – just play & win!\",\r\n \"MEGAWAYS_TITLE\": \"Megaways™\",\r\n \"TRENDING_SLOTS\": \"TRENDING SLOTS\",\r\n \"EXCLUSIVE_LIVE_TABLES\": \"EXCLUSIVE LIVE TABLES\",\r\n \"BLACKJACK_AND_ROULETTE_GAMES\": \"BLACKJACK & ROULETTE GAMES\",\r\n \"ALL_888_EXCLUSIVE_GAMES\": \"ALL 888 EXCLUSIVE GAMES\",\r\n \"LIVE_ARENA_TABLE_IS_CLOSED_MESSAGE\": \"Table Opens at\",\r\n \"LIVE_CASINO_TABLE_FULL_PC\": \"Table Full\",\r\n \"LIVE_CASINO_TABLE_FULL_MOBILE\": \"Full\",\r\n \"GAME_SHOWS\": \"Game Shows\",\r\n \"TOP_EVO_GAMES\": \"Top Games\",\r\n \"FOR_YOU_GAMES\": \"For You\",\r\n \"AB_TEST_AI_LIST_TITLE_D1_V1\": \"Top Rated Games for {USERNAME}\",\r\n \"AB_TEST_AI_LIST_TITLE_D1_V2\": \"Recommended games for {USERNAME}\",\r\n \"AB_TEST_AI_LIST_TITLE_D3_V1\": \"Selected Games for {USERNAME}\",\r\n \"AB_TEST_AI_LIST_TITLE_D3_V2\": \"Chosen Games for {USERNAME}\",\r\n \"AB_TEST_AI_LIST_TITLE_D3_V3\": \"Exclusive games for {USERNAME}\",\r\n \"AB_TEST_AI_LIST_TITLE_D3_V4\": \"Recommended games for you\",\r\n \"LETS_PLAY_MONOPOLY\": \"Let's play Monopoly\",\r\n \"TOP_TRENDING_SLOTS\": \"Top Trending Slots\",\r\n \"TOP_PAYING_SLOTS\": \"Top Paying Slots\",\r\n \"RECENTLY_ADDED\": \"Recently Added\",\r\n \"TOP_SLOTS\": \"Top Slots\",\r\n \"REAL_MONEY_GAME\": \"This game can be played with cash balance only.\",\r\n \"CANT_CONNECT_ERROR_TITLE\": \"Can't connect\",\r\n \"CANT_CONNECT_ERROR_MESSAGE\": \"Sorry, something went wrong on our end.\",\r\n \"RETRY\": \"Retry\",\r\n \"TRANSACTION_HISTORY\": \"Transaction History\",\r\n \"BRAND_NEW\": \"Brand New\",\r\n \"HOTTEST_NEW_GAMES\": \"Hottest new games\",\r\n \"SINCE_LAST_MONTH\": \"Since Last Month\",\r\n \"SAFE_GAMBLING_TOOLTIP\": \"Safer Gambling Tools & Information\",\r\n \"PLAYER_LIMITS_TOASTER_TITLE\": \"Your Limits\",\r\n \"PLAYER_LIMITS_TOASTER_DAILY_LABEL\": \"Daily\",\r\n \"PLAYER_LIMITS_TOASTER_WEEKLY_LABEL\": \"Weekly\",\r\n \"PLAYER_LIMITS_TOASTER_MONTHLY_LABEL\": \"Monthly\",\r\n \"PLAYER_LIMITS_TOASTER_DEPOSIT_LABEL\": \"Deposit\",\r\n \"PLAYER_LIMITS_TOASTER_PLAY_TIME_LABEL\": \"Play Time\",\r\n \"PLAYER_LIMITS_TOASTER_BANKROLL_LABEL\": \"Bankroll\",\r\n \"PLAYER_LIMITS_TOASTER_HOUR_LABEL\": \"hour\",\r\n \"GAME_POPUP_TITLE\": \"Welcome back\",\r\n \"GAME_POPUP_SUB_TITLE\": \"Suggested game\",\r\n \"GAME_POPUP_DESCRIPTION\": \"Your 888slots activity:\",\r\n \"GAME_POPUP_GAME_UNAVAILABLE\": \"Sorry, this game is unavailable\",\r\n \"GAME_POPUP_MAY_LIKE\": \"You may also like\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_TITLE\": \"HOORAY! You’re about to play a {partyJackpotName} game!\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_TITLE_ALL_LIVE_CASINO\": \"LUCKY YOU!\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_SUB_TITLE_ALL_LIVE_CASINO\": \"All Live Casino games are part of our HOT NEW jackpot!\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_DESCRIPTION\": \"The Jackpot can be won on any cash balance bet.\\nAll Party Jackpot prizes are bonuses, which are instantly credited to your account.\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_DESCRIPTION_REAL\": \"Any real money bet on a Party Jackpot game could win a cash prize!\\nThe Party Jackpot will pay daily!\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_DESCRIPTION_REAL_HOURLY\": \"Any real money bet on a Party Jackpot game could win a cash prize!\\nThe Party Jackpot will pay hourly between {startHour} to {endHour}\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_DESCRIPTION_REAL_HOURLY_ALL_LIVE_CASINO\": \"Real money bets on any Live Casino game could win the jackpot!\\nThe Live Casino Jackpot must pay every hour, {startHour} - {endHour}, and is fully funded by us.\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_BOTTOM_NOTE\": \"Bonus: wager 30x (varies by game type), 90 day expiry, wins capped at $500, valid for selected games\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_BOTTOM_NOTE_REAL\": \"Funded players only\",\r\n \"PARTY_JACKPOT_WELCOME_POPUP_TERMS_AND_CONDITIONS_APPLY\": \"T&C Apply.\",\r\n \"PARTY_JACKPOT_WIN_TOASTER_TITLE\": \"The {jackpotName} just dropped at {winAmount}!\",\r\n \"PARTY_JACKPOT_WIN_TOASTER_SUBTITLE\": \"Didn’t win? No worries!\\n This jackpot drops every hour, {startHour}-{endHour}.\",\r\n \"PARTY_JACKPOT_WIN_POPUP_YOU_WON\": \"YOU WON THE {jackpotName}\",\r\n \"PARTY_JACKPOT_WIN_POPUP_AWESOME\": \"AWESOME!\",\r\n \"PARTY_JACKPOT_OUT_OF_CASH_TOASTER_TITLE\": \"Top up to play the Live Casino Jackpot\",\r\n \"PARTY_JACKPOT_OUT_OF_CASH_TOASTER_SUBTITLE\": \"The Live Casino Jackpot can only be won with real money\",\r\n \"JACKPOT-WIDGET-MUST-PAY\": \"Must Pay within:\",\r\n \"JACKPOT-WIDGET-DROPS-SOON\": \"DROPS SOON!\",\r\n \"JACKPOT-WIDGET-STARTS-SOON\": \"STARTS SOON\",\r\n \"JACKPOT-WIDGET-NEXT-JACKPOT\": \"Launching Next Jackpot\",\r\n \"JACKPOT-WIDGET-LAST-WIN\": \"Last win\",\r\n \"IN-GAME-WIDGET-STARTS-SOON\": \"Starts Soon\",\r\n \"FREEPLAY_INDICATOR\": \"FreePlay\",\r\n \"OMG_INDICATOR\": \"Notifications\",\r\n \"USER_LIKE_YOU\": \"TOP {topNumber} IN {countryName}\",\r\n \"YOUR_COUNTRY\": \"Your country\",\r\n \"SOURCE_OF_FUNDS_TITLE\": \"Important Info Needed\",\r\n \"SOURCE_OF_FUNDS_MESSAGE1\": \"Hi, welcome back!\",\r\n \"SOURCE_OF_FUNDS_MESSAGE2\": \"We just need some info from you. It won't take long at all!\",\r\n \"SOURCE_OF_FUNDS_OPEN_CHAT_BTN\": \"LET'S CHAT\",\r\n \"CLOSE\": \"Close\",\r\n \"LIVE_STREAM_WATCH_TIME_REACHED\": \"Ready to dive in and play?\",\r\n \"LIVE_STREAM_VIDEO_LOADING\": \"Loading…\",\r\n \"PLAY_NOW\": \"PLAY NOW\",\r\n \"CASINO\": \"CASINO\",\r\n \"UK_TSR_CONTINUE_OPT\": \"Continue\",\r\n \"UK_TSR_REVIEW_REMINDERS_OPT\": \"Review reminders\",\r\n \"UK_TSR_LOGOUT_OPT\": \"Logout\",\r\n \"UK_TSR_RESUME_GAME_OPT\": \"Resume Game\",\r\n \"UK_TSR_STOP_REMINDERS_OPT\": \"Stop all game time reminders\",\r\n \"UK_TSR_HISTORY_OPT\": \"View History\",\r\n \"UK_TSR_CLOSE_GAME_OPT\": \"Close Game\",\r\n \"TSR_CONFIRM\": \"OK\",\r\n \"TSR_SESSION_TIME_TEXT\": \"You have been logged in for:\",\r\n \"TSR_SUBTEXT\": \"What would you like to do?\",\r\n \"TSR_TITLE\": \"Time Spent Reminder\",\r\n \"TSR_MENU_LINK_LABEL\": \"Time Spent Reminder\",\r\n \"PAYMENTS_REDIRECT_FOCUS_TITLE\": \"Deposit in process\",\r\n \"PAYMENTS_REDIRECT_FOCUS_TEXT\": \"Your {mftName} screen is still open\",\r\n \"PAYMENTS_REDIRECT_FOCUS_CTA\": \"Continue\",\r\n \"VOLATILE_SLOTS\": \"Volatile Slots\",\r\n \"VOLATILE_GAMES\": \"Volatile Games\",\r\n \"HIGH_VOLATILITY_SLOTS\": \"High Volatility Slots\",\r\n \"LOW_VOLATILITY_SLOTS\": \"Low Volatility Slots\",\r\n \"STATE_POPUP_TITLE\": \"Verify Your Location\",\r\n \"STATE_POPUP_HEADER\": \"Please confirm that you're located in {THE_STATE}\",\r\n \"STATE_POPUP_OUTSIDE_TEXT\": \"I'm located outside of {THE_STATE}\",\r\n \"STATE_POPUP_CONFIRM\": \"Confirm\",\r\n \"BURNOUT_MESSAGE_LINE_1\": \"SURPRISE!\",\r\n \"BURNOUT_MESSAGE_LINE_2\": \"YOU GOT A BONUS!\",\r\n \"CONGRATS\": \"Congrats!\",\r\n \"YOUR_FP_ARE_WAITING\": \"Your FreePlay are waiting for you here\",\r\n \"EXIT_POPUP_TITLE\": \"We thought you’d like\",\r\n \"DONT_SHOW_AGAIN_TEXT\": \"Don't show again\",\r\n \"DAILY_DEAL_WIDGET_STRIP\": \"I GIORNALIERI\",\r\n \"GAMING_HISTORY_NO_RECORDS\": \"We were unable to locate any history records of your games\",\r\n \"GAMING_HISTORY_LAST_PAGE\": \"No more history records found.\",\r\n \"GAMING_HISTORY_BET\": \"Bet\",\r\n \"GAMING_HISTORY_WINNINGS\": \"Winnings\",\r\n \"GAMING_HISTORY_WINNINGS_BONUS_CAP\": \"Winnings*\",\r\n \"GAMING_HISTORY_BANKROLL\": \"Bankroll\",\r\n \"GAMING_HISTORY_MORE_DETAILS\": \"More Details\",\r\n \"GAMING_HISTORY_MORE_DETAILS_NOT_AVAILABLE_PC\": \"Available only on Mobile devices\",\r\n \"GAMING_HISTORY_MORE_DETAILS_NOT_AVAILABLE_MOBILE\": \"Available only on PC\",\r\n \"GAMING_HISTORY_FREE_PLAY_BET\": \"Bet*\",\r\n \"GAMING_HISTORY_FREE_PLAY_WINNINGS\": \"Winnings*\",\r\n \"GAMING_HISTORY_FREE_PLAY_REWARD_WINNINGS\": \"Reward winnings\",\r\n \"GAMING_HISTORY_FREE_PLAY_REWARD_BANKROLL\": \"Reward bankroll\",\r\n \"GAMING_HISTORY_FREE_PLAY_INDICATION\": \"*Played with rewards\",\r\n \"GAMING_HISTORY_FREE_PLAY_MAX_CUP_INDICATION\": \"*Maximum win\",\r\n \"GAMING_HISTORY_BIG_WIN_TAX_INDICATION\": \"Pending IRS form W-2G completion\",\r\n \"GAMING_HISTORY_DAYS_INTERVAL\": \"Last {numberOfDays} Days\",\r\n \"GAME_PARTICIPATION_ID\": \"Participation ID: {participationID}\",\r\n \"GAME_SESSION_ID\": \"Session ID: {sessionID}\",\r\n \"HISTORY_GAME_SESSION_TOTAL_BETS\": \"Total bets\",\r\n \"HISTORY_GAME_SESSION_TOTAL_WINNINGS\": \"Total wins\",\r\n \"HISTORY_GAME_SESSION_BALANCE\": \"Session Balance\",\r\n \"FILTER_GROUP_VENDOR_TYPE\": \"Vendor Name\",\r\n \"GAME_WINDOW_VENDOR_SESSION_ID\": \"Session ID: {sessionID}\",\r\n \"GAME_WINDOW_MODE_REAL_LABEL\": \"Real Money\",\r\n \"GAME_WINDOW_MODE_DEMO_LABEL\": \"Demo\",\r\n \"FREE_PLAY_VOUCHER_NAME_FPV\": \"FreePlay\",\r\n \"FREE_PLAY_VOUCHER_NAME_FSV\": \"Free Spins\",\r\n \"FREE_PLAY_VOUCHER_NAME_JPFPV\": \"Jackpot FreePlay\",\r\n \"FREE_PLAY_VOUCHER_NAME_JPFSV\": \"Jackpot Spins\",\r\n \"FREE_PLAY_VOUCHER_BALANCE_PREFIX\": \"Remaining:\",\r\n \"FREE_PLAY_VOUCHER_TITLE_FPV\": \"FreePlay Reward\",\r\n \"FREE_PLAY_VOUCHER_TITLE_FSV\": \"Free Spins Reward\",\r\n \"FREE_PLAY_VOUCHER_TITLE_JPFPV\": \"Jackpot FreePlay Reward\",\r\n \"FREE_PLAY_VOUCHER_TITLE_JPFSV\": \"Jackpot Spins Reward\",\r\n \"FREE_PLAY_VOUCHER_DESC_FPV\": \"Free play money to use on selected games in whichever way you wish!\",\r\n \"FREE_PLAY_VOUCHER_DESC_FSV\": \"Free Spins with pre-defined values to use on selected games!\",\r\n \"FREE_PLAY_VOUCHER_DESC_JPFPV\": \"Jackpot-only FreePlay money to use on selected games in whichever way you wish!\",\r\n \"FREE_PLAY_VOUCHER_DESC_JPFSV\": \"Jackpot-only Free Spins with pre-defined values to use on selected games!\",\r\n \"FREE_PLAY_VOUCHER_REWARD_AMOUNT\": \"{amount} {fp_voucher_name}\",\r\n \"FREE_PLAY_VOUCHER_REWARD_BALANCE\": \"{fp_voucher_remaining_prefix} {balance}\",\r\n \"FREE_PLAY_EXPIRES_IN_TIME\": \"Expires in {expiration}\",\r\n \"FREE_PLAY_EXPIRES_IN_EXPIRED\": \"Expired\",\r\n \"FREE_PLAY_EXPIRES_IN_DAY\": \"Expires in {expiration} days\",\r\n \"FREE_PLAY_MESSAGE_VOUCHER_TITLE_GOOD_LUCK\": \"Good Luck!\",\r\n \"FREE_PLAY_MESSAGE_LIST_TITLE\": \"You have rewards waiting for you. Good Luck!\",\r\n \"FREE_PLAY_MESSAGE_SELECTED_GAME_TITLE\": \"This game can also be played with the following rewards:\",\r\n \"FREE_PLAY_MESSAGE_GAMES_LIST_TITLE\": \"You can use this reward in the game(s) below.\",\r\n \"FREE_PLAY_MESSAGE_NO_VOUCHERS\": \"You have no rewards available\",\r\n \"FREE_PLAY_MESSAGE_BACK_TO_VOUCHERS\": \"Back\",\r\n \"FREE_PLAY_SHOW_MORE\": \"Show More\",\r\n \"FREE_PLAY_SHOW_LESS\": \"Show Less\",\r\n \"FREE_PLAY_USE_NOW_BUTTON\": \"Use Now\",\r\n \"FREE_PLAY_USE_LATER_BUTTON\": \"Use Later\",\r\n \"FREE_PLAY_SUGGESTION_DIALOG_TITLE\": \"You have rewards in this game!\",\r\n \"IDLE_RECOMMENDATIONS_TITLE\": \"Looking for your next game?\",\r\n \"IDLE_RECOMMENDATIONS_SECOND_TITLE\": \"What about\",\r\n \"BONUS_ABUSE_PREVENTION_TITLE\": \"Disconnected Game\",\r\n \"BONUS_ABUSE_PREVENTION_MESSAGE\": \"It looks like there's a game that was disconnected... Please complete {gameName} before you can start playing {newGameName}.\",\r\n \"BONUS_ABUSE_PREVENTION_NOT_NOW_BTN\": \"Not Now\",\r\n \"BONUS_ABUSE_PREVENTION_COMPLETE_BTN\": \"Complete Game\",\r\n \"OPEN_GAME_FROM_CHALLENGES\": \"Challenges can’t be completed using rewards.\",\r\n \"CANCEL\": \"Cancel\",\r\n \"YES\": \"Yes\",\r\n \"NO\": \"No\",\r\n \"ONE_GAME_PER_SESSION_DIALOG_TITLE\": \"Open Game\",\r\n \"ONE_GAME_PER_SESSION_DIALOG_MESSAGE\": \"It looks like there's a game that's still open....\\nWould you like to close {oldGameName} and start playing {newGameName}?\",\r\n \"GAMES_OF_THE_WEEK\": \"Games Of The Week\",\r\n \"THE_FISH_MARKET\": \"The Fish Market\",\r\n \"LETS_PLAY_POKER\": \"Lets Play Poker!\",\r\n \"HYBRID_EMBEDDED_GAME_LOADING_SLOW_CONNECTION_TOASTER_TITLE\": \"Slow connection\",\r\n \"HYBRID_EMBEDDED_GAME_LOADING_SLOW_CONNECTION_TOASTER_SUBTITLE\": \"We've detected a slow network connection. Opening the game may take a little longer than expected.\",\r\n \"HYBRID_EMBEDDED_GAME_LOADING_SPINNER_LABEL\": \"Connecting...\",\r\n \"HYBRID_EMBEDDED_GAME_LOADING_PACKAGES_PROGRESS\": \"Preparing game {packagesStatus}\",\r\n \"HELP_CENTER\": \"Help Centre\",\r\n \"GEO_PERMISSIONS_POPUP_TITLE\": \"Location Check\",\r\n \"GEO_PERMISSIONS_POPUP_TOP_TEXT\": \"Allow location verification\",\r\n \"GEO_PERMISSIONS_POPUP_MIDDLE_TEXT\": \"We need your location to verify that playing is allowed in your province\",\r\n \"GEO_PERMISSIONS_BUTTON\": \"OK\",\r\n \"ABOUT_HELP_SUPPORT\": \"For any support queries, please visit our online help\",\r\n \"ABOUT_TITLE\": \"Your Account Details\",\r\n \"ABOUT_FISCAL_CODE_TITLE\": \"Fiscal Code\",\r\n \"ABOUT_SUPPORT_ID_TITLE\": \"ID for support\",\r\n \"ABOUT_CLIENT_VERSION_TITLE\": \"Client Version\",\r\n \"ABOUT_OPEN_SESSION_TITLE\": \"Open session balance\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_TITLE\": \"Location check\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_HEADER_1\": \"Verify Your Location.\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_HEADER_2\": \"This site is dedicated for players in USA permitted states.\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_HEADER_3\": \"To verify your location and start playing, please install the\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_HEADER_4\": \"GeoComply plugin:\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_BODY_1\": \"Click the Download Plugin button below\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_BODY_2\": \"Open the file from the download bar\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_BODY_3\": \"Click Run to install the file\",\r\n \"GEO_PLUGIN_INSTALLATION_MSG_FOOTER\": \"Need to redownload the plugin?\",\r\n \"GEO_PLUGIN_DOWNLOAD_BUTTON\": \"DOWNLOAD\",\r\n \"GEO_FREEZE_POPUP_TOP_TEXT\": \"We're confirming your location.\",\r\n \"GEO_FREEZE_POPUP_MIDDLE_TEXT\": \"It should only take a few seconds. This window will close automatically after confirmation.\",\r\n \"GEO_FREEZE_POPUP_TITLE\": \"Location Verification\",\r\n \"GEO_GAME_RESTRICTION_TOP_TEXT\": \"Verify your location\",\r\n \"GEO_GAME_RESTRICTION_MIDDLE_TEXT\": \"That action requires location verification. To verify your location, please log out and retry. If the problem persists, please contact us.\",\r\n \"GEO_RETRY_GAME_RESTRICTION_MIDDLE_TEXT\": \"That action requires location verification. To verify your location please retry. If the problem persists, please contact us.\",\r\n \"ENFORCE_HYBRID_APP_TITLE\": \"Download the app\",\r\n \"ENFORCE_HYBRID_APP_TEXT\": \"To log in from your mobile device please download the app.\",\r\n \"ENFORCE_HYBRID_APP_CONTINUE_BUTTON\": \"GET THE APP\",\r\n \"ONE_HOUR\": \"1 hour\",\r\n \"X_HOURS\": \"{x} hours\",\r\n \"ONE_MINUTE\": \"1 minute\",\r\n \"X_MINUTES\": \"{x} minutes\",\r\n \"ONE_DAY\": \"1 day\",\r\n \"X_DAYS\": \"{x} days\",\r\n \"ONE_WEEK\": \"1 week\",\r\n \"ONE_MONTH\": \"1 month\",\r\n \"ADVANCED_MODE\": \"Advanced Mode\",\r\n \"SELECT\": \"Please select\",\r\n \"DONT_WANT_TO_BE_BLOCKED\": \"I don't want to be blocked\",\r\n \"START_PLAYING\": \"Start Playing\",\r\n \"ES_GAME_LIMIT_RESTRICTION_PERIOD_VALUE\": \"Be blocked for {time}\",\r\n \"ES_GAME_LOSS_LIMIT_VALUE\": \"{percent}% of bankroll ({loss})\",\r\n \"ES_TIME_LIMIT_DROP_DOWN_LABEL\": \"Maximum duration\",\r\n \"ES_LOSS_LIMIT_DROP_DOWN_LABEL\": \"Maximum loss\",\r\n \"ES_REMINDER_INTERVAL_DROP_DOWN_LABEL\": \"Reminder interval\",\r\n \"ES_RESTRICTION_PERIOD_DROP_DOWN_LABEL\": \"When my session ends, I’d like to:\",\r\n \"ES_GAME_TIME_LIMIT_REQUIRED_ERROR\": \"Please select a time limit\",\r\n \"ES_GAME_LOSS_LIMIT_REQUIRED_ERROR\": \"Please select a loss limit\",\r\n \"ES_GAME_LIMIT_REGULATORY_TEXT\": \"In 888casino.es we support and promote {responsibleGamblingLink} offering you the tools to control both the time you play and the money you bet. Before you start playing, configure your session according to your preferences\",\r\n \"ES_GAME_LIMIT_RESPONSIBLE_GAMING_LINK\": \"the responsible gaming\",\r\n \"ES_GAME_LIMIT_TIME_LOSS_CONFIRMATION_TEXT\": \"Note that you have set your maximum playing time at {time}.\",\r\n \"ES_GAME_LIMIT_TIME_LOSS_CONFIRMATION_QUESTION\": \"Do you want to continue?\",\r\n \"ES_GAME_LIMIT_RESTRICTION_BLOCK_CONFIRMATION_TEXT\": \"You have chosen to be blocked for {time}. This means that once your game session ends, you will not be able to play again for the time period you have selected.\",\r\n \"ES_GAME_LIMIT_RESTRICTION_BLOCK_CONFIRMATION_QUESTION\": \"Are you sure?\",\r\n \"ES_GAME_LIMIT_TITLE\": \"Set up your Game Session\",\r\n \"ATTENTION\": \"Attention!\",\r\n \"TOTAL_BANKROLL\": \"Full Bankroll:\",\r\n \"GAME_SESSION_BALANCE\": \"Session balance:\",\r\n \"TOTAL_WINS\": \"Total win amounts:\",\r\n \"TOTAL_BETS\": \"Total bet amounts:\",\r\n \"ES_SESSION_TIME_LIMIT_MESSAGE\": \"You are about to reach your maximum time. You can finish the session.\",\r\n \"ES_INTERVAL_REMINDER_MESSAGE\": \"You are playing for {timePassed}, your Total Bets are {totalBets} and Total Wins are {totalWins}\",\r\n \"ES_SESSION_LOSS_LIMIT_MESSAGE\": \"You are about to reach your maximum budget. You can finish the session.\",\r\n \"GAME_SESSION_SUMMARY_DIALOG_TITLE\": \"Session has ended\",\r\n \"GAME_SESSION_SUMMARY_DIALOG_MESSAGE\": \"Your session for {game_name} has ended\\n\\nTotal bets {total_bets_amount}\\n\\nTotal wins {total_wins_amount}\",\r\n \"OK\": \"OK\",\r\n \"INSUFFICIENT_FUNDS_TITLE\": \"Insufficient balance\",\r\n \"INSUFFICIENT_FUNDS_MESSAGE\": \"Your current balance is not sufficient for this game. To continue playing, you must first make a deposit to the cashier.\",\r\n \"OPEN_CASHIER\": \"Open Cashier\",\r\n \"GAME_LIMIT_REAL_MONEY_WARNING_MESSAGE\": \"This game can be played with cash balance only.\",\r\n \"SUGGEST_REAL_MODE_DIALOG_TITLE\": \"Demo Game\",\r\n \"SUGGEST_REAL_MODE_DIALOG_TEXT\": \"Please note that {game_name} will be opened in demo mode.

To play in real money mode, please register or log in.\",\r\n \"PLAY_DEMO\": \"Play Demo\",\r\n \"GAME_NET_POSITION_LABEL\": \"Game Balance\",\r\n \"GAME_DURATION_LABEL\": \"Game Duration\",\r\n \"GAME_LIMIT_TITLE\": \"Choose the money in the game\",\r\n \"REGULATORY_LIMIT_LABEL\": \"Regulatory limit\",\r\n \"OTHER_LIMIT_LABEL\": \"Other\",\r\n \"GAME_LIMIT_VALUE_ERROR\": \"Invalid amount. Please try again\",\r\n \"GAME_LIMIT_REGULATION_ERROR\": \"The maximum amount is {regulationLimit}. Please try again.\",\r\n \"GAME_LIMIT_MIN_BET_ERROR\": \"Amount below table minimum. Please try again\",\r\n \"AGE_ACKNOWLEDGE_POPUP_TITLE\": \"Acknowledgement\",\r\n \"AGE_ACKNOWLEDGE_POPUP_MESSAGE\": \"Persons under the age of 21 are not permitted to engage in interactive gaming.\\nPlease confirm that you are over 21 years old\",\r\n \"AGE_ACKNOWLEDGE_POPUP_CONFIRM_BUTTON\": \"Confirm\",\r\n \"AGE_ACKNOWLEDGE_POPUP_DECLINE_BUTTON\": \"Decline\",\r\n \"STATE_POPUP_DEFAULT_OPTION\": \"Select...\",\r\n \"STATE_POPUP_NO_STATE_SELECTED\": \"You must choose a state!\",\r\n \"CHOOSE_CONFIRM_STATE\": \"Please confirm that you're located in\",\r\n \"STATE_POPUP_OTHER_STATE\": \"I don't see my state\",\r\n \"STATE_SELECTOR_MENU_ITEM\": \"State Selector\",\r\n \"LUGAS_COOLING_OFF_LOGOUT_MESSAGE\": \"By logging out you will not be able to play any game for 5:00 mins.\",\r\n \"LUGAS_ACTIVE_TITLE\": \"Notification\",\r\n \"LUGAS_ACTIVE_TEXT_1\": \"It looks like you're currently playing on a different site. Per local regulations, please log out to continue here.\",\r\n \"LUGAS_ACTIVE_TEXT_2\": \"888 receives this information from the German system used to enforce regulations.\",\r\n \"LUGAS_COOLDOWN_TITLE\": \"Please wait\",\r\n \"LUGAS_COOLDOWN_TEXT\": \"According to Germany regulation there’s a five minute cool down period after logging out from another operator.\",\r\n \"LUGAS_OK_BTN\": \"OK\",\r\n \"GAME_CATEGORY\": \"Category\",\r\n \"GAME_FEATURES\": \"Features\",\r\n \"GAME_STUDIO\": \"Game Studio\",\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 \"NO_JACKPOT\": \"No Jackpot\",\r\n \"HIGH_STAKES\": \"High Stakes\",\r\n \"JOIN_NOW\": \"JOIN NOW\",\r\n \"FILTER_BY\": \"Filter By\"\r\n }\r\n}","import {CasinoStartupConfigurations} from '../config-interfaces/casino-startup.configurations';\r\nimport {ApplicationStartupConfigurations} from '../config-interfaces/application-startup.configurations';\r\nimport {B2CStartupConfigurations} from '../config-interfaces/b2c-startup.configurations';\r\nimport {LauncherOverridesReader} from '../launcher-overrides-reader/launcher-overrides-reader';\r\nimport {LauncherOverrides} from '../config-interfaces/launcher-overrides';\r\nimport {IWindowService} from '../../services/window/window.service.interface';\r\nimport {IHttpService} from '../../services/http/http.service.interface';\r\nimport {ILoggerService} from '../../services/logger/logger.service.interface';\r\nimport {mockApplicationStartupConfigs} from '../../../utils/automation-helpers';\r\nimport {ALL_CONFIGS_KEY} from \"../../../app-consts\";\r\n\r\nconst overrideJson = require('json-override');\r\n\r\nexport class ApplicationStartupConfigurationsReader {\r\n constructor(private _defaultOrbitConfigurations: any,\r\n private _window: IWindowService,\r\n private _launcherOverridesReader: LauncherOverridesReader,\r\n private _http: IHttpService,\r\n private _logger: ILoggerService) {\r\n\r\n\r\n }\r\n\r\n private _launcherOverrides: LauncherOverrides | null;\r\n private _b2cConfigurations: B2CStartupConfigurations;\r\n\r\n async readApplicationConfigurations(): Promise {\r\n this._launcherOverrides = this._launcherOverridesReader.getOverrides();\r\n this._b2cConfigurations = this._getB2CConfigurations();\r\n let casinoConfigurations = await this._getCasinoConfigurations();\r\n\r\n const configs = {\r\n configurationPath: this._getConfigPath(casinoConfigurations),\r\n orbitServer: casinoConfigurations.sdk.config.ExtraProperties.paths.server,\r\n brandName: casinoConfigurations.sdk.config.ExtraProperties.brand,\r\n country: casinoConfigurations.country,\r\n orbit: casinoConfigurations.orbit,\r\n sdk: casinoConfigurations.sdk,\r\n admin: casinoConfigurations.adminConfig,\r\n b2c: this._b2cConfigurations,\r\n userSelectedState: casinoConfigurations.userSelectedState\r\n };\r\n\r\n return mockApplicationStartupConfigs(configs);\r\n }\r\n\r\n private _getConfigPath(casinoConfigurations: CasinoStartupConfigurations): string {\r\n\r\n let server = casinoConfigurations.sdk.config.ExtraProperties.paths.server;\r\n if(!server.endsWith('/')) {\r\n server += '/';\r\n }\r\n\r\n return server + 'configurations/' + casinoConfigurations.sdk.config.ExtraProperties.brand;\r\n }\r\n\r\n\r\n private async _getCasinoConfigurations(): Promise {\r\n\r\n let casinoConfigurations: CasinoStartupConfigurations = this._window.getGlobalProperty(ALL_CONFIGS_KEY);\r\n casinoConfigurations = await this._applyOrbitConfigsOverrides(casinoConfigurations);\r\n casinoConfigurations = this._applySdkConfigOverrides(casinoConfigurations);\r\n return casinoConfigurations;\r\n\r\n }\r\n\r\n\r\n async _applyOrbitConfigsOverrides(casinoConfigurations: CasinoStartupConfigurations): Promise {\r\n casinoConfigurations.orbit.config = overrideJson(this._defaultOrbitConfigurations, casinoConfigurations.orbit.config);\r\n if(this._launcherOverrides && this._launcherOverrides.orbit && this._launcherOverrides.orbit.configs) {\r\n overrideJson(casinoConfigurations.orbit.config, this._launcherOverrides.orbit.configs);\r\n }\r\n return casinoConfigurations;\r\n }\r\n\r\n\r\n\r\n private _applySdkConfigOverrides(casinoConfigurations: CasinoStartupConfigurations): CasinoStartupConfigurations {\r\n\r\n if(!(casinoConfigurations.sdk && casinoConfigurations.sdk.config)) { // if SDK configs are not here it probably means the app is loaded from a fallback file\r\n return casinoConfigurations;\r\n }\r\n\r\n overrideJson(casinoConfigurations, {\r\n sdk: {\r\n config: (this._launcherOverrides && this._launcherOverrides.sdk) || {}\r\n }\r\n });\r\n\r\n overrideJson(casinoConfigurations, {\r\n sdk: {\r\n config: {\r\n Language: {\r\n iso3: this._b2cConfigurations.language.iso3,\r\n iso2: this._b2cConfigurations.language.iso2\r\n }\r\n }\r\n }\r\n });\r\n\r\n let orbitLang = casinoConfigurations.orbit.lang;\r\n if(orbitLang && orbitLang.text && orbitLang.text.SDKTexts) {\r\n overrideJson(casinoConfigurations.sdk.config.Language.text, orbitLang.text.SDKTexts);\r\n }\r\n\r\n return casinoConfigurations;\r\n }\r\n\r\n\r\n\r\n\r\n private _applyB2COverrides(b2cConfigs: B2CStartupConfigurations): B2CStartupConfigurations {\r\n\r\n if(this._launcherOverrides?.orbit) {\r\n let languageIso3Override = this._launcherOverrides.orbit.language;\r\n let languageIso2Override = this._launcherOverrides.orbit.iso2;\r\n\r\n if(languageIso3Override) {\r\n b2cConfigs.language = {...b2cConfigs.language, iso3: languageIso3Override};\r\n }\r\n\r\n if(languageIso2Override) {\r\n b2cConfigs.language = {...b2cConfigs.language, iso2: languageIso2Override};\r\n }\r\n\r\n let publicationIdOverride = this._launcherOverrides.orbit.publicationID;\r\n if(publicationIdOverride) {\r\n b2cConfigs.publicationId = publicationIdOverride;\r\n }\r\n }\r\n\r\n\r\n let segmentsOverrides = this._launcherOverrides?.webData?.segments;\r\n\r\n if(segmentsOverrides) {\r\n b2cConfigs.segments = {...b2cConfigs.segments, ...segmentsOverrides};\r\n }\r\n\r\n return b2cConfigs;\r\n }\r\n\r\n private _getB2CConfigurations() : B2CStartupConfigurations {\r\n let b2cConfigs = this._window.getGlobalProperty('webData') || {} as B2CStartupConfigurations;\r\n\r\n b2cConfigs.language = b2cConfigs.language || {};\r\n b2cConfigs.language.iso3 = b2cConfigs.language.iso3 || 'eng';\r\n b2cConfigs.language.iso2 = b2cConfigs.language.iso2 || 'en';\r\n\r\n\r\n if(this._launcherOverrides) {\r\n return this._applyB2COverrides(b2cConfigs);\r\n }\r\n\r\n return b2cConfigs;\r\n }\r\n\r\n\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import ISdkHooksProvider from './sdk-hooks-provider.interface';\r\nimport {MINI_CIP_BASE_ROUTE, MINI_CIS_BASE_ROUTE} from '../../services/mini-orbit/mini-orbit-consts';\r\nimport {Uri} from '../../services/location/uri/uri';\r\nimport {IServiceFactoryExtended} from '../../services/service-factory-extended.interface';\r\nimport {IOrbitComponentToSdkAdapterService} from '../../../common/interfaces/orbit-component-to-sdk-adapter/orbit-component-to-sdk-adapter.service.interface';\r\nimport {ICashierService} from \"../../../common/interfaces/cashier.service.interface\";\r\nimport {IGameRunnerProxy} from \"../../../common/interfaces/game-runner-proxy.interface\";\r\nimport {ICasinofiedAnalyticsService} from \"../../../common/interfaces/casinofied-analytics-proxy.interface\";\r\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 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 {AIRecommendationsAnalyticsData, ISendElasticEventOptions , IAnalyticsService} from './analytics.service.interface';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IElasticEventData, IStructuredLogger} from '../../../common/interfaces/structured-logging-service-interface';\r\nimport {Check} from \"@sparkware/app-utils\";\r\n\r\nexport class AnalyticsService extends ServiceBase implements IAnalyticsService {\r\n\r\n sendAnalytics(\r\n category: string,\r\n action: string | undefined = undefined,\r\n label: string | undefined = undefined,\r\n value: string | undefined = undefined,\r\n omitStructuredLogger?: boolean\r\n ) {\r\n this.services.sdk.sendAnalytics(category, action, label, value, omitStructuredLogger);\r\n }\r\n\r\n sendAIRecommendations(data: AIRecommendationsAnalyticsData): void {\r\n this.sendAnalytics(data.category, JSON.stringify(data.gameTypes), data.engine);\r\n }\r\n\r\n sendTechnicalEvent(action: string, label?: string, value?: any): void {\r\n this.sendAnalytics('[Technical-event]', action, label, value);\r\n }\r\n\r\n sendElasticInfoEvent(options: ISendElasticEventOptions, sendToDWH?: boolean) {\r\n const logger: IStructuredLogger = this.services.sdk.structuredLoggingService\r\n .getLogger()\r\n .addCategory(options.category)\r\n .addAction(options.action)\r\n .addLabel(options.label)\r\n .addValue(options.value)\r\n .addCustomData(options.customData);\r\n\r\n if (!Check.isNullOrUndefined(options.appID)) {\r\n logger.setAppID(options.appID);\r\n }\r\n\r\n if (sendToDWH) {\r\n logger.setEventType(options.eventType,'Log', 'Analytics');\r\n }\r\n else {\r\n logger.setEventType(options.eventType, 'Log');\r\n }\r\n\r\n logger.info();\r\n }\r\n\r\n getLogger(eventData?: IElasticEventData): IStructuredLogger {\r\n return this.services.sdk.structuredLoggingService.getLogger(eventData);\r\n }\r\n\r\n getGoogleClientID(): string {\r\n return this.services.sdk.getGoogleClientID();\r\n }\r\n}\r\n","import {ILobbyGameInfoPreviewService} from './lobby-game-info-preview.service.interface';\r\nimport {action, observable} from 'mobx';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {GameInfo} from '../games/game-info';\r\n\r\nconst TIME_TO_HANDLE_SET_GAME_PREVIEW = 800;\r\nconst TIME_TO_HANDLE_CLEAR_GAME_PREVIEW = 5000;\r\n\r\n\r\nexport class LobbyGameInfoPreviewService extends ServiceBase implements ILobbyGameInfoPreviewService {\r\n\r\n constructor(serviceFactory: IServiceFactoryExtended) {\r\n super(serviceFactory);\r\n this.reaction(() => this.services.device.isMobile,\r\n () => this._resetGamePreview());\r\n\r\n this.reaction(() => this.services.routing.currentRoute,\r\n () => this._resetGamePreview());\r\n }\r\n\r\n\r\n @observable.ref currentPreviewedGame: GameInfo = null;\r\n\r\n @action.bound\r\n private _setCurrentPreviewedGame(gameType: number | null): void {\r\n if (gameType) {\r\n this.currentPreviewedGame = this.services.games.gamesMap[gameType];\r\n } else {\r\n this.currentPreviewedGame = null;\r\n }\r\n\r\n }\r\n\r\n\r\n private _setGamePreviewTimeout;\r\n private _clearGamePreviewTimeout;\r\n\r\n\r\n enableGamePreview(): void {\r\n this._allowPreview = true;\r\n }\r\n\r\n disableGamePreview(): void {\r\n this._allowPreview = false;\r\n }\r\n\r\n private _allowPreview = false;\r\n get allowGamePreview(): boolean {\r\n return this._allowPreview && !this.services.device.isMobile;\r\n }\r\n\r\n private _currentGamePreviewPinned = false;\r\n\r\n pinCurrentGamePreview() {\r\n this._currentGamePreviewPinned = true;\r\n clearTimeout(this._clearGamePreviewTimeout);\r\n }\r\n\r\n unPinCurrentGamePreview() {\r\n this._currentGamePreviewPinned = false;\r\n // basically when unPinCurrentGamePreview is called it means user mouse leave from the game preview\r\n this.clearGamePreview();\r\n }\r\n\r\n\r\n public setGamePreview(gameType: number): void {\r\n if(!this.allowGamePreview) {\r\n return;\r\n }\r\n clearTimeout(this._clearGamePreviewTimeout);\r\n clearTimeout(this._setGamePreviewTimeout);\r\n this._setGamePreviewTimeout = setTimeout(() => {\r\n this._setCurrentPreviewedGame(gameType);\r\n }, TIME_TO_HANDLE_SET_GAME_PREVIEW);\r\n }\r\n\r\n public clearGamePreview(): void {\r\n if(!this.allowGamePreview) {\r\n return;\r\n }\r\n\r\n clearTimeout(this._setGamePreviewTimeout);\r\n clearTimeout(this._clearGamePreviewTimeout);\r\n this._clearGamePreviewTimeout = setTimeout(() => {\r\n !this._currentGamePreviewPinned && this._setCurrentPreviewedGame(null);\r\n }, TIME_TO_HANDLE_CLEAR_GAME_PREVIEW);\r\n }\r\n\r\n private _resetGamePreview() {\r\n clearTimeout(this._setGamePreviewTimeout);\r\n clearTimeout(this._clearGamePreviewTimeout);\r\n this._setCurrentPreviewedGame(null);\r\n }\r\n\r\n\r\n}\r\n","import { action, observable } from 'mobx';\r\nimport { GameInfo } from '../games/game-info';\r\nimport { OnGameCloseParams, OnGameOpenParams } from '../sdk/sdk-events';\r\nimport { ServiceBase } from '../ServiceBase';\r\nimport { IRunningGameService } from './running-game.service.interface';\r\n\r\nexport class RunningGameService extends ServiceBase implements IRunningGameService {\r\n\r\n get isGameRunning(): boolean {\r\n return this.services.sdk.isGameRunning();\r\n }\r\n\r\n continuePlayingCurrentGame(): void {\r\n this.services.sdk.continuePlayingCurrentGame();\r\n }\r\n\r\n stopCurrentGameAutoplay(): void {\r\n this.services.sdk.stopCurrentGameAutoplay();\r\n }\r\n\r\n closeRunningGame(): void {\r\n this.services.sdk.closeRunningGame();\r\n }\r\n\r\n @observable.ref\r\n lastPlayedRealGame: GameInfo = null;\r\n\r\n\r\n @observable.ref\r\n correlatedGamesForLastPlayedRealGame: GameInfo[] = [];\r\n\r\n private _listenForLastRealGame = false;\r\n\r\n\r\n @action\r\n _setLastPlayedRealGame(lastGameInfo: GameInfo) {\r\n this.lastPlayedRealGame = lastGameInfo;\r\n }\r\n\r\n @action\r\n _setCorrelatedGamesForLastPlayedRealGame(gameInfos: GameInfo[]) {\r\n this.correlatedGamesForLastPlayedRealGame = gameInfos;\r\n }\r\n\r\n listenForLastPlayedRealGame() {\r\n if (this._listenForLastRealGame) {\r\n return;\r\n }\r\n\r\n this.services.sdk.events.onGameClose((closeOptions: OnGameCloseParams) => {\r\n // showNextGameSuggestion should be filled as true when player itself closes the game (press on X button)\r\n if (closeOptions.isReal && closeOptions.isGamePlayed && closeOptions.showNextGameSuggestion) {\r\n this.setLastPlayedRealGame(closeOptions.gameType);\r\n }\r\n });\r\n\r\n this._listenForLastRealGame = true;\r\n }\r\n\r\n async setLastPlayedRealGame(gameType: number): Promise {\r\n const lastGameInfo = await this.services.games.getGameInfo(gameType);\r\n const correlatedGames = await this.services.games.getCorrelatedGames(gameType, 50);\r\n let gameInfosArray = await this.services.games.getGamesInfoArray(correlatedGames) || [];\r\n\r\n this._setLastPlayedRealGame(lastGameInfo);\r\n this._setCorrelatedGamesForLastPlayedRealGame(gameInfosArray);\r\n }\r\n\r\n private _listenForLastOpenDemoGame = false;\r\n\r\n @observable.ref\r\n lastOpenDemoGame: GameInfo = null;\r\n\r\n listenForLastOpenDemoGame() {\r\n if (this._listenForLastOpenDemoGame) {\r\n return;\r\n }\r\n\r\n this.services.sdk.events.onGameOpen((options: OnGameOpenParams) => {\r\n if (!options.isReal) {\r\n this.setLastOpenDemoGame(options.gameType);\r\n }\r\n });\r\n\r\n this._listenForLastOpenDemoGame = true;\r\n }\r\n\r\n async setLastOpenDemoGame(gameType: number): Promise {\r\n const gameInfo = await this.services.games.getGameInfo(gameType);\r\n this._setLastOpenDemoGame(gameInfo);\r\n }\r\n\r\n @action\r\n _setLastOpenDemoGame(lastGameInfo: GameInfo) {\r\n this.lastOpenDemoGame = lastGameInfo;\r\n }\r\n}\r\n","import styled from 'styled-components';\r\n\r\n//info-mobile\r\nexport const GameInfoButtonDefaultBox = styled.div`\r\n padding-right: 20px;\r\n margin-right: 15px;\r\n border-right: 1px solid ${props => props.theme.colors.boxBorderContrast};\r\n cursor: pointer;\r\n`;","import styled from 'styled-components';\r\nimport {GameInfoButtonDefaultBox} from './game-info-button.default.box';\r\n\r\n\r\nexport const GameInfoButtonCasino777Box = styled(GameInfoButtonDefaultBox)`\r\n border-right: 1px solid $transparent;\r\n`;","import {GameInfoButtonDefaultBox} from './game-info-button.default.box';\r\nimport {GameInfoButtonCasino777Box} from './game-info-button.casino777.box';\r\nimport {styledByTheme} from '../../../../../../themes/architecture/styled-by-theme';\r\n\r\nexport const GameInfoButtonBox = styledByTheme(GameInfoButtonDefaultBox).forCasino777(GameInfoButtonCasino777Box).apply();","import styled from 'styled-components';\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\n\r\nconst DefaultBox = styled.div`\r\n flex-grow: 1;\r\n color: ${props => props.theme.colors.textLight};\r\n ${({theme}) => theme.font.presets.body};\r\n line-height: normal;\r\n text-transform: capitalize;\r\n font-size: 1.4em;\r\n letter-spacing: 0.98px;\r\n`;\r\n\r\n\r\nconst PcBox = styled(DefaultBox)`\r\n text-align: center;\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n text-align: left;\r\n`;\r\n\r\nexport const DialogTitleDefaultBox = styledByDevice(PcBox, MobileBox);","import {DialogTitleDefaultBox} from \"./dialog-title.default.box\";\r\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: 10px;\r\n border-top-right-radius: 10px;\r\n`;","import styled from 'styled-components';\r\nimport {DialogHeaderDefaultBox} from './dialog-header.default.box';\r\n\r\nexport const DialogHeaderCipBox = styled(DialogHeaderDefaultBox)`\r\n position: relative;\r\n\r\n &::after {\r\n content: \"\";\r\n position: absolute;\r\n left: 0;\r\n bottom: 0;\r\n width: 100%;\r\n height: 1px;\r\n background: linear-gradient(90deg, transparent, white, transparent);\r\n }\r\n`;","import {styledByTheme} from '../../../../themes/architecture/styled-by-theme';\r\nimport {DialogHeaderDefaultBox} from './dialog-header.default.box';\r\nimport {DialogHeaderCipBox} from './dialog-header.cip.box';\r\n\r\nexport const DialogHeaderBox = styledByTheme(DialogHeaderDefaultBox)\r\n .forCip(DialogHeaderCipBox)\r\n .forWsopCip(DialogHeaderCipBox).apply();","import styled from \"styled-components\";\r\n\r\nexport const HeaderButtonsContainerBox = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: flex-end;\r\n \r\n \r\n`","import React from 'react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {DialogHeaderBox} from '../../boxes/header/dialog-header.box';\r\nimport {DialogTitleBox} from '../../boxes/title/dialog-title.box';\r\nimport {DialogCloseButtonBox} from '../../boxes/close-button/dialog-close-button.box';\r\nimport {CyClass} from '../../../../../common/cy-classes';\r\nimport {HeaderButtonsContainerBox} from \"../../boxes/header-buttons/header-buttons-container.box\";\r\n\r\nexport interface ModalDialogHeaderComponentProps {\r\n title?: string;\r\n hideCloseButton?: boolean;\r\n onCloseButtonClick?: () => void;\r\n className?: string;\r\n renderExtraButtons?: () => React.ReactElement;\r\n}\r\nexport class DialogHeaderComponent extends OrbitComponent {\r\n\r\n private _renderTitle() {\r\n if(!this.props.title) {\r\n return null;\r\n }\r\n\r\n return (\r\n {this.props.title}\r\n );\r\n }\r\n\r\n private _renderCloseButton() {\r\n if(this.props.hideCloseButton) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _renderExtraButtons() {\r\n if(this.props.renderExtraButtons) {\r\n return this.props.renderExtraButtons();\r\n }\r\n return null;\r\n }\r\n\r\n private _renderButtons() {\r\n if(this.props.hideCloseButton && !this.props.renderExtraButtons) {\r\n return null;\r\n }\r\n return (\r\n \r\n {this._renderExtraButtons()}\r\n {this._renderCloseButton()}\r\n \r\n )\r\n\r\n }\r\n\r\n private _renderContent() {\r\n if (this.props.children) {\r\n return this.props.children\r\n }\r\n\r\n return (\r\n <>\r\n {this._renderTitle()}\r\n {this._renderButtons()}\r\n \r\n );\r\n }\r\n\r\n render() {\r\n if(!this.props.title && this.props.hideCloseButton && !this.props.children) {\r\n return null;\r\n }\r\n\r\n let height: number | null = null;\r\n if(this.services.miniOrbit.isEnabled) {\r\n height = this.services.header.headerHeight;\r\n }\r\n\r\n return (\r\n \r\n {this._renderContent()}\r\n \r\n )\r\n }\r\n\r\n}","import React from 'react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {GameInfo} from '../../../../services/games/game-info';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {observer} from 'mobx-react';\r\nimport {IModalDialogHandler} from '../../../../services/dialog/dialog.service.interface';\r\nimport {GameInfoButtonBox} from './boxes/game-info-button/game-info-button.box';\r\nimport {DialogTitleBox} from '../../../modal-dialog/boxes/title/dialog-title.box';\r\nimport {DialogCloseButtonBox} from '../../../modal-dialog/boxes/close-button/dialog-close-button.box';\r\nimport {Image} from '../../../raw-components/image/image';\r\nimport {DialogHeaderComponent} from '../../../modal-dialog/parts/header/dialog-header.component';\r\n\r\nexport interface MobileGamePreviewTitleComponentProps {\r\n gameInfo: GameInfo;\r\n arenaName?: string;\r\n dialogHandler: IModalDialogHandler;\r\n}\r\n\r\n@observer\r\nexport class TitleComponent extends OrbitComponent {\r\n\r\n _openGameInfo = () => {\r\n const gameInfo = this.props.gameInfo;\r\n this._closeInfoMobile();\r\n\r\n if (this.props.arenaName) {\r\n //TODO: Do we need it?\r\n this.services.analytics.sendAnalytics(this.props.arenaName, \"Open_Game_Info\", `SEO_${gameInfo.gameType}`);\r\n }\r\n\r\n this.services.location.push(gameInfo.infoPageURL);\r\n };\r\n\r\n _closeInfoMobile = () => {\r\n this.props.dialogHandler?.close();\r\n };\r\n\r\n private _renderOpenInfoButton(gameInfo: GameInfo) {\r\n\r\n if (Check.isEmpty(gameInfo.infoPageURL) || this.services.miniOrbit.isEnabled) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n render() {\r\n let gameInfo = this.props.gameInfo;\r\n return (\r\n \r\n {gameInfo.title}\r\n {this._renderOpenInfoButton(gameInfo)}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n\r\n","import styled from 'styled-components';\r\nimport {styledByDevice} from '../../../../../../../themes/architecture/styled-by-device';\r\nimport { Image } from '../../../../../../raw-components/image/image';\r\n\r\n\r\n//.info-image-wrapper + info-image\r\n\r\nconst DefaultBox = styled(Image)`\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n margin-bottom: 1.1rem;\r\n`;\r\n\r\nconst PcBox = styled(DefaultBox)`\r\n width: 375px;\r\n height: 121px;\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n width: 285px;\r\n height: 92px;\r\n }\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n opacity: 0.7;\r\n`;\r\n\r\nexport const StripeImageDefaultBox = styledByDevice(PcBox, MobileBox);","import {StripeImageDefaultBox} from './stripe-image.default.box';\r\n\r\nexport const StripeImageBox = StripeImageDefaultBox;","import React from 'react';\r\nimport {OrbitComponent} from '../../../../base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\nimport {GameInfo} from '../../../../../services/games/game-info';\r\nimport {StripeImageBox} from './boxes/stripe-image/stripe-image.box';\r\n\r\nexport interface GameImagePreviewComponentProps {\r\n gameInfo: GameInfo;\r\n}\r\n\r\n@observer\r\nexport class GameStripeImageComponent extends OrbitComponent {\r\n\r\n render() {\r\n let gameInfo = this.props.gameInfo;\r\n let imageSrc = gameInfo.stripImage ? gameInfo.stripImage : gameInfo.stripeImageFallback;\r\n // I noticed that sometimes react doesn't re render this component even if a different gameInfo is provided.\r\n // Setting key={gameInfo.gameType} seems to overcome this issue\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\n","import {TrailerDefaultBox} from './trailer.default.box';\r\n\r\nexport const TrailerBox = TrailerDefaultBox;","import styled from 'styled-components';\r\n\r\n//.info-video-wrapper + info-movie\r\nexport const TrailerDefaultBox = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n margin-bottom: 1.1rem;\r\n`;","import React from 'react';\r\nimport {OrbitComponent} from '../../../../base-components/orbit-component/orbit-component';\r\nimport {GameStripeImageComponent} from '../stripe-image/game-stripe-image.component';\r\nimport {observer} from 'mobx-react';\r\nimport {GameInfo} from '../../../../../services/games/game-info';\r\nimport {TrailerBox} from './boxes/trailer/trailer.box';\r\n\r\nexport interface GameTrailerPreviewComponentProps {\r\n gameInfo: GameInfo;\r\n}\r\n@observer\r\nexport class GameTrailerComponent extends OrbitComponent {\r\n\r\n render() {\r\n let gameInfo = this.props.gameInfo;\r\n\r\n //we used here key={gameInfo.gameType} to make react re render the component when a different gameInfo is provided\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import * as React from 'react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {GameStripeImageComponent} from './stripe-image/game-stripe-image.component';\r\nimport {GameTrailerComponent} from './trailer/game-trailer.component';\r\nimport {observer} from 'mobx-react';\r\nimport {GameInfo} from '../../../../services/games/game-info';\r\n\r\nexport interface GameImageContainerComponentProps {\r\n gameInfo: GameInfo;\r\n}\r\n\r\n@observer\r\nexport class TrailerOrStripeImageComponent extends OrbitComponent {\r\n render() {\r\n if (this.props.gameInfo.hasVideoTrailer) {\r\n return (\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n );\r\n }\r\n }\r\n}\r\n","import styled from 'styled-components';\r\n\r\n//check-div\r\nexport const CellValueBoolDefaultBox = styled.div`\r\n width: 13px;\r\n height: 13px;\r\n float: right;\r\n background-image: url(\"${props => props.theme.images.checkMark.toString()}\");\r\n background-repeat: no-repeat;\r\n`;","export enum GAMES_CATEGORIES {\r\n SLOTS = 'slots',\r\n CARD_AND_TABLE = 'card-and-table',\r\n LIVE = 'live'\r\n};\r\n","import {CellValueBoolDefaultBox} from './cell-value-bool.default.box';\r\n\r\nexport const CellValueBoolBox = CellValueBoolDefaultBox;","import styled from 'styled-components';\r\n\r\n//game-info-text\r\nexport const CellValueTextDefaultBox = styled.span`\r\n color: ${props => props.theme.colors.brandSecondary};\r\n ${({theme}) => theme.font.presets.bold};\r\n`;","import styled from 'styled-components';\r\nimport {CellValueTextDefaultBox} from './cell-value-text.default.box';\r\n\r\nexport const CellValueTextCasino777Box = styled(CellValueTextDefaultBox)`\r\n color: ${props => props.theme.colors.dangerDark};\r\n`;","import {CellValueTextDefaultBox} from './cell-value-text.default.box';\r\nimport {CellValueTextCasino777Box} from './cell-value-text.casino777.box';\r\nimport {styledByTheme} from '../../../../../../../../themes/architecture/styled-by-theme';\r\n\r\nexport const CellValueTextBox = styledByTheme(CellValueTextDefaultBox).forCasino777(CellValueTextCasino777Box).apply();","import {CellTitleDefaultBox} from './cell-title.default.box';\r\n\r\nexport const CellTitleBox = CellTitleDefaultBox;","import styled from 'styled-components';\r\n\r\nexport const CellTitleDefaultBox = styled.span`\r\n color: ${props => props.theme.colors.textLight};\r\n ${({theme}) => theme.font.presets.body};\r\n`;","import React from 'react';\r\nimport {OrbitComponent} from '../../../../../base-components/orbit-component/orbit-component';\r\nimport {PreviewFeatureType} from '../../../../../../services/game-preview-features-selector/preview-features/game-preview-feature.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {CellValueBoolBox} from './boxes/cell-value-bool/cell-value-bool.box';\r\nimport {CellValueTextBox} from './boxes/cell-value-text/cell-value-text.box';\r\nimport {CellTitleBox} from './boxes/cell-title/cell-title.box';\r\n\r\nexport interface GameFeaturePreviewCellComponentProps{\r\n title: string;\r\n type: PreviewFeatureType,\r\n value: any\r\n}\r\n\r\nexport class GameFeatureCellComponent extends OrbitComponent {\r\n\r\n private _renderNoInfo() {\r\n return (-);\r\n }\r\n private _renderCheckbox() {\r\n if(this.props.value) {\r\n return ();\r\n }\r\n\r\n return this._renderNoInfo();\r\n }\r\n\r\n private _renderDescription() {\r\n if(Check.isEmpty(this.props.value)) {\r\n return this._renderNoInfo();\r\n }\r\n\r\n return ({this.props.value});\r\n }\r\n\r\n\r\n private _renderValue() {\r\n if(this.props.type === PreviewFeatureType.check) {\r\n return this._renderCheckbox();\r\n }\r\n\r\n return this._renderDescription();\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this.props.title}\r\n {this._renderValue()}\r\n \r\n );\r\n\r\n }\r\n}\r\n","import styled from 'styled-components';\r\n\r\n//game-info game-preview\r\n\r\nexport const TableContainerDefaultBox = styled.table`\r\n padding: 0 8px;\r\n border-radius: 5px;\r\n background-color: ${props => props.theme.colors.backgroundLight};\r\n color: ${props => props.theme.colors.textLight};\r\n & tbody {\r\n border: none;\r\n background: transparent;\r\n }\r\n\r\n & td {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 50%;\r\n padding: 0;\r\n padding-right: 15px;\r\n height: 3.5rem;\r\n\r\n border-bottom: 1px solid ${props => props.theme.colors.boxBorder};\r\n border-top: 1px solid ${props => props.theme.colors.boxBorderLight};\r\n }\r\n\r\n & tr {\r\n display: flex;\r\n background-color: transparent;\r\n height: 30px;\r\n &:first-child {\r\n td {\r\n border-top: none;\r\n }\r\n }\r\n &:last-child {\r\n td {\r\n border-bottom: none;\r\n }\r\n }\r\n }\r\n`;","import styled from 'styled-components';\r\nimport {TableContainerDefaultBox} from './table-container.default.box';\r\nimport {hexToRgba} from '../../../../../../../../themes/hex-to-rgba';\r\n\r\nexport const TableContainerBoxCasino777Box = styled(TableContainerDefaultBox)`\r\n font-size: 1.6rem;\r\n font-weight: 400;\r\n \r\n & td { \r\n border-bottom: 1px solid ${props => hexToRgba(props.theme.colors.brandSecondaryDark, 0.5)};\r\n height:4rem;\r\n }\r\n`;","import {TableContainerDefaultBox} from './table-container.default.box';\r\nimport {TableContainerBoxCasino777Box} from './table-container.casino777.box';\r\nimport {styledByTheme} from '../../../../../../../../themes/architecture/styled-by-theme';\r\n\r\nexport const TableContainerBox = styledByTheme(TableContainerDefaultBox).forCasino777(TableContainerBoxCasino777Box).apply();","import React from 'react';\r\nimport {OrbitComponent} from '../../../../../base-components/orbit-component/orbit-component';\r\nimport {PreviewFeatureEvaluationResult} from '../../../../../../services/game-preview-features-selector/preview-features/game-preview-feature.interface';\r\nimport {splitArrayToChunks} from '../../../../../../../utils/array-helper';\r\nimport {GameFeatureCellComponent} from '../cell/game-feature-cell.component';\r\nimport {TableContainerBox} from './boxes/table-container/table-container.box';\r\n\r\n\r\nexport interface GameFeaturesPreviewTableComponentProps {\r\n features: PreviewFeatureEvaluationResult[]\r\n}\r\n\r\nexport class GameFeaturesTableComponent extends OrbitComponent {\r\n\r\n private _renderGameInfoTableRow(cells: PreviewFeatureEvaluationResult[]) {\r\n let key = cells.reduce((acc, curr) => curr.title + '_' + acc, '');\r\n return (\r\n \r\n {cells.map(cell => ())}\r\n \r\n );\r\n }\r\n\r\n render() {\r\n if(this.props.features.length === 0) {\r\n return null;\r\n }\r\n\r\n let chunks = splitArrayToChunks(this.props.features, 2);\r\n\r\n return (\r\n \r\n \r\n {chunks.map(chunk => this._renderGameInfoTableRow(chunk))}\r\n \r\n \r\n );\r\n }\r\n}\r\n","import {GameDescriptionDefaultTextBox} from './game-description-text.default.box';\r\n\r\nexport const GameDescriptionTextBox = GameDescriptionDefaultTextBox;","import styled from 'styled-components';\r\n\r\n\r\nexport const GameDescriptionDefaultTextBox = styled.div`\r\n font-size: 1.4rem;\r\n ${({theme}) => theme.font.presets.regular};\r\n color: ${props => props.theme.colors.text};\r\n font-weight: 300;\r\n line-height: normal;\r\n padding: 0 1rem 2rem;\r\n`;","import styled from 'styled-components';\r\nimport { flexAdaptiveSizeItem } from '../../themes/architecture/css-helpers/flex';\r\nimport { styledByDevice } from '../../themes/architecture/styled-by-device';\r\n\r\n\r\n\r\nconst DefaultBox = styled.h2`\r\n position: relative;\r\n min-width: 28rem;\r\n max-width: 82.5%;\r\n text-transform: uppercase;\r\n padding: 1rem 2rem;\r\n font-size: 1.5rem;\r\n line-height: normal;\r\n margin: 0;\r\n background: ${props => props.theme.components.generalTitle.colors.background};\r\n border-left: 3px solid ${props => props.theme.colors.brandPrimary};\r\n color: ${props => props.theme.colors.brandPrimary};\r\n ${({theme}) => theme.font.presets.bold};\r\n`;\r\n\r\nexport const PcBox = styled(DefaultBox)`\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n padding: .9rem 2rem;\r\n }\r\n`;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\r\n min-width: 65%;\r\n max-width: 100%;\r\n padding: .8rem 2rem;\r\n font-size: 1.2rem;\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n ${flexAdaptiveSizeItem}\r\n min-width: 0;\r\n }\r\n`;\r\n\r\n\r\n\r\nexport const GeneralTitleDefaultBox = styledByDevice(PcBox, MobileBox);\r\n\r\n","import styled from 'styled-components';\r\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\nimport {GeneralTitleDefaultBox} from '../../../../../basic-components/general-title/general-title.default.box';\r\n\r\n//.general-title\r\nexport const DefaultBox = styled(GeneralTitleDefaultBox)`\r\n color: ${props => props.theme.colors.textLight};\r\n border-left: 2px solid ${props => props.theme.colors.textLight};\r\n ${({theme}) => theme.font.presets.bold};\r\n\r\n margin: 0;\r\n margin-bottom: 10px;\r\n`;\r\n\r\n\r\n\r\nexport const PcBox = styled(DefaultBox)`\r\n font-size: 1.2rem;\r\n padding-left: 0.8rem;\r\n`;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\r\n font-size: 1.4rem;\r\n padding-left: 2rem;\r\n`;\r\n\r\nexport const SectionTitleDefaultBox = styledByDevice(PcBox, MobileBox);","import styled, { css } from 'styled-components';\r\nimport { PcBox as BasePcBox, MobileBox as BaseMobileBox } from './general-title.default.box';\r\nimport { CssRule } from '../../themes/architecture/css-helpers/css-rule';\r\nimport { styledByDevice } from '../../themes/architecture/styled-by-device';\r\n\r\nconst common = css`\r\n ${({theme}) => theme.font.presets.secondary};\r\n padding-left:4.5rem;\r\n text-transform: capitalize;\r\n padding-top:.6rem;\r\n padding-bottom:.6rem;\r\n font-size:2rem;\r\n font-weight: 300;\r\n border-left: none;\r\n z-index:0;\r\n clip-path: polygon(0 0, 10px 50%, 0 100%, 100% 100%, 100% 0);\r\n ${CssRule.For.RTL.build()} & {\r\n clip-path: polygon(0 0, 0 100%, 100% 100%, calc(100% - 10px) 50%, 100% 0);\r\n }\r\n &:before {\r\n content: \"\";\r\n position: absolute;\r\n background-image: url(\"${({theme}) => theme.images.spriteSheet.toString()}\");\r\n height: 20px;\r\n width: 20px;\r\n top: 10px;\r\n left: 16px;\r\n background-position: -176px -766px;\r\n background-repeat: no-repeat;\r\n z-index:-1;\r\n ${CssRule.For.RTL.build()} & {\r\n transform: scaleX(-1);\r\n }\r\n }\r\n`;\r\n\r\nconst PcBox = styled(BasePcBox)`\r\n ${common}\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n padding: 1rem 5.5rem;\r\n font-size:2rem;\r\n }\r\n`;\r\n\r\nconst MobileBox = styled(BaseMobileBox)`\r\n ${common}\r\n padding: .5rem 4rem;\r\n font-size: 1.6rem;\r\n &:before{\r\n background-position: -176px -819px;\r\n }\r\n`;\r\n\r\nexport const GeneralTitleCasino777Box = styledByDevice(PcBox, MobileBox);\r\n","import styled from 'styled-components';\r\nimport {GeneralTitleCasino777Box} from '../../../../../basic-components/general-title/general-title.casino777.box';\r\n\r\n\r\nexport const SectionTitleCasino777Box = styled(GeneralTitleCasino777Box)`\r\n ${({theme}) => theme.font.presets.bold};\r\n color: ${props => props.theme.colors.textLight};\r\n text-transform: uppercase;\r\n font-size: 1.6rem;\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-position: -155px -861px;\r\n height: 40px;\r\n &:before{\r\n content: none;\r\n }\r\n`;","import {SectionTitleDefaultBox} from './section-title.default.box';\r\nimport {styledByTheme} from '../../../../../themes/architecture/styled-by-theme';\r\nimport {SectionTitleCasino777Box} from './section-title.casino777.box';\r\n\r\nexport const SectionTitleBox = styledByTheme(SectionTitleDefaultBox).forCasino777(SectionTitleCasino777Box).apply();","import React from 'react';\r\nimport {OrbitComponent} from '../../../../base-components/orbit-component/orbit-component';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {GameDescriptionTextBox} from './boxes/game-description-text/game-description-text.box';\r\nimport {SectionTitleBox} from '../../boxes/section-title/section-title.box';\r\n\r\nexport interface GameAboutTextComponentProps {\r\n aboutText: string\r\n}\r\n\r\nexport class GameAboutComponent extends OrbitComponent {\r\n render() {\r\n if(Check.isEmpty(this.props.aboutText)) {\r\n return null;\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {this.services.translation.translate('ABOUT')}\r\n \r\n \r\n {this.props.aboutText}\r\n \r\n \r\n );\r\n }\r\n}\r\n","import {GameJackpotPreviewDefaultBox} from './game-jackpot-preview.default.box';\r\n\r\nexport const GameJackpotPreviewBox = GameJackpotPreviewDefaultBox;","import styled from 'styled-components';\r\n\r\n//game-info-jackpot game-preview\r\nexport const GameJackpotPreviewDefaultBox = styled.div`\r\n width: 100%;\r\n`;","import styled from 'styled-components';\r\nimport {GameJackpotComponent} from \"../../../../../../game-jackpot/game-jackpot.component\";\r\n\r\n//game-info-amount game-info-text\r\nexport const JackpotAmountPreviewDefaultBox = styled(GameJackpotComponent)`\r\n ${({theme}) => theme.font.presets.bold};\r\n font-size: 2.4rem;\r\n font-weight: 800;\r\n text-align: inherit;\r\n margin-top: -4px;\r\n margin-bottom: 5px;\r\n padding: 0 1.5rem;\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n font-size: 2.2rem;\r\n }\r\n`;","import styled from 'styled-components';\r\nimport {JackpotAmountPreviewDefaultBox} from './jackpot-amount-preview.default.box';\r\nimport {baseColors} from '../../../../../../../themes/definitions/casino777/base-colors';\r\n\r\nexport const JackpotAmountPreviewCasino777Box = styled(JackpotAmountPreviewDefaultBox)`\r\n text-shadow: 3px 3px 0 ${props => props.theme.colors.textLight}, 0 0 0 ${props => props.theme.colors.textLight}, 1px 1px 0 ${props => props.theme.colors.textLight}, 2px 2px 0 ${props => props.theme.colors.textLight}, 0 0 0 ${props => props.theme.colors.textLight};\r\n color: ${baseColors.base04Dark};\r\n -webkit-text-stroke-width: .5px;\r\n -webkit-text-stroke-color: ${props => props.theme.colors.textLight};\r\n`;\r\n","import {JackpotAmountPreviewDefaultBox} from './jackpot-amount-preview.default.box';\r\nimport {JackpotAmountPreviewCasino777Box} from './jackpot-amount-preview.casino777.box';\r\nimport {styledByTheme} from '../../../../../../../themes/architecture/styled-by-theme';\r\n\r\nexport const JackpotAmountPreviewBox = styledByTheme(JackpotAmountPreviewDefaultBox).forCasino777(JackpotAmountPreviewCasino777Box).apply();","import React from 'react';\r\nimport {OrbitComponent} from '../../../../base-components/orbit-component/orbit-component';\r\nimport {SectionTitleBox} from '../../boxes/section-title/section-title.box';\r\nimport {GameJackpotPreviewBox} from './boxes/game-jackpot-preview/game-jackpot-preview.box';\r\nimport {JackpotAmountPreviewBox} from './boxes/jackpot-amount-preview/jackpot-amount-preview.box';\r\n\r\nexport interface GameJackpotPreviewComponentProps {\r\n gameType: number;\r\n}\r\n\r\nexport class GameJackpotPreviewComponent extends OrbitComponent {\r\n\r\n render() {\r\n //className={'game-info-jackpot game-preview'}\r\n return (\r\n \r\n \r\n {this.services.translation.translate('GAME_JACKPOT')}\r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\n","import styled from 'styled-components';\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\n\r\nconst DefaultBox = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n width: 100%;\r\n`;\r\n\r\nconst PcBox = DefaultBox;\r\nconst MobileBox = styled(DefaultBox)`\r\n padding: 0 10px 20px;\r\n`;\r\n\r\nexport const GamePreviewInfoContainerDefaultBox = styledByDevice(PcBox, MobileBox);","import {GamePreviewInfoContainerDefaultBox} from './game-preview-info-container.default.box';\r\n\r\nexport const GamePreviewInfoContainerBox = GamePreviewInfoContainerDefaultBox;","import React from 'react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {GameFeaturesTableComponent} from './features/table/game-features-table.component';\r\nimport {GameAboutComponent} from './about/game-about.component';\r\nimport {GameJackpotPreviewComponent} from './jackpot/game-jackpot-preview.component';\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {GameInfo} from '../../../../services/games/game-info';\r\nimport {GamePreviewInfoContainerBox} from './game-preview-info-container.box';\r\n//import {RelatedGamesComponent} from './related-games/related-games.component';\r\n\r\nexport interface GameInfoWrapperComponentProps {\r\n gameInfo: GameInfo;\r\n gameTitleComponent: React.ReactNode | null;\r\n}\r\nexport class GamePreviewInfoContainerComponent extends OrbitComponent {\r\n\r\n private _renderJackpotPreview(gameInfo: GameInfo) {\r\n\r\n if(!gameInfo.hasJackpot){\r\n return null;\r\n }\r\n\r\n let generalSettings = this.services.configuration.data.generalSettings;\r\n\r\n let shouldRenderJackpotPreview = generalSettings?.gamesPreviewConfig?.shouldDisplayJackpot;\r\n\r\n if (Check.isNullOrUndefined(shouldRenderJackpotPreview) || shouldRenderJackpotPreview)\r\n {\r\n return ;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n render() {\r\n let gameInfo = this.props.gameInfo;\r\n\r\n return (\r\n \r\n {this.props.gameTitleComponent}\r\n \r\n \r\n {this._renderJackpotPreview(gameInfo)}\r\n {/**/}\r\n \r\n );\r\n }\r\n}\r\n\r\n","import {ContainerDefaultBox} from './container.default.box';\r\n\r\nexport const ContainerBox = ContainerDefaultBox;\r\n\r\n","import styled from 'styled-components';\r\n\r\n\r\n/**\r\n ContainerDefaultBox is placed over TrailerOrStripeImageComponent using position absolute.\r\n We do this because TrailerOrStripeImageComponent has opacity 0.5\r\n and we can't put ContainerDefaultBox inside TrailerOrStripeImageComponent because will inherit that opacity\r\n */\r\n\r\n\r\nexport const ContainerDefaultBox = styled.div`\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: center;\r\n width: 100%;\r\n height: 100%;\r\n`;\r\n","import {GameIconDefaultBox} from './game-icon.default.box';\r\n\r\nexport const GameIconBox = GameIconDefaultBox;","import styled from 'styled-components';\r\nimport { Image } from '../../components/raw-components/image/image';\r\n\r\n//game-info-icon\r\nexport const GameIconDefaultBox = styled(Image)`\r\n display: block;\r\n background-size: 100%;\r\n background-image: url(\"${props => props.theme.images.singleGame.defaultBackgroundImage.toString()}\");\r\n background-repeat: no-repeat;\r\n`;\r\n\r\n","import {PlayButtonsDefaultBox} from './play-buttons.default.box';\r\n\r\nexport const PlayButtonsBox = PlayButtonsDefaultBox;","import styled from 'styled-components';\r\n\r\n\r\nexport const PlayButtonsDefaultBox = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-end;\r\n justify-content: center;\r\n width: 100%;\r\n height: 100%;\r\n margin-right: 10px;\r\n margin-left: 10px;\r\n`;\r\n","import {GameIconWrapperDefaultBox} from './game-icon-wrapper.default.box';\r\n\r\nexport const GameIconWrapperBox = GameIconWrapperDefaultBox;","import styled from 'styled-components';\r\n\r\nexport const GameIconWrapperDefaultBox = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n height: 100%;\r\n\r\n @media ${({theme}) => theme.mediaQuery.xs} {\r\n padding-left: 15px;\r\n width: 80%;\r\n }\r\n`;","import React from 'react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {GameInfo, OpenGameParameters} from '../../../../services/games/game-info';\r\nimport {observer} from 'mobx-react';\r\nimport {IModalDialogHandler} from '../../../../services/dialog/dialog.service.interface';\r\nimport {ContainerBox} from './boxes/container/container.box';\r\nimport {GameIconBox} from '../../../../basic-components/game-icon/game-icon.box';\r\nimport {PlayButtonsBox} from '../../../../basic-components/play-buttons/play-buttons.box';\r\nimport {GameIconWrapperBox} from '../../../../basic-components/game-icon-wrapper/game-icon-wrapper.box';\r\nimport {CyClass} from '../../../../../common/cy-classes';\r\nimport {Button} from '../../../../basic-ui-components/button/base/button.component';\r\n\r\nexport interface MobileDemoAndPlayComponentProps {\r\n gameInfo: GameInfo;\r\n openGameParams: OpenGameParameters;\r\n dialogHandler: IModalDialogHandler;\r\n}\r\n\r\n@observer\r\nexport class GameIconAndPlayButtonsComponent extends OrbitComponent {\r\n\r\n private _openRealGame = () => {\r\n this.props.dialogHandler.close();\r\n this.props.gameInfo.open({...this.props.openGameParams, isRealMode: true});\r\n };\r\n\r\n private _openDemoGame = () => {\r\n this.props.dialogHandler.close();\r\n this.props.gameInfo.open({...this.props.openGameParams, isRealMode: false});\r\n };\r\n\r\n private _renderDemoButton(gameInfo: GameInfo) {\r\n if (!gameInfo.allowDemoButtonInIntermediatePage) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n { this.services.translation.translate('DEMO') }\r\n \r\n );\r\n }\r\n\r\n render() {\r\n if (!this.services.device.isMobile) {\r\n return null;\r\n }\r\n\r\n const gameInfo = this.props.gameInfo;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.services.translation.translate('PLAY')}\r\n \r\n
\r\n {this._renderDemoButton(gameInfo)}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import {IntermediatePageDefaultBox} from './intermediate-page.default.box';\r\n\r\nexport const IntermediatePageBox = IntermediatePageDefaultBox;","import styled from 'styled-components';\r\nimport { CssRule } from '../../../../../themes/architecture/css-helpers/css-rule';\r\n\r\nexport const IntermediatePageDefaultBox = styled.div`\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n background-image: url(${props => props.theme.images.texture.toString()}); \r\n ${CssRule.For.mobile.tablet.build()} & {\r\n max-width: 54rem;\r\n height: auto;\r\n }\r\n \r\n`;\r\n\r\n","import {StripeImageAndButtonsDefaultBox} from './stripe-image-and-buttons.default.box';\r\n\r\nexport const StripeImageAndButtonsBox = StripeImageAndButtonsDefaultBox;","import styled from 'styled-components';\r\n\r\nexport const StripeImageAndButtonsDefaultBox = styled.div`\r\n position: relative;\r\n width: 100%;\r\n height: 220px;\r\n margin-bottom: 0.5rem;\r\n`;","import styled from 'styled-components';\r\n/**\r\n GradientBox is placed over TrailerOrStripeImageComponent using position absolute.\r\n We do this because TrailerOrStripeImageComponent has opacity 0.5\r\n and we can't put GradientBox inside TrailerOrStripeImageComponent because will inherit that opacity\r\n */\r\nexport const GradientDefaultBox = styled.div`\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background: linear-gradient(to bottom, transparent 46%, ${props => props.theme.colors.background} 100%); \r\n`;","import styled from \"styled-components\";\r\nimport {GradientDefaultBox} from \"./gradient.default.box\";\r\nimport {hexToRgba} from \"../../../../../themes/hex-to-rgba\";\r\n\r\nexport const GradientCasino777Box = styled(GradientDefaultBox)`\r\n background: linear-gradient(to bottom, ${props => hexToRgba(props.theme.colors.backgroundContrast, 0.3)}, ${props => hexToRgba(props.theme.colors.background, 0.6)});\r\n`","import {GradientDefaultBox} from './gradient.default.box';\r\nimport {styledByTheme} from \"../../../../../themes/architecture/styled-by-theme\";\r\nimport {GradientCasino777Box} from \"./gradient.casino777.box\";\r\n\r\nexport const GradientBox = styledByTheme(GradientDefaultBox).forCasino777(GradientCasino777Box).apply();","import {WarningImageDefaultBox} from \"./warning-image.default.box\";\r\n\r\nexport const WarningImageBox = WarningImageDefaultBox;","import styled from \"styled-components\";\r\nimport { Image } from \"../../../../../raw-components/image/image\";\r\n\r\nexport const WarningImageDefaultBox = styled(Image)`\r\n margin: 10px 5px 5px 15px;\r\n`;","import {WarningTextDefaultBox} from \"./warning-text.default.box\";\r\n\r\nexport const WarningTextBox = WarningTextDefaultBox;","import styled from \"styled-components\";\r\n\r\nexport const WarningTextDefaultBox = styled.span`\r\n font-size: 1.2rem;\r\n width: calc(100% - 50px);\r\n display: inline-block;\r\n position: absolute;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n`;\r\n","import {WarningMessageDefaultBox} from \"./warning-message.default.box\";\r\n\r\nexport const WarningMessageBox = WarningMessageDefaultBox;","import styled from \"styled-components\";\r\n\r\nexport const WarningMessageDefaultBox = styled.div`\r\n position: relative;\r\n height: 40px;\r\n background-color: black;\r\n`;","import React from 'react';\r\nimport {OrbitComponent} from \"../../../base-components/orbit-component/orbit-component\";\r\nimport {WarningImageBox} from \"./boxes/warning-image/warning-image.box\";\r\nimport {WarningTextBox} from \"./boxes/warning-text/warning-text.box\";\r\nimport {WarningMessageBox} from \"./boxes/warning-message/warning-message.box\";\r\n\r\nexport class RealMoneyOnlyWarningComponent extends OrbitComponent<{}>{\r\n render() {\r\n return(\r\n \r\n \r\n {this.services.translation.translate('REAL_MONEY_GAME')}\r\n \r\n );\r\n }\r\n}","import React from 'react';\r\nimport {OrbitComponent} from '../../base-components/orbit-component/orbit-component';\r\nimport {GameInfo, OpenGameParameters} from '../../../services/games/game-info';\r\nimport {TitleComponent} from './title/title.component';\r\nimport {TrailerOrStripeImageComponent} from '../common/trailer-or-stripe-image/trailer-or-stripe-image.component';\r\nimport {GamePreviewInfoContainerComponent} from '../common/game-info-container/game-preview-info-container.component';\r\nimport {observer} from 'mobx-react';\r\nimport {IModalDialogHandler} from '../../../services/dialog/dialog.service.interface';\r\nimport {GameIconAndPlayButtonsComponent} from './game-icon-and-play-buttons/game-icon-and-play-buttons.component';\r\nimport {IntermediatePageBox} from './boxes/intermediate-page/intermediate-page.box';\r\nimport {StripeImageAndButtonsBox} from './boxes/stripe-image-and-buttons/stripe-image-and-buttons.box';\r\nimport {GradientBox} from './boxes/gradient/gradient.box';\r\nimport {RealMoneyOnlyWarningComponent} from \"./only-real-money-warning/only-real-money-warning.component\";\r\n\r\nexport interface OpenGameIntermediatePageComponentProps {\r\n gameInfo: GameInfo;\r\n openGameParams: OpenGameParameters;\r\n dialogHandler: IModalDialogHandler;\r\n}\r\n\r\n\r\n@observer\r\nexport class OpenGameIntermediatePageComponent extends OrbitComponent {\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n this.reaction(() => this.services.device.isMobile,\r\n (isMobile) => {\r\n if(!isMobile) { // this is for when you switch from mobile to PC in the emulator or when you resize de browser window\r\n this.props.dialogHandler.close();\r\n }\r\n });\r\n }\r\n\r\n _renderOnlyRealMoneyWarning() {\r\n return this.props.gameInfo.allowWithdrawOnlyFromReal ? () : null;\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n {this._renderOnlyRealMoneyWarning()}\r\n \r\n \r\n {/*GameIconAndPlayButtonsComponent and GradientBox uses position absolute to place itself over the TrailerOrStripeImageComponent because TrailerOrStripeImageComponent box has opacity 0.5 */}\r\n \r\n \r\n \r\n \r\n \r\n\r\n );\r\n }\r\n}","import {IGameRestriction} from \"./game-restriction.interface\";\r\n\r\nexport class NoGameRestriction implements IGameRestriction {\r\n isGameAllowedToPlayReal(): boolean {\r\n return true;\r\n }\r\n\r\n showUserMessage(): void {\r\n\r\n }\r\n\r\n}","import {computed} from 'mobx';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {OpenGameOptions} from '../sdk/sdk.service.interface';\r\nimport {IRunningGameHandler} from './running-game-handler.interface';\r\nimport {MarketingParams} from \"../../../common/interfaces/marketing-params.interface\";\r\nimport {\r\n OpenGameIntermediatePageComponent\r\n} from \"../../components/lobby-game-info-preview/intermediate-page/open-game-intermediate-page.component\";\r\nimport React from \"react\";\r\nimport {GameIconAnimationState} from '../../components/single-game/common/parts/game-image/game-image.component';\r\nimport {\r\n IRunningGameControllerViewModel\r\n} from \"../game-runner/interfaces/game-controller/running-game-controller.interface\";\r\nimport {GameModeEnum} from \"../game-runner/interfaces/game-context/game-context-view-model.interface\";\r\nimport {IOpenFreePlayGameParams} from \"../game-runner/game-runner.service.interface\";\r\nimport {IGameRestriction} from \"../restrictions/game-restriction.interface\";\r\nimport {NoGameRestriction} from \"../restrictions/no-game-restriction\";\r\nimport {GAME_GROUP} from \"../../../common/const/game_groups_consts\";\r\nimport {NullableNumber, NullableString} from \"../../../common/types/nullable-types\";\r\nimport {GAMES_CATEGORIES} from \"./games-categories.enum\";\r\nimport {IGameInfo} from '../../../common/const/game-info.interface';\r\nimport {GAME_VOLATILITY} from '../../../sdk/src/services/games_information/games_information_service_interface';\r\n\r\nexport interface OpenGameParameters {\r\n isRealMode: boolean;\r\n pageName?: string;\r\n listTitle?: string;\r\n listPosition?: number;\r\n AdminListID?: number;\r\n marketingParams?: MarketingParams;\r\n gameIndex?: number;\r\n aiEngine?: string;\r\n aiSortingType?: string;\r\n AIListTypeID?: number;\r\n openFromDrawer?:boolean;\r\n showIntermediatePage?: boolean;\r\n isCalledFromIntermediatePage?: boolean;\r\n animatedIconState?: GameIconAnimationState;\r\n freePlayParams?: IOpenFreePlayGameParams;\r\n skipFreePlaySuggestion?: boolean;\r\n referrerId?: NullableNumber;\r\n}\r\n\r\n\r\n\r\nexport function gameInfoComparerByTitle(game1: GameInfo, game2: GameInfo): number {\r\n if(game1.title < game2.title) {\r\n return -1\r\n } else if(game1.title > game2.title) {\r\n return 1\r\n }\r\n\r\n return 0;\r\n}\r\n\r\n\r\nexport class GameInfo {\r\n constructor(private _rawGameData: IGameInfo,\r\n private services: IServiceFactoryExtended,\r\n private _aboutText: string) {\r\n\r\n Object.defineProperty(this._rawGameData, 'allowSwitchGameMode', {\r\n get: () => this.allowSwitchGameMode,\r\n configurable: true\r\n });\r\n }\r\n\r\n @computed\r\n private get _isMobile(): boolean {\r\n return this.services.device.isMobile;\r\n }\r\n\r\n @computed\r\n private get _isAuthorized(): boolean {\r\n return this.services.user.isAuthorized;\r\n }\r\n\r\n get gameType(): number {\r\n return this._rawGameData.gameType;\r\n }\r\n\r\n get title(): string {\r\n return this._rawGameData.title;\r\n }\r\n\r\n get numberOfLines(): number {\r\n return this._rawGameData.numberOfLines;\r\n }\r\n\r\n\r\n get hasJackpot(): boolean {\r\n return this._rawGameData.hasJackpot || false;\r\n }\r\n\r\n get isNewGame(): boolean {\r\n return this._hasCustomFilter('new');\r\n }\r\n\r\n get isExclusiveGame(): boolean {\r\n return this._hasCustomFilter('exclusive');\r\n }\r\n\r\n private _hasCustomFilter(filterName: string): boolean {\r\n if (!filterName) {\r\n return false;\r\n }\r\n\r\n if (!Check.isArray(this._rawGameData.filtersList)) {\r\n return false;\r\n }\r\n\r\n filterName = filterName.toLowerCase();\r\n\r\n return 0 <= this._rawGameData.filtersList.findIndex(filter => filter.toLowerCase() === filterName);\r\n\r\n }\r\n\r\n get hasBonusGames(): boolean {\r\n return this._rawGameData.hasBonusGames || false;\r\n }\r\n\r\n get numberOfDecks(): number {\r\n return this._rawGameData.numberOfDecks;\r\n }\r\n\r\n get isMultiHand(): boolean {\r\n return this._rawGameData.isMultiHand || false;\r\n }\r\n\r\n get hasFreeSpins(): boolean {\r\n return this._rawGameData.hasFreeSpins || false;\r\n }\r\n\r\n get subGroupName(): string {\r\n return this._rawGameData.subGroupName;\r\n }\r\n\r\n get isEliteLounge(): boolean {\r\n return this._rawGameData.isEliteLounge || false;\r\n }\r\n\r\n get hasSideBets(): boolean {\r\n return this._rawGameData.hasSideBets || false;\r\n }\r\n\r\n get maxBetPerSpot(): number {\r\n return this._rawGameData.maxBetPerSpot;\r\n }\r\n\r\n get allowWithdrawOnlyFromReal(): boolean {\r\n return this._rawGameData.allowWithdrawOnlyFromReal;\r\n }\r\n\r\n get hasLowStakes(): boolean {\r\n return this._hasCustomFilter('lowStakes');\r\n }\r\n\r\n get 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.services.gameRunner.shouldUseModernMode(this)) {\r\n return this._openInModernMode(params);\r\n } else {\r\n return await this._openInLegacyMode(params);\r\n }\r\n\r\n }\r\n\r\n private _shouldRedirectToMembership(params: OpenGameParameters): boolean {\r\n return params.isRealMode && params.isCalledFromIntermediatePage\r\n && !this.services.user.isAuthorized\r\n && (this.services.cmsSegmentation.isCstatus === false);\r\n }\r\n private async _openInModernMode(params: OpenGameParameters): Promise {\r\n\r\n if(this._showIntermediatePage(params)) {\r\n return;\r\n }\r\n\r\n if (this._shouldRedirectToMembership(params)) {\r\n this._openMembership();\r\n return {\r\n closeGame: () => {\r\n }\r\n };\r\n }\r\n\r\n this._sendOpenGameAnalytics(params);\r\n\r\n let gameController: IRunningGameControllerViewModel | null = null;\r\n if (params.isRealMode) {\r\n if(params.marketingParams) {\r\n this.services.sdk.eventsTrigger.updateMarketingParams(params.marketingParams);\r\n }\r\n gameController = await this.services.gameRunner.openGame({\r\n gameMode: GameModeEnum.Real,\r\n gameInfo: this,\r\n freePlayParams: params.freePlayParams,\r\n skipFreePlaySuggestion: params.skipFreePlaySuggestion,\r\n referrerId: params.referrerId\r\n });\r\n } else {\r\n gameController = await this.services.gameRunner.openGame({\r\n gameMode: GameModeEnum.Demo,\r\n gameInfo: this\r\n });\r\n }\r\n\r\n return {\r\n closeGame: async () => {\r\n await gameController?.closeGame({\r\n shouldSuggestNextGame: false\r\n })\r\n }\r\n }\r\n }\r\n\r\n //TODO - this should return a Promise\r\n private _showIntermediatePage(params: OpenGameParameters): boolean {\r\n if (this.shouldShowIntermediatePage && params.showIntermediatePage) {\r\n const dialogContentRenderer = ((dialogHandler) => );\r\n this.services.dialog.showModal(dialogContentRenderer, {hideCloseButton: true});\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private async _openInLegacyMode(params: OpenGameParameters): Promise {\r\n const openGameOptions: OpenGameOptions = {\r\n isReal: params.isRealMode,\r\n gameType: this.gameType,\r\n gameName: this.title,\r\n showRegister: !this.services.cmsSegmentation.isCisOrCip && this.services.configuration.data.generalSettings.showRegisterButton,\r\n freePlayData: params.freePlayParams ? {freePlayId: params.freePlayParams.freePlayId, freePlayType: params.freePlayParams.freePlayType} : undefined\r\n };\r\n\r\n if (this._showIntermediatePage(params)) {\r\n return;\r\n }\r\n\r\n if (this._shouldRedirectToMembership(params)) {\r\n this._openMembership();\r\n return;\r\n }\r\n\r\n openGameOptions.marketing = this.services.marketing.getMarketingData(params.marketingParams);\r\n this._sendOpenGameAnalytics(params);\r\n\r\n const gameHandler = await this.services.sdk.openGame(openGameOptions);\r\n\r\n return gameHandler;\r\n }\r\n\r\n private _openMembership() {\r\n this.services.analytics.sendAnalytics('Conversion', 'Play', 'PreGamePopUp');\r\n this.services.externalLinks.openLink({ source: 'membership' }, { dl: \"20614\" });\r\n }\r\n\r\n private _sendOpenGameAnalytics(params: OpenGameParameters): void {\r\n if (!params.pageName || !params.listTitle) {\r\n return;\r\n }\r\n const listTitle = this._replaceUnderscore(params.listTitle);\r\n\r\n const analyticsLabel = (params.isRealMode ? 'Real' : 'Anonymous') + '_' + this.gameType.toString() + '_' + this.title + '_' + params.gameIndex + '_' + (this._isAuthorized ? 'isAuth' : 'isNotAuth');\r\n const analyticsAction = listTitle +\r\n (params.openFromDrawer ? '_Drawer' : '') +\r\n (Check.isNumber(params.listPosition) ? '_' + params.listPosition : '') +\r\n '_' + (params.aiEngine ? params.aiEngine : 'NoAI') +\r\n (params.AIListTypeID ? '_' + params.AIListTypeID : '') +\r\n (params.AdminListID ? '_' + params.AdminListID : '');\r\n\r\n this.services.analytics.sendAnalytics(params.pageName, analyticsAction, analyticsLabel, this.gameType, true);\r\n this.services.analytics.sendElasticInfoEvent({eventType:\"CGP_Game_Click\",category: params.pageName, action: 'game_click', label: listTitle, value: this.gameType.toString(), customData: params}, true);\r\n }\r\n\r\n\r\n isAllWordsMatch(words: RegExp[]) {\r\n let text = this.title + ' ' + this.vendorName;\r\n for (let index = 0; index < words.length; index++) {\r\n if (!text.match(words[index])) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n get gameArenaIcon(): string {\r\n let images = this._rawGameData.images;\r\n if (!images) {\r\n return '';\r\n }\r\n\r\n return this._getResolvedGameImagePath(images.arena_icon);\r\n }\r\n\r\n /**\r\n * @description BI/BA request not to send the underscore as part of the list title since they split by underscore to get all the data on the label\r\n * @param listTitle\r\n * @private\r\n */\r\n private _replaceUnderscore(listTitle): string {\r\n return listTitle.replace(/_/g, '-');\r\n }\r\n\r\n get restriction(): IGameRestriction {\r\n\r\n if(this._rawGameData.restriction) {\r\n return this._rawGameData.restriction as IGameRestriction;\r\n }\r\n return new NoGameRestriction();\r\n }\r\n\r\n get isVideoSlot(): boolean {\r\n return this.gameGroupId === GAME_GROUP.VIDEO_SLOT\r\n || this.gameGroupId === GAME_GROUP.SLOT\r\n }\r\n\r\n //same as isCardOrTableGame() besides ARCADE, PAI_GOW_POKER, ROULETTE_LIKE\r\n get isCasinoGame() {\r\n const casinoGamesGroups = [\r\n GAME_GROUP.BACCARAT,\r\n GAME_GROUP.BLACKJACK,\r\n GAME_GROUP.CARRIBEAN_POKER,\r\n GAME_GROUP.CRAPS,\r\n GAME_GROUP.KENO,\r\n GAME_GROUP.POKER,\r\n GAME_GROUP.POKER_TEMPLATE_GAMES,\r\n GAME_GROUP.ROULETTE,\r\n GAME_GROUP.SCRATCH_CARD,\r\n GAME_GROUP.VIDEO_POKER\r\n ];\r\n\r\n return casinoGamesGroups.includes(this.gameGroupId);\r\n }\r\n\r\n get isVideoPoker(): boolean {\r\n return this.gameGroupId === GAME_GROUP.VIDEO_POKER;\r\n }\r\n\r\n get isScratchCards(): boolean {\r\n return this.gameGroupId === GAME_GROUP.SCRATCH_CARD;\r\n }\r\n\r\n get isBlackJack(): boolean {\r\n return this.gameGroupId === GAME_GROUP.BLACKJACK;\r\n }\r\n\r\n get isRoulette(): boolean {\r\n return this.gameGroupId === GAME_GROUP.ROULETTE;\r\n }\r\n\r\n get isLiveCasino(): boolean {\r\n return this.gameGroupId === GAME_GROUP.LIVE_CASINO;\r\n }\r\n\r\n get isBaccarat(): boolean {\r\n return this.gameGroupId === GAME_GROUP.BACCARAT;\r\n }\r\n\r\n\r\n get isCardOrTableGame(): boolean {\r\n\r\n return this.isBlackJack\r\n || this.isRoulette\r\n || this.isBaccarat\r\n || this.isVideoPoker\r\n || this.gameGroupId === GAME_GROUP.CRAPS\r\n || this.gameGroupId === GAME_GROUP.KENO\r\n || this.gameGroupId === GAME_GROUP.CARRIBEAN_POKER\r\n || this.gameGroupId === GAME_GROUP.POKER_TEMPLATE_GAMES\r\n || this.gameGroupId === GAME_GROUP.ROULETTE_LIKE\r\n || this.gameGroupId === GAME_GROUP.ARCADE\r\n || this.gameGroupId === GAME_GROUP.POWER_VIDEO_POKER\r\n || this.gameGroupId === GAME_GROUP.PAI_GOW_POKER\r\n || this.gameGroupId === GAME_GROUP.CRAZY_BLACKJACK\r\n }\r\n\r\n get externalGameCode(): NullableString {\r\n return this._rawGameData.externalGameCode;\r\n }\r\n\r\n 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 if (arenaKey === LIVE_CASINO_ARENA_NAME || arenaKey === NEW_LIVE_CASINO_ARENA_NAME) {\r\n originalConfigData.arenas[arenaKey].popularTables = getAdminArenaLists(\r\n adminArenaConfigData,\r\n arenaKey,\r\n List_Type.PopularTables\r\n );\r\n }\r\n else {\r\n originalConfigData.arenas[arenaKey].swiperGamesList = getAdminArenaLists(\r\n adminArenaConfigData,\r\n arenaKey,\r\n List_Type.Swipers\r\n );\r\n\r\n originalConfigData.arenas[arenaKey].allGamesGrid = getAdminArenaLists(\r\n adminArenaConfigData,\r\n arenaKey,\r\n List_Type.Grids\r\n );\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction getAdminArenaLists(\r\n adminArenaConfigData: { [key: string]: AdminArenaConfiguration },\r\n arenaKey: string,\r\n listType: string\r\n) {\r\n let adminLists: unknown[] = [];\r\n if (adminArenaConfigData[arenaKey] && adminArenaConfigData[arenaKey].lists[listType]) {\r\n adminArenaConfigData[arenaKey].lists[listType].forEach(list => {\r\n let currentList = Object.assign({}, list.Metadata);\r\n\r\n currentList.display = Check.isNullOrUndefined(list.Metadata.display) ? true : list.Metadata.display;\r\n\r\n let segmentation = createStatementsDefinition(list.SubLists);\r\n currentList.gamesId = {};\r\n currentList.gamesId.defaultValue = segmentation.defaultValue;\r\n currentList.gamesId.statements = segmentation.statements;\r\n\r\n adminLists.push(currentList);\r\n });\r\n }\r\n\r\n return adminLists;\r\n}\r\n","import {GamesMap, IGameImageSize, IGamesService, RecentlyPlayedGames} from './games.service.interface';\r\nimport {GameInfo} from './game-info';\r\nimport {action, observable} from 'mobx';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\n\r\nexport class GamesService extends ServiceBase implements IGamesService {\r\n\r\n constructor(serviceFactory: IServiceFactoryExtended) {\r\n super(serviceFactory);\r\n\r\n this.reaction(\r\n () => this.services.user.isAuthorized,\r\n () => this._updateGamesMap(),\r\n {\r\n fireImmediately: true\r\n });\r\n\r\n this.services.sdk.events.onRecentlyPlayedGamesUpdated(this._updateRecentlyPlayedGames);\r\n }\r\n\r\n\r\n @observable.ref gamesMap: GamesMap = {};\r\n @action.bound\r\n private _setGamesMap(gamesMap: GamesMap): void {\r\n this.gamesMap = gamesMap;\r\n }\r\n\r\n @observable.ref\r\n recentlyPlayedGames: RecentlyPlayedGames = {\r\n isInitialized: false,\r\n gameTypes: []\r\n };\r\n\r\n @action.bound\r\n private _updateRecentlyPlayedGames(gameTypes: number[]): void {\r\n if(!this.recentlyPlayedGames.isInitialized\r\n || !this.services.sdk.getUtils().arraysAreEqual(this.recentlyPlayedGames.gameTypes, gameTypes)) {\r\n this.recentlyPlayedGames = {\r\n isInitialized: true,\r\n gameTypes: gameTypes\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n private async _buildGamesMap(sdkGamesInfo: any): Promise {\r\n\r\n let aboutTexts = await this._getGamesAboutTexts();\r\n\r\n let gamesMap: GamesMap = {};\r\n\r\n const usedGameTypesBySiteMap = this.services.configuration.usedGameTypesBySite.reduce((accumulator, gt) => {\r\n accumulator[gt] = true;\r\n return accumulator;\r\n }, {});\r\n\r\n Object.keys(sdkGamesInfo).forEach(gameType => {\r\n try {\r\n // filter only in-layout games\r\n if (usedGameTypesBySiteMap[gameType]) {\r\n let sdkInfo = sdkGamesInfo[gameType];\r\n let generalSettings = this.services.configuration.data.generalSettings;\r\n let gameTagInfo = (generalSettings && generalSettings.gamesSettings && generalSettings.gamesSettings.gamesTags && generalSettings.gamesSettings.gamesTags[gameType]) || {};\r\n\r\n // for now, rawGameData will contain also gameTagInfo properties - which are read by adminClient settings\r\n // moreover, we'll add a new property on it regarding allowSwitchToDemo\r\n let rawGameData = Object.assign(sdkInfo, gameTagInfo);\r\n let gameInfo = new GameInfo(rawGameData, this.services, aboutTexts[gameType]);\r\n gamesMap[gameInfo.gameType] = gameInfo;\r\n }\r\n } catch(err) {\r\n this.services.logger.error(`Failed to generate GameInfo for game type ${gameType}`, err);\r\n }\r\n\r\n });\r\n\r\n return gamesMap;\r\n }\r\n\r\n private _gamesAboutTexts: {[key: string]: string} | null = null;\r\n\r\n private async _getGamesAboutTexts(): Promise<{[key: string]: string}> {\r\n if(this._gamesAboutTexts) {\r\n return this._gamesAboutTexts;\r\n }\r\n let gamesAboutTextConfigPath = this.services.configuration.data.generalSettings.gamesSettings.gamesAboutTextPath;\r\n\r\n //if there is no about path (not supported in this regulation) - we prevent the http call\r\n if(!gamesAboutTextConfigPath){\r\n this._gamesAboutTexts = {};\r\n return this._gamesAboutTexts;\r\n }\r\n\r\n let gamesAboutTextUrl = '';\r\n\r\n try {\r\n gamesAboutTextUrl = gamesAboutTextConfigPath.replace('{currentLanguage}', this.services.language.currentLanguage);\r\n let aboutTextsJson = await this.services.http.get(gamesAboutTextUrl);\r\n\r\n if(Check.isNullOrUndefined(aboutTextsJson) || Object.keys(aboutTextsJson).length === 0) {\r\n this.services.logger.warning(`No games about texts returned from ${gamesAboutTextUrl}`);\r\n }\r\n this._gamesAboutTexts = aboutTextsJson || {};\r\n\r\n return this._gamesAboutTexts!;\r\n } catch (err) {\r\n if(err && ('statusCode' in err) && err.statusCode === 404) {\r\n // NB: Ignore 404s, usually for things like spa_about.json that actually shouldn't exist.\r\n return {};\r\n }\r\n this.services.logger.error(`Failed to read games about texts from ${gamesAboutTextUrl}`, err);\r\n return {};\r\n }\r\n\r\n\r\n }\r\n\r\n private async _updateGamesMap(): Promise {\r\n let usedGameTypesBySite = this.services.configuration.usedGameTypesBySite || [];\r\n if(usedGameTypesBySite.length === 0) {\r\n this.services.logger.error(`configuration.usedGameTypesBySite returned empty array`);\r\n return;\r\n }\r\n\r\n const gamesMap = await this._getGamesInfoMap(usedGameTypesBySite);\r\n this._setGamesMap(gamesMap);\r\n }\r\n\r\n async _getGamesInfoMap(gameTypes: number[]): Promise {\r\n try {\r\n let sdkGamesInfo = await this.services.sdk.getGamesInfo(gameTypes);\r\n return await this._buildGamesMap(sdkGamesInfo);\r\n } catch (err) {\r\n this.services.logger.error(`sdk.getGamesInfo failed in GamesService.getGamesInfo`, err);\r\n return {};\r\n }\r\n }\r\n\r\n async getGamesInfoMap(gameTypes: number[]): Promise {\r\n if (!gameTypes || gameTypes.length === 0) {\r\n return {};\r\n }\r\n\r\n // fill data from cache (if cache found)\r\n if (Object.keys(this.gamesMap).length > 0) {\r\n const inCacheGames = gameTypes.filter((gt) => this.gamesMap[gt]);\r\n const result = inCacheGames.reduce((acc, gt) => {acc[gt] = this.gamesMap[gt]; return acc;}, {});\r\n return result;\r\n } else {\r\n // otherwise fill it from SDK\r\n return this._getGamesInfoMap(gameTypes);\r\n }\r\n }\r\n\r\n async getGamesInfoForHistory(gameTypes: number[]): Promise {\r\n let sdkGamesInfo = await this.services.sdk.getGamesInfoForHistory(gameTypes);\r\n\r\n let gamesMap: GamesMap = {};\r\n Object.keys(sdkGamesInfo).forEach(gameType => {\r\n let rawGameData = Object.assign(sdkGamesInfo[gameType], this.gamesMap[gameType]);\r\n gamesMap[gameType] = new GameInfo(rawGameData, this.services, '')\r\n });\r\n return gamesMap;\r\n }\r\n\r\n async getGamesInfoArray(gameTypes: number[]): Promise {\r\n let gamesMap = await this.getGamesInfoMap(gameTypes);\r\n\r\n const result: GameInfo[] = [];\r\n for(let i = 0; i < gameTypes.length; i++) {\r\n const gameType = gameTypes[i];\r\n if (gamesMap[gameType]) {\r\n result.push(gamesMap[gameType]);\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n async getGameInfo(gameType: number) {\r\n const gamesMap = await this.getGamesInfoMap([gameType]);\r\n if(gamesMap) {\r\n return gamesMap[gameType];\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n async getCorrelatedGames(gameType: number, numberOfGames: number): Promise {\r\n try {\r\n return await this.services.sdk.getCorrelatedGames(gameType, numberOfGames);\r\n } catch (err) {\r\n this.services.logger.error(`Failed to get from SDK the correlated games for game type ${gameType}`, err);\r\n return [];\r\n }\r\n }\r\n\r\n getGameImageExpectedSizes(useSquareIcons?: boolean, animated?: boolean): IGameImageSize {\r\n if (useSquareIcons) {\r\n if (animated) {\r\n return {\r\n width: 210,\r\n height: 292\r\n };\r\n }\r\n return {\r\n width: 400,\r\n height: 555\r\n };\r\n }\r\n\r\n return {\r\n width: 210,\r\n height: 210\r\n };\r\n }\r\n}\r\n","import {ConfigurationEvaluationContext} from './evaluation/configuration-evaluation-context/configuration-evaluation-context';\r\nimport {PropertiesEvaluator} from './evaluation/properties-evaluator/properties-evaluator';\r\nimport {IConfigurationData} from './configuration-data.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IConfigurationService} from './configuration.service.interface';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {LIVE_CASINO_ARENA_NAME, NEW_GAMES_ARENA_NAME, NEW_LIVE_CASINO_ARENA_NAME} from '../arenas/arena-consts';\r\nimport {observable, runInAction} from 'mobx';\r\nimport {ApplicationStartupConfigurations} from '../../app-bootstrap/config-interfaces/application-startup.configurations';\r\nimport {IConfigurationEvaluationDataProvider} from './evaluation/configuration-evaluation-context/configuration-evaluation-data-provider';\r\nimport { injectAdminArenas } from './inject-admin-arenas';\r\nimport {HomePageHeaderArena} from \"./config-data-sections/home-page.configuration\";\r\nimport {IServicesConfigurations} from './config-data-sections/services-configurations';\r\nimport { SideMenuLinkConfiguration } from './config-data-sections/side-menu.configuration';\r\nimport {ListConfiguration, SwiperGamesListConfiguration} from \"./config-data-sections/arenas.configuration\";\r\n\r\n\r\ntype GameTypesMap = {[key: number]: number};\r\n\r\n\r\nexport class ConfigurationsService extends ServiceBase implements IConfigurationService {\r\n\r\n startupConfiguration: ApplicationStartupConfigurations;\r\n\r\n constructor(services: IServiceFactoryExtended, startupConfigs: ApplicationStartupConfigurations) {\r\n super(services);\r\n this.startupConfiguration = startupConfigs;\r\n\r\n this._createConfigData();\r\n }\r\n\r\n private _getConfigEvaluationContextServices(): IConfigurationEvaluationDataProvider {\r\n return {\r\n admin: this.startupConfiguration.admin,\r\n configurationPath: this.startupConfiguration.configurationPath,\r\n getLauncherGames: () => this.services.launcher.getTestedGames(),\r\n getSegmentValue: (segmentName) => this.services.segmentation.getSegmentValue(segmentName),\r\n logger: this.services.logger\r\n };\r\n }\r\n\r\n private _createConfigData(): void {\r\n let originalConfigData = this.startupConfiguration.orbit.config;\r\n if (this.startupConfiguration.admin && this.startupConfiguration.admin.arenas) {\r\n injectAdminArenas(originalConfigData, this.startupConfiguration.admin.arenas);\r\n }\r\n\r\n let context = new ConfigurationEvaluationContext(this._getConfigEvaluationContextServices());\r\n let configEvaluator = PropertiesEvaluator.fromRoot(originalConfigData, context);\r\n let data = configEvaluator.evaluate(context);\r\n this._defineCustomConfigProperty(data,\r\n 'allGamesTypes',\r\n () => {\r\n let gameTypes: number[] = [];\r\n let gamesTags = (data.generalSettings && data.generalSettings.gamesSettings && data.generalSettings.gamesSettings.gamesTags) || {};\r\n Object.getOwnPropertyNames(gamesTags).forEach(gt => {\r\n let gameType = parseInt(gt);\r\n if(!isNaN(gameType)) {\r\n gameTypes.push(gameType);\r\n }\r\n });\r\n return gameTypes;\r\n });\r\n\r\n\r\n runInAction(() => {\r\n this.data = data as IConfigurationData;\r\n });\r\n }\r\n\r\n\r\n private _defineCustomConfigProperty(configData: unknown, propertyName: string, evaluator: () => unknown) {\r\n Object.defineProperty(configData, propertyName, {\r\n get: evaluator,\r\n configurable: false\r\n });\r\n\r\n }\r\n\r\n @observable.ref\r\n data: IConfigurationData;\r\n\r\n get userSelectedState(): string {\r\n return this.startupConfiguration.userSelectedState;\r\n }\r\n\r\n get cmsPublicationId(): number {\r\n return this.startupConfiguration.b2c.publicationId;\r\n }\r\n\r\n get usedGameTypesBySite(): number[] {\r\n\r\n let gameTypesMap = {...this._getUsedGamesByHomePage(), ...this._getUsedGamesByArenas(), ...this._getUsedGameTypesByLiveGamesArena(), ...this._getUsedGameTypesByNewLiveGamesArena()};\r\n\r\n return Object.values(gameTypesMap);\r\n }\r\n\r\n private _getUsedGamesByHomePage(): GameTypesMap {\r\n let result: GameTypesMap = {};\r\n (this.data.homePage.gamesLists || []).forEach(gamesList => {\r\n if(gamesList.display) {\r\n let gamesIds = gamesList.gamesId || [];\r\n if(Check.isArray(gamesIds)) {\r\n gamesIds.forEach(gameType => {\r\n result[gameType] = gameType;\r\n })\r\n }\r\n\r\n }\r\n });\r\n\r\n return result;\r\n }\r\n\r\n private _getUsedGamesByArenas(): GameTypesMap {\r\n let result: GameTypesMap = {};\r\n Object.keys(this.data.arenas).forEach(arenaName => {\r\n let arenaConfig = this.data.arenas[arenaName];\r\n // game types from swipers\r\n (arenaConfig.swiperGamesList || []).forEach(swiperConfig => {\r\n if(swiperConfig.display) {\r\n let gamesIds = swiperConfig.gamesId || [];\r\n if(Check.isArray(gamesIds)) {\r\n gamesIds.forEach(gameType => {\r\n result[gameType] = gameType;\r\n });\r\n }\r\n\r\n }\r\n });\r\n\r\n // game types from all games grid\r\n (arenaConfig.allGamesGrid || []).forEach(gamesGridConfig => {\r\n if(gamesGridConfig.display) {\r\n let gamesIds = gamesGridConfig.gamesId || [];\r\n if(Check.isArray(gamesIds)) {\r\n gamesIds.forEach(gameType => {\r\n result[gameType] = gameType;\r\n });\r\n }\r\n }\r\n });\r\n });\r\n\r\n return result;\r\n }\r\n\r\n private _getUsedGameTypesByLiveGamesArena() : GameTypesMap {\r\n let result: GameTypesMap = {};\r\n\r\n let liveCasinoArenaConfig = this.data.arenas[LIVE_CASINO_ARENA_NAME];\r\n if(!liveCasinoArenaConfig) {\r\n return result;\r\n }\r\n\r\n let gamesIds = liveCasinoArenaConfig.arenas && liveCasinoArenaConfig.arenas.gamesId;\r\n\r\n if(Check.isArray(gamesIds)) {\r\n gamesIds.forEach(gameTypeConfig => {\r\n if(gameTypeConfig.display) {\r\n result[gameTypeConfig.gameId] = gameTypeConfig.gameId;\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n let popularTablesConfig = liveCasinoArenaConfig.popularTables;\r\n if(Check.isArray(popularTablesConfig)) {\r\n popularTablesConfig.forEach(tableConfig => {\r\n let tableGamesIds = tableConfig.gamesId || [];\r\n if(Check.isArray(tableGamesIds)) {\r\n tableGamesIds.forEach(gameType => result[gameType] = gameType);\r\n }\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private _getUsedGameTypesByNewLiveGamesArena() : GameTypesMap {\r\n let result: GameTypesMap = {};\r\n\r\n let liveCasinoArenaConfig = this.data.arenas[NEW_LIVE_CASINO_ARENA_NAME];\r\n if(!liveCasinoArenaConfig) {\r\n return result;\r\n }\r\n\r\n let gamesIds = liveCasinoArenaConfig.arenas && liveCasinoArenaConfig.arenas.gamesId;\r\n\r\n if(Check.isArray(gamesIds)) {\r\n gamesIds.forEach(gameTypeConfig => {\r\n if(gameTypeConfig.display) {\r\n result[gameTypeConfig.gameId] = gameTypeConfig.gameId;\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n let popularTablesConfig = liveCasinoArenaConfig.popularTables;\r\n if(Check.isArray(popularTablesConfig)) {\r\n popularTablesConfig.forEach(tableConfig => {\r\n let tableGamesIds = tableConfig.gamesId || [];\r\n if(Check.isArray(tableGamesIds)) {\r\n tableGamesIds.forEach(gameType => result[gameType] = gameType);\r\n }\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n\r\n resolveConfigurationValue(fullPath: string): string {\r\n let objectValue: any = this.data;\r\n let fullPathArray = fullPath.split('.');\r\n\r\n for (let objectKey of fullPathArray) {\r\n objectValue = objectValue[objectKey];\r\n }\r\n\r\n return (objectValue as string) || '';\r\n }\r\n\r\n\r\n buildConfigUrl(fileName: string): string {\r\n let configurationPath = this.startupConfiguration.configurationPath;\r\n if(!configurationPath.endsWith('/')) {\r\n configurationPath += '/';\r\n }\r\n return configurationPath + fileName;\r\n }\r\n\r\n resolveGameImagePath(imageFileName: string): string {\r\n if(Check.isEmpty(imageFileName)) {\r\n return '';\r\n }\r\n\r\n let imagesBasePath = this.startupConfiguration.sdk.config.ExtraProperties.paths.gamesImages; //paths.gamesImages is used by cypress environment\r\n if(imagesBasePath) {\r\n if (!imagesBasePath.endsWith('/')) {\r\n imagesBasePath += '/';\r\n }\r\n return imagesBasePath + imageFileName;\r\n } else {\r\n let serverPath = this.startupConfiguration.sdk.config.ExtraProperties.paths.server;\r\n if (!serverPath.endsWith('/')) {\r\n serverPath += '/';\r\n }\r\n return serverPath + 'gamesImages/' + imageFileName;\r\n }\r\n }\r\n\r\n resolveJsFilePath(fileName: string): string {\r\n if(Check.isEmpty(fileName)) {\r\n return '';\r\n }\r\n let serverPath = this.startupConfiguration.sdk.config.ExtraProperties.paths.server;\r\n let path = serverPath ? serverPath : this.services.window.origin;\r\n if (!path.endsWith('/')) {\r\n path += '/';\r\n }\r\n return (path + `js/${fileName}`);\r\n }\r\n\r\n getFontsPath(): string {\r\n return new URL(this.startupConfiguration.sdk.config.ExtraProperties.paths.server + \"/assets/fonts/\").href;\r\n }\r\n\r\n getGamesListByJackpotId(id: string): SwiperGamesListConfiguration {\r\n\r\n const homePageGamesLists = this.data.homePage.gamesLists || [];\r\n for(let i = 0; i < homePageGamesLists.length; i++) {\r\n let gamesList = homePageGamesLists[i];\r\n if(gamesList.jackpotWidget?.jackpotId) {\r\n let gamesIds = gamesList.gamesId || [];\r\n if(Check.isArray(gamesIds) && gamesList.jackpotWidget.jackpotId.toString() === id) {\r\n return gamesList;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n getSelfUpdatedByNewestGamesList(): ListConfiguration {\r\n const newGameArenaConfig = this.data.arenas[NEW_GAMES_ARENA_NAME];\r\n if (!newGameArenaConfig) {\r\n return null;\r\n }\r\n\r\n const gamesLists: ListConfiguration[] = (newGameArenaConfig.swiperGamesList || []).concat(newGameArenaConfig.allGamesGrid || []);\r\n const firstSelfUpdatedByNewest = gamesLists.find(listConfig => listConfig.display && listConfig.isSelfUpdatedByNewest);\r\n return firstSelfUpdatedByNewest;\r\n }\r\n\r\n private _getCurrentArenaLists() {\r\n const arenaType = this.services.routing.currentRoute.data?.arenaType;\r\n const lists = Check.isNullOrUndefined(arenaType) || arenaType === \"homePage\" ?\r\n this.data.homePage.gamesLists :\r\n this.services.configuration.data.arenas[arenaType].swiperGamesList;\r\n return lists;\r\n }\r\n\r\n getGamesListByTitle(title: string): SwiperGamesListConfiguration {\r\n const lists = this._getCurrentArenaLists();\r\n return lists?.find(list => list.title.toUpperCase() === title.toUpperCase());\r\n }\r\n\r\n getGamesListById(id: number): SwiperGamesListConfiguration {\r\n const lists = this._getCurrentArenaLists();\r\n return lists?.find(list => list.listId === id);\r\n }\r\n\r\n getHomePageHeaderArenas(): HomePageHeaderArena[] {\r\n let homePageHeaderArenas:HomePageHeaderArena[] = [];\r\n this.data.homePage.headerArenasOrder.forEach( name => {\r\n const arenaHeader = this.data.arenas[name].homepageHeader;\r\n if(arenaHeader){\r\n homePageHeaderArenas.push(arenaHeader);\r\n }\r\n });\r\n return homePageHeaderArenas;\r\n }\r\n\r\n getHomePageHeaderArenasByUserOrientation(arenaNames: string[]): HomePageHeaderArena[] {\r\n let orderedArenas:HomePageHeaderArena[] = [];\r\n arenaNames.forEach( arenaName => {\r\n const arenaConfig:HomePageHeaderArena = this.data.arenas[arenaName] && this.data.arenas[arenaName].homepageHeader;\r\n if(arenaConfig) {\r\n orderedArenas.push(arenaConfig);\r\n }\r\n });\r\n return orderedArenas;\r\n }\r\n\r\n get servicesConfigs(): IServicesConfigurations {\r\n return this.services.sdk.getConfigs();\r\n }\r\n\r\n pickSideMenuItems(keys: string[]) {\r\n const allLinks = this.services.configuration.data.sideMenu.menu_links;\r\n\r\n const reducer = function (accumulator: Array<{key: string, config: SideMenuLinkConfiguration}>, key: string) {\r\n if(key in allLinks) {\r\n accumulator.push({key, config: allLinks[key]});\r\n }\r\n return accumulator;\r\n };\r\n\r\n return keys.reduce(reducer, []);\r\n }\r\n}\r\n","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 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.sendAIRecommendations({\r\n category: SEO_CATEGORIES.AI_GAMES_RECOMMENDATIONS,\r\n gameTypes: analyticsObject,\r\n engine: this.aiRecommendedGames.engine\r\n });\r\n }\r\n\r\n async getCasinoRecommendedDynamicListsForPlayer(listIDs: string[]): Promise> {\r\n return await this.services.api.insightController.getCasinoRecommendedDynamicListsForPlayer({\r\n listsIDs: listIDs\r\n });\r\n }\r\n\r\n sortGames(gameTypes: number[], options?: IAiSortOptions): number[] {\r\n const allAiRecommendedGameTypes = Check.isEmpty(options?.gamesMapOverride) ? this._allAiRecommendedGameTypes : options?.gamesMapOverride;\r\n if(!allAiRecommendedGameTypes || Object.keys(allAiRecommendedGameTypes).length === 0) {\r\n return gameTypes;\r\n }\r\n\r\n const ignoreNumberOfGames = Check.isNumber(options?.ignoreNumberOfGames) ? options.ignoreNumberOfGames : 0;\r\n let fixedGameTypes = ignoreNumberOfGames > 0 ? gameTypes.slice(0, ignoreNumberOfGames) : [];\r\n const aiGameTypes = ignoreNumberOfGames > 0 ? gameTypes.slice(ignoreNumberOfGames) : gameTypes;\r\n\r\n const originalIndexes = {};\r\n aiGameTypes.forEach((gt, index) => {\r\n originalIndexes[gt] = index;\r\n });\r\n\r\n aiGameTypes.sort((gt1, gt2) => {\r\n let index1 = allAiRecommendedGameTypes[gt1];\r\n let index2 = allAiRecommendedGameTypes[gt2];\r\n\r\n if(Check.isUndefined(index1) && Check.isUndefined(index2)) {\r\n return (originalIndexes[gt1] < originalIndexes[gt2]) ? -1 : 1;\r\n }\r\n\r\n if(Check.isUndefined(index1)) { //if gt1 is not in the AI recommendations\r\n return 1;\r\n } else if(Check.isUndefined(index2)) {\r\n return -1;\r\n }\r\n\r\n return (index1 < index2) ? -1 : 1; //gt1 goes before gt2 if index1 < index2\r\n });\r\n\r\n // concatenate fixed game types (not sorted) with ai sorted ones\r\n return fixedGameTypes.concat(aiGameTypes);\r\n }\r\n\r\n getAiEngine(): string | undefined {\r\n return this.aiRecommendedGames.engine;\r\n }\r\n\r\n getAiEngineForGame(gameType: number): string | undefined {\r\n return this.aiRecommendedGames.gameTypesMap[gameType] === undefined ? undefined : this.aiRecommendedGames.engine;\r\n }\r\n\r\n private _isLoadTrendingRecommendedGamesForPlayerInProgress = false;\r\n private async _loadTrendingRecommendedGamesForPlayer(): Promise {\r\n if(this._isLoadTrendingRecommendedGamesForPlayerInProgress) {\r\n return;\r\n }\r\n\r\n if(!Check.isNullOrUndefined(this._trendingGamesRecommendations)) {\r\n return;\r\n }\r\n\r\n this._isLoadTrendingRecommendedGamesForPlayerInProgress = true;\r\n try {\r\n const trendingRecommendedGames: { [key: number]: number[] } = await this.services.sdk.getTrendingRecommendedGamesForPlayer(LIST_TYPE_ID.BETS, LIST_TYPE_ID.ACTIVE_USERS);\r\n this._setTrendingRecommendedGamesForPlayer(trendingRecommendedGames);\r\n } finally {\r\n this._isLoadTrendingRecommendedGamesForPlayerInProgress = false;\r\n }\r\n\r\n }\r\n\r\n // List Type can be either 1 or 2, when 1 is sorted by bets and 2 is sorted by active_users\r\n private _getGamesTypesByListTypeID(listTypeId?: LIST_TYPE_ID): number[] {\r\n\r\n if(!Check.isNullOrUndefined(listTypeId)) {\r\n if (listTypeId === LIST_TYPE_ID.BETS) {\r\n return this.trendingRecommendedGamesForPlayerByBets;\r\n } else if(listTypeId === LIST_TYPE_ID.ACTIVE_USERS) {\r\n return this.trendingRecommendedGamesForPlayerByActiveUsers;\r\n } else {\r\n this.services.logger.error(`Fail to get ai games order from api. wrong listTypeId: ${listTypeId}`);\r\n }\r\n }\r\n\r\n return [];\r\n }\r\n\r\n sortGamesByAI(gamesTypesArray: number[], listTypeId: LIST_TYPE_ID) {\r\n const aiGamesByScore = this._getGamesTypesByListTypeID(listTypeId);\r\n if(!aiGamesByScore) {\r\n return gamesTypesArray;\r\n }\r\n \r\n return gamesTypesArray.sort((first,second) => {\r\n const firstGamePlace = aiGamesByScore.indexOf(first);\r\n const secondGamePlace = aiGamesByScore.indexOf(second);\r\n if(firstGamePlace === -1 || secondGamePlace === -1) {\r\n if(firstGamePlace === -1) {\r\n return secondGamePlace === -1 ? 0 : 1;\r\n } else {\r\n return -1;\r\n }\r\n }\r\n\r\n return firstGamePlace - secondGamePlace;\r\n });\r\n\r\n }\r\n}\r\n\r\n\r\n","import {IDeepLinkBuilder} from '../deep-link-builder.interface';\r\nimport {IDeepLinkActionChain} from '../../deep-link-actions/deep-link-action-chain';\r\n\r\nexport class DeepLinkJsonObjectBuilder implements IDeepLinkBuilder {\r\n buildDeepLinkUrl(actionsChain: IDeepLinkActionChain): string {\r\n\r\n let deepLinkObject: any = {};\r\n let resultedMarketingParams: any = {};\r\n\r\n let currentActionIndex = -1;\r\n\r\n let currentActionsChainPointer: IDeepLinkActionChain | null = actionsChain;\r\n while(currentActionsChainPointer) {\r\n let actionPropName = '';\r\n let idPropName = '';\r\n\r\n if(currentActionIndex === -1) {\r\n actionPropName = 'action';\r\n idPropName = 'id'\r\n } else if(currentActionIndex === 0) {\r\n actionPropName = 'action_next';\r\n idPropName = 'id_next'\r\n } else {\r\n actionPropName = 'action_next' + currentActionIndex;\r\n idPropName = 'id_next' + currentActionIndex;\r\n }\r\n\r\n deepLinkObject[actionPropName] = currentActionsChainPointer.descriptor.action;\r\n if(currentActionsChainPointer.descriptor.actionParams && currentActionsChainPointer.descriptor.actionParams.id) {\r\n deepLinkObject[idPropName] = currentActionsChainPointer.descriptor.actionParams.id;\r\n }\r\n\r\n let marketingParams = currentActionsChainPointer.descriptor.marketingParams;\r\n if(marketingParams) {\r\n if(marketingParams.dl) {\r\n resultedMarketingParams.dl = marketingParams.dl;\r\n }\r\n\r\n if(marketingParams.wtc) {\r\n resultedMarketingParams.wtc = marketingParams.wtc;\r\n }\r\n }\r\n\r\n currentActionsChainPointer = currentActionsChainPointer.nextAction;\r\n currentActionIndex++;\r\n }\r\n\r\n if(Object.keys(deepLinkObject).length === 0) {\r\n return ''\r\n }\r\n\r\n deepLinkObject = {...deepLinkObject, ...resultedMarketingParams};\r\n\r\n // replace \" with ' - for some reason cause to JSON parsing to fail.\r\n const deepLinkObjectAfterConvert = JSON.stringify(deepLinkObject).split('\"').join('\\'')\r\n\r\n return \"#deeplink=\" + deepLinkObjectAfterConvert;\r\n }\r\n}\r\n","import {DeepLinkActionDescriptor, IDeepLinkParser} from '../deep-link-parser.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {IDeepLinkBuilder} from '../../../deep-link-builders/deep-link-builder.interface';\r\nimport {DeepLinkJsonObjectBuilder} from '../../../deep-link-builders/deeplink-json-object-builder/deeplink-json-object-builder';\r\n\r\n\r\n\r\nexport class DeepLinkJsonObjectParser implements IDeepLinkParser {\r\n\r\n constructor(public deepLinkObject: any) {\r\n\r\n }\r\n\r\n\r\n getActionsDescriptors(): DeepLinkActionDescriptor[] {\r\n\r\n let marketingParams = {\r\n dl: this.deepLinkObject.dl,\r\n wtc: this.deepLinkObject.wtc\r\n };\r\n\r\n\r\n let result: DeepLinkActionDescriptor[] = [];\r\n\r\n result.push({\r\n action: this.deepLinkObject.action,\r\n marketingParams: marketingParams,\r\n actionParams: {\r\n id: this.deepLinkObject.id\r\n }\r\n });\r\n\r\n for(let i = 0; i <= 2; i++) {\r\n let actionNextPropName = i === 0 ? 'action_next' : 'action_next' + i;\r\n let idNextPropName = i === 0 ? 'id_next' : 'id_next' + i;\r\n\r\n if(!Check.isNullOrUndefined(this.deepLinkObject[actionNextPropName])) {\r\n let params = {\r\n id: this.deepLinkObject[idNextPropName],\r\n };\r\n\r\n result.push({\r\n action: this.deepLinkObject[actionNextPropName],\r\n marketingParams: marketingParams,\r\n actionParams: params\r\n });\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n\r\n getDeepLinkBuilder(): IDeepLinkBuilder {\r\n return new DeepLinkJsonObjectBuilder();\r\n }\r\n\r\n}\r\n","import {ServiceBase} from '../../ServiceBase';\r\nimport {IDeepLinkParserService} from './deep-link-parser.service.interface';\r\nimport {IDeepLinkParser} from './parsers/deep-link-parser.interface';\r\nimport {DeepLinkJsonObjectParser} from './parsers/deep-link-json-object-parser/deep-link-json-object-parser';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {decodeUriComponentRecursive} from '../../../../utils/url-utils';\r\n\r\n\r\nconst DEEP_LINK_HASH_PARAM = 'deeplink=';\r\nexport const DEEP_LINK_QUERY_PARAM = 'deeplink';\r\nconst SPECIFIC_NAVIGATION = 'specificNavigation';\r\nconst SPECIFIC_NAVIGATION_PARAM = SPECIFIC_NAVIGATION + '=';\r\n\r\n\r\nexport class DeepLinkParserService extends ServiceBase implements IDeepLinkParserService {\r\n getParserFromCurrentRoute(): IDeepLinkParser | null {\r\n\r\n if(!this.services.location.currentUri) {\r\n return null;\r\n }\r\n\r\n let deepLinkJson = this._extractDeepLinkJsonFromFragment();\r\n\r\n\r\n if(!deepLinkJson) {\r\n deepLinkJson = this._extractDeepLinkJsonFromDeepLinkQueryParam();\r\n }\r\n\r\n let isDeepLinkFromSpecificNavigation = false;\r\n if(!deepLinkJson) {\r\n deepLinkJson = this._extractDeepLinkJsonFromSpecificNavigationQueryParam();\r\n if(deepLinkJson) {\r\n isDeepLinkFromSpecificNavigation = true;\r\n }\r\n }\r\n\r\n\r\n if(Check.isEmpty(deepLinkJson)) {\r\n return null;\r\n }\r\n\r\n try {\r\n let deepLinkObject: string | null = null;\r\n if(Check.isString(deepLinkJson)) {\r\n deepLinkObject = JSON.parse(deepLinkJson);\r\n } else if(Check.isObject(deepLinkJson)) {\r\n deepLinkObject = deepLinkJson;\r\n } else {\r\n return null;\r\n }\r\n\r\n if(this._isDeepLinkObject(deepLinkObject)) {\r\n return new DeepLinkJsonObjectParser(deepLinkObject);\r\n }\r\n\r\n return null;\r\n\r\n } catch (err) {\r\n if(isDeepLinkFromSpecificNavigation) {\r\n this.services.logger.info(`Current route specific navigation doesn't contain a deep link: ${this.services.location.currentUri.toString()}`);\r\n } else {\r\n this.services.logger.error(`Failed to parse deep link object from current route ${this.services.location.currentUri.toString()}`);\r\n }\r\n\r\n return null;\r\n }\r\n }\r\n\r\n\r\n getParserFromDeepLinkObject(deepLinkObject: any): IDeepLinkParser | null {\r\n if(this._isDeepLinkObject(deepLinkObject)) {\r\n return new DeepLinkJsonObjectParser(deepLinkObject);\r\n }\r\n return null;\r\n }\r\n\r\n private _isDeepLinkObject(obj: any): boolean {\r\n if(!Check.isObject(obj)) {\r\n return false;\r\n }\r\n\r\n if(!obj['action']){\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private _extractDeepLinkJsonFromFragment(): string | null {\r\n let fragment = this.services.location.currentUri.hash.value;\r\n if(!fragment) {\r\n return null;\r\n }\r\n\r\n fragment = decodeUriComponentRecursive(fragment);\r\n\r\n if(fragment.indexOf(DEEP_LINK_HASH_PARAM) !== 0 && fragment.indexOf(SPECIFIC_NAVIGATION_PARAM) !== 0) {\r\n return null;\r\n }\r\n\r\n return fragment.replace(DEEP_LINK_HASH_PARAM, '').replace(SPECIFIC_NAVIGATION_PARAM, '');\r\n }\r\n\r\n\r\n\r\n private _extractDeepLinkJsonFromDeepLinkQueryParam(): string | null {\r\n if (this.services.location.currentUri.queryParams.isEmpty) {\r\n return null;\r\n }\r\n\r\n return decodeUriComponentRecursive(this.services.location.currentUri.queryParams.getParamValue(DEEP_LINK_QUERY_PARAM) || '');\r\n }\r\n\r\n private _extractDeepLinkJsonFromSpecificNavigationQueryParam(): string | null {\r\n\r\n if (this.services.location.currentUri.queryParams.isEmpty) {\r\n return null;\r\n }\r\n\r\n return decodeUriComponentRecursive(this.services.location.currentUri.queryParams.getParamValue(SPECIFIC_NAVIGATION) || '');\r\n }\r\n\r\n}\r\n","import {ServiceBase} from '../ServiceBase';\r\nimport {IDeepLinkService} from './deep-link.service.interface';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {IDeepLinkAction} from './deep-link-actions/deep-link-action.interface';\r\nimport {observable, reaction, runInAction} from 'mobx';\r\nimport {IReactionPublic} from 'mobx';\r\nimport {DEEP_LINK_QUERY_PARAM} from './deep-link-parsers/deep-link-parser.service';\r\n\r\n\r\n\r\n/**\r\n Deep link can come from\r\n 1. route\r\n 2. SDK event\r\n 3. direct call window.orbit.deepLink\r\n 4. post message\r\n */\r\n\r\nexport class DeepLinkService extends ServiceBase implements IDeepLinkService {\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n\r\n this._subscribeToCurrentUriReaction(true);\r\n\r\n this.services.sdk.events.onDeepLinkReceived(this._executeDeepLinkFromSdkEvent);\r\n this.services.window.subscribeTo.postMessage(this._executeDeepLinkFromPostMessage);\r\n }\r\n\r\n\r\n private _subscribeToCurrentUriReaction(fireImmediately: boolean): void{\r\n reaction(() => this.services.location.currentUri,\r\n (_, reaction) => this._executeDeepLinkFromCurrentRoute(reaction),\r\n {\r\n fireImmediately: fireImmediately\r\n });\r\n }\r\n\r\n @observable.ref lastTimeDeepLinkWasExecuted: number;\r\n\r\n private _isExecuting: boolean = false;\r\n get isExecuting(): boolean {\r\n return this._isExecuting;\r\n }\r\n\r\n\r\n private async _waitForAutologin(): Promise {\r\n try {\r\n await this.services.user.waitForAutoLogin();\r\n } catch (err) {\r\n // we will continue the deep link flow if waiting for auto login to complete fails.\r\n // if there are any issues with the auto login probably the login screen will pop up\r\n // depending on the deep link action\r\n this.services.logger.error('Waiting for auto login to complete failed', err);\r\n }\r\n }\r\n\r\n private async _executeAction(action: IDeepLinkAction): Promise {\r\n if(this._isExecuting) {\r\n this.services.logger.error(`You tried to execute a deep link while another one is in progress. The following deep link will be ignored: ${JSON.stringify(action.descriptor)}`);\r\n return;\r\n }\r\n this._isExecuting = true;\r\n\r\n try {\r\n await action.execute();\r\n } finally {\r\n this._isExecuting = false;\r\n runInAction(() => this.lastTimeDeepLinkWasExecuted = Date.now())\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n private async _executeDeepLinkFromCurrentRoute(reactionDisposer: IReactionPublic): Promise {\r\n\r\n\r\n try {\r\n reactionDisposer.dispose(); // we unsubscribe from this.services.location.currentUri reaction so if the currentUri changes inside the waitForAutoLogin or for any other reasons it will not trigger another deep link execution\r\n\r\n await this._waitForAutologin();\r\n\r\n // In case there is an auto login we want to create the deep link action after the auto login finishes\r\n // so any code that looks for isAuthorized during the action creation to find it on true\r\n let action = this.services.deepLinkActionsFactory.createActionFromCurrentRoute();\r\n if(!action) {\r\n return;\r\n }\r\n\r\n this.services.logger.debug('Execute deep link from current route: ' + this.services.location.currentUri.toString());\r\n\r\n const urlWithoutHash = this.services.location.currentUri.removeSearchParam(DEEP_LINK_QUERY_PARAM).getUrlWithoutHash();\r\n await this.services.location.replace(urlWithoutHash);\r\n\r\n await this._executeAction(action);\r\n\r\n } finally {\r\n this._subscribeToCurrentUriReaction(false);\r\n }\r\n\r\n\r\n }\r\n\r\n private _executeDeepLinkFromSdkEvent = async (deepLinkObject: any): Promise => {\r\n\r\n await this._waitForAutologin();\r\n\r\n let action = this.services.deepLinkActionsFactory.createActionFromDeepLinkObject(deepLinkObject);\r\n if(action) {\r\n this.services.logger.debug('Execute deep link object in _executeDeepLinkFromSdkEvent: ' + JSON.stringify(deepLinkObject));\r\n return this._executeAction(action);\r\n } else if (Check.isNullOrUndefined(deepLinkObject)){\r\n this.services.logger.warning(`${deepLinkObject} deep link object received from SDK DEEPLINK_RECEIVED event`);\r\n } else {\r\n this.services.logger.error(`Received deep link object from the SDK DEEPLINK_RECEIVED is not a valid deep link object. Received data: ${JSON.stringify(deepLinkObject)}`);\r\n }\r\n };\r\n\r\n async executeDeepLink(deepLinkObject: any, navigate?: any): Promise {\r\n if(!Check.isObject(deepLinkObject)) {\r\n this.services.logger.error(`_executeDeepLinkFromDirectCall was called with a deepLinkObject argument that is not an object`);\r\n return;\r\n }\r\n if(Object.keys(deepLinkObject).length === 0) {\r\n this.services.logger.error(`_executeDeepLinkFromDirectCall was called with an empty deep deepLinkObject argument`);\r\n return;\r\n }\r\n\r\n this.services.logger.debug('Execute deep link object in executeDeepLink: ' + JSON.stringify(deepLinkObject));\r\n\r\n await this._waitForAutologin();\r\n\r\n let action = this.services.deepLinkActionsFactory.createActionFromDeepLinkObject(deepLinkObject);\r\n if(action) {\r\n if(Check.isString(navigate)) {\r\n this.services.location.push(navigate as string);\r\n } else if(Check.isArrayOfStrings(navigate)) {\r\n if(navigate.length > 0) {\r\n await this.services.location.push('/' + (navigate as Array).join('/'));\r\n }\r\n } else if(!Check.isNullOrUndefined(navigate)) {\r\n this.services.logger.error(`expecting _executeDeepLinkFromDirectCall to be called with a navigate parameter that is string or an array of strings but it was ${JSON.stringify(navigate)}`);\r\n }\r\n\r\n await this._executeAction(action);\r\n } else {\r\n this.services.logger.error(`_executeDeepLinkFromDirectCall was called with an invalid deep link object ${JSON.stringify(deepLinkObject)}`);\r\n }\r\n };\r\n\r\n private _executeDeepLinkFromPostMessage = async (postEvent: any): Promise => {\r\n let messageData = postEvent && postEvent.data;\r\n if(!messageData) {\r\n return;\r\n }\r\n\r\n if(messageData.ActionName !== 'deeplink') {\r\n return;\r\n }\r\n\r\n\r\n if(!messageData.data) {\r\n this.services.logger.error(`Received deep link post message action with ${messageData.data} data`);\r\n return;\r\n }\r\n\r\n let deepLinkJsonObject = null;\r\n\r\n try {\r\n deepLinkJsonObject = JSON.parse(messageData.data);\r\n } catch (err) {\r\n this.services.logger.error(`Failed to parse deep link object from post message: ${messageData.data}`, err);\r\n return;\r\n }\r\n\r\n await this._waitForAutologin();\r\n\r\n let action = this.services.deepLinkActionsFactory.createActionFromDeepLinkObject(deepLinkJsonObject);\r\n\r\n if(action) {\r\n this.services.logger.debug('Execute deep link object in _executeDeepLinkFromPostMessage: ' + messageData.data);\r\n return this._executeAction(action);\r\n } else {\r\n this.services.logger.error(`Received post message with invalid deep link object ${messageData.data}`);\r\n }\r\n\r\n }\r\n}\r\n\r\n","import {CmsUserSignature, DateAndTimeFormat, GameRawData, ITokenInfo} from './sdk.service.interface';\r\nimport {IRunningGameHandler} from '../games/running-game-handler.interface';\r\nimport {IUsefulLinkSdkData} from \"../user-menu/useful-links/useful-link-data.interface\";\r\nimport {IAutoLoginParams} from '../../../common/interfaces/autologin-params.interface';\r\nimport {BalanceType} from \"../../../common/const/wallet_balance_type\";\r\nimport IStructuredLoggingService from \"../../../common/interfaces/structured-logging-service-interface\";\r\nimport {SdkOverlayZIndex} from \"../../../common/interfaces/sdk-overlay-z-index\";\r\nimport {ICashierWidgetsEligibilityDetails} from \"../../../common/interfaces/cashier-widgets-eligibility-details.interface\";\r\nimport {IGeoLocationInfo} from \"../../../common/interfaces/geo-location-info.interface\";\r\nimport {ILegacyCompanyViewModel} from \"../companies/legacy-company-view-model.interface\";\r\nimport {GamingHistoryRecordRawData} from \"../gaming-history/gaming-history.service.interfce\";\r\nimport { IAbTestingFeatureProperties } from '../../../common/interfaces/ab-testing-interface';\r\nimport {IHybridService} from \"../hybrid/hybrid.service.interface\";\r\nimport {ILegacyRegulation} from \"../regulation/legacy-regulation.interface\";\r\nimport {NullableNumber, NullableString} from \"../../../common/types/nullable-types\";\r\nimport ISdkGnwpService from \"../../../sdk/src/services/gnwp/gnwp_service_interface\";\r\nimport {IScriptLoaderService} from \"../scrip-loader/script-loader.service.interface\";\r\nimport {IFreePlayVoucherData} from \"../../../common/interfaces/free-play/free-play-voucher-data.interface\";\r\nimport {ISdkMessageButtonOptions} from '../../../common/interfaces/sdk-message-button-options';\r\nimport IStateOfResidence from \"../../../common/interfaces/state-of-residence.interface\";\r\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 FREE_PLAY_UPDATED: 'FREE_PLAY_UPDATED',\r\n LIVE_FEEDS_JACKPOT_AMOUNTS_UPDATED: 'LIVE_FEEDS_JACKPOT_AMOUNTS_UPDATED',\r\n LIVE_FEEDS_STATE_JACKPOTS_UPDATED: 'LIVE_FEEDS_STATE_JACKPOTS_UPDATED',\r\n GAME_POPUP_SHOW: 'GAME_POPUP_SHOW',\r\n BALANCE_UPDATED: 'BALANCE_UPDATED',\r\n REALITY_CHECK_OPENED: 'REALITY_CHECK_OPENED',\r\n REALITY_CHECK_CLOSED: 'REALITY_CHECK_CLOSED',\r\n REGISTRATION_COMPLETED: 'REGISTRATION_COMPLETED',\r\n DAILY_DEAL_REMOVE_INDICATION: 'DAILY_DEAL_REMOVE_INDICATION',\r\n OMG_AWAITING_MESSAGES_UPDATED: 'OMG_AWAITING_MESSAGES_UPDATED',\r\n APP_RESUMED: 'APP_RESUMED',\r\n APP_PAUSED: 'APP_PAUSED',\r\n EXTERNAL_LINK_CLOSED: 'EXTERNAL_LINK_CLOSED',\r\n TOUCH_ID_STATE_CHANGED: 'TOUCH_ID_STATE_CHANGED',\r\n OMG_DISPLAYED: 'OMG_DISPLAYED',\r\n SESSION_EVENT_PLAYER_BURNOUT_MESSAGE_RECEIVED: 'SESSION_EVENT_PLAYER_BURNOUT_MESSAGE_RECEIVED',\r\n LIVE_GAME_SWITCHED: 'LIVE_GAME_SWITCHED',\r\n PROMOTIONS_CHANGED: 'PROMOTIONS_CHANGED',\r\n DEPOSIT_WIDGET_CLOSED : 'DEPOSIT_WIDGET_CLOSED',\r\n};\r\n\r\n\r\nexport interface DeviceInfo {\r\n os: {\r\n name: string;\r\n version: number;\r\n isMobileOS: boolean;\r\n isIOS: boolean;\r\n isAndroid: boolean;\r\n isPC: boolean;\r\n isMacOS: boolean;\r\n };\r\n browser: {\r\n name: string;\r\n version: number;\r\n isSafari: boolean;\r\n isChrome: boolean;\r\n isFirefox: boolean;\r\n };\r\n model: {\r\n isIphone: boolean;\r\n isIpad: boolean;\r\n };\r\n hybrid: {\r\n isHybrid: boolean;\r\n isEmbedded: boolean;\r\n };\r\n feature: {\r\n isTouch: boolean;\r\n };\r\n isProgressiveWebApp: boolean;\r\n isStandalone: boolean;\r\n\r\n /** @deprecated */\r\n isMobile(): boolean;\r\n /** @deprecated */\r\n isTablet(): boolean;\r\n}\r\n\r\nexport interface CGPEventSubscription {\r\n off();\r\n}\r\n\r\n\r\nexport interface GetAutoLoginTokenResponse {\r\n token: string;\r\n}\r\n\r\nexport interface GetPlatformTokenResponse {\r\n token: string;\r\n}\r\n\r\nexport interface IDailyDealCampaign {\r\n MarketingCampaignId: string;\r\n}\r\n\r\n\r\nexport interface CgpSkinInfo {\r\n getBrandName(): string;\r\n getPlatformSystemID(): number;\r\n getClientPlatform(): string;\r\n getVersion(): string;\r\n getCulture(): string;\r\n 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}\r\n\r\nexport interface IOpenHistoryGameRequest {\r\n historyRecordData: GamingHistoryRecordRawData;\r\n gameType: number,\r\n gameName: string,\r\n gameRoundId: string,\r\n gameRoundDate: string;\r\n}\r\n\r\nexport interface ICgpSdk {\r\n closeRunningGame(): void;\r\n countPlayerChallenges(): number;\r\n getRegulationDateAndTimeFormat(): DateAndTimeFormat;\r\n createComponentRenderer(componentId: string): any;\r\n device(): DeviceInfo;\r\n displayHybrid?: () => void;\r\n isHybridEmbeddedGame(gameType: number): boolean;\r\n openHybridLink(url: string): void;\r\n format$$$(value: number, withDecimal: boolean);\r\n getBalance();\r\n getAIList(maxGames: number, filterOutRecentlyPlayedGames: boolean, numberOfRecentlyPlayedGameToFilterOut: number): Promise;\r\n getAINewGamesList(maxGames: number, filterOutRecentlyPlayedGames: boolean, numberOfRecentlyPlayedGameToFilterOut: number): Promise;\r\n getAutoLoginToken(): Promise;\r\n getPlatformToken(): Promise;\r\n getFirebaseToken(): string;\r\n getBrandID(): number;\r\n getCorrelatedGames(gameType: number, numberOfGames: number): Promise;\r\n getExternalBrandCallbackURL(): string;\r\n getExternalBrandCallbackURLMethod(): string;\r\n getGamesInfo(gameTypes: number[]): Promise;\r\n getGamesThemes(): Record;\r\n 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 refreshThirdPartyVouchers(): Promise;\r\n getAbTestingDataForFeature(featureName: string): IAbTestingFeatureProperties;\r\n getAbTestingData(): { [key: string]: IAbTestingFeatureProperties };\r\n waitForAnonymousAbTestingData(): Promise;\r\n getCurrentServerDate(): Date;\r\n closeCurrentDetailHistory(): void;\r\n getRichPageUrl(campaignId: string): string;\r\n getDailyDealCampaigns(): Promise;\r\n getBankroll(balanceType: BalanceType, plainNumber?: boolean): string | number;\r\n\r\n getJackpotsWithState(): unknown;\r\n getJackpotAmountByGameType(gameType: number): NullableNumber;\r\n getNumberOfAwaitingMessages(): number;\r\n openOmgAwaitingMessages(): void;\r\n getFreeplayVouchers(): Promise;\r\n\r\n loadSafezoneSdk(): Promise;\r\n getProductPackage(): number;\r\n\r\n getSkin(): CgpSkinInfo;\r\n runAutoLogin(autoLoginParams: IAutoLoginParams):unknown;\r\n\r\n getUtils(): ISdkUtils;\r\n onOrbitInitComplete(): void;\r\n\r\n getEnvironment(): string;\r\n pushDataToDataLayer(data:{}): void;\r\n getCountryName(): string;\r\n getCountryIso3(): string;\r\n getSupportedStates(): IStateOfResidence[];\r\n getWrongLocationDetectionPath(): string;\r\n getTrendingRecommendedGamesForPlayer(listTypeId: number[]):Promise<{[key:number] : number[]}>;\r\n\r\n showToaster(toasterData: {}): unknown;\r\n getRegulationService(): ISdkRegulationService;\r\n\r\n waitForAutologin(): Promise;\r\n httpPost(url: string, requestData: unknown): Promise;\r\n httpGet(url: string, requestData: unknown): Promise;\r\n getConfigs(): any;\r\n loadScript(url: string, tagId?: string): Promise;\r\n getRefreshToken(): string;\r\n getCurrencyIso3(): string;\r\n readonly overlayZIndex: SdkOverlayZIndex;\r\n getGoogleClientID(): string;\r\n isInAutologin(): boolean;\r\n fireDepositWidgetClosed(): void;\r\n getToken(): ITokenInfo | null;\r\n\r\n continuePlayingCurrentGame(): void;\r\n stopCurrentGameAutoplay(): void;\r\n openHistoryLink(): void;\r\n isDepositWidgetSupportedByHybrid(): boolean;\r\n getGeoLocationInfo(): Promise;\r\n getDownloadAppLink(): string;\r\n promptPushNotificationPermissionRequest(): void;\r\n openPopUpOnSecondWebView(content : string, timeout : number) : void;\r\n closePopUpOnSecondWebView() : void;\r\n bringOmgToFront(): void;\r\n getBurnoutAnimationZIndex(): number;\r\n getCompanyByName(name: string): Promise;\r\n openHistoryGame(request: IOpenHistoryGameRequest): Promise\r\n readonly hybrid: IHybridService;\r\n readonly currentRegulation: ILegacyRegulation;\r\n getCurrentBrowserTabId(): string;\r\n readonly hasOpenOverlays: boolean;\r\n readonly gnwp: ISdkGnwpService;\r\n readonly scriptLoader: IScriptLoaderService;\r\n startGeoLocationOnOpenRealGame(): Promise;\r\n getButtonsForNonRetryGeoFlow(): Partial[];\r\n stopGameTimeReminders(): void;\r\n isEligibleForGameGeoRetry(): boolean;\r\n getRetryMessageButtons(analyticsLabel: string, resolve?, reject?): Partial[];\r\n startAutoRetryGeoProcess(): Promise;\r\n}\r\n","import {CGP_EVENTS_NAMES, CGPEventSubscription, ICgpSdk} from './cgp-sdk.interface';\r\nimport { LiveTables } from '../live-table-feeds-service/live-table-feeds.service.interface';\r\nimport {TimeSpan} from '@sparkware/app-utils';\r\nimport {SYSTEM_EVENTS} from \"../../../sdk/src/events/events\";\r\nimport {\r\n IFreePlayVoucherData,\r\n IFreePlayVoucherDelta\r\n} from \"../../../common/interfaces/free-play/free-play-voucher-data.interface\";\r\nimport {\r\n INetPositionGameTypeData\r\n} from \"../../../sdk/src/services/player_messages_service/firebase/handlers/netposition_handler.interfaces\";\r\n\r\nexport interface OnShowGamePopupCallbackParams {\r\n gameType?: number,\r\n gamePopupApprovedCallback: () => void\r\n}\r\n\r\nexport interface OnGameOpenParams {\r\n gameType: number;\r\n isReal: boolean;\r\n}\r\n\r\nexport interface OnGameCloseParams {\r\n gameType: number;\r\n isReal: boolean;\r\n isGamePlayed: boolean;\r\n showNextGameSuggestion: boolean;\r\n}\r\n\r\nexport interface OnPlayerActionParams {\r\n actionName: string;\r\n options?: any;\r\n}\r\n\r\nexport interface OnOauthStateChangedParams {\r\n loginType?: number;\r\n logoutReason?: number;\r\n kickReason?: number;\r\n}\r\n\r\nexport class SdkEvents {\r\n constructor(private CGP: ICgpSdk) {\r\n\r\n }\r\n\r\n onOAuthStateChanged(callback: (params: OnOauthStateChangedParams) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.OAUTH_STATE_CHANGE,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onBeforeOAuthStateChanged(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.ON_BEFORE_OAUTH_STATE_CHANGE,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onDeepLinkReceived(callback: (deepLinkObject: any) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.DEEPLINK_RECEIVED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onShowGamePopup(callback: (args: OnShowGamePopupCallbackParams) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.GAME_POPUP_SHOW,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onGameOpen(callback: (params: OnGameOpenParams) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.GAME_OPEN,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onGameClose(callback: (params?: OnGameCloseParams) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.CLOSE_GAME,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n\r\n onPlayerAction(callback: (eventData: OnPlayerActionParams) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: 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 onFreeplayVouchersUpdated(callback: (vouchers: []) => void):CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.FREE_PLAY_UPDATED,\r\n callback: callback,\r\n context: this\r\n })\r\n }\r\n\r\n onJackpotsWithStateUpdate(callback: (jackpots: unknown) => void) {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.LIVE_FEEDS_STATE_JACKPOTS_UPDATED,\r\n callback,\r\n context: this\r\n });\r\n }\r\n\r\n onJackpotsAmountsUpdate(callback: (jackpots: Record) => void) {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.LIVE_FEEDS_JACKPOT_AMOUNTS_UPDATED,\r\n callback,\r\n context: this\r\n });\r\n }\r\n\r\n onBalanceUpdated(callback: () => void) {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.BALANCE_UPDATED,\r\n callback,\r\n context: this\r\n });\r\n }\r\n\r\n onSessionTimerUpdate(callback: (data: {sessionTime: TimeSpan}) => void) {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.SESSION_TIMER_UPDATE,\r\n callback,\r\n context: this\r\n });\r\n }\r\n\r\n onRealityCheckOpened(callback: () => void) {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.REALITY_CHECK_OPENED,\r\n callback,\r\n context: this\r\n });\r\n }\r\n\r\n onRealityCheckClosed(callback: () => void) {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.REALITY_CHECK_CLOSED,\r\n callback,\r\n context: this\r\n });\r\n }\r\n\r\n onDailyDealRemoveIndication(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.DAILY_DEAL_REMOVE_INDICATION,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onRegistrationCompleted(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.REGISTRATION_COMPLETED,\r\n callback,\r\n context: this\r\n });\r\n }\r\n\r\n onOmgAwaitingMessagesUpdated(callback: (numberOfAwaitingMessages: number) => void) {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.OMG_AWAITING_MESSAGES_UPDATED,\r\n callback,\r\n context: this\r\n });\r\n }\r\n\r\n onAppResumed(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.APP_RESUMED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onAppPaused(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.APP_PAUSED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onExternalLinkClosed(callback: (linkSource: string) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.EXTERNAL_LINK_CLOSED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onTouchIDActiveStateChanged(callback: (state: boolean) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.TOUCH_ID_STATE_CHANGED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onOmgDisplayed(callback: (state: unknown) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.OMG_DISPLAYED,\r\n callback,\r\n context: this\r\n });\r\n }\r\n\r\n onBurnoutMessageReceived(callback: (state: unknown) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.SESSION_EVENT_PLAYER_BURNOUT_MESSAGE_RECEIVED,\r\n callback,\r\n context: this\r\n });\r\n }\r\n\r\n onLiveGameSwitched(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.LIVE_GAME_SWITCHED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onPromotionsChanged(callback: (data: {Cid: number, IsPromotionDisplayedInClient: boolean, IndicationInClientPromotionsIds: number[]}) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.PROMOTIONS_CHANGED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onDepositWidgetClosed(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.DEPOSIT_WIDGET_CLOSED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onPostMessage(callback: (message: MessageEvent) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.POST_MESSAGE_ARRIVE,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onHybridPostMessage(callback: (message: MessageEvent) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.HYBRID_POST_MESSAGE_ARRIVE,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onFreePlayBatchAdded(callback: (data: IFreePlayVoucherData[]) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.SESSION_EVENT_FREE_PLAY_BATCH_ADDED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onFreePlayBatchUpdated(callback: (data: IFreePlayVoucherDelta[]) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.SESSION_EVENT_FREE_PLAY_BATCH_UPDATED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onFreePlayBatchRemoved(callback: (voucherIds: string[]) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.SESSION_EVENT_FREE_PLAY_BATCH_REMOVED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onThirdPartyVouchersReceived(callback: (vouchers: IFreePlayVoucherData[]) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.SESSION_EVENT_THIRD_PARTY_FREE_PLAY_UPDATED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onHybridEmbeddedGameLoadingIndicatorUpdateV1(callback: (percentage: number | string) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.LOADING_INDICATOR_EMBEDDED_UPDATE,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onHybridEmbeddedGameLoadingIndicatorUpdateV2(callback: (eventData: {statusBar: number | string; numberOfPackages: string}) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.LOADING_INDICATOR_EMBEDDED_UPDATE_V2,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onFirebaseGotNewToken(callback: (eventData: {token: string}) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.FIREBASE_GOT_NEW_TOKEN,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onNetPositionUpdated(callback: (gamesTypesData: INetPositionGameTypeData[]) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.SESSION_EVENT_NET_POSITION_UPDATE,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onLoginSessionResumed(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.LOGIN_SESSION_RESUMED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onUserApprovedPostLoginPopup(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.USER_APPROVE_GAME_POPUP,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n}\r\n","import {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\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}","import {\r\n AIRecommendations,\r\n CmsUserSignature,\r\n ISdkService,\r\n SdkOpenExternalLinkParams,\r\n OpenGameOptions,\r\n UserData, GameRawData, ExternalBrandCallbackInfo, DateAndTimeFormat, ITokenInfo, IToasterParams\r\n} from './sdk.service.interface';\r\nimport {action, computed, observable} from 'mobx';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {\r\n DeviceInfo,\r\n GetAutoLoginTokenResponse,\r\n ICgpSdk,\r\n CgpSkinInfo,\r\n GetPlatformTokenResponse,\r\n ISdkUtils,\r\n ISdkRegulationService,\r\n IOpenHistoryGameRequest\r\n} from './cgp-sdk.interface';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IRunningGameHandler} from '../games/running-game-handler.interface';\r\nimport {SdkEvents} from './sdk-events';\r\nimport {ISdkComponentRenderer} from '../sdk-component-factory/sdk-component-factory.service.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {IUsefulLinkSdkData} from \"../user-menu/useful-links/useful-link-data.interface\";\r\nimport {CGP_OBJECT_NAME} from '../../app-bootstrap/constants';\r\nimport {IAutoLoginParams} from '../../../common/interfaces/autologin-params.interface';\r\nimport { BalanceType } from '../../../common/const/wallet_balance_type';\r\nimport IStructuredLoggingService from \"../../../common/interfaces/structured-logging-service-interface\";\r\nimport {MarketingParams} from \"../../../common/interfaces/marketing-params.interface\";\r\nimport {IGeoLocationInfo} from \"../../../common/interfaces/geo-location-info.interface\";\r\nimport {createDefaultCashierWidgetEligibility} from \"../../../common/interfaces/cashier-widgets-eligibility-details.interface\";\r\nimport {ILegacyCompanyViewModel} from \"../companies/legacy-company-view-model.interface\";\r\nimport { IAbTestingFeatureProperties } from '../../../common/interfaces/ab-testing-interface';\r\nimport {IHybridService} from \"../hybrid/hybrid.service.interface\";\r\nimport {ILegacyRegulation} from \"../regulation/legacy-regulation.interface\";\r\nimport {SdkEventsTrigger} from \"./sdk-events-trigger\";\r\nimport {NullableNumber} from \"../../../common/types/nullable-types\";\r\nimport ISdkGnwpService from \"../../../sdk/src/services/gnwp/gnwp_service_interface\";\r\nimport {IScriptLoaderService} from \"../scrip-loader/script-loader.service.interface\";\r\nimport {IFreePlayVoucherData} from \"../../../common/interfaces/free-play/free-play-voucher-data.interface\";\r\nimport {ISdkMessageButtonOptions} from \"../../../common/interfaces/sdk-message-button-options\";\r\nimport {IModalDialogButtonsComponentProps, IModalDialogActionProps} from \"../../components/modal-dialog/modal-dialog-actions.component\";\r\nimport IStateOfResidence from \"../../../common/interfaces/state-of-residence.interface\";\r\n\r\nexport interface IGetAiRecommendationsOptions {\r\n maxGames?: number;\r\n filterOutRecentlyPlayedGames?: boolean;\r\n numberOfRecentlyPlayedGameToFilterOut?: number;\r\n}\r\n\r\nexport class SdkService extends ServiceBase implements ISdkService {\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n\r\n this._updateLocalStorageAccordingToCookie();\r\n\r\n this._displayHybrid();\r\n\r\n this.reaction(() => this.services.location.currentUri,\r\n () => {\r\n if (this.services.location.hasNavigationHistory) {\r\n this.CGP.routeChanged();\r\n }\r\n });\r\n }\r\n\r\n private _displayHybrid() {\r\n //F TO DO why is this here and not in the SDK ?\r\n if (Check.isFunction(this.CGP.displayHybrid)) {\r\n this.CGP.displayHybrid();\r\n }\r\n }\r\n\r\n private _events: SdkEvents = null;\r\n\r\n get events(): SdkEvents {\r\n if (!this._events) {\r\n this._events = new SdkEvents(this.CGP);\r\n }\r\n\r\n return this._events;\r\n }\r\n\r\n\r\n private get CGP(): ICgpSdk {\r\n return this.services.window.getGlobalProperty(CGP_OBJECT_NAME) as ICgpSdk;\r\n }\r\n\r\n\r\n get isAuthorized(): boolean {\r\n return this.CGP.isAuthorized();\r\n }\r\n\r\n get isLoginFromRegistration(): boolean {\r\n return this.CGP.isLoginFromRegistration();\r\n }\r\n\r\n get getCGPMaxOverlayZIndex(): number {\r\n return this.CGP.getCGPMaxOverlayZIndex();\r\n }\r\n\r\n get structuredLoggingService(): IStructuredLoggingService {\r\n return this.CGP.structuredLoggingService();\r\n }\r\n\r\n get dateAndTimeFormat(): DateAndTimeFormat {\r\n return this.CGP.getRegulationDateAndTimeFormat();\r\n }\r\n\r\n get userData(): UserData {\r\n let rawUserData = this.CGP.getUserData();\r\n let rawAccountData = (rawUserData && rawUserData.accountData) || {};\r\n\r\n let depositWidgetEligibility = this.CGP.getDepositWidgetEligibilityDetails() || createDefaultCashierWidgetEligibility();\r\n let cashOutWidgetEligibility = this.CGP.getCashoutWidgetEligibilityDetails() || createDefaultCashierWidgetEligibility();\r\n\r\n return {\r\n userName: rawUserData?.userName,\r\n firstName: rawAccountData.FirstName,\r\n lastName: rawAccountData.LastName,\r\n IsVIP: this.CGP.isVIP(),\r\n DWHGameGroupOrientation: rawAccountData.DWHGameGroupOrientation, // when product are asking to do something with user Orientation, - it is not this one. use this.services.userGameOrientation.gameGroup\r\n statusGroupId: rawAccountData.StatusGroupId,\r\n GenderId: rawAccountData.genderID,\r\n depositWidgetEligibility: depositWidgetEligibility,\r\n cashOutWidgetEligibility: cashOutWidgetEligibility,\r\n timeSinceRegistration: rawAccountData.TimeSinceRegistration,\r\n cid: rawUserData?.cid,\r\n playerRMStatus: rawAccountData.PlayerRMStatus,\r\n sessionId: this.CGP.getSessionId(),\r\n registrationCountry: rawAccountData.RegistrationCountry,\r\n joinDate: rawAccountData.JoinDate,\r\n isFTD: rawAccountData.FTDSubBrand === this.getSubBrandID(),\r\n IsPromotionPermitted: rawAccountData.IsPromotionPermitted\r\n };\r\n }\r\n\r\n\r\n @observable isSdkReady: boolean = true;\r\n\r\n @action.bound\r\n private _setIsSdkReady(value: boolean) {\r\n this.isSdkReady = value;\r\n }\r\n\r\n getAIRecommendations(options?: IGetAiRecommendationsOptions): Promise {\r\n return this.CGP.getAIList(options?.maxGames, options?.filterOutRecentlyPlayedGames, options?.numberOfRecentlyPlayedGameToFilterOut).then(data => {\r\n return {\r\n gameTypes: data.aiGameTypesArray || [],\r\n engine: data.aiEngine\r\n };\r\n });\r\n }\r\n\r\n getTrendingRecommendedGamesForPlayer(...listTypeIds: number[]): Promise<{ [key: number]: number[] }> {\r\n return this.CGP.getTrendingRecommendedGamesForPlayer(listTypeIds);\r\n }\r\n\r\n getAINewRecommendations(options?: IGetAiRecommendationsOptions): Promise {\r\n return this.CGP.getAINewGamesList(options?.maxGames, options?.filterOutRecentlyPlayedGames, options?.numberOfRecentlyPlayedGameToFilterOut).then(data => {\r\n return {\r\n gameTypes: data.aiGameTypesArray || [],\r\n engine: data.aiEngine\r\n };\r\n });\r\n }\r\n\r\n getCurrentServerDate(): Date {\r\n return this.CGP.getCurrentServerDate();\r\n }\r\n\r\n getAbTestingData(): { [key: string]: IAbTestingFeatureProperties } {\r\n return this.CGP.getAbTestingData();\r\n }\r\n\r\n getAbTestingDataForFeature(featureName: string): IAbTestingFeatureProperties {\r\n return this.CGP.getAbTestingDataForFeature(featureName);\r\n }\r\n\r\n waitForAnonymousAbTestingData(): Promise {\r\n return this.CGP.waitForAnonymousAbTestingData();\r\n }\r\n\r\n sendAnalytics(category: string, action: string = null, label: string = null, value: string = null, omitStructuredLogger: boolean = null) {\r\n try {\r\n this.CGP.sendAnalytics({\r\n category: category,\r\n action: action,\r\n label: label,\r\n value: value,\r\n omitStructuredLogger: omitStructuredLogger\r\n });\r\n } catch (ex) {\r\n this.services.logger.error(`SdkService failed to sendAnalytics: ${ex}`);\r\n }\r\n }\r\n\r\n getCmsUserSignature(): CmsUserSignature {\r\n return this.CGP.getUserSegments();\r\n }\r\n\r\n formatMoney(value: number, withDecimal: boolean = false): string {\r\n return this.CGP.format$$$(value, withDecimal);\r\n }\r\n\r\n get device(): DeviceInfo {\r\n return this.CGP.device();\r\n }\r\n\r\n waitForAutologin(): Promise {\r\n return this.CGP.waitForAutologin();\r\n }\r\n\r\n openExternalLink(linkParams: SdkOpenExternalLinkParams, useCallbackURL = false): Promise {\r\n\r\n let params: any = {...linkParams};\r\n\r\n //F TO DO - this if statement should be in SDK\r\n if (useCallbackURL && params.source === this.CGP.getSourceSubBrandName()) {\r\n params.callbackUrl = this.CGP.getExternalBrandCallbackURL();\r\n }\r\n\r\n return this.CGP.openExternalLink(params);\r\n }\r\n\r\n openResponsibleGamingLink(view?: number): void {\r\n this.CGP.openResponsibleGamingLink(view);\r\n }\r\n\r\n isGameRunning(): boolean {\r\n return this.CGP.isGameRunning();\r\n }\r\n\r\n async openGame(options: OpenGameOptions): Promise {\r\n\r\n let openGameOptions: any = {...options};\r\n if (!options.showRegister) {\r\n openGameOptions.navbar = { //F TO DO - do we realy need this navbar option ?\r\n login: {\r\n showRegister: false\r\n }\r\n }\r\n }\r\n\r\n return await this.CGP.openGame(openGameOptions);\r\n\r\n }\r\n\r\n async openLoginForm(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 closeRunningGame(): void {\r\n this.CGP.closeRunningGame();\r\n }\r\n\r\n getExternalBrandCallbackInfo(): ExternalBrandCallbackInfo {\r\n return {\r\n method: this.CGP.getExternalBrandCallbackURLMethod(),\r\n url: this.CGP.getExternalBrandCallbackURL()\r\n }\r\n }\r\n\r\n menuActionExecute(key: string): void {\r\n return this.CGP.menuActionExecute(key);\r\n }\r\n\r\n async getUsefulLinks(): Promise {\r\n try {\r\n return await this.CGP.menuJSON();\r\n } catch (ex) {\r\n console.error(\"Failed to get CGP menuJSON!\", ex);\r\n return [];\r\n }\r\n }\r\n\r\n startLiveTableFeeds(): void {\r\n if (Check.isFunction(this.CGP.startLiveTableFeeds)) {\r\n this.CGP.startLiveTableFeeds();\r\n } else {\r\n //TODO - to be removed in the future\r\n (this.CGP as any).startEvolutionLiveFeeds();\r\n }\r\n }\r\n\r\n stopLiveTableFeeds(): void {\r\n if (Check.isFunction(this.CGP.stopLiveTableFeeds)) {\r\n this.CGP.stopLiveTableFeeds();\r\n } else {\r\n //TODO - to be removed in the future\r\n (this.CGP as any).stopEvolutionLiveFeeds();\r\n }\r\n }\r\n\r\n refreshThirdPartyVouchers(): Promise {\r\n return this.CGP.refreshThirdPartyVouchers();\r\n }\r\n\r\n closeCurrentDetailHistory(): void {\r\n // we check if closeCurrentDetailHistory is defined just in case Orbit is not deployed along with the SDK version that contains this function\r\n if (this.CGP.closeCurrentDetailHistory) {\r\n this.CGP.closeCurrentDetailHistory();\r\n }\r\n }\r\n\r\n getRichPageUrl(campaignId: string) {\r\n return this.CGP.getRichPageUrl(campaignId);\r\n }\r\n\r\n getDailyDealCampaigns() {\r\n return this.CGP.getDailyDealCampaigns();\r\n }\r\n\r\n getJackpotsWithState() {\r\n return this.CGP.getJackpotsWithState();\r\n }\r\n\r\n getJackpotAmountByGameType(gameType: number): NullableNumber {\r\n return this.CGP.getJackpotAmountByGameType(gameType);\r\n }\r\n\r\n\r\n getNumberOfAwaitingMessages() {\r\n return this.CGP.getNumberOfAwaitingMessages();\r\n }\r\n\r\n openOmgAwaitingMessages() {\r\n return this.CGP.openOmgAwaitingMessages();\r\n }\r\n\r\n getFreeplayVouchers() {\r\n return this.CGP.getFreeplayVouchers();\r\n }\r\n\r\n showToaster(toasterData: IToasterParams) {\r\n return this.CGP.showToaster(toasterData);\r\n }\r\n\r\n getBankroll(balanceType: BalanceType, plainNumber?: boolean) {\r\n return this.CGP.getBankroll(balanceType, plainNumber);\r\n }\r\n\r\n runAutoLogin(autoLoginParams: IAutoLoginParams) {\r\n return this.CGP.runAutoLogin(autoLoginParams);\r\n }\r\n\r\n loadSafezoneSdk(): Promise {\r\n return this.CGP.loadSafezoneSdk();\r\n }\r\n\r\n getProductPackageId(): number {\r\n return this.CGP.getProductPackage();\r\n }\r\n\r\n getSkin(): CgpSkinInfo {\r\n return {\r\n getPlatformSystemID: () => this.CGP.getSkin().getPlatformSystemID(),\r\n getClientPlatform: () => this.CGP.getSkin().getClientPlatform(),\r\n getVersion: () => this.CGP.getSkin().getVersion(),\r\n getCulture: () => this.CGP.getSkin().getCulture(),\r\n 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 bringOmgToFront(): void {\r\n this.CGP.bringOmgToFront();\r\n }\r\n\r\n getBurnoutAnimationZIndex() {\r\n return this.CGP.getBurnoutAnimationZIndex();\r\n }\r\n\r\n getCompanyByName(name: string): Promise {\r\n return this.CGP.getCompanyByName(name);\r\n }\r\n\r\n openHistoryGame(request: IOpenHistoryGameRequest): Promise {\r\n return this.CGP.openHistoryGame(request);\r\n }\r\n\r\n get hybrid(): IHybridService {\r\n return this.CGP.hybrid;\r\n }\r\n\r\n get currentRegulation(): ILegacyRegulation {\r\n return this.CGP.currentRegulation;\r\n }\r\n\r\n eventsTrigger: SdkEventsTrigger = new SdkEventsTrigger();\r\n\r\n getCurrentBrowserTabId(): string {\r\n return this.CGP.getCurrentBrowserTabId();\r\n }\r\n\r\n get hasOpenOverlays(): boolean {\r\n return this.CGP.hasOpenOverlays;\r\n }\r\n\r\n get gnwp(): ISdkGnwpService {\r\n return this.CGP.gnwp;\r\n }\r\n\r\n get scriptLoader(): IScriptLoaderService {\r\n return this.CGP.scriptLoader;\r\n }\r\n\r\n startGeoLocationOnOpenRealGame(): Promise {\r\n return this.CGP.startGeoLocationOnOpenRealGame();\r\n }\r\n\r\n private _convertButtonsToOrbitFormat(buttons) {\r\n\r\n const sdkButtonToModalButton = (sdkBtnOpts: Partial): IModalDialogActionProps => {\r\n return {\r\n text: sdkBtnOpts.name || \"\",\r\n onClick: sdkBtnOpts.callback,\r\n className: sdkBtnOpts.cssClass\r\n };\r\n };\r\n\r\n const primarySdkButton = buttons.find((sdkBtnOpts) => {\r\n return Check.isNullOrUndefined(sdkBtnOpts.type) || sdkBtnOpts.type === \"main\";\r\n });\r\n const secondarySdkButton = buttons.find((sdkBtnOpts) => {\r\n return (sdkBtnOpts.type && sdkBtnOpts.type === \"secondary\");\r\n });\r\n\r\n let modalDialogButtonsComponentProps: IModalDialogButtonsComponentProps = {} as IModalDialogButtonsComponentProps;\r\n if (primarySdkButton) {\r\n // if we detected a primary button then we are OK, use it, and if the secondary exists also, use that too\r\n modalDialogButtonsComponentProps.primaryAction = sdkButtonToModalButton(primarySdkButton);\r\n if (secondarySdkButton) {\r\n modalDialogButtonsComponentProps.secondaryAction = sdkButtonToModalButton(secondarySdkButton);\r\n }\r\n } else {\r\n // if we did not detected a primary button, use the secondary as primary because the primary is required in IModalDialogButtonsComponentProps\r\n if (secondarySdkButton) {\r\n modalDialogButtonsComponentProps.primaryAction = sdkButtonToModalButton(secondarySdkButton);\r\n } else {\r\n throw new Error(\"No button found that we can use as primary button\");\r\n }\r\n }\r\n\r\n return modalDialogButtonsComponentProps;\r\n }\r\n\r\n\r\n getButtonsForNonRetryGeoFlow(): IModalDialogButtonsComponentProps {\r\n const buttons = this.CGP.getButtonsForNonRetryGeoFlow();\r\n return this._convertButtonsToOrbitFormat(buttons);\r\n }\r\n\r\n getRetryMessageButtons(analyticsLabel: string, resolve?, reject?): IModalDialogButtonsComponentProps {\r\n const buttons = this.CGP.getRetryMessageButtons(analyticsLabel, resolve, reject);\r\n return this._convertButtonsToOrbitFormat(buttons);\r\n }\r\n\r\n stopGameTimeReminders(): void {\r\n this.CGP.stopGameTimeReminders();\r\n }\r\n\r\n isEligibleForGameGeoRetry(): boolean {\r\n return this.CGP.isEligibleForGameGeoRetry();\r\n }\r\n\r\n startAutoRetryGeoProcess(): Promise {\r\n return this.CGP.startAutoRetryGeoProcess();\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(',').map(id => id.toLowerCase());\r\n }\r\n }\r\n\r\n return [];\r\n\r\n }\r\n\r\n async applyFilters(filterIds: string[]): Promise {\r\n this.services.window.scrollTo(0, 0);\r\n\r\n if(filterIds.length > 0) {\r\n await this.services.location.push('#filters=' + filterIds.join(','));\r\n } else {\r\n await this.services.location.push(this.services.location.currentUri.pathName.toString());\r\n }\r\n }\r\n\r\n async clearFilters(): Promise {\r\n await this.services.location.push(this.services.location.currentUri.pathName.toString());\r\n }\r\n\r\n private _currentFilteringStrategy: IGamesFilterStrategy;\r\n\r\n get isFilterOn(): boolean {\r\n return this.currentAppliedFiltersIds.length > 0;\r\n }\r\n\r\n get isFilteringAvailable(): boolean {\r\n return this._currentFilteringStrategy.isFilteringAvailable;\r\n }\r\n\r\n isFilterApplied(filterId: string): boolean {\r\n return this.currentAppliedFiltersIds.includes(filterId?.toLowerCase());\r\n }\r\n\r\n renderMobileFiltersIndicator(): React.ReactElement {\r\n return this._currentFilteringStrategy.renderMobileFiltersIndicator();\r\n }\r\n\r\n renderPCFiltersIndicator(): Nullable {\r\n return this._currentFilteringStrategy.renderPCFiltersIndicator();\r\n }\r\n\r\n showFiltersEditor(): void {\r\n this._currentFilteringStrategy.showFiltersEditor();\r\n }\r\n}\r\n","import {RedTigerJackpotWidgetConfiguration} from './red-tiger-jackpot-widget.configuration';\r\nimport { JackpotWidgetConfiguration } from './jackpot-widget.configuration';\r\nimport {HomePageHeaderArena} from \"./home-page.configuration\";\r\nimport {LinkToOfferConfiguration} from \"./link-to-offer.configuration\";\r\nimport {NullableUndefined} from \"../../../../common/types/nullable-types\";\r\nimport {\r\n CategoryDefinitionId\r\n} from \"../../games-filter/filters-categories-definitions/filter-category-definition.interface\";\r\n\r\nexport interface InfoSideBarConfiguration {\r\n readonly infoImage: string;\r\n readonly infoTitle: string;\r\n readonly infoText: string;\r\n}\r\n\r\nexport enum ApiListType {\r\n TOP_PICKS = \"TOP_PICKS\",\r\n NEW_GAMES = \"NEW_GAMES\",\r\n PLAYERS_LIKE_YOU = \"PLAYERS_LIKE_YOU\",\r\n RECENTLY_PLAYED = \"RECENTLY_PLAYED\",\r\n STATIC_VIDEO = \"STATIC_VIDEO\",\r\n LIVE_CASINO_VIDEO = \"LIVE_CASINO_VIDEO\",\r\n BECAUSE_YOU_PLAYED = \"BECAUSE_YOU_PLAYED\",\r\n}\r\n\r\nexport interface ListConfiguration {\r\n readonly title: string;\r\n readonly display: boolean;\r\n readonly gamesId: number[];\r\n readonly isSelfUpdatedByNewest?: boolean;\r\n readonly forceRoundIcons?: boolean;\r\n}\r\n\r\nexport interface SwiperGamesListConfiguration extends ListConfiguration {\r\n readonly title: string;\r\n readonly display: boolean;\r\n readonly gamesId: number[];\r\n readonly gamesAdminRefKey?: string;\r\n readonly templateType?: string;\r\n readonly redTigerWidget?: RedTigerJackpotWidgetConfiguration;\r\n readonly jackpotWidget?: JackpotWidgetConfiguration;\r\n readonly titleIconClassName?: string;\r\n readonly useSquareIcons?: boolean;\r\n readonly showNumberBadge?: boolean;\r\n readonly useAISortedList?: boolean;\r\n readonly ignoreNumberOfGamesInAISorting?: number;\r\n readonly forceListInLayout?: boolean;\r\n readonly seeAll?: string;\r\n readonly listId?: number; // should be mandatory??\r\n readonly shouldInjectUsernameInTitle?: boolean;\r\n readonly apiListType?: ApiListType;\r\n}\r\n\r\nexport interface ArenaGamesGridConfiguration extends ListConfiguration {\r\n readonly listId: number;\r\n readonly title: string;\r\n readonly display: boolean;\r\n readonly useAISortedList: boolean;\r\n readonly gamesId: number[];\r\n readonly templateType?: string;\r\n readonly gamesAdminRefKey?: string;\r\n readonly useSquareIcons?: boolean;\r\n}\r\n\r\nexport interface SeoSectionConfiguration {\r\n display: boolean;\r\n componentID: string;\r\n templateID: string;\r\n fallbackComponent: string;\r\n}\r\n\r\nexport interface HeaderArenaConfiguration {\r\n display: boolean;\r\n title: string;\r\n image: string;\r\n link: string;\r\n}\r\n\r\nexport interface HeaderFilterConfiguration {\r\n display: boolean;\r\n title: string;\r\n image: string;\r\n filter: string;\r\n seoPage: string;\r\n isActiveTabDefault?: boolean;\r\n maxGamesToShow?: number;\r\n banners?: {\r\n promotionalBanner: {\r\n templateID: string,\r\n componentID: string,\r\n bannerAdminPlaceholderId?: string\r\n }\r\n }\r\n}\r\n\r\nexport interface ArenaCommonConfiguration {\r\n topImage: string;\r\n title: string;\r\n seoSection: SeoSectionConfiguration;\r\n}\r\n\r\nexport interface CasinoArenaPromotionalBannerConfiguration {\r\n templateID: string;\r\n componentID: string;\r\n displayRowPlace?: number;\r\n displayTablePlace?: number;\r\n fallbackComponent?: string;\r\n}\r\n\r\nexport interface CasinoArenaConfiguration extends ArenaCommonConfiguration {\r\n promotionalBanner?: CasinoArenaPromotionalBannerConfiguration\r\n linkToOffer?: LinkToOfferConfiguration;\r\n filters: NullableUndefined;\r\n advancedFilters?: {\r\n categories: [{\r\n id: CategoryDefinitionId;\r\n }];\r\n };\r\n infoSideBar: InfoSideBarConfiguration;\r\n swiperGamesList: SwiperGamesListConfiguration[];\r\n allGamesGrid: ArenaGamesGridConfiguration[];\r\n orderListsByAI?: boolean;\r\n arenaType?: string;\r\n homepageHeader?: HomePageHeaderArena;\r\n}\r\n\r\nexport interface LiveCasinoHeaderConfiguration {\r\n display: boolean;\r\n gameId: number;\r\n image: string;\r\n}\r\n\r\nexport interface LiveCasinoPopularTableConfiguration {\r\n title: string;\r\n gamesId: number[];\r\n useAISortedList?: boolean;\r\n ignoreNumberOfGamesInAISorting?: number;\r\n}\r\n\r\nexport interface LiveCasinoPromotionalBannerConfiguration {\r\n displayTablePlace: number;\r\n displayRowPlace: number;\r\n componentID: string;\r\n templateID: string;\r\n bannerAdminPlaceholderId?: string;\r\n}\r\n\r\nexport interface LiveCasinoConfiguration extends ArenaCommonConfiguration {\r\n promotionalBanner: LiveCasinoPromotionalBannerConfiguration;\r\n linkToOffer?: LinkToOfferConfiguration\r\n arenas: {\r\n gamesId: LiveCasinoHeaderConfiguration[];\r\n },\r\n popularTables: LiveCasinoPopularTableConfiguration[];\r\n customLayout: string;\r\n}\r\n\r\nexport interface NewLiveCasinoConfiguration extends ArenaCommonConfiguration {\r\n promotionalBanner: LiveCasinoPromotionalBannerConfiguration;\r\n arenas: HeaderFilterConfiguration[],\r\n popularTables: LiveCasinoPopularTableConfiguration[];\r\n customLayout: string;\r\n useAISortedList: boolean;\r\n linkToOffer?: LinkToOfferConfiguration;\r\n}\r\n\r\nexport type ArenaConfiguration = CasinoArenaConfiguration & LiveCasinoConfiguration & NewLiveCasinoConfiguration;\r\n\r\nexport type ArenasConfiguration = {[key: string]: ArenaConfiguration};\r\n\r\n","import {IUsefulLinkConfiguration} from \"../configurations/config-data-sections/drawer.configuration\";\r\nimport {IServiceFactoryExtended} from \"../service-factory-extended.interface\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {AppIdentifiers, AreaType} from \"@sparkware/uc-sdk-core\";\r\nimport {OPEN_SAFEZONE_SOURCE_VALUES} from \"../safezone/safezone.service.interface\";\r\nimport {CHANNEL_ELEMENTS, CHANNEL_SOURCE} from \"../../../common/const/casinofied-analytics-consts\";\r\nimport {MyAccountTab} from \"../external-links/handlers/my-account/my-account.external-link-handler.interface\";\r\nimport {ControlCenterDeeplink} from \"@sparkware/uc-sdk-core/lib/apps/control-center/control-center.interfaces\";\r\n\r\n\r\nexport default class UsefulLinkActions {\r\n private services: IServiceFactoryExtended;\r\n\r\n constructor(serviceFactory: IServiceFactoryExtended) {\r\n this.services = serviceFactory;\r\n }\r\n\r\n public executeAction(link: IUsefulLinkConfiguration) {\r\n // Handlers are instance methods of `this` named 'on[LinkId]'\r\n const handler = this._findHandler(link.id);\r\n if(handler) {\r\n handler.call(this, link);\r\n }\r\n }\r\n\r\n private _findHandler(linkId: string): (link: IUsefulLinkConfiguration) => void {\r\n if(!linkId || linkId.length < 1) {\r\n return null;\r\n }\r\n\r\n const handlerName = 'on' + linkId.charAt(0).toUpperCase() + linkId.slice(1);\r\n if(Check.isFunction(this[handlerName])) {\r\n return this[handlerName];\r\n }\r\n\r\n return null;\r\n }\r\n\r\n onTransactionHistory() {\r\n this.services.cashier.openTransactionHistory(\r\n {\r\n channel: {\r\n source: CHANNEL_SOURCE.casinoClient,\r\n area: AreaType.UserArea,\r\n element: CHANNEL_ELEMENTS.transactionHistoryButton\r\n }\r\n }\r\n )\r\n }\r\n\r\n onTippingHistory(link: IUsefulLinkConfiguration) {\r\n this.services.location.push(link.link);\r\n }\r\n\r\n onReverseWithdrawal() {\r\n this.services.cashier.openOldCashier({sessionType: 6});\r\n }\r\n\r\n onUploadDocuments() {\r\n this.services.cashier.openOldCashier({sessionType: 20});\r\n }\r\n\r\n onCompPoints() {\r\n this.services.externalLinks.openMyAccount({\r\n tabId: MyAccountTab.ComPoints\r\n });\r\n }\r\n\r\n onContactUs(link: IUsefulLinkConfiguration) {\r\n this.services.externalLinks.openContactUs({view: link.target});\r\n }\r\n\r\n onHelpCenter(link: IUsefulLinkConfiguration) {\r\n // If not enabled, we shouldn't show the link, but how do I do that?\r\n if (this.services.configuration.servicesConfigs.AppLauncher.apps.CR_HELP_CENTER.enabled) {\r\n this._openHelpWidget();\r\n } else {\r\n this.onContactUs(link);\r\n }\r\n }\r\n\r\n on888club(link: IUsefulLinkConfiguration) {\r\n this._openLinkAction(link);\r\n }\r\n\r\n onBeGambleAware(link: IUsefulLinkConfiguration) {\r\n this._openLinkAction(link);\r\n }\r\n\r\n onGameCare(link: IUsefulLinkConfiguration) {\r\n this._openLinkAction(link);\r\n }\r\n\r\n onSafeZone(link: IUsefulLinkConfiguration) {\r\n this.services.appLauncher.openControlCenterFull({\r\n businessCorrelationID: this.services.tools.getGuid(),\r\n channel: {\r\n area: AreaType.UserArea,\r\n element: CHANNEL_ELEMENTS.safezoneUsefulLink,\r\n source: CHANNEL_SOURCE.casinoClient\r\n },\r\n appSpecificParameters: {\r\n source: OPEN_SAFEZONE_SOURCE_VALUES.USER_AREA\r\n }\r\n });\r\n\r\n }\r\n\r\n onTimeSpentReminder(link: IUsefulLinkConfiguration) {\r\n this.services.appLauncher.openControlCenterFull({\r\n businessCorrelationID: this.services.tools.getGuid(),\r\n\r\n channel: {\r\n area: AreaType.UserArea,\r\n element: CHANNEL_ELEMENTS.safezoneUsefulLink,\r\n source: CHANNEL_SOURCE.casinoClient\r\n },\r\n appSpecificParameters: {\r\n deeplink: ControlCenterDeeplink.TimeSpentReminderPage,\r\n source: OPEN_SAFEZONE_SOURCE_VALUES.USER_AREA\r\n }\r\n });\r\n }\r\n\r\n onHelp() {\r\n this.services.externalLinks.openHelpPage();\r\n }\r\n\r\n private _openHelpWidget() {\r\n this.services.appLauncher.openHelpWidget({\r\n businessCorrelationID: this.services.tools.getGuid(),\r\n channel: {\r\n area: AreaType.NavigationMenu,\r\n element: AppIdentifiers.CRHelpCenter,\r\n source: AppIdentifiers.CasinoClient\r\n }\r\n });\r\n }\r\n\r\n private _openLinkAction({local:shouldOpenLocal, link}: IUsefulLinkConfiguration){\r\n if(shouldOpenLocal) {\r\n this.services.location.push(link);\r\n } else {\r\n this.services.externalLinks.openLink({\r\n sourceLink: link,\r\n view: 'window'\r\n })\r\n }\r\n }\r\n}\r\n","import styled, {css} from 'styled-components';\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\nimport {CssRule} from '../../../../themes/architecture/css-helpers/css-rule';\r\n\r\ninterface IUsefulLinksItemBoxProps {\r\n hideArrow?: boolean;\r\n icon?: string,\r\n}\r\n\r\nconst DefaultBox = styled.li`\r\n position: relative;\r\n width: 100%;\r\n /*\r\n The border-bottom is intentionally set to theme.colors.itemTopBorder and also border-top set to theme.colors.itemBottomBorder\r\n The reason is that the bottom border of the useful link item is actually the top border of the divider\r\n and top border of the useful link item is actually the bottom border of the divider\r\n\r\n */\r\n border-bottom: 1px solid ${props => props.theme.colors.boxBorder};\r\n border-top: 1px solid ${props => props.theme.colors.boxBorderDark};\r\n padding-left: 1rem;\r\n white-space: nowrap;\r\n cursor: pointer;\r\n color: ${props => props.theme.colors.text};\r\n background-color: ${props => props.theme.colors.background};\r\n \r\n &:hover {\r\n color: ${props => props.theme.colors.textHover};\r\n background-color: ${props => props.theme.colors.backgroundHover};\r\n }\r\n\r\n &:last-child {\r\n border-bottom: 0;\r\n }\r\n\r\n &:after {\r\n content: \"\";\r\n position: absolute;\r\n right: 5px;\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-repeat: no-repeat;\r\n ${CssRule.For.RTL.build()} & {\r\n transform: scaleX(-1);\r\n }\r\n }\r\n\r\n &:before {\r\n display: inline-block;\r\n margin-right: 5px;\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n }\r\n`;\r\n\r\n\r\nexport const PcBox = styled(DefaultBox)`\r\n height: 3.75rem;\r\n font-weight: 500;\r\n font-size: 1.3rem;\r\n line-height: 3.5rem;\r\n\r\n &:first-child {\r\n margin-top: 3px;\r\n }\r\n\r\n\r\n\r\n ${({hideArrow}) => !hideArrow && css`\r\n &:after {\r\n top: 1.5rem;\r\n width: 5px;\r\n height: 9px;\r\n background-position: -785px -657px;\r\n }\r\n `}\r\n\r\n ${({icon}) => icon && css`\r\n &:before {\r\n content: \"\";\r\n position:relative;\r\n top: 3px;\r\n width: 21px;\r\n height: 21px;\r\n background-image: url(\"${icon.toString()}\");\r\n }\r\n `}\r\n`;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\r\n display: flex;\r\n align-items: center;\r\n height: 5rem;\r\n font-weight: 300;\r\n font-size: 1.7rem;\r\n line-height: 5rem;\r\n color: ${props => props.theme.colors.textLight};\r\n ${({theme}) => theme.font.presets.regular};\r\n\r\n &:first-child {\r\n margin-top: 5px;\r\n }\r\n\r\n ${({hideArrow}) => !hideArrow && css`\r\n &:after {\r\n top: 2rem;\r\n width: 15px;\r\n height: 15px;\r\n background-position: -751px -655px;\r\n }\r\n `}\r\n\r\n ${({icon}) => icon && css`\r\n &:before {\r\n content: \"\";\r\n width: 21px;\r\n height: 21px;\r\n background-image: url(\"${icon.toString()}\");\r\n }\r\n `}\r\n`;\r\n\r\n\r\nexport const UsefulLinksItemDefaultBox = styledByDevice(PcBox, MobileBox);","import styled, { css } from 'styled-components';\r\nimport {PcBox as BasePcBox, MobileBox as BaseMobileBox} from './useful-links-item.default.box'\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\n\r\nconst common = css`\r\n margin: 1rem 0;\r\n border: none;\r\n &:after {\r\n right: 15px;\r\n background-size: 1036px;\r\n }\r\n`;\r\n\r\nconst PcBox = styled(BasePcBox)`\r\n ${common}\r\n font-size: 1.4rem;\r\n &:first-child {\r\n margin-top: 1rem;\r\n }\r\n &:after {\r\n background-position: -446px -370px;\r\n top: 1.15rem;\r\n width: 10px;\r\n height: 15px;\r\n }\r\n`;\r\n\r\nconst MobileBox = styled(BaseMobileBox)`\r\n ${common}\r\n ${({theme}) => theme.font.presets.body};\r\n &:after {\r\n background-position: -629px -525px;\r\n background-size: auto;\r\n height: 2rem;\r\n }\r\n`;\r\n\r\nexport const UsefulLinksItemCasino777Box = styledByDevice(PcBox, MobileBox);","import styled from 'styled-components';\r\n\r\nimport {PcBox as BasePcBox, MobileBox as BaseMobileBox} from './useful-links-item.default.box'\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\n\r\nconst PcBox = BasePcBox;\r\n\r\nconst MobileBox = styled(BaseMobileBox)`\r\n padding-left: 0;\r\n\r\n text-transform: uppercase;\r\n ${({theme}) => theme.font.presets.medium};\r\n &:after {\r\n content: none;\r\n }\r\n\r\n &:first-child {\r\n margin-top: 0;\r\n border-top: 0;\r\n }\r\n`;\r\n\r\nexport const UsefulLinksItemCipBox = styledByDevice(PcBox, MobileBox);","import 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/lib/apps/app-enums\";\r\nimport {IOverlayConsumer} from \"../overlay/overlay-consumer.interface\";\r\n\r\nconst ANALYTICS_CATEGORY = 'My_Area';\r\nconst USEFUL_LINKS_ACTION = 'Useful Links';\r\n\r\n// Logout button is not implemented by SdkUsefulLink; we can filter it out by this ID:\r\nconst LOGOUT_BUTTON_ID = 'logout_button';\r\n\r\nexport class UserMenuService extends ServiceBase implements IUserMenuService, IOverlayConsumer {\r\n private linkActions: UsefulLinkActions;\r\n /*\r\n The user menu is sort of modal:\r\n - you can open the base user menu (openMenu())\r\n - you can open the rewards panel (openRewards()), which replaces the\r\n user menu contents (but is still the same DOM element)\r\n\r\n You can check what's currently open by the properties:\r\n - isOpen: either the base user menu or a secondary panel is open\r\n - isRewardsInfo: the rewards secondary panel is open\r\n\r\n When closing things, you can either close just the secondary panel or close\r\n the whole menu (closeMenu()), which will also close the secondary.\r\n */\r\n\r\n @observable.ref isOpen: boolean = false;\r\n @observable.ref isRewardsInfo: boolean = false;\r\n\r\n @observable.ref usefulLinks: IUsefulLink[] = [];\r\n\r\n constructor(serviceFactory: IServiceFactoryExtended) {\r\n super(serviceFactory);\r\n this.services.overlay.registerConsumer(this);\r\n this.linkActions = new UsefulLinkActions(serviceFactory);\r\n\r\n this.reaction(() => this.services.user.isAuthorized,\r\n () => {\r\n this.reFetchLinks();\r\n }, {\r\n fireImmediately: true,\r\n });\r\n\r\n this.services.sdk.events.onGameOpen(() => this.services.userMenu.closeMenu());\r\n\r\n this.services.sdk.events.onTouchIDActiveStateChanged(() => this.reFetchLinks())\r\n }\r\n\r\n private reFetchLinks(){\r\n this._fetchLinks().then(links => {\r\n this._setUsefulLinks(links)\r\n });\r\n }\r\n\r\n get needsOverlay(): boolean {\r\n return this.isOpen;\r\n }\r\n\r\n getOverlayZIndex(): number | undefined {\r\n return this.zIndex - 1;\r\n }\r\n\r\n get zIndex(): number {\r\n return this.services.sideMenu.zIndex - 1;\r\n }\r\n\r\n onOverlayClicked(): void {\r\n this.closeMenu();\r\n }\r\n\r\n @action.bound\r\n private _setIsOpen(shouldOpen: boolean) {\r\n this.isOpen = shouldOpen;\r\n }\r\n\r\n @action.bound\r\n private _setIsRewardsInfo(shouldBeRewards: boolean) {\r\n this.isRewardsInfo = shouldBeRewards;\r\n }\r\n\r\n @action.bound\r\n private _setUsefulLinks(newLinks: IUsefulLink[]) {\r\n this.usefulLinks = newLinks;\r\n }\r\n\r\n private async _fetchLinks() {\r\n const fetchSteps = [this._fetchConfigLinks(), this._fetchSdkLinks()];\r\n const stepLinks = await Promise.all(fetchSteps);\r\n\r\n const combinedLinks = stepLinks.reduce((acc, n) => acc.concat(n), []);\r\n\r\n return this.orderLinksByPosition(combinedLinks);\r\n }\r\n\r\n private orderLinksByPosition(links: IUsefulLink[]): IUsefulLink[]{\r\n const sortingOrder = {\r\n \"top\": 0,\r\n \"bottom\": 1\r\n }\r\n\r\n return sortBy(links, (link) => sortingOrder[link.linkConfig.position] || 0);\r\n }\r\n\r\n private async _fetchConfigLinks(): Promise {\r\n const configData = this.services.configuration.data.drawer.usefulLinks;\r\n\r\n return configData.map(\r\n l => new ConfigUsefulLink(l, this._doConfigMenuAction.bind(this), this.services));\r\n }\r\n\r\n private async _fetchSdkLinks(): Promise {\r\n const sdkLinks = await this.services.sdk.getUsefulLinks();\r\n // NB: Logout button has special (separate) handling, therefore we don't want it from SDK:\r\n const filteredOutIds = this._getSdkFilteredOutUsefulLinksIds();\r\n const pickedLinks = sdkLinks.filter(l => filteredOutIds.indexOf(l.id) < 0);\r\n\r\n return pickedLinks.map(\r\n l => new SdkUsefulLink(this._doSdkMenuAction.bind(this), l));\r\n }\r\n\r\n private _getSdkFilteredOutUsefulLinksIds():string[] {\r\n let ids = [LOGOUT_BUTTON_ID];\r\n\r\n return ids;\r\n }\r\n\r\n private _doConfigMenuAction(link: IUsefulLinkConfiguration) {\r\n if (link.analytics && link.analytics.label) {\r\n this.services.analytics.sendAnalytics(ANALYTICS_CATEGORY, USEFUL_LINKS_ACTION, link.analytics.label);\r\n }\r\n this.linkActions.executeAction(link);\r\n this.closeMenu();\r\n }\r\n\r\n private _doSdkMenuAction({id, translation}: IUsefulLinkSdkData) {\r\n this.services.sdk.menuActionExecute(id);\r\n this.services.analytics.sendAnalytics(ANALYTICS_CATEGORY, USEFUL_LINKS_ACTION, translation);\r\n this.closeMenu();\r\n }\r\n\r\n doLogout() {\r\n this.services.analytics.sendAnalytics(ANALYTICS_CATEGORY, USEFUL_LINKS_ACTION, 'Logout'); \r\n this.services.regulation.current.logoutUser();\r\n this.closeMenu();\r\n }\r\n\r\n get greeting() {\r\n const now = new Date();\r\n const hour = now.getHours();\r\n const minute = now.getMinutes();\r\n\r\n const {defaultMessage, conditions} = this.services.configuration.data.drawer.welcomeMessage;\r\n let result = defaultMessage;\r\n for (const rule of conditions) {\r\n const [ruleHour, ruleMinute] = rule.time.split(':').map(parseInt);\r\n\r\n if (hour > ruleHour) {\r\n result = rule.text;\r\n } else if (hour === ruleHour) {\r\n // NB: only if the current hour is strictly equal to the rule hour do we need to check the minutes\r\n if (minute >= ruleMinute) {\r\n result = rule.text;\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n launchMyAccount(): void {\r\n this.services.analytics.sendAnalytics(ANALYTICS_CATEGORY, 'My Account', 'Open_my_Account');\r\n this.services.externalLinks.openMyAccount();\r\n this.closeMenu();\r\n }\r\n\r\n launchDeposit(): void {\r\n this.services.analytics.sendAnalytics(ANALYTICS_CATEGORY, 'Deposit', 'Open_deposit');\r\n this.services.cashier.openDeposit({\r\n channel: {\r\n source: CHANNEL_SOURCE.casinoClient,\r\n area: AreaType.UserArea,\r\n element: CHANNEL_ELEMENTS.depositButton\r\n }\r\n });\r\n this.closeMenu();\r\n }\r\n\r\n launchWithdraw(): void {\r\n this.services.analytics.sendAnalytics(ANALYTICS_CATEGORY, 'Withdraw', 'Open_withdraw');\r\n this.services.cashier.openWithdraw({\r\n channel: {\r\n source: CHANNEL_SOURCE.casinoClient,\r\n area: AreaType.UserArea,\r\n element: CHANNEL_ELEMENTS.withdrawButton\r\n }\r\n });\r\n this.closeMenu();\r\n }\r\n\r\n sendLoyaltyAnalytics(): void {\r\n const {category, action, label} = this.services.configuration.data.drawer.showLoyalty.analytics;\r\n this.services.analytics.sendAnalytics(category, action, label);\r\n }\r\n\r\n launchDrawerLink(config: IDrawerBoxConfiguration): void {\r\n if (Check.isObject(config.seo)) {\r\n this.services.analytics.sendAnalytics(config.seo.category, config.seo.action, config.seo.label);\r\n }\r\n\r\n if (this.services.menuFlow.hasCustomFlow(config)) {\r\n const flowResult = this.services.menuFlow.executeCustomFlow(config);\r\n if (!flowResult.continue)\r\n return;\r\n }\r\n\r\n const source = config.externalLinkSource || config.link;\r\n const options = config.options || {};\r\n this.services.externalLinks.openLink({source, options});\r\n this.closeMenu();\r\n }\r\n\r\n openRewards(): void {\r\n this.openMenu();\r\n this._setIsRewardsInfo(true);\r\n }\r\n\r\n closeMenu(): void {\r\n if (this.isOpen) {\r\n this._setIsOpen(false);\r\n this._setIsRewardsInfo(false);\r\n }\r\n }\r\n\r\n openMenu(): void {\r\n if (!this.isOpen) {\r\n this.services.analytics.sendAnalytics('Navigator', 'Navbar', 'Open_UserMenu');\r\n this._setIsOpen(true);\r\n this.services.sideMenu.closeMobileMenu();\r\n this.services.drawer.right.closeDrawer();\r\n }\r\n }\r\n}\r\n","import styled from 'styled-components';\r\nimport { Image } from '../../../../raw-components/image/image';\r\n\r\nexport const GameBadgeDefaultBox = styled(Image)`\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n height: 24%;\r\n width: 23%;\r\n`;\r\n","import styled from 'styled-components';\r\nimport {GameBadgeDefaultBox} from './game-badge.default.box';\r\n\r\nexport const GameBadgeCasino777Box = styled(GameBadgeDefaultBox)`\r\n height: 28%;\r\n width: 28%;\r\n`;","import styled from 'styled-components';\r\nimport { Image } from '../../../../raw-components/image/image';\r\n\r\nexport const GameBadgeSIBox = styled(Image)`\r\n position: absolute;\r\n bottom: 0;\r\n left: 0;\r\n max-width: 40%;\r\n`;\r\n","import {GameBadgeDefaultBox} from './game-badge.default.box';\r\nimport {styledByTheme} from '../../../../../themes/architecture/styled-by-theme';\r\nimport {GameBadgeCasino777Box} from './game-badge.casino777.box';\r\nimport {GameBadgeSIBox} from './game-badge.si.box';\r\n\r\nexport const GameBadgeBox = styledByTheme(GameBadgeDefaultBox).forCasino777(GameBadgeCasino777Box).forSI(GameBadgeSIBox).apply();\r\n\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../../../../base-components/orbit-component/orbit-component';\r\nimport {GameBadgeBox} from '../../boxes/game-badge/game-badge.box';\r\n\r\nexport interface GameBadgeComponentProps {\r\n badgeUrl?: string;\r\n useSquareIcons?: boolean;\r\n}\r\n\r\n\r\nexport class GameBadgeComponent extends OrbitComponent {\r\n\r\n render() {\r\n if(!this.props.badgeUrl) {\r\n return null;\r\n }\r\n\r\n if(this.props.useSquareIcons && !this.services.theme.supportBadgeOnSquareIcons) {\r\n return null;\r\n }\r\n\r\n if(this.props.badgeUrl) {\r\n return (\r\n \r\n );\r\n }\r\n return null;\r\n }\r\n}\r\n","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 {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\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).apply();","import styled from 'styled-components';\r\nimport {GAME_GROUP_LIVE_CASINO} from '../../../css-constants';\r\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\n\r\nconst DefaultBox = styled.div`\r\n text-align: center;\r\n opacity: 1;\r\n color: ${props => props.theme.colors.brandSecondary};\r\n\r\n .${GAME_GROUP_LIVE_CASINO} & {\r\n color: ${props => props.theme.colors.brandPrimary};\r\n }\r\n`;\r\n\r\nexport const PcBox = styled(DefaultBox)`\r\n font-size: 1.4rem;\r\n font-weight: 600;\r\n`;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\r\n font-size: 1.3rem;\r\n font-weight: 400;\r\n \r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n font-size: 0.9rem;\r\n }\r\n`;\r\n\r\nexport const MinMaxBetAmountDefaultBox = styledByDevice(PcBox, MobileBox);\r\n","import styled, { css } from 'styled-components';\r\nimport {PcBox as BasePcBox, MobileBox as BaseMobileBox} from './min-max-bet-amount.default.box';\r\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\n\r\nconst common = css`\r\n color: ${props => props.theme.colors.dangerLight};\r\n font-weight: 600;\r\n ${({theme}) => theme.font.presets.bold};\r\n`;\r\n\r\nconst PcBox = styled(BasePcBox)`\r\n ${common}\r\n font-size: 1.4rem;\r\n`;\r\n\r\nconst MobileBox = styled(BaseMobileBox)`\r\n ${common}\r\n @media ${({theme}) => theme.mediaQuery.mAndAbove} {\r\n font-size: 1.4rem;\r\n top: 2rem;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n font-size: 1.2rem;\r\n }\r\n`;\r\n\r\n\r\nexport const MinMaxBetAmountCasino777Box = styledByDevice(PcBox, MobileBox);","import styled from 'styled-components';\r\nimport {MinMaxBetAmountDefaultBox} from './min-max-bet-amount.default.box';\r\n\r\nexport const MinMaxBetAmountSIBox = styled(MinMaxBetAmountDefaultBox) `\r\n color: ${({theme}) => theme.colors.textLight};\r\n ${({theme}) => theme.font.presets.bold};\r\n`;\r\n","import {MinMaxBetAmountDefaultBox} from './min-max-bet-amount.default.box';\r\nimport {styledByTheme} from '../../../../../themes/architecture/styled-by-theme';\r\nimport {MinMaxBetAmountCasino777Box} from './min-max-bet-amount.casino777.box';\r\nimport {MinMaxBetAmountSIBox} from './min-max-bet-amount.si.box';\r\n\r\nexport const MinMaxBetAmountBox = styledByTheme(MinMaxBetAmountDefaultBox)\r\n .forCasino777(MinMaxBetAmountCasino777Box)\r\n .forSI(MinMaxBetAmountSIBox)\r\n .apply();","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {OrbitComponent} from '../../../../base-components/orbit-component/orbit-component';\r\nimport {Button} from '../../../../../basic-ui-components/button/base/button.component';\r\n\r\nexport interface InfoPageButtonComponentProps {\r\n enabled: boolean;\r\n onOpenInfoPage: () => void;\r\n}\r\n\r\n@observer\r\nexport class InfoPageButtonComponent extends OrbitComponent {\r\n\r\n render() {\r\n if(!this.props.enabled) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import {GameButtonsDefaultBox} from './game-buttons.default.box';\r\n\r\nexport const GameButtonsBox = GameButtonsDefaultBox;","import styled from 'styled-components';\r\nimport {GAME_BOX} from '../../../css-constants';\r\n\r\n//.hover-details\r\nexport const GameButtonsDefaultBox = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n width: 100%;\r\n z-index: 2;\r\n position: absolute;\r\n margin: auto;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n transform: translateY(5rem);\r\n opacity: 0;\r\n transition: all 0.3s ease-in-out;\r\n padding-top: 2px;\r\n\r\n .${GAME_BOX}:hover & {\r\n transform: translateY(0);\r\n opacity: 0.9;\r\n }\r\n`;","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {OrbitComponent} from '../../../../base-components/orbit-component/orbit-component';\r\nimport {Button} from '../../../../../basic-ui-components/button/base/button.component';\r\nimport {CyClass} from '../../../../../../common/cy-classes';\r\n\r\nexport interface PlayDemoButtonComponentProps {\r\n enabled: boolean;\r\n onOpenAnonymousGame: () => void;\r\n}\r\n\r\n@observer\r\nexport class PlayDemoButtonComponent extends OrbitComponent {\r\n\r\n render() {\r\n if(!this.props.enabled) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n { this.services.translation.translate('DEMO') }\r\n \r\n );\r\n\r\n }\r\n}\r\n\r\n","import styled from 'styled-components';\r\n\r\ninterface GameDetailsContainerProps {\r\n squareGameIcon?: number\r\n}\r\n\r\nexport const GameDetailsContainerDefaultBox = styled.div`\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n align-content: center;\r\n justify-content: flex-start;\r\n overflow: hidden;\r\n top: ${props => props.squareGameIcon? '10px' : '0'};\r\n min-height: 4.7rem;\r\n padding: 0 1rem;\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n min-height: 4rem;\r\n padding: 0 0.4rem;\r\n top: ${props => props.squareGameIcon? '5px' : '0'};\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n min-height: 3.3rem;\r\n }\r\n /** Glow Line Boottom **/\r\n &:after {\r\n content: \"\";\r\n position: absolute;\r\n background-image: url(\"${props => props.theme.images.horizontalLineGlowPC.toString()}\");\r\n background-repeat: no-repeat;\r\n background-position: bottom center;\r\n background-size: contain;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n width: 100%;\r\n height: 40px;\r\n margin: 0 auto;\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n background-image: url(\"${props => props.theme.images.horizontalLineGlowMobile.toString()}\");\r\n }\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\nimport {\r\n GameDetailsContainerDefaultBox\r\n} from './game-details-container.default.box';\r\n\r\n\r\n\r\nexport const GameDetailsContainerCasino777Box = styled(GameDetailsContainerDefaultBox)`\r\n overflow: initial;\r\n &:after {\r\n background-size: 75%;\r\n opacity: .6;\r\n height: 15px;\r\n bottom:-15px;\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n bottom:-18px;\r\n }\r\n }\r\n`","import {GameDetailsContainerDefaultBox} from './game-details-container.default.box';\r\nimport {styledByTheme} from '../../../../../themes/architecture/styled-by-theme';\r\nimport {GameDetailsContainerCasino777Box} from './game-details-container.casino777.box';\r\n\r\nexport const GameDetailsContainerBox: any = styledByTheme(GameDetailsContainerDefaultBox).forCasino777(GameDetailsContainerCasino777Box).apply();","import styled from 'styled-components';\r\n\r\nexport const JackpotAmountDefaultBox = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: center;\r\n width: 70%;\r\n text-align: center;\r\n opacity: 1;\r\n font-size: 1.4rem;\r\n font-weight: 600;\r\n margin-bottom: 4px;\r\n \r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n font-size: 1.3rem;\r\n font-weight: 400;\r\n width: 100%;\r\n }\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n font-size: 1rem;\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\nimport {JackpotAmountDefaultBox} from './jackpot-amount.default.box';\r\n\r\n\r\nexport const JackpotAmountCasino777Box = styled(JackpotAmountDefaultBox)`\r\n color: ${props => props.theme.colors.dangerLight};\r\n font-weight: 600;\r\n ${({theme}) => theme.font.presets.bold};\r\n font-size: 1.4rem;\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndAbove} {\r\n font-size: 1.4rem;\r\n top: 2rem;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n font-size: 1.2rem;\r\n }\r\n`","import styled from \"styled-components\";\r\nimport {JackpotAmountDefaultBox} from \"./jackpot-amount.default.box\";\r\n\r\nexport const JackpotAmountSiBox = styled(JackpotAmountDefaultBox)`\r\n font-size: ${props => props.theme.font.size.small};\r\n font-weight: 400;\r\n`","import {JackpotAmountDefaultBox} from './jackpot-amount.default.box';\r\nimport {styledByTheme} from '../../../../../themes/architecture/styled-by-theme';\r\nimport {JackpotAmountCasino777Box} from './jackpot-amount.casino777.box';\r\nimport {JackpotAmountSiBox} from \"./jackpot-amount.si.box\";\r\n\r\nexport const JackpotAmountBox = styledByTheme(JackpotAmountDefaultBox)\r\n .forCasino777(JackpotAmountCasino777Box)\r\n .forSI(JackpotAmountSiBox)\r\n .apply();","import {GameInfoContainerDefaultBox} from './game-info-container.default.box';\r\n\r\nexport const GameInfoContainerBox = GameInfoContainerDefaultBox;","import styled from 'styled-components';\r\nimport {ENABLE_HOVER_ANIMATION, GAME_BOX} from '../../../css-constants';\r\n\r\nexport const GameInfoContainerDefaultBox = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n padding-top: 2px;\r\n width: 100%;\r\n transition: all 0.3s ease-in-out;\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n padding-top: 0;\r\n }\r\n \r\n\r\n .${GAME_BOX}:hover &{\r\n &.${ENABLE_HOVER_ANIMATION} {\r\n transform: translateY(6rem);\r\n opacity: 0;\r\n }\r\n \r\n`;\r\n","import styled from 'styled-components';\r\n\r\nexport const AmountContainerBox = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: center;\r\n width: 100%;\r\n height: 100%;\r\n min-height: 2.5rem;\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n min-height: 2.0rem;\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\n\r\nexport const TwoRowsGameTitleContainerBox = styled.div<{hasDetails: boolean}>`\r\n height: 3.5rem;\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n height: 2.7rem;\r\n }\r\n\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: flex-start;\r\n align-items: center;\r\n`;\r\n","import React from 'react';\r\n\r\nimport {observer} from 'mobx-react';\r\nimport {GameTitleBox} from '../../boxes/game-title/game-title.box';\r\nimport classNames from 'classnames';\r\nimport {ENABLE_HOVER_ANIMATION, TWO_LINES_TITLE} from '../../../css-constants';\r\nimport {OrbitComponent} from '../../../../base-components/orbit-component/orbit-component';\r\n\r\nimport {GameInfo} from '../../../../../services/games/game-info';\r\nimport {MinMaxBetAmountBox} from '../../boxes/min-max-bet-amount/min-max-bet-amount.box';\r\nimport {InfoPageButtonComponent} from '../info-page-button/info-page-button.component';\r\nimport {GameButtonsBox} from '../../boxes/game-buttons/game-buttons.box';\r\nimport {PlayDemoButtonComponent} from '../play-demo-button/play-demo-button.component';\r\nimport {GameDetailsContainerBox} from '../../boxes/game-details-container/game-details-container.box';\r\nimport {JackpotAmountBox} from '../../boxes/jackpot-amount/jackpot-amount.box';\r\nimport {GameJackpotComponent} from '../../../../game-jackpot/game-jackpot.component';\r\nimport {GameInfoContainerBox} from '../../boxes/game-info-container/game-info-container.box';\r\nimport {CyClass} from \"../../../../../../common/cy-classes\";\r\nimport { AmountContainerBox } from '../../boxes/amount-container/amount-container.box';\r\nimport { TwoRowsGameTitleContainerBox } from '../../boxes/two-rows-game-title-container/two-rows-game-title-container.box';\r\n\r\nexport interface GameDetailsContainerComponentProps {\r\n gameInfo: GameInfo;\r\n disableGameInfoHover: boolean;\r\n onOpenAnonymousGame: () => void;\r\n onOpenInfoPage: () => void;\r\n squareGameIcon?: boolean;\r\n hasTwoLinesTitle: boolean;\r\n}\r\n\r\n@observer\r\nexport class GameDetailsContainerComponent extends OrbitComponent {\r\n\r\n private get _allowHoverDetails(): boolean {\r\n\r\n if (this.props.disableGameInfoHover || this.services.device.isMobile || !this.props.gameInfo.allowHoverDetails) {\r\n return false;\r\n }\r\n\r\n return Boolean(this.props.gameInfo.hasInfoPage || this.props.gameInfo.allowDemoButtonInSingleGame);\r\n }\r\n\r\n\r\n private _renderGameButtons() {\r\n if (!this._allowHoverDetails) {\r\n return null;\r\n }\r\n\r\n return (\r\n\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private _renderAmount() {\r\n if (this.props.gameInfo.hasJackpot) {\r\n return this._renderJackpot();\r\n }\r\n\r\n const formattedMinBaxBets = this.services.currency.formatMinMaxBet(this.props.gameInfo.minBet, this.props.gameInfo.maxBet);\r\n const hasMinMaxBets = this.props.gameInfo.allowMinMaxBet && formattedMinBaxBets;\r\n if (hasMinMaxBets) {\r\n return this._renderMinBaxBet();\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _hasDetails() {\r\n return this.props.gameInfo.allowMinMaxBet || this.props.gameInfo.hasJackpot;\r\n }\r\n\r\n private _renderJackpot() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private _renderMinBaxBet() {\r\n const formattedMinBaxBets = this.services.currency.formatMinMaxBet(this.props.gameInfo.minBet, this.props.gameInfo.maxBet);\r\n return (\r\n \r\n {formattedMinBaxBets}\r\n \r\n );\r\n }\r\n\r\n private _renderTitle() {\r\n const hasDetails = this._hasDetails();\r\n if (this.props.hasTwoLinesTitle) {\r\n return \r\n \r\n {this.props.gameInfo.title}\r\n \r\n ;\r\n } else {\r\n return \r\n {this.props.gameInfo.title}\r\n ;\r\n }\r\n }\r\n\r\n private _renderGameInfoSection() {\r\n return (\r\n \r\n {this._renderTitle()}\r\n {this.props.hasTwoLinesTitle || this._hasDetails()? \r\n {this._renderAmount()} \r\n : null}\r\n \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this._renderGameInfoSection()}\r\n {this._renderGameButtons()}\r\n \r\n );\r\n }\r\n}\r\n","import styled from 'styled-components';\r\nimport {SWIPER_MODE} from '../../../css-constants';\r\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\nimport {HOME_PAGE, LOBBY_PAGE} from '../../../../../themes/css-global-classes';\r\n\r\nexport interface GameBoxProps {\r\n squareGameIcon: boolean;\r\n}\r\n\r\nconst DefaultBox = styled.div`\r\n position: relative;\r\n margin-top: 10px;\r\n margin-bottom: 3rem;\r\n width: calc(100% / 7);\r\n text-align: center;\r\n cursor: pointer;\r\n user-select: none;\r\n\r\n\r\n &.${SWIPER_MODE} {\r\n flex-shrink: 0;\r\n justify-content: center;\r\n }\r\n`;\r\n\r\nexport const PcBox = styled(DefaultBox)`\r\n .${HOME_PAGE} &.${SWIPER_MODE} {\r\n width: 16.6667%;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n .${LOBBY_PAGE} & {\r\n padding: 0 1%;\r\n width: calc(100% / 7);\r\n }\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n margin-right: ${props => props.squareGameIcon ? '15px' : '0'};\r\n }\r\n`;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\r\n padding: 0 4px;\r\n margin-bottom: 0;\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndAbove} {\r\n width: 16.667%;\r\n &.${SWIPER_MODE} {\r\n width: 16%;\r\n }\r\n }\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove} {\r\n width: 16.667%;\r\n &.${SWIPER_MODE} {\r\n width: 16.1%;\r\n }\r\n }\r\n @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n width: 20%;\r\n &.${SWIPER_MODE} {\r\n width: 19%;\r\n }\r\n }\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n width: 33.3333%;\r\n &.${SWIPER_MODE} {\r\n width: 31%;\r\n }\r\n }\r\n`;\r\n\r\nexport const GameDefaultBox = styledByDevice(PcBox, MobileBox);","import styled, { css } from 'styled-components';\r\nimport {PcBox as BasePcBox, MobileBox as BaseMobileBox} from './game.default.box';\r\nimport {SWIPER_MODE} from '../../../css-constants';\r\nimport {LOBBY_PAGE} from '../../../../../themes/css-global-classes';\r\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\n\r\nconst common = css`\r\n width:14.25%;\r\n ${({theme}) => theme.font.presets.bold};\r\n`;\r\n\r\nconst PcBox = styled(BasePcBox)`\r\n ${common}\r\n margin-bottom: 5.5rem;\r\n\r\n .${SWIPER_MODE} &{\r\n height:24rem;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n .${LOBBY_PAGE} & {\r\n width:14.25%;\r\n padding: 0 1%;\r\n }\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n .${SWIPER_MODE} & {\r\n height:22rem;\r\n }\r\n }\r\n`;\r\n\r\nconst MobileBox = styled(BaseMobileBox)`\r\n ${common}\r\n\r\n margin-bottom: 0;\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n .${SWIPER_MODE} &{\r\n height: 18rem;\r\n }\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndAbove} {\r\n .${SWIPER_MODE} &{\r\n height: 26rem;\r\n }\r\n }\r\n`;\r\n\r\nexport const GameCasino777Box = styledByDevice(PcBox, MobileBox);","import styled from \"styled-components\";\r\nimport {GameDefaultBox} from \"./game.default.box\";\r\n\r\nexport const GameCisBox = styled(GameDefaultBox)`\r\n margin-bottom: 0;\r\n margin-top: 0\r\n`;","import {GameDefaultBox} from './game.default.box';\r\nimport {styledByTheme} from '../../../../../themes/architecture/styled-by-theme';\r\nimport {GameCasino777Box} from './game.casino777.box';\r\nimport {GameCisBox} from \"./game.cis.box\";\r\n\r\n// TODO: address this any!!!!\r\nexport const GameBox: any = styledByTheme(GameDefaultBox)\r\n .forCis(GameCisBox)\r\n .forCasino777(GameCasino777Box)\r\n .apply();\r\n\r\n","import styled from 'styled-components';\r\nimport {GAME_BOX} from '../../../css-constants';\r\n\r\n\r\nexport const PlayRealButtonDefaultBox = styled.button`\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-position: -544px -409px;\r\n background-size: 1200px;\r\n background-repeat: no-repeat;\r\n position: absolute;\r\n cursor: pointer;\r\n right: 0;\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n margin: auto;\r\n width: 6rem;\r\n height: 6rem;\r\n opacity: 0;\r\n transition: all 0.35s ease-in-out;\r\n\r\n .${GAME_BOX}:hover & {\r\n transform: translateY(0);\r\n opacity: 0.9;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.lowHeight}, ${({theme}) => theme.mediaQuery.xlExact} {\r\n background-position: -552px -408px;\r\n }\r\n\r\n`;","import styled from 'styled-components';\r\nimport {PlayRealButtonDefaultBox} from './play-real-button.default.box';\r\n\r\nexport const PlayRealButtonCasino777Box = styled(PlayRealButtonDefaultBox)`\r\n background-position: -195px -354px;\r\n width: 6.3rem;\r\n height: 6.3rem;\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n background-position: -201px -358px;\r\n }\r\n`;","import {PlayRealButtonDefaultBox} from './play-real-button.default.box';\r\nimport {styledByTheme} from '../../../../../themes/architecture/styled-by-theme';\r\nimport {PlayRealButtonCasino777Box} from './play-real-button.casino777.box';\r\n\r\n\r\nexport const PlayRealButtonBox = styledByTheme(PlayRealButtonDefaultBox).forCasino777(PlayRealButtonCasino777Box).apply();\r\n","import styled, {css} from 'styled-components';\r\nimport { ORBIT_TAP } from '../../../../../themes/css-global-classes';\r\nimport { styledByDevice } from '../../../../../themes/architecture/styled-by-device';\r\n\r\n\r\ninterface GameImageContainerProps {\r\n isLoading?: boolean;\r\n squareIcon?: boolean;\r\n isCasinoGameIcon?: boolean;\r\n}\r\n\r\nfunction getPlaceholderBackground(theme, isLoading: boolean, isSquareIcon: boolean, isCasinoGameIcon: boolean): string {\r\n\r\n if (isLoading) {\r\n return theme.images.emptyImage.toString();\r\n }\r\n\r\n if (isCasinoGameIcon) {\r\n\r\n if (isSquareIcon) {\r\n return theme.images.singleGame.cardAndTablesSquareBackgroundImage.toString();\r\n }\r\n\r\n return theme.images.singleGame.cardAndTablesBackgroundImage.toString();\r\n }\r\n\r\n if (isSquareIcon) {\r\n return theme.images.singleGame.defaultSquareBackgroundImage.toString();\r\n }\r\n\r\n return theme.images.singleGame.defaultBackgroundImage.toString();\r\n}\r\n\r\n//.game-item-image\r\nconst DefaultBox = styled.div`\r\n position: relative;\r\n width: 100%;\r\n overflow: hidden;\r\n max-width: 21rem;\r\n margin: auto;\r\n background: url(${({theme, squareIcon, isLoading, isCasinoGameIcon}) => getPlaceholderBackground(theme, isLoading, squareIcon, isCasinoGameIcon)}) no-repeat center center;\r\n background-size: 100%;\r\n ${props => props.squareIcon && css`\r\n border-radius: 15px;\r\n `};\r\n\r\n &::after {\r\n position: absolute;\r\n display: ${({isLoading}) => isLoading ? \"block\" : \"none\"};\r\n content: \"\";\r\n top: ${({squareIcon}) => squareIcon ? \"0\" : \"1rem\"};\r\n left: ${({squareIcon}) => squareIcon ? \"0\" : \"1rem\"};\r\n right: ${({squareIcon}) => squareIcon ? \"0\" : \"1rem\"};\r\n bottom: ${({squareIcon}) => squareIcon ? \"0\" : \"1.5rem\"};\r\n background: radial-gradient(rgba(255, 255, 255, 0.25), rgba(255, 255, 255, 0.1));\r\n\r\n border-radius: ${({squareIcon}) => squareIcon ? \"1.5rem\" : \"35%\"};\r\n animation: LoadingAnimation 1s linear 3;\r\n }\r\n\r\n @keyframes LoadingAnimation {\r\n 0% {\r\n opacity: 1;\r\n }\r\n 50% {\r\n opacity: 0.5;\r\n }\r\n 100% {\r\n opacity: 1;\r\n }\r\n }\r\n`;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\r\n transform: none;\r\n\r\n &.${ORBIT_TAP} {\r\n transform: scale(0.95);\r\n }\r\n\r\n ${props => props.squareIcon && css`\r\n border-radius: 8px;\r\n `};\r\n`;\r\n\r\nexport const PcBox = DefaultBox;\r\n\r\nexport const GameImageContainerDefaultBox = styledByDevice(PcBox, MobileBox);","import styled from 'styled-components';\r\n\r\nimport {PcBox as BasePcBox, MobileBox as BaseMobileBox} from './game-image-container.default.box';\r\nimport {LOBBY_PAGE} from '../../../../../themes/css-global-classes';\r\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\nimport {SINGLE_GAME_IMAGE} from '../../../css-constants';\r\n\r\n\r\nfunction common(): string {\r\n return `\r\n max-width: 19rem;\r\n & > .${SINGLE_GAME_IMAGE} {\r\n top: 4px;\r\n position: relative;\r\n }\r\n `;\r\n}\r\n\r\nconst PcBox = styled(BasePcBox)`\r\n ${common()}\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n &img {\r\n min-height: 139px\r\n .${LOBBY_PAGE} & {\r\n min-height: 125px;\r\n }\r\n }\r\n }\r\n`;\r\n\r\nconst MobileBox = styled(BaseMobileBox)`\r\n ${common()}\r\n`;\r\n\r\nexport const GameImageContainerCasino777Box = styledByDevice(PcBox, MobileBox);\r\n","import React from \"react\";\r\nimport { observable, action } from \"mobx\";\r\nimport { observer } from \"mobx-react\";\r\nimport {GameInfo} from \"../../../services/games/game-info\";\r\nimport {OrbitComponent} from \"../../base-components/orbit-component/orbit-component\";\r\nimport {VideoTileComponent} from \"../../live-streaming-tile/video-common-components/video-tile/video-tile.component\";\r\nimport {VideoItemContainerBox} from \"./boxes/video-item-container.box\";\r\nimport {IVideoPlayingService} from \"../../../services/video-live-stream/video-playing.service.interface\";\r\n\r\nexport enum VIDEO_ITEM_TYPE {\r\n LIVE_STREAM = 'Live-Streaming-Video-Item',\r\n STATIC = 'Static-Video-Item'\r\n}\r\n\r\nexport interface SingleGameVideoTemplateProps {\r\n gameInfo: GameInfo;\r\n intersectionTarget?: HTMLDivElement;\r\n onOpenRealGame: () => void;\r\n videoItemType: VIDEO_ITEM_TYPE;\r\n isLastGametype?: boolean;\r\n gameIndex?: number;\r\n onBringInCentralView: (gameIndex: number) => void;\r\n\r\n}\r\n\r\n@observer\r\nexport class SingleGameVideoTemplate extends OrbitComponent {\r\n private _inSwiperIntersectionObserver: IntersectionObserver | null = null;\r\n private _viewportIntersectionObserver: IntersectionObserver | null = null;\r\n private _videoContainerElement: HTMLDivElement | null = null;\r\n @observable\r\n private _isInCenterStage = false;\r\n @observable\r\n private _inViewport = false;\r\n\r\n private _captureVideoContainerRef = (element: HTMLDivElement | null) => {\r\n this._videoContainerElement = element;\r\n if (!this._inSwiperIntersectionObserver || !this._viewportIntersectionObserver) {\r\n return;\r\n }\r\n if (element) {\r\n this._inSwiperIntersectionObserver.observe(element);\r\n this._viewportIntersectionObserver.observe(element);\r\n } else {\r\n this._inSwiperIntersectionObserver.unobserve(element);\r\n this._viewportIntersectionObserver.unobserve(element);\r\n }\r\n }\r\n\r\n private _triggerOnBringInCentralView(): void {\r\n if(this._inViewport && this._isInCenterStage) {\r\n this.props.onBringInCentralView(this.props.gameIndex);\r\n }\r\n }\r\n\r\n private _createSwiperIntersectionObserver(element: HTMLElement) {\r\n const intersectionObserverOptions: IntersectionObserverInit = {\r\n threshold: 0.99,\r\n root: element\r\n };\r\n if (this.services.mediaQuery.xlAndAbove) {\r\n intersectionObserverOptions.rootMargin = \"0px -33.33%\";\r\n }\r\n\r\n this._inSwiperIntersectionObserver = new IntersectionObserver(this._inSwiperIntersectionObserverCallback, intersectionObserverOptions);\r\n }\r\n\r\n private _inSwiperIntersectionObserverCallback = (entries: IntersectionObserverEntry[]) => {\r\n entries.forEach((entry) => {\r\n this.setIsInCenterStage(entry.isIntersecting);\r\n });\r\n }\r\n\r\n @action\r\n setIsInCenterStage(i: boolean) {\r\n this._isInCenterStage = i;\r\n this._triggerOnBringInCentralView();\r\n }\r\n\r\n private _destroySwiperIntersectionObserver() {\r\n if (this._inSwiperIntersectionObserver) {\r\n this._inSwiperIntersectionObserver.disconnect();\r\n this._inSwiperIntersectionObserver = null;\r\n }\r\n }\r\n\r\n private _createViewportIntersectionObserver() {\r\n this._viewportIntersectionObserver = new IntersectionObserver(this._viewportIntersectionObserverCallback, {\r\n threshold: 0.99\r\n });\r\n }\r\n\r\n private _viewportIntersectionObserverCallback = (entries: IntersectionObserverEntry[]) => {\r\n entries.forEach((entry) => {\r\n this.setInViewport(entry.isIntersecting);\r\n });\r\n }\r\n\r\n @action\r\n setInViewport(i: boolean) {\r\n this._inViewport = i;\r\n this._triggerOnBringInCentralView();\r\n }\r\n\r\n private _destroyViewportIntersectionObserver() {\r\n if (this._viewportIntersectionObserver) {\r\n this._viewportIntersectionObserver.disconnect();\r\n this._viewportIntersectionObserver = null;\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n this._createViewportIntersectionObserver();\r\n if (this._videoContainerElement) {\r\n this._viewportIntersectionObserver.observe(this._videoContainerElement);\r\n }\r\n if (this.props.intersectionTarget) {\r\n this._createSwiperIntersectionObserver(this.props.intersectionTarget);\r\n if (this._videoContainerElement) {\r\n this._inSwiperIntersectionObserver.observe(this._videoContainerElement);\r\n }\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n super.componentWillUnmount();\r\n this._destroySwiperIntersectionObserver();\r\n this._destroyViewportIntersectionObserver();\r\n }\r\n\r\n componentDidUpdate(prevProps: SingleGameVideoTemplateProps) {\r\n if (this.props.intersectionTarget) {\r\n if (this.props.intersectionTarget !== prevProps.intersectionTarget) {\r\n this._destroySwiperIntersectionObserver();\r\n this._createSwiperIntersectionObserver(this.props.intersectionTarget);\r\n this._inSwiperIntersectionObserver.observe(this._videoContainerElement);\r\n }\r\n } else {\r\n this._destroySwiperIntersectionObserver();\r\n }\r\n }\r\n\r\n private _getVideoPlayingService = (): IVideoPlayingService => {\r\n if (this.props.videoItemType === VIDEO_ITEM_TYPE.LIVE_STREAM) {\r\n return this.services.liveStreamPlaying;\r\n }\r\n\r\n return this.services.staticVideoPlaying;\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import {GameImageContainerDefaultBox} from './game-image-container.default.box';\r\nimport {styledByTheme} from '../../../../../themes/architecture/styled-by-theme';\r\nimport {GameImageContainerCasino777Box} from './game-image-container.casino777.box';\r\n\r\nexport const GameImageContainerBox = styledByTheme(GameImageContainerDefaultBox).forCasino777(GameImageContainerCasino777Box).apply();","import styled from \"styled-components\";\r\n\r\nexport const GameNumberBadgeBox = styled.div`\r\n font-size: 100px;\r\n line-height: 1;\r\n ${({theme}) => theme.font.presets.secondary};\r\n margin-right: -30px;\r\n color: ${props => props.theme.colors.backgroundDark};\r\n z-index: 2;\r\n text-shadow: -1px -1px 0 ${props => props.theme.colors.brandPrimary},\r\n 1px -1px 0 ${props => props.theme.colors.brandPrimary},\r\n -1px 1px 0 ${props => props.theme.colors.brandPrimary},\r\n 1px 1px 0 ${props => props.theme.colors.brandPrimary};\r\n\r\n /**\r\n * BUGFIX-1896215 https://dev.azure.com/888holdings/GamingNDL/_workitems/edit/1896215\r\n * In a scrolling container (in this case orbit swiper), the first animated icon loaded is above all elements (in this case the static image and the number badge)\r\n * When swiping, if the first animated icon gets out of the viewport and unloads, the problem is transfered to the second animation.\r\n * Yes, I know, the solution doesn't have any logic. But I tried this long shot and it worked:\r\n * https://css-tricks.com/forums/topic/safari-for-ios-z-index-ordering-bug-while-scrolling-a-page-with-a-fixed-element/\r\n * https://stackoverflow.com/questions/16033416/while-scrolling-on-an-ios-device-the-z-index-of-elements-isnt-working\r\n * https://stackoverflow.com/questions/9807620/ipad-safari-scrolling-causes-html-elements-to-disappear-and-reappear-with-a-dela\r\n */\r\n -webkit-transform: translate3d(0,0,0);\r\n /**\r\n * Because YES, Safari is the new Internet Explorer!!!\r\n */\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n margin-right: -17px;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n font-size: 75px;\r\n margin-right: -16px;\r\n }\r\n`;\r\n","import React from 'react'\r\nimport {GameImageContainerComponent} from '../common/parts/game-image-container.component/game-image-container.component';\r\nimport {GameDetailsContainerComponent} from './parts/game-details-container/game-details-container.component';\r\nimport {OrbitComponent} from '../../base-components/orbit-component/orbit-component';\r\nimport {GameInfo} from '../../../services/games/game-info';\r\nimport {observer} from 'mobx-react';\r\nimport {GameBox} from './boxes/game/game.box';\r\nimport {PlayRealButtonBox} from './boxes/play-real-button/play-real-button.box';\r\nimport {GameImageContainerBox} from './boxes/game-image-container/game-image-container.box';\r\nimport {GameNumberBadgeBox} from \"./boxes/game-number-badge/game-number-badge.box\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport { GameIconAnimationState } from '../common/parts/game-image/game-image.component';\r\n\r\nexport interface SingleGameRegularTemplateComponentProps {\r\n className: string;\r\n gameInfo: GameInfo;\r\n disableGameInfoHover: boolean;\r\n onMouseEnter: () => void;\r\n onMouseLeave: () => void;\r\n onOpenRealGame: () => void;\r\n onOpenAnonymousGame: () => void;\r\n onOpenInfoPage: () => void;\r\n onAnimationIconStateChange?(state: GameIconAnimationState): void;\r\n gameIndex?: number;\r\n useSquareIcons?: boolean;\r\n showNumberBadge?: boolean;\r\n hasTwoLinesTitle: boolean;\r\n}\r\n\r\n@observer\r\nexport class SingleGameRegularTemplateComponent extends OrbitComponent {\r\n\r\n get gameInfo(): GameInfo {\r\n return this.props.gameInfo;\r\n }\r\n\r\n private _renderPlayRealGameButton() {\r\n if(this.services.device.os.isMobileOS) {\r\n return null;\r\n }\r\n\r\n return ();\r\n }\r\n\r\n private _renderGameNumberBadge() {\r\n if(!this.props.showNumberBadge || Check.isNullOrUndefined(this.props.gameIndex)) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {this.props.gameIndex+1}\r\n \r\n )\r\n }\r\n render() {\r\n return (\r\n <>\r\n\r\n {this._renderGameNumberBadge()}\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import {Check} from '@sparkware/app-utils';\r\n\r\n\r\nexport class CssClassNameBuilder {\r\n _classes: string[] = [];\r\n append(...classes): this {\r\n\r\n classes.forEach(item => {\r\n if(Check.isString(item)) {\r\n this._classes.push(item);\r\n } else if(Check.isArray(item)) {\r\n item.forEach(c => this._classes.push(String(c)));\r\n } else if (Check.isNullOrUndefined(item)) {\r\n // just ignore it\r\n } else {\r\n throw new Error('append method accepts only string or string[] as argument');\r\n }\r\n });\r\n return this;\r\n }\r\n\r\n build() {\r\n let result = this._classes.reduce((acc, curr) => acc + ' ' + curr, '');\r\n return result.substring(1, result.length);\r\n }\r\n}\r\n\r\n\r\n","import styled from 'styled-components';\r\nimport {SWIPER_MODE} from '../../../css-constants';\r\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\n\r\nconst DefaultBox = styled.div`\r\n display: flex;\r\n align-items: center;\r\n width: 32%;\r\n margin: 10px 1% 0 0.25rem;\r\n padding-left: 0;\r\n padding-right: 0;\r\n padding-bottom: 5rem;\r\n cursor: pointer;\r\n user-select: none;\r\n`;\r\n\r\nconst PcBox = styled(DefaultBox)`\r\n justify-content: center;\r\n &.${SWIPER_MODE} {\r\n flex-shrink: 0;\r\n }\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n flex-direction: row;\r\n justify-content: space-around;\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndAbove} {\r\n width: 49%;\r\n flex-shrink: 0;\r\n padding: 0.5rem;\r\n margin-right:0;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n width: 100%;\r\n padding: 0 2em 1em;\r\n margin-left:0;\r\n margin-right:0;\r\n margin-bottom: 1rem;\r\n }\r\n`;\r\n\r\n\r\n\r\nexport const GameDefaultBox = styledByDevice(PcBox, MobileBox);\r\n\r\n","import {GameDefaultBox} from './game.default.box';\r\n\r\nexport const GameBox = GameDefaultBox;","import styled from 'styled-components';\r\nimport { styledByDevice } from '../../../../../themes/architecture/styled-by-device';\r\nimport { CssRule } from '../../../../../themes/architecture/css-helpers/css-rule';\r\n\r\nconst DefaultBox = styled.div`\r\n position: relative;\r\n width: 40%;\r\n max-width: 20rem;\r\n margin-left: 0;\r\n margin-right: 3.5rem;\r\n overflow: visible;\r\n background-size: 100%;\r\n background-image: url(\"${props => props.theme.images.singleGame.defaultBackgroundImage.toString()}\");\r\n background-repeat: no-repeat;\r\n\r\n &:after {\r\n content: \"\";\r\n background-image: url(\"${props => props.theme.images.verticalLineGlow.toString()}\");\r\n background-repeat: no-repeat;\r\n background-size: contain;\r\n position: absolute;\r\n top: 0;\r\n height: 100%;\r\n transform: translateX(100%);\r\n }\r\n`;\r\n\r\n\r\nconst PcBox = styled(DefaultBox)`\r\n &:after {\r\n right: -10px;\r\n width: 40px;\r\n\r\n ${CssRule.For.RTL.build()} & {\r\n right: 28px;\r\n }\r\n }\r\n\r\n\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndAbove} {\r\n &:after {\r\n right: -10px;\r\n width: 40px;\r\n ${CssRule.For.RTL.build()} & {\r\n right: 28px;\r\n }\r\n }\r\n }\r\n\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n &:after {\r\n right: -8%;\r\n width: 25px;\r\n\r\n ${CssRule.For.RTL.build()} & {\r\n right: 80%;\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const GameImageContainerDefaultBox = styledByDevice(PcBox, MobileBox);\r\n","import {GameImageContainerDefaultBox} from './game-image-container.default.box';\r\n\r\nexport const GameImageContainerBox = GameImageContainerDefaultBox;","import {GameDetailsContainerDefaultBox} from './game-details-container.default.box';\r\n\r\nexport const GameDetailsContainerBox = GameDetailsContainerDefaultBox;","import styled from 'styled-components';\r\n\r\nexport const GameDetailsContainerDefaultBox = styled.div`\r\n position: relative;\r\n flex: 1 0 auto;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 0;\r\n overflow: hidden;\r\n text-align: center;\r\n font-size: 1rem;\r\n align-items: flex-start;\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndAbove} {\r\n font-size: 0.85rem;\r\n justify-content: space-between;\r\n min-height: 4rem;\r\n }\r\n \r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n align-items: center;\r\n font-size: 0.7rem;\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\n\r\nexport const GameTitleDefaultBox = styled.div`\r\n line-height: 2.5rem;\r\n font-size: 1.5em;\r\n font-weight: 300;\r\n ${({theme}) => theme.font.presets.medium};\r\n color: ${props => props.theme.colors.textLight};\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n max-width: 13rem;\r\n line-height: 1.7;\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\nimport {GameTitleDefaultBox} from './game-title.default.box';\r\n\r\nexport const GameTitleCasino777Box = styled(GameTitleDefaultBox)`\r\n font-size: 1.9em;\r\n`;\r\n","import {GameTitleDefaultBox} from './game-title.default.box';\r\nimport {styledByTheme} from '../../../../../themes/architecture/styled-by-theme';\r\nimport {GameTitleCasino777Box} from './game-title.casino777.box';\r\n\r\n\r\nexport const GameTitleBox = styledByTheme(GameTitleDefaultBox).forCasino777(GameTitleCasino777Box).apply();","import styled from 'styled-components';\r\n\r\nexport const JackpotAmountDefaultBox = styled.div`\r\n color: ${props => props.theme.colors.brandSecondary};\r\n ${({theme}) => theme.font.presets.ultra};\r\n font-size: 2.6em;\r\n width: 100%;\r\n margin-bottom: 4px;\r\n @media ${({theme}) => theme.mediaQuery.xlExact} {\r\n font-size: 2.2em;\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\nimport {JackpotAmountDefaultBox} from './jackpot-amount.default.box';\r\nimport {baseColors} from \"../../../../../themes/definitions/casino777/base-colors\";\r\n\r\nexport const JackpotAmountCasino777Box = styled(JackpotAmountDefaultBox)`\r\n ${({theme}) => theme.font.presets.secondary};\r\n font-weight: 300;\r\n color: ${baseColors.base04Dark};\r\n text-shadow: 3px 3px 0 ${props => props.theme.colors.textLight}, 0 0 0 ${props => props.theme.colors.textLight}, 1px 1px 0 ${props => props.theme.colors.textLight}, 2px 2px 0 ${props => props.theme.colors.textLight}, 0 0 0 ${props => props.theme.colors.textLight};\r\n -webkit-text-stroke-width: .5px;\r\n -webkit-text-stroke-color: ${props => props.theme.colors.textLight};\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n color: ${props => props.theme.colors.textLight};\r\n text-shadow: none;\r\n letter-spacing: .3px;\r\n -webkit-text-stroke-width: 0;\r\n -webkit-text-stroke-color: transparent;\r\n }\r\n`;\r\n","import {JackpotAmountDefaultBox} from './jackpot-amount.default.box';\r\nimport {styledByTheme} from '../../../../../themes/architecture/styled-by-theme';\r\nimport {JackpotAmountCasino777Box} from './jackpot-amount.casino777.box';\r\n\r\nexport const JackpotAmountBox = styledByTheme(JackpotAmountDefaultBox).forCasino777(JackpotAmountCasino777Box).apply();","import React from 'react';\r\nimport {OrbitComponent} from '../../../../base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\nimport {GameInfo} from '../../../../../services/games/game-info';\r\nimport {Button} from '../../../../../basic-ui-components/button/base/button.component';\r\nimport {GameDetailsContainerBox} from '../../boxes/game-details-container/game-details-container.box';\r\nimport {GameTitleBox} from '../../boxes/game-title/game-title.box';\r\nimport {JackpotAmountBox} from '../../boxes/jackpot-amount/jackpot-amount.box';\r\nimport {GameJackpotComponent} from '../../../../game-jackpot/game-jackpot.component';\r\n\r\nexport interface GameDetailsContainerComponentProps {\r\n gameInfo: GameInfo;\r\n onOpenRealGame: () => void;\r\n}\r\n\r\n@observer\r\nexport class GameDetailsContainerComponent extends OrbitComponent {\r\n render() {\r\n return (\r\n \r\n \r\n {this.props.gameInfo.title}\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n {this.services.translation.translate('HIT_THE_JACKPOT')}\r\n \r\n \r\n );\r\n }\r\n}","import React from 'react';\r\nimport {OrbitComponent} from '../../base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\nimport {GameInfo} from '../../../services/games/game-info';\r\nimport {GameImageContainerComponent} from '../common/parts/game-image-container.component/game-image-container.component';\r\nimport {GameBox} from './boxes/game/game.box';\r\nimport {GameImageContainerBox} from './boxes/game-image-container/game-image-container.box';\r\nimport {GameDetailsContainerComponent} from './parts/game-details-container/game-details-container.component';\r\nimport {GAME_BOX_JACKPOT_TEMPLATE} from '../css-constants';\r\n\r\nexport interface SingleGameJackpotTemplateComponentProps {\r\n gameInfo: GameInfo;\r\n className: string;\r\n onOpenRealGame: () => void;\r\n}\r\n\r\n@observer\r\nexport class SingleGameJackpotTemplateComponent extends OrbitComponent {\r\n\r\n\r\n render() {\r\n let gameInfo = this.props.gameInfo;\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n );\r\n }\r\n}","import {LiveGameContainerDefaultBox} from \"./live-game-container.default.box\";\r\n\r\nexport const LiveGameContainerBox = LiveGameContainerDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const LiveGameContainerDefaultBox = styled.div`\r\n\r\n flex-shrink: 0;\r\n width: calc(100% / 4);\r\n padding: 1rem 0.5rem 3rem 0.5rem;\r\n\r\n @media ${props => props.theme.mediaQuery.sAndBelow} {\r\n width: calc(100% / 2);\r\n padding: 1rem 0.5rem;\r\n }\r\n`;\r\n","import React from 'react'\r\nimport {observer} from 'mobx-react';\r\nimport {OrbitComponent} from '../../base-components/orbit-component/orbit-component';\r\nimport {LiveGameContainerBox} from './boxes/live-game-container/live-game-container.box';\r\nimport {LiveCasinoArenaGridItem} from '../../arena-host/new-live-casino-arena/live-casino-arena-grid/live-casino-arena-grid-item.component';\r\nimport {GameInfo} from '../../../services/games/game-info';\r\n\r\nexport interface SingleGameLiveTemplateComponentProps {\r\n tableConfig: GameInfo;\r\n}\r\n\r\n@observer\r\nexport class SingleGameLiveTemplateComponent extends OrbitComponent {\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n\r\n","import {VideoTileDefaultBox} from \"./video-tile-default.box\";\r\n\r\nexport const VideoTileBox = VideoTileDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoTileDefaultBox = styled.div`\r\n position: relative;\r\n width: 100%;\r\n overflow: hidden;\r\n box-shadow: ${props => props.theme.colors.boxBorderDark} 0px 10px 8px -6px;\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove} {\r\n border-radius: 12px;\r\n border: 0.5px solid ${props => props.theme.components.newLiveCasino.colors.gridItem.wrapperBorder};\r\n }\r\n\r\n @media ${({theme}) => `${theme.mediaQuery.lAndBelow} and ${theme.mediaQuery.landscape}`} {\r\n padding: 0 12.5vw;\r\n }\r\n\r\n @media ${({theme}) => `${theme.mediaQuery.mAndBelow} and ${theme.mediaQuery.landscape}`} {\r\n padding: 0 25vw;\r\n }\r\n`;\r\n","import {VideoOverlayItemDefaultBox} from \"./video-overlay-item.default.box\";\r\n\r\nexport const VideoOverlayItemBox = VideoOverlayItemDefaultBox;\r\n","import styled, {css} from \"styled-components\";\r\nimport { hexToRgba } from \"../../../../themes/hex-to-rgba\";\r\n\r\ninterface ILiveStreamingOverlayItemDefaultBoxProps {\r\n capsule?: boolean;\r\n transparent?: boolean;\r\n}\r\n\r\nexport const VideoOverlayItemDefaultBox = styled.div`\r\n display: flex;\r\n background: ${({theme, transparent}) => !transparent && hexToRgba(theme.colors.background.toString(), 0.7)};\r\n\r\n\r\n ${({capsule}) => !capsule ? css`\r\n padding: 2px;\r\n border-radius: 4px;\r\n ` : css`\r\n padding: 0 0.25rem;\r\n border-radius: 2rem;\r\n `}\r\n`;\r\n","import {VideoSoundButtonDefaultBox} from \"./video-sound-button-default.box\";\r\n\r\nexport const VideoSoundButtonBox = VideoSoundButtonDefaultBox;\r\n","import styled from \"styled-components\";\r\nimport { hexToRgba } from \"../../../../../themes/hex-to-rgba\";\r\n\r\nexport const VideoSoundButtonDefaultBox = styled.div`\r\n padding: 0.25rem;\r\n background: ${({theme}) => hexToRgba(theme.colors.background.toString(), 0.9) };\r\n border-radius: 50%;\r\n`;\r\n","import React from \"react\";\r\nimport {OrbitComponent} from \"../../../base-components/orbit-component/orbit-component\";\r\nimport {VideoSoundButtonBox} from \"./boxes/video-sound-button.box\";\r\nimport {IVideoPlayingService} from \"../../../../services/video-live-stream/video-playing.service.interface\";\r\n\r\nexport interface VideoSoundButtonComponentProps {\r\n videoPlayingService: IVideoPlayingService;\r\n}\r\n\r\nexport class VideoSoundButtonComponent extends OrbitComponent {\r\n private _renderIcon() {\r\n\r\n if (this.props.videoPlayingService.isVideoMuted) {\r\n const MuteIcon = this.services.theme.currentTheme.icons.muteIcon;\r\n return ;\r\n }\r\n\r\n const UnmuteIcon = this.services.theme.currentTheme.icons.unmuteIcon;\r\n return ;\r\n }\r\n\r\n private _handleClick() {\r\n this.props.videoPlayingService.toggleVideoSound();\r\n }\r\n\r\n render() {\r\n return (\r\n this._handleClick()}>\r\n {this._renderIcon()}\r\n \r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport {OrbitComponent} from \"../../../base-components/orbit-component/orbit-component\";\r\nimport {VideoOverlayItemBox} from \"../video-overlay-item/video-overlay-item.box\";\r\nimport {VideoSoundButtonComponent} from \"../video-sound-button/video-sound-button.component\";\r\nimport {IVideoPlayingService} from \"../../../../services/video-live-stream/video-playing.service.interface\";\r\n\r\nexport interface VideoTileOverlayComponentProps {\r\n videoPlayingService: IVideoPlayingService;\r\n videoPlaying: boolean;\r\n bottomLeftComponent?: React.ReactNode;\r\n bottomRightComponent?: React.ReactNode;\r\n}\r\n\r\nexport class VideoTileOverlayComponent extends OrbitComponent {\r\n\r\n private _padding = \"1rem\";\r\n\r\n private _renderTopRight(): React.ReactElement {\r\n if (!this.props.videoPlaying) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private _renderBottomLeft(): React.ReactElement {\r\n if (!this.props.bottomLeftComponent) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {this.props.bottomLeftComponent}\r\n \r\n );\r\n }\r\n\r\n private _renderBottomRight(): React.ReactElement {\r\n if (!this.props.bottomRightComponent) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {this.props.bottomRightComponent}\r\n \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this._renderTopRight()}\r\n {this._renderBottomLeft()}\r\n {this._renderBottomRight()}\r\n \r\n );\r\n }\r\n}\r\n","import {VideoTileOverlayDefaultBox} from \"./video-tile-overlay-default.box\";\r\n\r\nexport const VideoTileOverlayBox = VideoTileOverlayDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoTileOverlayDefaultBox = styled.div`\r\n position: absolute;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 100%;\r\n height: 100%;\r\n font-size: 1.5rem;\r\n ${({theme}) => theme.font.presets.regular};\r\n color: ${({theme}) => theme.colors.textLight};\r\n background: rgba(0,0,0,0.5);\r\n`;\r\n","import 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.sendAnalytics('Navigation', 'Jackpot_Widget', `${this.services.routing.currentRoute?.data?.arenaType}, ${this.props.widgetConfig?.jackpotType}`);\r\n\r\n if (this.props.onClick) {\r\n const listInfo = this.services.configuration.getGamesListByJackpotId(this.props.widgetConfig.jackpotId);\r\n this.services.analytics.sendAnalytics(this.props.seoCategory ?? \"List_Widget\", \"Widget_Clicked\", this.props.widgetConfig.jackpotType + (listInfo?.title? \"_\" + listInfo.title : \"\"));\r\n this.props.onClick();\r\n }\r\n }\r\n\r\n private _isWidgetClickable = () => {\r\n return !!this.props.onClick || this.props.widgetConfig.jackpotType === JackpotType.Party;\r\n }\r\n\r\n @observable\r\n private imagesReady = false;\r\n\r\n @action\r\n private _setImagesReady(readyState: boolean) {\r\n this.imagesReady = readyState;\r\n }\r\n\r\n private get _isJackpotHandlerReady(): boolean {\r\n const jackpotId = this.props.widgetConfig?.jackpotId ?? JackpotInternalId.Daily;\r\n const jackpotHandler = this.services.jackpotsWithState.currentJackpots[jackpotId];\r\n return !Check.isNullOrUndefined(jackpotHandler?.jackpotData);\r\n }\r\n\r\n private get _shouldRenderSkeleton() {\r\n return (!this.imagesReady || !this._isJackpotHandlerReady);\r\n }\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n\r\n const jackpotType = this.props.widgetConfig?.jackpotType ?? JackpotType.Daily;\r\n\r\n if (!this.services.theme.currentTheme.images.jackpotWidget.byType[jackpotType]) {\r\n // this can happen if in Orbit Admin metadata has jackpotType has unknown value for Orbit - for example \"HourlyCaptain8\"\r\n this.services.logger.warning(`Unknown JP type ${jackpotType} found!`)\r\n return;\r\n }\r\n\r\n Promise.all([\r\n imagePreload(this.services.theme.currentTheme.images.jackpotWidget.byType[jackpotType].logo.toString()),\r\n imagePreload(this.services.theme.currentTheme.images.jackpotWidget.byType[jackpotType].background.toString())\r\n ]).then(() => {\r\n this._setImagesReady(true);\r\n });\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.resizeObserverInstance) {\r\n this.resizeObserverInstance.disconnect();\r\n this.resizeObserverInstance = null;\r\n }\r\n }\r\n\r\n @observable\r\n private widgetWidth: number;\r\n private aspectRatioBox: HTMLDivElement | null;\r\n private resizeObserverInstance: ResizeObserver;\r\n private disposer: undefined | ((oldRefEl: HTMLDivElement) => void);\r\n\r\n @action\r\n private setWidgetWidth = (entries: ResizeObserverEntry[]) => {\r\n // We know we are only watching the aspect ratio box element so we take the first element in the array.\r\n // We are not using this.aspectRatioBox directly because from a typescript point of view that could be null\r\n // and from a react component lifecycle perspective it could be null as well\r\n let targetElement = entries[0].target;\r\n const elementRectangle = targetElement.getBoundingClientRect();\r\n this.widgetWidth = elementRectangle.width;\r\n };\r\n\r\n private _captureJackpotWidgetAspectRatioBoxRef = (refEl: HTMLDivElement | null) => {\r\n if (this.disposer) {\r\n this.disposer(this.aspectRatioBox);\r\n this.disposer = undefined;\r\n }\r\n this.aspectRatioBox = refEl;\r\n if (this.aspectRatioBox) {\r\n if (!this.resizeObserverInstance) {\r\n this.resizeObserverInstance = new ResizeObserver(this.setWidgetWidth);\r\n }\r\n this.resizeObserverInstance.observe(this.aspectRatioBox);\r\n this.disposer = (oldRefEl: HTMLDivElement) => {\r\n // At unmount, the resizeObserverInstance will be destroyed and the disposer will be called too late.\r\n // In that case, we don't do anything since the observer was disconnected at unmount\r\n if (this.resizeObserverInstance) {\r\n this.resizeObserverInstance.unobserve(oldRefEl);\r\n }\r\n }\r\n }\r\n };\r\n\r\n private _getCountDownTimerTranslationKey(jackpotState: JACKPOT_STATE) {\r\n let translationKey = '';\r\n switch (jackpotState) {\r\n case JACKPOT_STATE.Hot:\r\n translationKey = 'JACKPOT-WIDGET-DROPS-SOON';\r\n break;\r\n\r\n case JACKPOT_STATE.OffHours:\r\n translationKey = 'JACKPOT-WIDGET-STARTS-SOON';\r\n break;\r\n\r\n case JACKPOT_STATE.Regular:\r\n default:\r\n translationKey = 'JACKPOT-WIDGET-MUST-PAY';\r\n break;\r\n }\r\n\r\n return translationKey;\r\n }\r\n\r\n private _getJackpotWidgetLayout(): JACKPOT_WIDGET_LAYOUT {\r\n return this.props.layout || JACKPOT_WIDGET_LAYOUT.PORTRAIT;\r\n }\r\n\r\n render() {\r\n\t\tif (!this.props.widgetConfig || !this.props.widgetConfig.display) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst jackpotId = String(this.props.widgetConfig.jackpotId ?? JackpotInternalId.Daily);\r\n\t\tconst jackpotType: JackpotType = this.props.widgetConfig.jackpotType ?? JackpotType.Daily;\r\n\r\n\t\tconst jackpotHandler: IJackpotHandler = this.services.jackpotsWithState.currentJackpots[jackpotId];\r\n const jackpotData = (jackpotHandler?.jackpotData || {}) as IJackpotData;\r\n\r\n if(!this._shouldRenderSkeleton) {\r\n jackpotHandler.startGradual(jackpotData);\r\n }\r\n\r\n const {jackpotState, lastWinAmount} = jackpotData || {};\r\n\r\n\t\tconst WrapperBox = this.props.WrapperBox || React.Fragment;\r\n\r\n const layout = this._getJackpotWidgetLayout();\r\n\r\n const themeType = this.services.jackpotsWithState.getThemeType(jackpotType);\r\n\r\n let mustHitTimeFn: () => Date = jackpotData ? () => {\r\n return jackpotData.mustHitTime;\r\n } : () => new Date(0);\r\n\r\n return \r\n \r\n \r\n \r\n {jackpotState === JACKPOT_STATE.Hot ? <>\r\n \r\n \r\n \r\n \r\n : null}\r\n\r\n {(this._shouldRenderSkeleton) ?\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n :\r\n <>\r\n \r\n \r\n {jackpotState === JACKPOT_STATE.Cold &&\r\n \r\n {this.services.translation.translate('JACKPOT-WIDGET-LAST-WIN')}\r\n \r\n }\r\n\r\n \r\n {jackpotState === JACKPOT_STATE.Cold ?\r\n this.services.currency.formatMoney(lastWinAmount) :\r\n this.services.currency.formatMoney(jackpotHandler.jackpotAmount)}\r\n \r\n \r\n\r\n \r\n {jackpotState === JACKPOT_STATE.Cold ?\r\n <>\r\n \r\n {this.services.translation.translate('JACKPOT-WIDGET-NEXT-JACKPOT')}\r\n \r\n\r\n \r\n {this.services.currency.formatMoney(jackpotHandler.jackpotAmount)}\r\n \r\n :\r\n <>\r\n \r\n {this.services.translation.translate(this._getCountDownTimerTranslationKey(jackpotState))}\r\n \r\n\r\n \r\n }\r\n \r\n }\r\n \r\n \r\n \r\n ;\r\n\t}\r\n\r\n}\r\n","import styled from \"styled-components\";\r\nimport {JACKPOT_WIDGET_LAYOUT} from \"../../jackpot-widget.component\";\r\n\r\nexport interface IJackpotWidgetAspectRatioBoxProps {\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n};\r\n\r\nconst handlePaddingTop = (layout: JACKPOT_WIDGET_LAYOUT) => {\r\n switch (layout) {\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE:\r\n return \"58%\";\r\n case JACKPOT_WIDGET_LAYOUT.LANDSCAPE_WIDE:\r\n return \"25%\";\r\n case JACKPOT_WIDGET_LAYOUT.PORTRAIT:\r\n default:\r\n return \"123%\";\r\n }\r\n};\r\n\r\nexport const JackpotWidgetAspectRatioBox = styled.div`\r\n position: relative;\r\n padding-top: ${({layout}) => handlePaddingTop(layout)};\r\n transition: padding-top 0.5s ease-in-out;\r\n`;\r\n","import styled from \"styled-components\";\r\nimport {JACKPOT_WIDGET_LAYOUT} from \"../../jackpot-widget.component\";\r\n\r\nexport interface IJackpotWidgetAmountContainerProps {\r\n layout: JACKPOT_WIDGET_LAYOUT;\r\n}\r\n\r\nexport const JackpotWidgetAmountContainer = styled.div`\r\n width: ${({layout}) => layout === JACKPOT_WIDGET_LAYOUT.LANDSCAPE_WIDE ? \"40%\" : \"initial\"};\r\n`;\r\n","import styled from \"styled-components\";\r\n\r\nexport const JackpotWidgetFooterElementSkeletonBox = styled.div`\r\n width: 20%;\r\n height: 2rem;\r\n \r\n animation: FooterElementSkeletonAnimation 1.5s linear infinite;\r\n \r\n @keyframes FooterElementSkeletonAnimation {\r\n 0% {\r\n background-color: #474747;\r\n }\r\n 100% {\r\n background-color: #333333;\r\n }\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {JackpotWidgetFooterElementSkeletonBox} from \"./jackpot-widget-footer-element-skeleton.box\";\r\n\r\nexport const JackpotWidgetClockLabelSkeletonBox = styled(JackpotWidgetFooterElementSkeletonBox)`\r\n margin-left: 50%;\r\n`;","import styled from \"styled-components\";\r\nimport {JackpotWidgetFooterElementSkeletonBox} from \"./jackpot-widget-footer-element-skeleton.box\";\r\n\r\nexport const JackpotWidgetCollectingLabelSkeletonBox = styled(JackpotWidgetFooterElementSkeletonBox)`\r\n margin-left: 5%;\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const JackpotWidgetFooterSkeletonBox = styled.div`\r\n display: flex;\r\n margin-bottom: 0.8rem;\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const JackpotWidgetAmountSkeletonBox = styled.div`\r\n margin-top: 35%;\r\n margin-left: 25%;\r\n\r\n width: 50%;\r\n height: 2.8rem;\r\n \r\n animation: AmountSkeletonAnimation 1.5s linear infinite;\r\n @keyframes AmountSkeletonAnimation {\r\n 0% {\r\n background-color: #474747;\r\n }\r\n 100% {\r\n background-color: #333333;\r\n }\r\n }\r\n`;","import {ServiceBase} from \"../ServiceBase\";\r\n\r\nexport enum AnimatedIconUnloadReason {\r\n CONTEXT_LOST,\r\n VIEWPORT_EXIT,\r\n REQUESTED,\r\n GAME_OPEN\r\n}\r\n\r\nexport interface IAnimatedIconRequestOptions {\r\n jsonUrl: string;\r\n wrapper: HTMLElement;\r\n size: {width: number; height: number};\r\n timings: {delay: number; interval: number;};\r\n onAnimationLoad?(): void;\r\n onAnimationUnload?(reason: AnimatedIconUnloadReason): void;\r\n onAnimationBeforeUnload?(reason: AnimatedIconUnloadReason): void;\r\n}\r\n\r\nexport type AnimatedIconObservableTarget = IAnimatedIconRequestOptions & {\r\n animationDisposer?(reason: AnimatedIconUnloadReason): void;\r\n inViewport?: boolean;\r\n loadingInProgress?: boolean;\r\n abortLoading?: boolean;\r\n};\r\n\r\n\r\nexport class AnimatedIconBaseService extends ServiceBase{\r\n protected attemptDisposeAnimation(observedTarget: AnimatedIconObservableTarget, reason: AnimatedIconUnloadReason) {\r\n if (observedTarget.animationDisposer) {\r\n if (observedTarget.onAnimationBeforeUnload) {\r\n observedTarget.onAnimationBeforeUnload(reason);\r\n }\r\n observedTarget.animationDisposer(reason);\r\n observedTarget.animationDisposer = undefined;\r\n if (observedTarget.onAnimationUnload) {\r\n observedTarget.onAnimationUnload(reason);\r\n }\r\n } if (observedTarget.loadingInProgress) {\r\n // we cannot actually abort loading the resources (json, png, atlas) because they are xhr calls\r\n // so we set this flag and after the xhr is done we do not start the animation and we reset the flag\r\n observedTarget.abortLoading = true;\r\n }\r\n }\r\n\r\n protected async loadAnimatedIcon(options: AnimatedIconObservableTarget, resourceName: string) {\r\n if (options.loadingInProgress) {\r\n throw new Error(\"Animated Icon Loading in progress already for this icon. Please be patient\");\r\n }\r\n try {\r\n options.loadingInProgress = true;\r\n let {app: pixiApp, dispose: disposePixiApp, PixiSpine, canvas} = await this.services.pixiApp.createPixiApp({\r\n width: options.size.width, height: options.size.height,\r\n onContextLost: () => {\r\n this.attemptDisposeAnimation(options, AnimatedIconUnloadReason.CONTEXT_LOST);\r\n }\r\n });\r\n canvas.style.display = \"block\";\r\n canvas.style.width = \"100%\";\r\n\r\n const {resources} = await this.services.pixiApp.loadResources(pixiApp, [{name: resourceName, jsonUrl: options.jsonUrl}]).catch((e: unknown) => {\r\n disposePixiApp();\r\n throw e;\r\n });\r\n\r\n let spineAnimation = new PixiSpine.Spine(resources[resourceName].spineData);\r\n\r\n // get the animations\r\n const availableAnimations = resources[resourceName].spineData.animations.map(a => a.name);\r\n\r\n // play animation\r\n const runAnimation = () => {\r\n // animated icons will have only one animation that we play in loop. There won't be complex timeline animations\r\n spineAnimation.state.setAnimation(0, availableAnimations[0], false);\r\n }\r\n let animationSchedule: any;\r\n\r\n spineAnimation.state.addListener({\r\n complete: (entry) => {\r\n // when animation completes, schedule the next iteration\r\n animationSchedule = setTimeout(runAnimation, options.timings.interval);\r\n }\r\n });\r\n\r\n runAnimation();\r\n\r\n const animationDisposer = () => {\r\n clearTimeout(animationSchedule);\r\n spineAnimation?.destroy();\r\n animationSchedule = undefined;\r\n spineAnimation = undefined;\r\n disposePixiApp();\r\n };\r\n\r\n if (options.abortLoading) {\r\n animationDisposer();\r\n options.abortLoading = false;\r\n } else {\r\n options.animationDisposer = animationDisposer;\r\n // add the animation to the scene and render...\r\n pixiApp.stage.addChild(spineAnimation);\r\n options.wrapper.appendChild(pixiApp.view);\r\n\r\n if (options.onAnimationLoad) {\r\n options.onAnimationLoad();\r\n }\r\n }\r\n options.loadingInProgress = false;\r\n\r\n } catch (e) {\r\n options.loadingInProgress = false;\r\n throw e;\r\n }\r\n }\r\n}","import styled from 'styled-components';\r\nimport { flexFixedSizeItem } from '../../../../themes/architecture/css-helpers/flex';\r\n\r\nexport const JackpotWidgetDefaultBox = styled.div`\r\n ${flexFixedSizeItem}\r\n margin: 1rem 1rem 3rem;\r\n align-self: stretch;\r\n max-width: 24rem;\r\n width: calc(100% / 6);\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n width: calc(100% / 5);\r\n margin: 1rem 1.5rem 0;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n width: calc(100% / 3);\r\n margin: 1rem 1.5rem 0;\r\n }\r\n`;\r\n","import {JackpotWidgetDefaultBox} from './jackpot-widget-wrapper.default.box';\r\n\r\nexport const JackpotWidgetWrapperBox = JackpotWidgetDefaultBox;\r\n","import styled from 'styled-components';\r\nimport { flexFixedSizeItem } from '../../../../themes/architecture/css-helpers/flex';\r\n\r\nexport const RedTigerWidgetDefaultBox = styled.div`\r\n ${flexFixedSizeItem}\r\n margin: 1rem 1rem 3rem;\r\n align-self: stretch;\r\n max-width: 24rem;\r\n width: calc(100% / 6);\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n margin: 1rem 1.5rem 0;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n width: calc(100% / 5);\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n width: calc(100% / 3);\r\n }\r\n`;\r\n","import {RedTigerWidgetDefaultBox} from './red-tiger-widget.default.box';\r\n\r\nexport const RedTigerWidgetBox = RedTigerWidgetDefaultBox;\r\n","import styled from 'styled-components';\r\n\r\n\r\nexport const RedTigerWidgetHitAreaDefaultBox = styled.div`\r\n cursor: pointer;\r\n width: 100%;\r\n height: 100%;\r\n`;\r\n","import styled from 'styled-components';\r\nimport { RedTigerWidgetHitAreaDefaultBox } from './red-tiger-widget-hit-area.default.box';\r\n\r\n\r\nexport const RedTigerWidgetHitAreaCasino777Box = styled(RedTigerWidgetHitAreaDefaultBox)`\r\n cursor: default;\r\n`;","import { styledByTheme } from './../../../../themes/architecture/styled-by-theme';\r\nimport { RedTigerWidgetHitAreaDefaultBox } from './red-tiger-widget-hit-area.default.box';\r\nimport { RedTigerWidgetHitAreaCasino777Box } from './red-tiger-widget-hit-area.casino777.box';\r\n\r\nexport const RedTigerWidgetHitAreaBox = styledByTheme(RedTigerWidgetHitAreaDefaultBox)\r\n .forCasino777(RedTigerWidgetHitAreaCasino777Box)\r\n .apply();","import styled from 'styled-components';\r\n\r\n\r\nexport const RedTigerWidgetFrameContainerDefaultBox = styled.iframe`\r\n pointer-events: none;\r\n width: 100%;\r\n height: 100%;\r\n border-radius: 10px;\r\n`;\r\n","import { styledByTheme } from './../../../../themes/architecture/styled-by-theme';\r\nimport { RedTigerWidgetFrameContainerDefaultBox } from './red-tiger-widget-frame-container.default.box';\r\n\r\nexport const RedTigerWidgetFrameContainerBox = styledByTheme(RedTigerWidgetFrameContainerDefaultBox)\r\n .apply();","import React from 'react';\r\nimport { OrbitComponent } from '../base-components/orbit-component/orbit-component';\r\nimport { RedTigerJackpotWidgetConfiguration } from '../../services/configurations/config-data-sections/red-tiger-jackpot-widget.configuration';\r\nimport { observer } from 'mobx-react';\r\nimport { RedTigerWidgetBox } from './boxes/widget/red-tiger-widget.box';\r\nimport { RedTigerWidgetHitAreaBox } from './boxes/hitArea/red-tiger-widget-hit-area.box';\r\nimport { RedTigerWidgetFrameContainerBox } from './boxes/frameContainer/red-tiger-widget-frame-container.box';\r\nimport { CyClass } from '../../../common/cy-classes';\r\n\r\ninterface RedTigerWidgedComponentProps {\r\n widgetConfig?: RedTigerJackpotWidgetConfiguration;\r\n}\r\n\r\n@observer\r\nexport class RedTigerWidgetComponent extends OrbitComponent {\r\n \r\n private _onWidgetClick = () => {\r\n this.services.redTiger.redirectToWidgetActionLink(this.props.widgetConfig.actionLink);\r\n }\r\n \r\n private _logMissingProps() {\r\n if (!this.props.widgetConfig.actionLink) {\r\n // actionLink is optional. For example on 777 we don't have it\r\n this.services.logger.info('Missing actionLink parameter for RedTigerWidgetComponent');\r\n }\r\n\r\n if (!this.props.widgetConfig.parameters?.skin) {\r\n this.services.logger.warning('Missing skin parameter for RedTigerWidgetComponent');\r\n }\r\n\r\n if (!this.props.widgetConfig.parameters?.jackpotId) {\r\n this.services.logger.warning('Missing jackpotId parameter for RedTigerWidgetComponent');\r\n }\r\n }\r\n\r\n render() {\r\n if(!this.props.widgetConfig?.display) {\r\n return null;\r\n }\r\n this._logMissingProps();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import styled from 'styled-components';\r\nimport { GeneralTitleDefaultBox } from './general-title.default.box';\r\n\r\nexport const GeneralTitleCasinoSIBox = styled(GeneralTitleDefaultBox)`\r\n flex-grow: 100;\r\n border-radius: 3px 0px 0px 3px;\r\n border-left: 5px solid ${props => props.theme.colors.brandPrimary};\r\n`;","import {GeneralTitleDefaultBox} from './general-title.default.box';\r\nimport {GeneralTitleCasino777Box} from './general-title.casino777.box';\r\nimport {GeneralTitleCasinoSIBox} from './general-title.si.box';\r\nimport {styledByTheme} from '../../themes/architecture/styled-by-theme';\r\n\r\nexport const GeneralTitleBox = styledByTheme(GeneralTitleDefaultBox)\r\n .forCasino777(GeneralTitleCasino777Box)\r\n .forSI(GeneralTitleCasinoSIBox)\r\n .apply();\r\n\r\n","import styled from 'styled-components';\r\nimport {GeneralTitleBox} from '../../../../basic-components/general-title/general-title.box';\r\nimport {JACKPOT_WIDGET, RED_TIGER_JACKPOT} from '../../constants';\r\n\r\nexport const ListTitleTextDefaultBox = styled(GeneralTitleBox)`\r\n letter-spacing: 0.2rem;\r\n display: flex;\r\n align-items: center;\r\n padding-top: 0.5rem;\r\n padding-bottom: 0.5rem;\r\n color: ${props => props.theme.components.gamesListTitle.colors.text.regular};\r\n\r\n .${JACKPOT_WIDGET} & {\r\n color: ${props => props.theme.components.gamesListTitle.colors.text.dailyJackpot};\r\n border-left: 2px solid ${props => props.theme.components.gamesListTitle.colors.text.dailyJackpot};\r\n }\r\n\r\n .${RED_TIGER_JACKPOT} & {\r\n color: ${props => props.theme.components.gamesListTitle.colors.text.redTigerJackpot};\r\n border-left: 2px solid #ff014f;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n padding-top: 0.6rem;\r\n padding-bottom: 0.6rem;\r\n padding-right: 0.1rem;\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\nimport {JACKPOT_WIDGET, RED_TIGER_JACKPOT} from '../../constants';\r\nimport {ListTitleTextDefaultBox} from './list-title-text.default.box';\r\n\r\nexport const ListTitleTextCasino777Box = styled(ListTitleTextDefaultBox)`\r\n letter-spacing: 0.1rem;\r\n\r\n .${JACKPOT_WIDGET} & {\r\n border-left: none;\r\n }\r\n\r\n .${RED_TIGER_JACKPOT} & {\r\n border-left: none;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n align-items: flex-start;\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\nimport {ListTitleTextDefaultBox} from \"./list-title-text.default.box\";\r\n\r\nexport const ListTitleTextCipBox = styled(ListTitleTextDefaultBox)`\r\n ${({theme}) => theme.font.presets.secondary};\r\n`;","import styled from \"styled-components\";\r\nimport {ListTitleTextDefaultBox} from \"./list-title-text.default.box\";\r\nimport {JACKPOT_WIDGET, RED_TIGER_JACKPOT} from \"../../constants\";\r\n\r\nexport const ListTitleTextCisBox = styled(ListTitleTextDefaultBox)`\r\n ${({theme}) => theme.font.presets.secondary};\r\n background: none;\r\n border-left: none;\r\n padding: 0 0;\r\n\r\n .${JACKPOT_WIDGET} & {\r\n color: ${props => props.theme.components.gamesListTitle.colors.text.regular};\r\n border-left: none\r\n }\r\n\r\n .${RED_TIGER_JACKPOT} & {\r\n color: ${props => props.theme.components.gamesListTitle.colors.text.regular};\r\n border-left: none\r\n }\r\n`;","import styled from 'styled-components';\r\nimport {ListTitleTextDefaultBox} from './list-title-text.default.box';\r\nimport { JACKPOT_WIDGET, RED_TIGER_JACKPOT } from '../../constants';\r\n\r\nexport const ListTitleTextSiBox = styled(ListTitleTextDefaultBox)`\r\n letter-spacing: 0.1rem;\r\n \r\n background-image: linear-gradient(to right, ${props => props.theme.colors.background} 0%, ${props => props.theme.colors.background} 70%, ${props => props.theme.colors.background}00 100%);\r\n background-color: transparent;\r\n\r\n .${JACKPOT_WIDGET} & {\r\n border-left: 5px solid ${props => props.theme.colors.brandPrimary};\r\n }\r\n\r\n .${RED_TIGER_JACKPOT} & {\r\n border-left: 5px solid ${props => props.theme.colors.brandPrimary};\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\nimport {ListTitleTextDefaultBox} from './list-title-text.default.box';\r\nimport {JACKPOT_WIDGET, RED_TIGER_JACKPOT} from \"../../constants\";\r\n\r\nexport const ListTitleTextMrGreenBox = styled(ListTitleTextDefaultBox)`\r\n background: none;\r\n border-left: 0;\r\n \r\n .${JACKPOT_WIDGET} & {\r\n border-left: 0;\r\n }\r\n \r\n .${RED_TIGER_JACKPOT} & {\r\n border-left: 0;\r\n }\r\n`;\r\n\r\n","import 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 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/base-colors';\r\nimport { ListTitleCisBox } from './list-title.cis.box';\r\n\r\nexport const ListTitleSICisBox = styled(ListTitleCisBox)`\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 {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 .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 //console.log('recomandations for: ' + this.arenaName);\r\n this._setAiEngineListsSortOrder(await this.services.aiEngine.getCasinoRecommendedDynamicListsForPlayer(listsIDs));\r\n }\r\n }\r\n\r\n private _movePreferredSwiperOnTop(swipers: IGamesListModel[]){\r\n const listId = this._getSwiperIdToPutOnTop();\r\n if(Check.isNullOrUndefined(listId)) {\r\n return swipers;\r\n }\r\n const listIndex = swipers.findIndex((list) => list.listId === listId);\r\n if(listIndex > 0){\r\n swipers.splice(0, 0, swipers.splice(listIndex, 1)[0]);\r\n }\r\n return swipers;\r\n }\r\n\r\n\r\n protected _sortSwipersByAI(originalSwipers: IGamesListModel[]): IGamesListModel[] {\r\n const scores = this._aiEngineListsSortOrder;\r\n if(!scores) {\r\n return originalSwipers;\r\n }\r\n\r\n const notForcedInLayoutSortedSwipers = originalSwipers.filter(s => !s.forceInLayout)\r\n .sort((s1, s2) => (scores[s2.listId] || 0) - (scores[s1.listId] || 0));\r\n\r\n let sortedSwipersConfigs: IGamesListModel[] = [];\r\n originalSwipers.forEach(gameList => {\r\n if(gameList.forceInLayout){\r\n sortedSwipersConfigs.push(gameList)\r\n } else{\r\n let mappedGameList = notForcedInLayoutSortedSwipers.shift();\r\n if(mappedGameList) {\r\n sortedSwipersConfigs.push(mappedGameList)\r\n }\r\n }\r\n });\r\n\r\n return sortedSwipersConfigs;\r\n }\r\n\r\n\r\n\r\n @computed\r\n public get allLists(): IGamesListModel[] {\r\n const result = this._createAllLists();\r\n this._sendGameListsAnalytics(result);\r\n return result;\r\n }\r\n\r\n @computed\r\n get allArenaGamesForFiltering(): GameInfo[] {\r\n let result: number[] = [];\r\n this._getGridsConfigurations().forEach(g => {\r\n result = [\r\n ...result,\r\n ...g.gamesId\r\n ]\r\n });\r\n\r\n return result.map(gameType => this.services.games.gamesMap[gameType]).filter(gameInfo => gameInfo);\r\n }\r\n\r\n get listsCount(): number {\r\n return this.allLists.length;\r\n }\r\n\r\n protected _createAllLists(): IGamesListModel[] {\r\n return this._appendGrids(\r\n this._limitTheNumberOfSwipers(\r\n this._saveSwipersPostLoginSortOrder(\r\n this._sortSwipersByPostLoginOrder(\r\n this._movePreferredSwiperOnTop(\r\n this._sortSwipersByAI(\r\n this._createSwipers()))))));\r\n }\r\n\r\n private _limitTheNumberOfSwipers(swipers: IGamesListModel[]): IGamesListModel[] {\r\n\r\n if(swipers.length <= this.maxSwipersToShow) {\r\n return swipers;\r\n }\r\n let result: IGamesListModel[] = [];\r\n\r\n let maxNumberOfSwipers = this.maxSwipersToShow;\r\n for(let i = 0; i < swipers.length; i++) {\r\n const list = swipers[i];\r\n if(maxNumberOfSwipers > 0 || list.forceInLayout) {\r\n result.push(list);\r\n }\r\n\r\n if(list.isVisible) {\r\n maxNumberOfSwipers--;\r\n }\r\n\r\n }\r\n\r\n return result;\r\n }\r\n\r\n renderList(listPosition: number): React.ReactElement | null {\r\n let position = listPosition;\r\n\r\n for(let list of this.allLists) {\r\n if(list.isVisible) {\r\n position--;\r\n }\r\n if(position === 0) {\r\n return this._renderListAndBanner(listPosition, list);\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n protected _renderListAndBanner(listPosition: number, list: IGamesListRenderer) {\r\n return (\r\n \r\n {list.render(listPosition)}\r\n {this._renderPromotionalBanner(listPosition)}\r\n \r\n )\r\n }\r\n\r\n getNextBatchSize(currentListPosition: number): number {\r\n if(currentListPosition > this.allLists.length) {\r\n return 0;\r\n }\r\n\r\n return 2;\r\n }\r\n\r\n protected _saveSwipersPostLoginSortOrder(swipers: IGamesListModel[]): IGamesListModel[] {\r\n if(this.services.user.isAuthorized) {\r\n this._postLoginListsSortOrderStorage.saveSortOrder(this.arenaName, swipers);\r\n }\r\n return swipers;\r\n }\r\n\r\n protected _sortSwipersByPostLoginOrder(swipers: IGamesListModel[]): IGamesListModel[] {\r\n if(this.services.user.isAuthorized) {\r\n return swipers;\r\n }\r\n\r\n return this._postLoginListsSortOrderStorage.sortLists(this.arenaName, swipers);\r\n }\r\n\r\n protected _createSwipers(): IGamesListModel[] {\r\n const configs = this._getSwipersConfigurations();\r\n const lists: IGamesListModel[] = [];\r\n\r\n configs.forEach((listConfig) => {\r\n lists.push(this._createSwiper(listConfig));\r\n });\r\n\r\n return lists;\r\n }\r\n\r\n protected _appendGrids(lists: IGamesListModel[]) {\r\n this._getGridsConfigurations().forEach(gridConfig => {\r\n lists.push(this._createGrid(gridConfig));\r\n });\r\n return lists;\r\n }\r\n\r\n protected _createGrid(gridConfig: ArenaGamesGridConfiguration) {\r\n return this._listFactory.createGrid(gridConfig);\r\n }\r\n\r\n protected _createSwiper(swiperConfig: SwiperGamesListConfiguration): IGamesListModel {\r\n return this._listFactory.createSwiper(swiperConfig);\r\n }\r\n\r\n protected _getBannerMinHeightInPixels(listPosition: number, bannerConfig: BannerConfig | null) {\r\n if(!bannerConfig) {\r\n return 0;\r\n }\r\n\r\n const shouldRenderBanner = listPosition === bannerConfig.position\r\n || (this.allLists.length < bannerConfig.position && listPosition === this.allLists.length);\r\n if(!shouldRenderBanner) {\r\n return 0;\r\n }\r\n\r\n if(this.services.mediaQuery.sAndBelow) {\r\n return 142;\r\n }\r\n\r\n return 223;\r\n }\r\n\r\n protected _renderPromotionalBanner(listPosition: number): React.ReactElement | null {\r\n const bannerConfig = this._getPromotionalBannerConfig();\r\n const bannerMinHeight = this._getBannerMinHeightInPixels(listPosition, bannerConfig);\r\n if(bannerMinHeight === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n protected _sendGameListsAnalytics(lists: IGamesListModel[]): IGamesListModel[] {\r\n if(!this.services.user.isAuthorized) {\r\n return lists;\r\n }\r\n\r\n if(!this._isUsingExternalAIForSwipersSorting) {\r\n return lists;\r\n }\r\n\r\n const analyticsObject = {\r\n category: 'AI_ListsDisplayed',\r\n action: lists.map(list => list.title).join(','),\r\n label: \"ML888\"\r\n };\r\n\r\n this.services.analytics.sendAnalytics(analyticsObject.category, analyticsObject.action, analyticsObject.label);\r\n\r\n return lists;\r\n }\r\n}","import styled 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: 0;\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.bold}\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n font-size: 1rem;\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 margin-right: 1rem;\r\n margin-left: 1rem;\r\n &::after {\r\n display: none;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n ${props => props.useSmallHeaderArenas ? css`max-width: 210px` : \"\"};\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n ${props => props.useSmallHeaderArenas ? css`min-width: 100px;`: \"\"};\r\n }\r\n\r\n`;\r\n","import {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`\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n padding: 0 0.5rem;\r\n background: ${({theme}) => theme.components.header.colors.indicatorBadge.backgroundInGridLayout.toString()};\r\n color: ${({theme}) => theme.colors.textLight.toString()};\r\n border-radius: 2rem;\r\n transform: translate(100%, -50%);\r\n`;\r\n\r\nexport const HomepageHeaderArenaBadgeDefaultBox = DefaultBox;\r\n","import styled from \"styled-components\";\r\nimport { HomepageHeaderArenaBadgeDefaultBox } from \"./home-page-header-arena-badge.default.box\";\r\nimport { baseColors} from '../../../../themes/definitions/si/base-colors';\r\n\r\nexport const HomepageHeaderArenaBadgeSIBox = styled(HomepageHeaderArenaBadgeDefaultBox)`\r\n font-size: 1.8rem;\r\n background-color: ${baseColors.base03Dark};\r\n padding: 0 0.7rem;\r\n box-shadow: 0 0 1px 1px ${props => props.theme.colors.background};\r\n border-radius: 0.5rem;\r\n transform: translate(50%, 10px);\r\n z-index: 1;\r\n`;\r\n","import { styledByTheme } from \"../../../../themes/architecture/styled-by-theme\";\r\nimport { HomepageHeaderArenaBadgeDefaultBox } from \"./home-page-header-arena-badge.default.box\";\r\nimport { HomepageHeaderArenaBadgeSIBox } from \"./home-page-header-arena-badge.si.box\";\r\n\r\nexport const HomepageHeaderArenaBadgeBox = styledByTheme(HomepageHeaderArenaBadgeDefaultBox).forSI(HomepageHeaderArenaBadgeSIBox).apply();\r\n","import styled, {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","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}\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\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 [\"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 this.services.analytics.sendAnalytics('Game Grid', 'Home', `${arena.title}_${index}`);\r\n\r\n if (arena.action) {\r\n this._handleArenaAction(arena.action, index);\r\n } else if (arena.link) {\r\n this._handleArenaRedirect(arena.link);\r\n }\r\n }\r\n\r\n private _renderOneHeaderArena(arena: HomePageHeaderArena, index: number, 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 \r\n \r\n {this.services.translation.translate(arena.title)}\r\n {newGamesIndication}\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\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) + 56px)' : '0px'};\r\n right: 0;\r\n`;\r\n","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../themes/architecture/styled-by-device\";\r\nimport {FreeToPlayAnimatedIconDefaultBox} from \"./free-to-play-animated-icon.default.box\";\r\n\r\nconst PCBox = styled(FreeToPlayAnimatedIconDefaultBox)`\r\n width: 190px;\r\n`;\r\n\r\nconst MobileBox = styled(FreeToPlayAnimatedIconDefaultBox)`\r\n width: 130px;\r\n`;\r\n\r\n\r\nexport const FreeToPlayAnimatedIconBox = styledByDevice(PCBox,MobileBox);","\r\nexport interface IUserGameOrientationService {\r\n readonly gameGroup: IUserGameOrientation;\r\n}\r\n\r\nexport enum GAME_ORIENTATION_IDS{\r\n SLOTS = 5003,\r\n BLACKJACK = 5001,\r\n ROULETTE = 5002,\r\n LIVE_BLACKJACK = 5009,\r\n LIVE_ROULETTE = 5010,\r\n LIVE_CASINO = 6003,\r\n CASINO_SKILL = 6001,\r\n CASINO_SOFT = 6002,\r\n CASINO_MIXT = 8001\r\n}\r\n\r\nexport interface IUserGameOrientation{\r\n groupId?: number;\r\n groupName: string;\r\n}","import {OrbitComponent} from \"../base-components/orbit-component/orbit-component\";\r\nimport * as React from \"react\";\r\nimport {FreeToPlayAnimatedIconBox} from \"./boxes/free-to-play-animated-icon.box\";\r\nimport { AnimatedIconObservableTarget, AnimatedIconUnloadReason, IAnimatedIconRequestOptions } from \"../../services/pixi-app/animated-icon-base-service.service\";\r\nimport { CHANNEL_ELEMENTS, CHANNEL_SOURCE } from \"../../../common/const/casinofied-analytics-consts\";\r\nimport { AreaType } from \"@sparkware/uc-sdk-core\";\r\nimport { observer } from \"mobx-react\";\r\nimport {CyClass} from \"../../../common/cy-classes\";\r\nimport {ISendElasticEventOptions} from \"../../services/analytics/analytics.service.interface\";\r\n\r\n@observer\r\nexport class FreeToPlayAnimatedIconComponent extends OrbitComponent {\r\n private iconRequestOptions = {\r\n jsonUrl: this.services.theme.currentTheme.images.f2p.freeToPlay.toString(),\r\n size: {\r\n width: 445,\r\n height: 364\r\n },\r\n timings: {\r\n delay: 2000,\r\n interval: 3000\r\n }\r\n };\r\n\r\n private iconObservableTarget: AnimatedIconObservableTarget | undefined;\r\n\r\n private _captureElementRefForIcon(element: HTMLElement | null) {\r\n // if element is null (the component was unmounted) or the element changed, then check if we have a currently running/loading animation and remove it\r\n if (!element || (this.iconObservableTarget && this.iconObservableTarget.wrapper !== element)) {\r\n // if the current animation is loading, cancel it\r\n if (this.iconObservableTarget && this.iconObservableTarget.loadingInProgress) {\r\n this.iconObservableTarget.abortLoading = true;\r\n }\r\n // if the current animation is already running, stop and dispose it\r\n if (this.iconObservableTarget && this.iconObservableTarget.animationDisposer) {\r\n this.iconObservableTarget.animationDisposer(AnimatedIconUnloadReason.REQUESTED);\r\n }\r\n }\r\n // if the element exists and is different from the previous one, then the animation must be started\r\n if (element && (!this.iconObservableTarget || this.iconObservableTarget.wrapper !== element)) {\r\n let requestOptions: Omit = this.iconRequestOptions;\r\n // update the reference\r\n this.iconObservableTarget = {\r\n ...requestOptions,\r\n wrapper: element\r\n };\r\n this.services.freeToPlay.loadFreeToPlayAnimation(this.iconObservableTarget);\r\n }\r\n // if element is null just update the reference so we know next time the capture is ran\r\n if (!element) {\r\n this.iconObservableTarget = undefined;\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n if (this.services.freeToPlay.isPromotionEligible) {\r\n this._sendAnalytics(\"SHOW\");\r\n }\r\n }\r\n\r\n render() {\r\n if (!this.services.freeToPlay.isPromotionEligible) {\r\n return null;\r\n }\r\n\r\n if (this.services.freeToPlay.isPromotionOpened) {\r\n return null;\r\n }\r\n\r\n return (\r\n this._openBonusWheel()}\r\n ref={this._captureElementRefForIcon.bind(this)}\r\n />\r\n );\r\n }\r\n\r\n private _openBonusWheel = async () => {\r\n this._sendAnalytics(\"CLICK\");\r\n await this.services.freeToPlay.showPromotion({\r\n channel: {\r\n area: AreaType.button,\r\n source: CHANNEL_SOURCE.casinoClient,\r\n element: CHANNEL_ELEMENTS.floatingIcon\r\n }}\r\n );\r\n }\r\n\r\n private _sendAnalytics(action: string) {\r\n try {\r\n let options: ISendElasticEventOptions = {\r\n action: action,\r\n category: \"Floating_icon\",\r\n eventType: \"bonus_widget\",\r\n appID: \"F2P\",\r\n customData: {\r\n location: this.services.location.isHomePage ? 'homepage' : this.services.location.currentUri.pathName.toString(),\r\n segmentation: this.services.user.playerRMSStatus\r\n }\r\n };\r\n this.services.analytics.sendElasticInfoEvent(options, true);\r\n }\r\n catch (err){\r\n console.log(\"Floating_icon \" + action + \" analytics report failed with error: \"+ err);\r\n }\r\n }\r\n}","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {CmsBannerComponent} from '../cms-banner/cms-banner.component';\r\nimport {DailyDealComponent} from \"../daily-deal/daily-deal.component\";\r\nimport {RoutedComponent} from '../base-components/routed-component/routed.component';\r\nimport {LayoutWrapperBox} from \"../../basic-components/layout-wrapper/layout-wrapper.box\";\r\nimport {MOVE_TOP} from \"../../themes/css-global-classes\";\r\nimport classNames from \"classnames\";\r\nimport {HomePageHeaderArenasComponent} from \"../home-page-header-arenas/home-page-header-arenas.component\";\r\nimport {HomepageTopBannerBackgroundBox} from \"./boxes/home-page-top-banner-background.box\";\r\nimport {HomepageTopBannerDividerBox} from './boxes/home-page-top-banner-divider-line';\r\nimport {CyClass} from '../../../common/cy-classes';\r\nimport {LinkToOfferComponent} from \"../link-to-offer/link-to-offer.component\";\r\nimport {ArenaGamesListsComponent} from \"../arena-games-lists/arena-games-lists.component\";\r\nimport {HOME_PAGE_ARENA} from \"../../services/arenas/arena-consts\";\r\nimport {FreeToPlayAnimatedIconComponent} from \"../free-to-play-animated-icon/free-to-play-animated-icon.component\";\r\nimport {BannerComponent} from \"../banner/banner.component\";\r\n\r\n@observer\r\nexport class HomePageComponent extends RoutedComponent<{}> {\r\n\r\n private _renderTopBanner() {\r\n const topBannerProps = this.services.homepage.getTopBannerProps();\r\n\r\n return (\r\n <>\r\n \r\n \r\n {this.services.homepage.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\n\r\nexport abstract class GamesFilterStrategyBase extends DisposableObject implements IGamesFilterStrategy {\r\n\r\n constructor(protected readonly services: IServiceFactoryExtended) {\r\n super();\r\n\r\n this.addReaction(() => [this.services.location.currentUri, this.services.games.gamesMap], () => {\r\n //We use set timeout in order to avoid a circular dependency error.\r\n //Because this reaction is with fireImmediately=true it executes in this constructor, but this constructor is called from the GamesFilterService constructor\r\n //and the code inside this._filterGames is trying to access methods and properties from GamesFilterService and the Lazy class will throw an error in this case.\r\n setTimeout(() => {\r\n runInAction(() => {\r\n this.filteredGamesMap = this._filterGames();\r\n });\r\n });\r\n\r\n }, {\r\n fireImmediately: true\r\n });\r\n }\r\n\r\n protected abstract _createFiltersCategories(): IArenaGameFiltersCategory[];\r\n abstract renderMobileFiltersIndicator(): React.ReactElement;\r\n abstract renderPCFiltersIndicator(): Nullable;\r\n\r\n abstract showFiltersEditor(): void;\r\n protected abstract _createEvaluator(): IGameFilterEvaluator | null;\r\n\r\n @observable.ref\r\n filteredGamesMap: Record = {};\r\n\r\n private _filtersCategories: Nullable = null;\r\n protected get filtersCategories(): IArenaGameFiltersCategory[] {\r\n if(!this._filtersCategories) {\r\n this._filtersCategories = this._createFiltersCategories();\r\n }\r\n return this._filtersCategories;\r\n }\r\n\r\n\r\n @computed public get currentFilters(): IArenaGameFilter[] {\r\n const result: IArenaGameFilter[] = [];\r\n this.filtersCategories.forEach(category => {\r\n category.availableFilters.forEach(f => result.push(f));\r\n });\r\n\r\n return result;\r\n }\r\n\r\n get isFilteringAvailable(): boolean {\r\n return this.currentFilters.length > 0;\r\n }\r\n\r\n protected _filterGames(): GamesMap {\r\n\r\n const gamesMap = this.services.games.gamesMap;\r\n\r\n if(!this.currentFilters.some(f => f.isApplied)) {\r\n return gamesMap;\r\n }\r\n\r\n const evaluator = this._createEvaluator();\r\n\r\n const result: GamesMap = {};\r\n\r\n for(let game of Object.values(this.services.games.gamesMap)) {\r\n const filterResult = evaluator.applyFilter(game);\r\n if(ApplyGameFilterResult.IncludeGame === filterResult) {\r\n result[game.gameType] = game;\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n\r\n}","import styled from \"styled-components\";\r\n\r\nexport const ContainerBox = styled.div`\r\n 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 & ~ .filter-title {\r\n color: ${props => props.theme.colors.brandPrimary}; \r\n }\r\n }\r\n \r\n ${props => props.type === 'radio' && css` border-radius: 10px; ` } \r\n`;","import styled from \"styled-components\";\r\n\r\nexport const FilterItemTitleBox = styled.span`\r\n margin-left: 2em;\r\n font-size: 1.5rem;\r\n ${({theme}) => theme.font.presets.medium};\r\n color: ${props => props.theme.colors.text};\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const 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 {this.props.category.gamesCount > 0 && ` (${this.props.category.gamesCount})`}\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\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 }\r\n\r\n private _onClearAll = async () => {\r\n await this.services.gamesFilter.clearFilters();\r\n this.services.drawer.right.back();\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 {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {ArenaGameFiltersCategoryEditor} from \"../../arena-filters/categories/arena-game-filters-category-editor\";\r\nimport {IAdvancedStrategyFiltersEditorViewModel} from \"./advanced-strategy-filters-editor-view-model.interface\";\r\nimport {IArenaGameFiltersCategory} from \"../../arena-filters/categories/arena-game-filters-category.interface\";\r\n\r\nexport class AdvancedStrategyFiltersEditor implements IAdvancedStrategyFiltersEditorViewModel {\r\n constructor(private readonly filtersCategories: IArenaGameFiltersCategory[],\r\n private readonly services: IServiceFactoryExtended) {\r\n\r\n this._categories = this.filtersCategories.map(c => new ArenaGameFiltersCategoryEditor(c));\r\n }\r\n\r\n private _categories: ArenaGameFiltersCategoryEditor[];\r\n get visibleCategories(): ArenaGameFiltersCategoryEditor[] {\r\n return this._categories.filter(c => c.visibleFilters.length > 0);\r\n }\r\n\r\n private _getAppliedFiltersIds(): string[] {\r\n let result: string[] = [];\r\n\r\n this._categories.forEach(c => {\r\n result = [\r\n ...result,\r\n ...c.getAppliedFiltersIds()\r\n ];\r\n\r\n });\r\n return result;\r\n }\r\n\r\n async applyFilters(): Promise {\r\n await this.services.gamesFilter.applyFilters(this._getAppliedFiltersIds());\r\n }\r\n}","import {ApplyGameFilterResult, IGameFilterEvaluator} from \"./game-filter-evaluator.interface\";\r\nimport {GameInfo} from \"../../games/game-info\";\r\n\r\nexport class AndGameFiltersEvaluator implements IGameFilterEvaluator {\r\n constructor(...evaluators: IGameFilterEvaluator[]) {\r\n this._evaluators = evaluators;\r\n }\r\n\r\n private readonly _evaluators: IGameFilterEvaluator[];\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n let result = ApplyGameFilterResult.NotApplicable;\r\n for(let evaluator of this._evaluators) {\r\n const r = evaluator.applyFilter(gameInfo);\r\n if(r === ApplyGameFilterResult.ExcludeGame) {\r\n return r;\r\n } else if(r !== ApplyGameFilterResult.NotApplicable) {\r\n result = r;\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n\r\nexport function AND(...evaluators: IGameFilterEvaluator[]): IGameFilterEvaluator {\r\n return new AndGameFiltersEvaluator(...evaluators);\r\n}","import styled from \"styled-components\";\r\nimport {ACTIVE} from \"../../../../../themes/css-global-classes\";\r\n\r\nexport const FiltersMobileButtonDefaultBox = styled.a`\r\n position: relative;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 3.4rem;\r\n height: 3.4rem;\r\n border: 1px solid ${props => props.theme.colors.boxBorderContrast};\r\n border-radius: 50%;\r\n margin: 0 0.5rem;\r\n\r\n &.${ACTIVE} {\r\n &:after {\r\n content: \"\";\r\n position: absolute;\r\n top: -0.25rem;\r\n right: -0.25rem;\r\n width: 1rem;\r\n height: 1rem;\r\n background: ${props => props.theme.colors.danger};\r\n border-radius: 50%;\r\n }\r\n }\r\n \r\n`;","import styled from \"styled-components\";\r\nimport {FiltersMobileButtonDefaultBox} from \"./filters-mobile-button.default.box\";\r\nimport {ACTIVE} from \"../../../../../themes/css-global-classes\";\r\n\r\nexport const FiltersMobileButtonCasino777Box = styled(FiltersMobileButtonDefaultBox)`\r\n border: 2px solid ${props => props.theme.colors.boxBorderContrast};\r\n border-radius: 5px;\r\n \r\n &.${ACTIVE} {\r\n &:after {\r\n top: -0.5rem;\r\n right: -0.5rem;\r\n }\r\n }\r\n`;","import {FiltersMobileButtonDefaultBox} from \"./filters-mobile-button.default.box\";\r\nimport {styledByTheme} from \"../../../../../themes/architecture/styled-by-theme\";\r\nimport {FiltersMobileButtonCasino777Box} from \"./filters-mobile-button.casino777.box\";\r\n\r\nexport const FiltersMobileButtonBox = styledByTheme(FiltersMobileButtonDefaultBox).forCasino777(FiltersMobileButtonCasino777Box).apply();","import styled from \"styled-components\";\r\n\r\nexport const FiltersMobileIconDefaultBox = styled.i`\r\n position: absolute;\r\n width: 20px;\r\n height: 22px;\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-position: -446px -521px;\r\n background-repeat: no-repeat;\r\n`;","import styled from \"styled-components\";\r\nimport {FiltersMobileIconDefaultBox} from \"./filters-mobile-icon.default.box\";\r\n\r\nexport const FiltersMobileIconCasino777Box = styled(FiltersMobileIconDefaultBox)`\r\n background-position: -557px -550px;\r\n`;","import {FiltersMobileIconDefaultBox} from \"./filters-mobile-icon.default.box\";\r\nimport {styledByTheme} from \"../../../../../themes/architecture/styled-by-theme\";\r\nimport {FiltersMobileIconCasino777Box} from \"./filters-mobile-icon.casino777.box\";\r\n\r\nexport const FiltersMobileIconBox = styledByTheme(FiltersMobileIconDefaultBox).forCasino777(FiltersMobileIconCasino777Box).apply();","import {OrbitComponent} from \"../../../base-components/orbit-component/orbit-component\";\r\nimport {FiltersMobileButtonBox} from \"../../../filters/filters-games-list-mobile/boxes/menu-button/filters-mobile-button.box\";\r\nimport {FiltersMobileIconBox} from \"../../../filters/filters-games-list-mobile/boxes/menu-button/filters-mobile-icon.box\";\r\nimport {Link} from \"../../../raw-components/link/link\";\r\nimport React from \"react\";\r\nimport classNames from \"classnames\";\r\nimport {ACTIVE} from \"../../../../themes/css-global-classes\";\r\nimport {observer} from \"mobx-react\";\r\n\r\n@observer\r\nexport class FiltersMobileButtonComponent extends OrbitComponent<{}> {\r\n\r\n private _openPopup = () => {\r\n this.services.gamesFilter.showFiltersEditor();\r\n };\r\n\r\n render(){\r\n if(!this.services.gamesFilter.isFilteringAvailable) {\r\n return null;\r\n }\r\n\r\n if(this.services.arenas.shouldHideFiltersButtonMobile()) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n}","import styled from \"styled-components\";\r\n\r\nexport const IndicatorContainerBox = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n font-size: 1.5rem;\r\n font-family: ${props => props.theme.font.family.regular}; \r\n ${props => props.theme.font.presets.regular}\r\n \r\n`","import 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 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\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)}/>\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\r\n}","import {IArenaGameFilter} from \"./arena-game-filter.interface\";\r\nimport {IGameFilterDefinition} from \"../../filters-definitions/game-filter-definition.interface\";\r\nimport {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {computed} from \"mobx\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {NullableNumber} from \"../../../../../common/types/nullable-types\";\r\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 @computed\r\n get isApplied(): boolean {\r\n return this.services.gamesFilter.isFilterApplied(this.filterDefinition.id);\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n return this.filterDefinition.applyFilter(gameInfo);\r\n }\r\n\r\n get gamesCount(): NullableNumber {\r\n return null;\r\n }\r\n\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('JACKPOT');\r\n }\r\n\r\n protected _loadAvailableFilters(): IGameFilterDefinition[] {\r\n return [\r\n new HasJackpotFilterDefinition(this.services),\r\n new HasNoJackpotFilterDefinition(this.services)\r\n ];\r\n }\r\n\r\n get 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_STUDIO');\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', 'OTHERS', otherVendorsIds, this.services.translation.translate('OTHERS')));\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_CATEGORY');\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('THEME');\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, 20, 24, 27, 40, 42, 49, 59, 65, 68, 70, 71, 86, 89]),\r\n new GameThemeFilterDefinition(\"theme_ancient_civilization\", this.services, this.services.translation.translate(\"Ancient Civilization\"), [ 2, 44, 45, 57, 6, 80, 82, 88]),\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\"), [ 17, 21, 4]),\r\n new GameThemeFilterDefinition(\"theme_comics_and_cartoons\", this.services, this.services.translation.translate(\"Comics and Cartoons\"), [ 16, 22, 39]),\r\n new GameThemeFilterDefinition(\"theme_diamonds_and_gems\", this.services, this.services.translation.translate(\"Diamonds and Gems\"), [ 26, 50]),\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, 31, 33, 34, 36, 46, 56]),\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, 87]),\r\n new GameThemeFilterDefinition(\"theme_fruit_and_candy\", this.services, this.services.translation.translate(\"Fruit and Candy\"), [ 12, 13, 38]),\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, 48]),\r\n new GameThemeFilterDefinition(\"theme_money_and_leisure\", this.services, this.services.translation.translate(\"Money and Leisure\"), [ 15, 18, 32, 37, 41, 53, 60, 73, 79]),\r\n new GameThemeFilterDefinition(\"theme_movies_and_music\", this.services, this.services.translation.translate(\"Movies and Music\"), [ 10, 61, 62, 8]),\r\n new GameThemeFilterDefinition(\"theme_seasonal\", this.services, this.services.translation.translate(\"Seasonal\"), [ 29, 43, 78, 91]),\r\n new GameThemeFilterDefinition(\"theme_space_and_sci-fi\", this.services, this.services.translation.translate(\"Space and Sci-fi\"), [ 72, 75, 81, 84, 85]),\r\n new GameThemeFilterDefinition(\"theme_wildlife\", this.services, this.services.translation.translate(\"Wildlife\"), [ 11, 3, 51, 66, 67, 90, 92]),\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\n\r\nexport class AdvancedGamesFilterStrategy extends GamesFilterStrategyBase {\r\n\r\n private _factory = new FilterCategoryDefinitionFactory(this.services);\r\n\r\n protected _createFiltersCategories(): IArenaGameFiltersCategory[] {\r\n const arenaName = this.services.routing.currentRoute.data?.arenaType;\r\n if (!arenaName) {\r\n return [];\r\n }\r\n\r\n const categories = this.services.configuration.data.arenas[arenaName]?.advancedFilters?.categories;\r\n if (!Check.isArray(categories)) {\r\n return [];\r\n }\r\n \r\n const filters: IArenaGameFiltersCategory[] = [];\r\n categories.forEach(category => {\r\n if (category?.id) {\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\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 {FilterLinkIconDefaultBox} from \"./filter-link-icon.default.box\";\r\nimport {styledByTheme} from \"../../../../../themes/architecture/styled-by-theme\";\r\nimport {FilterLinkIconCasino777Box} from \"./filter-link-icon.casino777.box\";\r\nimport {FilterLinkIconSIBox} from \"./filter-link-icon.si.box\";\r\n\r\nexport const FilterLinkIconBox = styledByTheme(FilterLinkIconDefaultBox)\r\n .forCasino777(FilterLinkIconCasino777Box)\r\n .forSI(FilterLinkIconSIBox)\r\n .forSICis(FilterLinkIconSIBox)\r\n .apply();","import styled from \"styled-components\";\r\nimport {ACTIVE} from \"../../../../themes/css-global-classes\";\r\n\r\n\r\nexport const FilterLinkDefaultBox = styled.a`\r\n display: flex;\r\n padding:1rem;\r\n color: ${props => props.theme.colors.textMiddleDark};\r\n\r\n &:hover {\r\n color: ${props => props.theme.colors.textHover};\r\n }\r\n\r\n \r\n &.${ACTIVE}{\r\n color: ${props => props.theme.colors.brandPrimary};\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n flex-direction: column;\r\n font-size: 1.4rem;\r\n align-items: center;\r\n text-align: center;\r\n padding: 0;\r\n\r\n &.${ACTIVE}{\r\n color: ${props => props.theme.colors.textLight};\r\n }\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndAbove} {\r\n flex-direction: row;\r\n line-height: 2rem;\r\n font-size: 1.3rem;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n\r\n ::after{\r\n content: \"\";\r\n background: ${props => props.theme.colors.boxBorderContrast};\r\n height: 20px;\r\n width: 1px;\r\n margin-left: 4rem;\r\n margin-right: 1rem;\r\n }\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\nimport {FilterLinkDefaultBox} from \"./filter-link.default.box\";\r\nimport {ACTIVE} from \"../../../../themes/css-global-classes\";\r\n\r\nexport const FilterLinkCasino777Box = styled(FilterLinkDefaultBox)`\r\n &.${ACTIVE}{\r\n color: ${props => props.theme.colors.backgroundActive};\r\n }\r\n`","import styled from \"styled-components\";\r\nimport {FilterLinkDefaultBox} from \"./filter-link.default.box\";\r\n\r\nexport const FilterLinkSIBox = styled(FilterLinkDefaultBox)`\r\n @media ${({theme}) => theme.mediaQuery.lAndAbove} {\r\n ::after{\r\n background: ${props => props.theme.colors.textMiddleDark};\r\n }\r\n }\r\n`;\r\n","import 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 }\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.sendAnalytics(\"Navigation\", this.services.routing.currentRoute.data.arenaType, checkedFiltersIds.join(','));\r\n\r\n this._closePopup();\r\n };\r\n\r\n private _clearFilters = async () => {\r\n this.props.filtersEditor.visibleFilters.forEach(f => {\r\n f.on = false;\r\n });\r\n\r\n await this._applyFilters();\r\n\r\n };\r\n\r\n private _renderPopupButtons() {\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _onToggleFilter = (filter: IArenaGameFilterEditorViewModel) => {\r\n filter.toggleFilter();\r\n }\r\n\r\n render() {\r\n\r\n if (this.props.filtersEditor.visibleFilters.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n {this._renderPopupButtons()}\r\n \r\n )\r\n }\r\n}\r\n\r\n","import {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {ArenaGameFilterEditor} from \"../../arena-filters/filters/arena-game-filter-editor\";\r\nimport {ISimpleStrategyFiltersEditorViewModel} from \"./simple-strategy-filters-editor-view-model.interface\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {IArenaGameFiltersCategory} from \"../../arena-filters/categories/arena-game-filters-category.interface\";\r\n\r\nexport class SimpleStrategyFiltersEditor implements ISimpleStrategyFiltersEditorViewModel {\r\n constructor(private readonly filtersCategories: IArenaGameFiltersCategory[],\r\n private readonly services: IServiceFactoryExtended) {\r\n this._filters = this._createFiltersEditor();\r\n }\r\n\r\n private readonly _filters: ArenaGameFilterEditor[];\r\n\r\n get visibleFilters(): ArenaGameFilterEditor[] {\r\n return this._filters.filter(f => f.shouldBeDisplayed);\r\n }\r\n\r\n private _createFiltersEditor(): ArenaGameFilterEditor[] {\r\n const result: ArenaGameFilterEditor[] = [];\r\n\r\n this.filtersCategories.forEach(c => {\r\n c.availableFilters.forEach(f => {\r\n result.push(new ArenaGameFilterEditor(f));\r\n });\r\n });\r\n\r\n return this._sortFilters(result);\r\n }\r\n\r\n private _sortFilters(filters: ArenaGameFilterEditor[]): ArenaGameFilterEditor[] {\r\n\r\n //sorting the filters by the order in which they were defined in config.json\r\n const filtersConfigurations = this.services.arenas.getCurrentArena().filtersConfigurationMap;\r\n\r\n if(Check.isEmpty(filtersConfigurations)) {\r\n return filters;\r\n }\r\n\r\n return filters.sort((f1, f2) => filtersConfigurations[f1.id]?.index - filtersConfigurations[f2.id]?.index);\r\n }\r\n\r\n async applyFilters(): Promise {\r\n await this.services.gamesFilter.applyFilters(this._filters.filter(f => f.on).map(f => f.id));\r\n }\r\n\r\n}","import {GameInfo} from '../../../games/game-info';\r\nimport {IArenaGameFiltersCategory} from \"../../arena-filters/categories/arena-game-filters-category.interface\";\r\nimport {computed} from \"mobx\";\r\nimport {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {GameFilterDefinitionBase} from \"../game-filter-definition-base\";\r\nimport {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\n\r\n/**\r\n * This class is used to apply a filter that does something like this:\r\n * Show all games that doesn't fall in any of the other available games filters categories for the current arena\r\n */\r\n\r\nexport class OtherFilterDefinition extends GameFilterDefinitionBase {\r\n constructor(services: IServiceFactoryExtended, private readonly allOthersCategories: IArenaGameFiltersCategory[]) {\r\n super(services);\r\n }\r\n\r\n get id(): string {\r\n return 'other';\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate('OTHER');\r\n }\r\n\r\n\r\n @computed\r\n get currentArenaCategories(): IArenaGameFiltersCategory[] {\r\n return this.allOthersCategories.filter(c => c.availableFilters.length > 0);\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo): ApplyGameFilterResult {\r\n const categoriesInCurrentArena = this.currentArenaCategories;\r\n for(let category of categoriesInCurrentArena) {\r\n if(category.isGameIncludedInThisCategory(gameInfo)) {\r\n return ApplyGameFilterResult.ExcludeGame;\r\n }\r\n }\r\n\r\n return ApplyGameFilterResult.IncludeGame;\r\n }\r\n\r\n}\r\n","import {IArenaGameFiltersCategory} from \"../arena-filters/categories/arena-game-filters-category.interface\";\r\nimport {CategoryDefinitionId, IFilterCategoryDefinition} from \"./filter-category-definition.interface\";\r\nimport {IGameFilterDefinition} from \"../filters-definitions/game-filter-definition.interface\";\r\nimport {OtherFilterDefinition} from \"../filters-definitions/other/other.filter-definition\";\r\nimport {IServiceFactoryExtended} from \"../../service-factory-extended.interface\";\r\nimport {GameInfo} from \"../../games/game-info\";\r\nimport {ApplyGameFilterResult} from \"../evaluators/game-filter-evaluator.interface\";\r\n\r\nexport class OtherFiltersCategoryDefinition implements IFilterCategoryDefinition {\r\n\r\n constructor(otherAvailableCategories: IArenaGameFiltersCategory[],\r\n private readonly services: IServiceFactoryExtended) {\r\n this.availableFilters = [\r\n new OtherFilterDefinition(services, otherAvailableCategories)\r\n ];\r\n }\r\n\r\n readonly id: CategoryDefinitionId = null;\r\n\r\n applyFilters(gameInfo: GameInfo, filters: IGameFilterDefinition[]): ApplyGameFilterResult {\r\n return this.availableFilters[0].applyFilter(gameInfo);\r\n }\r\n\r\n get title(): string {\r\n return this.services.translation.translate('OTHER');\r\n }\r\n\r\n readonly availableFilters: IGameFilterDefinition[];\r\n\r\n get isMultiSelect(): boolean {\r\n return false;\r\n }\r\n\r\n 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.sendAnalytics(\"Navigation\", this.services.routing.currentRoute.data.arenaType, filter.id);\r\n };\r\n\r\n render() {\r\n\r\n if(this.props.filtersEditor.visibleFilters.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import {IArenaGameFilter} from \"./arena-game-filter.interface\";\r\nimport {IGameFilterDefinition} from \"../../filters-definitions/game-filter-definition.interface\";\r\nimport {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {ApplyGameFilterResult} from \"../../evaluators/game-filter-evaluator.interface\";\r\nimport {NullableNumber} from \"../../../../../common/types/nullable-types\";\r\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\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 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\r\n}","import React from \"react\";\r\nimport {ArenaBaseModel} from \"../arena-base.model\";\r\nimport {\r\n ArenaConfiguration, ArenaGamesGridConfiguration,\r\n SwiperGamesListConfiguration\r\n} from \"../../../../configurations/config-data-sections/arenas.configuration\";\r\nimport {CasinoArenaComponent} from \"../../../../../components/arena-host/casino-arena/casino-arena.component\";\r\nimport {GameInfo} from \"../../../../games/game-info\";\r\nimport {\r\n CASINO_GAMES_ARENA_NAME,\r\n EXCLUSIVE_ARENA_NAME,\r\n JACKPOTS_ARENA_NAME,\r\n SLOTS_ARENA_NAME\r\n} from \"../../../arena-consts\";\r\nimport {computed} from \"mobx\";\r\nimport {ArenaFiltersConfigurationMap} from \"../arena-view-model.interface\";\r\nimport {filtersConfigurationToMap} from \"../../filters-configuration-to-map\";\r\nimport {IGamesFilterStrategy} from \"../../../../games-filter/strategies/games-filter-strategy.interface\";\r\nimport {\r\n AdvancedGamesFilterStrategy\r\n} from \"../../../../games-filter/strategies/advanced-filter/advanced-games-filter.strategy\";\r\nimport {\r\n SimpleGamesFilterStrategy\r\n} from \"../../../../games-filter/strategies/simple-games-filter/simple-games-filter.strategy\";\r\n\r\nexport class CasinoLobbyArenaModel extends ArenaBaseModel {\r\n\r\n get maxSwipersToShow(): number {\r\n return 20;\r\n }\r\n\r\n get maxGamesToShowInList(): number {\r\n return 30;\r\n }\r\n\r\n private get config(): ArenaConfiguration {\r\n return this.services.configuration.data.arenas[this.arenaName]\r\n }\r\n\r\n protected _getSwipersConfigurations(): SwiperGamesListConfiguration[] {\r\n return this.config.swiperGamesList || [];\r\n }\r\n\r\n protected _getGridsConfigurations(): ArenaGamesGridConfiguration[] {\r\n return this.config.allGamesGrid || [];\r\n }\r\n\r\n renderArena(): React.ReactElement | null {\r\n return ;\r\n }\r\n\r\n protected _getPromotionalBannerConfig() {\r\n const bannerConfig = this.config.promotionalBanner;\r\n if(!bannerConfig) {\r\n return null;\r\n }\r\n\r\n if(this.services.device.hybrid.isEmbedded) {\r\n return null;\r\n }\r\n\r\n return {\r\n position: 2,\r\n templateID: bannerConfig.templateID,\r\n componentID: bannerConfig.componentID,\r\n fallbackComponent: bannerConfig.fallbackComponent,\r\n bannerAdminPlaceholderId: bannerConfig.bannerAdminPlaceholderId\r\n }\r\n }\r\n\r\n filterGamesByArenaType(gamesInfo: GameInfo[]): GameInfo[] {\r\n switch (this.arenaName) {\r\n case SLOTS_ARENA_NAME:\r\n case JACKPOTS_ARENA_NAME:\r\n return gamesInfo.filter(g => g.isVideoSlot);\r\n case EXCLUSIVE_ARENA_NAME:\r\n return gamesInfo.filter(g => g.isVideoSlot || g.isCasinoGame);\r\n case CASINO_GAMES_ARENA_NAME:\r\n return gamesInfo.filter(g => g.isCasinoGame);\r\n\r\n default:\r\n return gamesInfo.filter(g => !g.isLiveCasino);\r\n }\r\n }\r\n\r\n @computed\r\n get filtersConfigurationMap(): ArenaFiltersConfigurationMap {\r\n return filtersConfigurationToMap(this.config.filters);\r\n }\r\n\r\n getGamesFilteringStrategy(): IGamesFilterStrategy {\r\n if (this.useAdvancedFilters) {\r\n return new AdvancedGamesFilterStrategy(this.services);\r\n }\r\n return new SimpleGamesFilterStrategy(this.services);\r\n }\r\n}\r\n","import React from \"react\";\r\nimport {ArenaFiltersConfigurationMap, IArenaViewModel} from \"../arena-view-model.interface\";\r\nimport {GameInfo} from \"../../../../games/game-info\";\r\nimport {IGamesFilterStrategy} from \"../../../../games-filter/strategies/games-filter-strategy.interface\";\r\nimport {NoGamesFilterStrategy} from \"../../../../games-filter/strategies/no-filter/no-games-filter.strategy\";\r\nimport {IServiceFactoryExtended} from \"../../../../service-factory-extended.interface\";\r\n\r\nexport class VoidArenaModel implements IArenaViewModel {\r\n constructor(private readonly services: IServiceFactoryExtended) {\r\n }\r\n get arenaName(): string {\r\n return 'voidArena';\r\n }\r\n\r\n get listsCount(): number {\r\n return 0;\r\n }\r\n\r\n renderArena(): React.ReactElement | null {\r\n return null;\r\n }\r\n\r\n renderList(listPosition: number): React.ReactElement | null {\r\n return null;\r\n }\r\n\r\n getNextBatchSize(currentListPosition: number): number {\r\n return 0;\r\n }\r\n\r\n filterGamesByArenaType(gamesInfo: GameInfo[]): GameInfo[] {\r\n return [];\r\n }\r\n\r\n readonly allArenaGamesForFiltering: GameInfo[] = [];\r\n\r\n readonly filtersConfigurationMap: ArenaFiltersConfigurationMap = {};\r\n getGamesFilteringStrategy(): IGamesFilterStrategy {\r\n return new NoGamesFilterStrategy(this.services);\r\n }\r\n}","import {IServiceFactoryExtended} from \"../../service-factory-extended.interface\";\r\nimport {IGamesListModel} from \"./lists/games-list-model.interface\";\r\n\r\nconst POST_LOGIN_LISTS_ORDER_KEY = \"cgp-post-login-lists-order\";\r\n\r\ninterface IPostLoginListsOrder {\r\n lists: Record;\r\n}\r\n\r\nexport class ListsSortOrderStorage {\r\n constructor(private readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n private _createEmptyListsOrder(): IPostLoginListsOrder {\r\n return {\r\n lists: {}\r\n };\r\n }\r\n\r\n private _listsSavedOrder: IPostLoginListsOrder = null;\r\n private _getSavedListsOrder(): IPostLoginListsOrder {\r\n if(!this._listsSavedOrder) {\r\n this._listsSavedOrder = this.services.localStorage.getJson(POST_LOGIN_LISTS_ORDER_KEY) || this._createEmptyListsOrder();\r\n }\r\n return this._listsSavedOrder;\r\n }\r\n\r\n saveSortOrder(arenaName: string, lists: IGamesListModel[]): void {\r\n const listsOrder = this._getSavedListsOrder();\r\n listsOrder.lists[arenaName] = lists.map(list => list.title.translationKey);\r\n this.services.localStorage.setJson(POST_LOGIN_LISTS_ORDER_KEY, listsOrder);\r\n }\r\n\r\n sortLists(arenaName: string, lists: IGamesListModel[]): IGamesListModel[] {\r\n const arenaListsOrder = this._getSavedListsOrder().lists[arenaName] || [];\r\n if(arenaListsOrder.length === 0) {\r\n return lists;\r\n }\r\n\r\n const listsOrderMap = arenaListsOrder.reduce>((map, listTitle, index) => {\r\n map[listTitle] = index;\r\n return map;\r\n }, {});\r\n\r\n\r\n return lists.sort((l1, l2) => (listsOrderMap[l1.title.translationKey] || 0) - (listsOrderMap[l2.title.translationKey] || 0));\r\n\r\n }\r\n}","import styled from \"styled-components\";\r\n\r\nexport const LiveCasinoFilterButtonIconDefaultBox = styled.div<{isActiveTab?: boolean}>`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n height: 5em;\r\n width: 100%;\r\n color: ${({theme, isActiveTab}) => isActiveTab ? theme.colors.brandPrimary : theme.colors.textLight};\r\n transform: scale(${({isActiveTab}) => isActiveTab ? 1 : 0.8});\r\n transition: transform 0.25s ease;\r\n\r\n :hover {\r\n transform: scale(1);\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {LiveCasinoFilterButtonIconDefaultBox} from \"./live-casino-filter-button-icon.default.box\";\r\n\r\nexport const LiveCasinoFilterIconSIBox = styled(LiveCasinoFilterButtonIconDefaultBox)`\r\n color: ${({theme}) => theme.colors.textLight};\r\n`;","import {styledByTheme} from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport {LiveCasinoFilterButtonIconDefaultBox} from \"./live-casino-filter-button-icon.default.box\";\r\nimport {LiveCasinoFilterIconSIBox} from \"./live-casino-filter-button-icon.si.box\";\r\n\r\nexport const LiveCasinoFilterButtonIconBox = styledByTheme(LiveCasinoFilterButtonIconDefaultBox)\r\n .forSI(LiveCasinoFilterIconSIBox)\r\n .forSICis(LiveCasinoFilterIconSIBox)\r\n .apply();","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../../themes/architecture/styled-by-device\";\r\nimport {ACTIVE} from \"../../../../../../themes/css-global-classes\";\r\n\r\nconst DefaultBox = styled.div`\r\n margin-top: 1em;\r\n color: ${props => props.theme.components.newLiveCasino.colors.filterButtonLabel};\r\n font-size: 1.2em;\r\n text-align: center;\r\n text-transform: uppercase;\r\n letter-spacing: 1px;\r\n transition: color 0.25s ease;\r\n\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n \r\n &.${ACTIVE} {\r\n color: ${props => props.theme.colors.textLight};\r\n }\r\n`;\r\n\r\nconst PCBox = DefaultBox;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n line-height: 1;\r\n`;\r\n\r\nexport const LiveCasinoFilterButtonLabelDefaultBox = styledByDevice(PCBox,MobileBox);","import styled from \"styled-components\";\r\nimport {LiveCasinoFilterButtonLabelDefaultBox} from \"./live-casino-filter-button-label.default.box\";\r\nimport {ACTIVE} from \"../../../../../../themes/css-global-classes\";\r\n\r\nexport const LiveCasinoFilterButtonLabelCasino777Box = styled(LiveCasinoFilterButtonLabelDefaultBox)`\r\n font-size: 1.6em;\r\n &.${ACTIVE} {\r\n color: ${({theme}) => theme.components.newLiveCasino.colors.filterButtonLabel};\r\n ${({theme}) => theme.font.presets.bold};\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\nimport {LiveCasinoFilterButtonLabelDefaultBox} from \"./live-casino-filter-button-label.default.box\";\r\nimport {ACTIVE} from \"../../../../../../themes/css-global-classes\";\r\nimport {baseColors} from \"../../../../../../themes/definitions/si/base-colors\";\r\n\r\nexport const LiveCasinoFilterButtonLabelSIBox = styled(LiveCasinoFilterButtonLabelDefaultBox)`\r\n &.${ACTIVE} {\r\n color: ${baseColors.base04};\r\n }\r\n`;\r\n","import {styledByTheme} from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport {LiveCasinoFilterButtonLabelDefaultBox} from \"./live-casino-filter-button-label.default.box\";\r\nimport {LiveCasinoFilterButtonLabelCasino777Box} from \"./live-casino-filter-button-label.casino777.box\";\r\nimport {LiveCasinoFilterButtonLabelSIBox} from \"./live-casino-filter-button-label.si.box\";\r\n\r\nexport const LiveCasinoFilterButtonLabelBox = styledByTheme(LiveCasinoFilterButtonLabelDefaultBox)\r\n .forCasino777(LiveCasinoFilterButtonLabelCasino777Box)\r\n .forSI(LiveCasinoFilterButtonLabelSIBox)\r\n .forSICis(LiveCasinoFilterButtonLabelSIBox)\r\n .apply();\r\n","import styled from \"styled-components\";\r\nimport {Link} from \"../../../../../raw-components/link/link\";\r\nimport { CssRule } from \"../../../../../../themes/architecture/css-helpers/css-rule\";\r\n\r\nexport const LiveCasinoArenaNavbarButtonDefaultBox = styled(Link)`\r\n display: flex;\r\n margin: 0 0.25em;\r\n padding: 1em 1em 0 1em;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n min-width: 88px;\r\n\r\n &:hover {\r\n cursor: pointer;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n margin: 0;\r\n padding: 1em;\r\n border-right: 1px solid ${props => props.theme.colors.boxBorderDark};\r\n background-color: ${props => props.theme.components.newLiveCasino.colors.filterButtonBackground};\r\n\r\n &:last-child {\r\n border: none;\r\n }\r\n\r\n ${CssRule.For.mobile.landscape.build()} &, ${CssRule.For.ipad.build()} & {\r\n flex: 1;\r\n }\r\n\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\nimport { hexToRgba } from \"../../../../../../themes/hex-to-rgba\";\r\nimport { LiveCasinoArenaNavbarButtonDefaultBox } from \"./live-casino-arena-navbar-button.default.box\";\r\n\r\nexport const LiveCasinoArenaNavbarButtonCasino777Box = styled(LiveCasinoArenaNavbarButtonDefaultBox)`\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n &:first-child {\r\n border-left: none;\r\n border-right: 1px solid ${({theme}) => hexToRgba(theme.colors.brandSecondary, 0.6)};\r\n }\r\n &:last-child {\r\n border-left: 1px solid ${props => hexToRgba(props.theme.colors.brandSecondaryDark, 0.6)};\r\n border-right: none;\r\n }\r\n\r\n border-left: 1px solid ${props => hexToRgba(props.theme.colors.brandSecondaryDark, 0.6)};\r\n border-right: 1px solid ${({theme}) => hexToRgba(theme.colors.brandSecondary, 0.6)};\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\nimport {ACTIVE} from \"../../../../../../themes/css-global-classes\";\r\nimport {LiveCasinoArenaNavbarButtonDefaultBox} from \"./live-casino-arena-navbar-button.default.box\";\r\n\r\nexport const LiveCasinoArenaNavbarButtonSIBox = styled(LiveCasinoArenaNavbarButtonDefaultBox)`\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n &.${ACTIVE} {\r\n background-color: ${({theme}) => theme.colors.iconBackgroundActive};\r\n }\r\n }\r\n`;\r\n","import {styledByTheme} from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport {LiveCasinoArenaNavbarButtonDefaultBox} from \"./live-casino-arena-navbar-button.default.box\";\r\nimport {LiveCasinoArenaNavbarButtonCasino777Box} from \"./live-casino-arena-navbar-button.casino777.box\";\r\nimport {LiveCasinoArenaNavbarButtonSIBox} from \"./live-casino-arena-navbar-button.si.box\";\r\n\r\nexport const LiveCasinoArenaNavbarButtonBox = styledByTheme(LiveCasinoArenaNavbarButtonDefaultBox)\r\n .forCasino777(LiveCasinoArenaNavbarButtonCasino777Box)\r\n .forSI(LiveCasinoArenaNavbarButtonSIBox)\r\n .forSICis(LiveCasinoArenaNavbarButtonSIBox)\r\n .apply();\r\n","import React, {RefObject} from \"react\";\r\nimport classNames from \"classnames\";\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {observer} from \"mobx-react\";\r\nimport {LiveCasinoFilterButtonIconBox} from \"./boxes/live-casino-filter-button-icon/live-casino-filter-button-icon.box\";\r\nimport {LiveCasinoFilterButtonLabelBox} from \"./boxes/live-casino-filter-button-label/live-casino-filter-button-label.box\";\r\nimport {ACTIVE} from \"../../../../themes/css-global-classes\";\r\nimport {LiveCasinoArenaNavbarButtonBox} from \"./boxes/live-casino-arena-navbar-button/live-casino-arena-navbar-button.box\";\r\nimport {Link} from \"../../../raw-components/link/link\";\r\n\r\nexport interface LiveCasinoArenaNavbarButtonProps {\r\n label: string;\r\n filter: string;\r\n isActiveTab: boolean;\r\n seoPage: string;\r\n buttonLabelRef: RefObject;\r\n onClick: () => void;\r\n};\r\n\r\n@observer\r\nexport class LiveCasinoArenaNavbarButton extends OrbitComponent {\r\n private buttonIconMap = new Map([\r\n [\"roulette\", this.services.theme.currentTheme.icons.rouletteIcon],\r\n [\"poker-games\", this.services.theme.currentTheme.icons.pokerIcon],\r\n [\"blackjack\", this.services.theme.currentTheme.icons.blackjackIcon],\r\n [\"baccarat\", this.services.theme.currentTheme.icons.baccaratIcon],\r\n [\"elite-lounge\", this.services.theme.currentTheme.icons.eliteLoungeIcon],\r\n [\"game-shows\", this.services.theme.currentTheme.icons.gameShowsIcon],\r\n [\"new-games\", this.services.theme.currentTheme.icons.newGamesIcon],\r\n [\"top-evo-games\", this.services.theme.currentTheme.icons.topGamesIcon],\r\n [\"exclusive\", this.services.theme.currentTheme.icons.tripleEightExclusiveIcon]\r\n ]);\r\n private _getButtonIcon() {\r\n const iconKey = this.props.label.toLowerCase().trim().replace(/(_|\\s)/g, \"-\");\r\n return this.buttonIconMap.has(iconKey) ? this.buttonIconMap.get(iconKey)! : this.services.theme.currentTheme.icons.topGamesIcon;\r\n }\r\n\r\n onFilterClicked(isActive: boolean) {\r\n if (!isActive) {\r\n this.services.analytics.sendAnalytics('Navigation', 'Live Tab', this.props.label);\r\n this.props && this.props.onClick();\r\n }\r\n }\r\n\r\n render() {\r\n let IconComponent = this._getButtonIcon();\r\n return this.onFilterClicked(this.props.isActiveTab)}\r\n >\r\n \r\n \r\n \r\n \r\n {this.services.translation.translate(this.props.label)}\r\n \r\n ;\r\n }\r\n}\r\n","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {NewLiveCasinoConfiguration} from '../../../services/configurations/config-data-sections/arenas.configuration';\r\nimport {TopImageComponent} from '../../top-image/top-image.component';\r\nimport {SeoBreadCrumbsComponent} from '../seo-bread-crumbs/seo-bread-crumbs.component';\r\nimport {LiveCasinoArenaNavbar} from \"./live-casino-arena-navbar/live-casino-arena-navbar.component\";\r\nimport {LiveCasinoArenaGrid} from \"./live-casino-arena-grid/live-casino-arena-grid.component\";\r\nimport {OrbitComponentWithState} from '../../base-components/orbit-component-with-state/orbit-component-with-state';\r\nimport {IStickyHandler} from \"../../sticky-handler/sticky-handler.interface\";\r\nimport {LiveCasinoArenaNavbarButton} from \"./live-casino-arena-navbar/live-casino-arena-navbar-button.component\";\r\nimport { LIVE_CASINO_PAGE_WRAPPER } from '../../../themes/css-global-classes';\r\nimport {LinkToOfferComponent} from \"../../link-to-offer/link-to-offer.component\";\r\nimport {DailyDealComponent} from \"../../daily-deal/daily-deal.component\";\r\nimport {FreeToPlayAnimatedIconComponent} from '../../free-to-play-animated-icon/free-to-play-animated-icon.component';\r\n\r\nexport interface NewLiveCasinoArenaComponentProps {\r\n configs: NewLiveCasinoConfiguration;\r\n arenaName: string;\r\n}\r\n\r\nexport interface INewLiveCasinoArenaComponentState {\r\n}\r\n\r\nconst SEO_CATEGORY = 'LIVE_CASINO_NEW';\r\n\r\n@observer\r\nexport class NewLiveCasinoArenaComponent extends OrbitComponentWithState {\r\n\r\n private _stickyHandler: IStickyHandler;\r\n private _topImageRef = React.createRef();\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n this.reaction(() => this.services.user.isAuthorized,\r\n () => this.services.liveTableFeeds.updateAiRecommendedLiveGames(),\r\n { fireImmediately: true }\r\n );\r\n }\r\n\r\n private get stickyHandler(): IStickyHandler {\r\n if(!this._stickyHandler && this._topImageRef?.current) {\r\n this._stickyHandler = this.services.stickyHandlerFactory.createStickyHandler();\r\n } else {\r\n return this.services.stickyHandlerFactory.createStickyHandler();\r\n }\r\n\r\n return this._stickyHandler;\r\n }\r\n\r\n private _renderLiveCasinoArenaNavbar(){\r\n if (this.props?.configs?.arenas?.length) {\r\n const categories = this.props.configs.arenas.filter(config => config.display);\r\n return \r\n }\r\n }\r\n\r\n private _renderLinkToOffer() {\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n\r\n \r\n\r\n {this._renderLiveCasinoArenaNavbar()}\r\n\r\n \r\n\r\n \r\n\r\n {this._renderLinkToOffer()}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import {ArenaFiltersConfigurationMap, IArenaViewModel} from \"../arena-view-model.interface\";\r\nimport {IServiceFactoryExtended} from \"../../../../service-factory-extended.interface\";\r\nimport React from \"react\";\r\nimport {OrbitSuspense} from \"../../../../../components/base-components/orbit-suspense/orbit-suspense\";\r\nimport {NewLiveCasinoArenaComponent} from \"../../../../../components/arena-host/new-live-casino-arena/new-live-casino-arena.component\";\r\nimport {GameInfo} from \"../../../../games/game-info\";\r\nimport {filtersConfigurationToMap} from \"../../filters-configuration-to-map\";\r\nimport {ArenaConfiguration} from \"../../../../configurations/config-data-sections/arenas.configuration\";\r\nimport {IGamesFilterStrategy} from \"../../../../games-filter/strategies/games-filter-strategy.interface\";\r\nimport {\r\n SimpleGamesFilterStrategy\r\n} from \"../../../../games-filter/strategies/simple-games-filter/simple-games-filter.strategy\";\r\n\r\nexport class NewLiveCasinoArenaModel implements IArenaViewModel {\r\n constructor(public readonly arenaName: string,\r\n private readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n get listsCount(): number {\r\n return 0;\r\n }\r\n\r\n renderList(listPosition: number): React.ReactElement | null {\r\n return null;\r\n }\r\n\r\n getNextBatchSize(currentListPosition: number): number {\r\n return 0;\r\n }\r\n\r\n get configs(): ArenaConfiguration {\r\n return this.services.configuration.data.arenas[this.arenaName];\r\n }\r\n\r\n renderArena(): React.ReactElement | null {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n filterGamesByArenaType(gamesInfo: GameInfo[]): GameInfo[] {\r\n return gamesInfo.filter(g => g.isLiveCasino);\r\n }\r\n\r\n get allArenaGamesForFiltering(): GameInfo[] {\r\n return [];\r\n }\r\n\r\n\r\n get filtersConfigurationMap(): ArenaFiltersConfigurationMap {\r\n return filtersConfigurationToMap(this.configs.filters);\r\n }\r\n\r\n getGamesFilteringStrategy(): IGamesFilterStrategy {\r\n return new SimpleGamesFilterStrategy(this.services);\r\n }\r\n\r\n}","import React from \"react\";\r\nimport {OrbitSuspense} from \"../../../../../components/base-components/orbit-suspense/orbit-suspense\";\r\nimport {IServiceFactoryExtended} from \"../../../../service-factory-extended.interface\";\r\nimport {ArenaFiltersConfigurationMap, IArenaViewModel} from \"../arena-view-model.interface\";\r\nimport {GameInfo} from \"../../../../games/game-info\";\r\nimport {filtersConfigurationToMap} from \"../../filters-configuration-to-map\";\r\nimport {ArenaConfiguration} from \"../../../../configurations/config-data-sections/arenas.configuration\";\r\nimport {IGamesFilterStrategy} from \"../../../../games-filter/strategies/games-filter-strategy.interface\";\r\nimport {NoGamesFilterStrategy} from \"../../../../games-filter/strategies/no-filter/no-games-filter.strategy\";\r\nconst LiveCasinoArenaComponent = React.lazy(\r\n () => import(\"../../../../../components/arena-host/live-casino-arena/live-casino-arena.component\").then(({LiveCasinoArenaComponent}) => ({default: LiveCasinoArenaComponent}))\r\n);\r\n\r\nexport class LiveCasinoArenaModel implements IArenaViewModel {\r\n constructor(public readonly arenaName: string, private readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n get listsCount(): number {\r\n return 0;\r\n }\r\n\r\n renderList(listPosition: number): React.ReactElement | null {\r\n return null;\r\n }\r\n\r\n getNextBatchSize(currentListPosition: number): number {\r\n return 0;\r\n }\r\n\r\n get configs(): ArenaConfiguration {\r\n return this.services.configuration.data.arenas[this.arenaName];\r\n }\r\n\r\n renderArena() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n filterGamesByArenaType(gamesInfo: GameInfo[]): GameInfo[] {\r\n return gamesInfo.filter(g => g.isLiveCasino);\r\n }\r\n\r\n get allArenaGamesForFiltering(): GameInfo[] {\r\n return [];\r\n }\r\n\r\n get filtersConfigurationMap(): ArenaFiltersConfigurationMap {\r\n return filtersConfigurationToMap(this.configs.filters);\r\n }\r\n\r\n getGamesFilteringStrategy(): IGamesFilterStrategy {\r\n return new NoGamesFilterStrategy(this.services);\r\n }\r\n}","import {ServiceBase} from '../ServiceBase';\r\nimport {IArenasService} from './arenas.service.interface';\r\nimport {HOME_PAGE_ARENA, LIVE_CASINO_ARENA_NAME, NEW_LIVE_CASINO_ARENA_NAME} from './arena-consts';\r\nimport {\r\n ArenaConfiguration,\r\n ArenasConfiguration\r\n} from \"../configurations/config-data-sections/arenas.configuration\";\r\nimport {observable} from \"mobx\";\r\nimport {IServiceFactoryExtended} from \"../service-factory-extended.interface\";\r\nimport {IArenaViewModel} from \"./models/arenas/arena-view-model.interface\";\r\nimport {HomePageArenaModel} from \"./models/arenas/home-page/home-page-arena.model\";\r\nimport {CasinoLobbyArenaModel} from \"./models/arenas/casino-lobby/casino-lobby-arena.model\";\r\nimport {VoidArenaModel} from \"./models/arenas/void-arena/void-arena.model\";\r\nimport {ListsSortOrderStorage} from \"./models/lists-sort-order-storage\";\r\nimport {NewLiveCasinoArenaModel} from \"./models/arenas/new-live-casino/new-live-casino-arena.model\";\r\nimport {LiveCasinoArenaModel} from \"./models/arenas/live-casino/live-casino-arena.model\";\r\n\r\n\r\nexport class ArenasService extends ServiceBase implements IArenasService {\r\n\r\n @observable.ref\r\n private _arenasConfigs: ArenasConfiguration = {};\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n this._postLoginListsSortOrderStorage = new ListsSortOrderStorage(services);\r\n this._loadArenas();\r\n }\r\n\r\n private _arenas: Record = {};\r\n private readonly _postLoginListsSortOrderStorage: ListsSortOrderStorage;\r\n\r\n private _loadArenas(): void {\r\n this._arenas[HOME_PAGE_ARENA] = this._createArena(HOME_PAGE_ARENA);\r\n const arenasConfigs = this.services.configuration.data.arenas;\r\n for(let arenaName in arenasConfigs) {\r\n this._arenas[arenaName] = this._createArena(arenaName);\r\n }\r\n }\r\n\r\n getArena(arenaName: string): IArenaViewModel {\r\n return this._arenas[arenaName] || new VoidArenaModel(this.services);\r\n }\r\n\r\n private _createArena(arenaName: string): IArenaViewModel | null {\r\n switch (arenaName) {\r\n case HOME_PAGE_ARENA:\r\n return new HomePageArenaModel(this.services, this._postLoginListsSortOrderStorage);\r\n case NEW_LIVE_CASINO_ARENA_NAME:\r\n return new NewLiveCasinoArenaModel(arenaName, this.services);\r\n case LIVE_CASINO_ARENA_NAME:\r\n return new LiveCasinoArenaModel(arenaName, this.services);\r\n default:\r\n return new CasinoLobbyArenaModel(arenaName, this.services, this._postLoginListsSortOrderStorage);\r\n }\r\n }\r\n\r\n getCurrentArena(): IArenaViewModel {\r\n const arenaName = this.services.routing.currentRoute.data?.arenaType;\r\n if(!arenaName) {\r\n return new VoidArenaModel(this.services);\r\n }\r\n return this.getArena(arenaName)\r\n\r\n }\r\n\r\n getArenaConfig(arenaType: string): ArenaConfiguration {\r\n return this.services.configuration.data.arenas[arenaType];\r\n }\r\n\r\n shouldHideFiltersButtonMobile(): boolean {\r\n const arenasWithoutFilterButton: string[] = [NEW_LIVE_CASINO_ARENA_NAME];\r\n const currentRoute = this.services.routing.currentRoute;\r\n return arenasWithoutFilterButton.includes(currentRoute?.data?.arenaType);\r\n }\r\n}\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../../base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\nimport {Link} from \"../../raw-components/link/link\";\r\n\r\nexport interface BreadcrumbsItemComponentProps {\r\n readonly title: string;\r\n position: number;\r\n readonly url?: string;\r\n onClick?: () => void;\r\n\r\n}\r\n\r\n@observer\r\nexport class BreadcrumbsItemComponent extends OrbitComponent {\r\n\r\n render() {\r\n let noLinkClass = this.props.onClick ? '' : 'no-link';\r\n return (\r\n <>\r\n \r\n \r\n \r\n {this.props.title}\r\n \r\n \r\n \r\n \r\n {this.props.onClick ? {' > '} : null}\r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {IBreadcrumb} from './breadcrumb.interface';\r\nimport {BreadcrumbsItemComponent} from '../../../components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component';\r\n\r\nexport class NonNavigatableBreadcrumb implements IBreadcrumb {\r\n constructor(private _title: string) {\r\n }\r\n\r\n render(position: number) {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {IBreadcrumb} from './breadcrumb.interface';\r\nimport {IServiceFactoryExtended} from '../../service-factory-extended.interface';\r\nimport {BreadcrumbsItemComponent} from '../../../components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component';\r\n\r\n\r\nexport class NavigatableBreadcrumb implements IBreadcrumb {\r\n constructor(private _title: string, private _url: string, private services: IServiceFactoryExtended) {\r\n\r\n }\r\n\r\n private _navigate = () => {\r\n this.services.location.push(this._url);\r\n };\r\n\r\n render(position: number) {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\n\r\n","import {NonNavigatableBreadcrumb} from './breadcrumbs/non-navigatable-breadcrumb';\r\nimport {NavigatableBreadcrumb} from './breadcrumbs/navigatable-breadcrumb';\r\nimport {IBreadcrumb} from './breadcrumbs/breadcrumb.interface';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {UriPath} from \"../location/uri-path/uri-path\";\r\n\r\nexport class SiteMapNode {\r\n constructor(private _title: string, private _url: string, children: any[]) {\r\n this._loadChildren(children);\r\n this._urlParts = new UriPath(_url).toArray();\r\n }\r\n\r\n private readonly _urlParts: string[];\r\n\r\n private _loadChildren(children: any[]): void {\r\n this._children = (children || []).map(ch => new SiteMapNode(ch.title, ch.url, ch.children));\r\n }\r\n\r\n\r\n private _children: SiteMapNode[] = [];\r\n get children(): SiteMapNode[] {\r\n return this._children;\r\n }\r\n\r\n createBreadcrumbs(requestedUrlParts: string[], services: IServiceFactoryExtended): IBreadcrumb[] {\r\n\r\n for(let i = 0; i < this._urlParts.length; i++) {\r\n if(this._urlParts[i] !== requestedUrlParts[i]) {\r\n return [];\r\n }\r\n }\r\n\r\n if(this._urlParts.length === requestedUrlParts.length) {\r\n return [new NonNavigatableBreadcrumb(this._title)] //it means this is the last breadcrumb\r\n } else {\r\n let breadcrumb = new NavigatableBreadcrumb(this._title, this._url, services);\r\n\r\n return [breadcrumb, ...this._createChildrenBreadcrumbs(requestedUrlParts, services)];\r\n }\r\n }\r\n\r\n private _createChildrenBreadcrumbs(requestedUrlParts: string[], services: IServiceFactoryExtended): IBreadcrumb[] {\r\n for(let i = 0; i < this.children.length; i++) {\r\n let childBreadcrumbs = this.children[i].createBreadcrumbs(requestedUrlParts, services);\r\n if(childBreadcrumbs.length > 0) {\r\n return childBreadcrumbs;\r\n }\r\n }\r\n return [];\r\n }\r\n\r\n toFlatSiteMap(): {[key: string]: SiteMapNode} {\r\n let result = {};\r\n result[this._url] = this;\r\n\r\n this.children.forEach(child => {\r\n result = Object.assign(result, child.toFlatSiteMap());\r\n });\r\n\r\n return result;\r\n\r\n }\r\n}\r\n","import {ISiteMapService} from './sitemap.service.interface';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {SiteMapNode} from './sitemap-node';\r\nimport {action, observable} from 'mobx';\r\nimport {IBreadcrumb} from './breadcrumbs/breadcrumb.interface';\r\nimport {UriPath} from '../location/uri-path/uri-path';\r\n\r\nexport class SiteMapService extends ServiceBase implements ISiteMapService {\r\n\r\n private _root: SiteMapNode;\r\n private _flatSiteMapByUrl: {[key: string]: SiteMapNode};\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n try {\r\n this._initSiteMap();\r\n }catch (e) {\r\n this.services.logger.error(`Failed to load sitemap ${e} `);\r\n }\r\n\r\n this.reaction(\r\n () => this.services.location.currentUri,\r\n (uri) => {\r\n this._setBreadcrumbs(this._createBreadCrumbs(uri.pathName));\r\n },\r\n {\r\n fireImmediately: true\r\n });\r\n }\r\n\r\n private _initSiteMap() {\r\n let siteMap = this.services.configuration.startupConfiguration.b2c.sitemap;\r\n this._root = new SiteMapNode(siteMap.title, siteMap.url, siteMap.children);\r\n this._flatSiteMapByUrl = this._root.toFlatSiteMap();\r\n }\r\n\r\n @observable.ref\r\n breadcrumbs: IBreadcrumb[] = [];\r\n\r\n @action.bound\r\n private _setBreadcrumbs(breadcrumbs: IBreadcrumb[]) {\r\n this.breadcrumbs = breadcrumbs;\r\n }\r\n\r\n\r\n private _createBreadCrumbs(uriPath: UriPath): IBreadcrumb[] {\r\n if(!uriPath) {\r\n return [];\r\n }\r\n\r\n if(uriPath.isEmpty) {\r\n return [];\r\n }\r\n\r\n let uriParts = uriPath.toArray();\r\n if(uriParts[0] !== '/') {\r\n uriParts = ['/', ...uriParts];\r\n }\r\n\r\n let breadcrumbs = this._root.createBreadcrumbs(uriParts, this.services);\r\n if(breadcrumbs.length < uriParts.length) {\r\n this.services.logger.warning(`URL ${uriPath} was not found in the sitemap`);\r\n return [];\r\n }\r\n\r\n if(breadcrumbs.length <= 1) {\r\n return [];\r\n }\r\n\r\n return breadcrumbs;\r\n }\r\n\r\n isUrlInSiteMap(url: string): boolean {\r\n if(this._flatSiteMapByUrl[url]) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n\r\n\r\n}\r\n","import {ServiceBase} from '../ServiceBase';\r\nimport {IMarketingService} from './marketing.service.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {encodeUriRecursive} from '../../../utils/url-utils';\r\nimport {MarketingParams} from \"../../../common/interfaces/marketing-params.interface\";\r\n\r\n\r\nconst TEST_DATA_KEY = 'testdata';\r\n\r\nexport class MarketingService extends ServiceBase implements IMarketingService {\r\n\r\n private get _sCut(): any {\r\n return this.services.window.getGlobalProperty('sCut');\r\n }\r\n\r\n private get _sCutQueryParams(): string | null {\r\n let sCut = this._sCut;\r\n if(sCut) {\r\n return sCut.toString();\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n appendSCutToUrl(url: string): string {\r\n if(!url) {\r\n return url;\r\n }\r\n\r\n if(!this._sCutQueryParams) {\r\n return url;\r\n }\r\n\r\n let urlParts = url.split('?');\r\n let queryParams = (urlParts[1] || '').trim();\r\n if(queryParams) {\r\n if(queryParams.endsWith('&')) {\r\n return urlParts[0] + '?' + queryParams + this._sCutQueryParams;\r\n } else {\r\n return urlParts[0] + '?' + queryParams + '&' + this._sCutQueryParams;\r\n }\r\n } else {\r\n return urlParts[0] + '?' + this._sCutQueryParams;\r\n }\r\n }\r\n\r\n private _getDlp(): string {\r\n return this.services.location.currentUri.getUrlWithoutSearchAndHash();\r\n }\r\n\r\n private _convertParameterToNumber(parameterName: string, parameterValue): number {\r\n let dlAsNumber = parseInt((parameterValue || '').trim());\r\n if(Check.isNumber(dlAsNumber)) {\r\n return dlAsNumber;\r\n } else {\r\n this.services.logger.error(`Cannot convert marketing parameter ${parameterName} to number because its value is ${parameterValue}`);\r\n return 999999;\r\n }\r\n }\r\n\r\n getMarketingData(marketingParams?: MarketingParams): any {\r\n let sCut = this._sCut;\r\n if(!Check.isObject(sCut)) {\r\n return {};\r\n }\r\n\r\n if(!sCut[\"all\"]) {\r\n this.services.logger.warning(`sCut.all function doesn't exists`);\r\n return {};\r\n }\r\n\r\n let sCutData = sCut[\"all\"]();\r\n\r\n if(!sCutData) {\r\n this.services.logger.warning(`sCut.all() returned ${sCutData}`);\r\n return {};\r\n }\r\n\r\n marketingParams = marketingParams || {};\r\n\r\n let additionalParams: any = {...sCutData};\r\n delete additionalParams[TEST_DATA_KEY];\r\n if(!additionalParams.wtc && marketingParams.wtc) {\r\n additionalParams.wtc = marketingParams.wtc;\r\n }\r\n\r\n\r\n let testData: any = {};\r\n\r\n try {\r\n testData = sCutData[TEST_DATA_KEY] ? JSON.parse(sCutData[TEST_DATA_KEY]) : {}\r\n } catch (err) {\r\n this.services.logger.error('Failed to parse sCut TestData');\r\n return {};\r\n }\r\n\r\n if(!testData.dl && marketingParams.dl) {\r\n testData.dl = marketingParams.dl;\r\n }\r\n\r\n if(testData.dl) {\r\n //We try to convert the dl to number to see if it is a valid number\r\n //but we must send it as a string because membership code will throw error on GetFunnelData if it will be number\r\n testData.dl = (this._convertParameterToNumber('dl', testData.dl)).toString();\r\n }\r\n\r\n testData.dlp = this._getDlp();\r\n\r\n if(additionalParams.dlp) {\r\n additionalParams.dlp = testData.dlp;\r\n }\r\n\r\n return encodeUriRecursive({\r\n sr: sCutData.sr,\r\n TestData: testData,\r\n AdditionalParams: additionalParams\r\n });\r\n }\r\n\r\n\r\n\r\n}\r\n","import {LanguageSwitcherItemConfiguration} from '../../../app-bootstrap/config-interfaces/b2c-startup.configurations';\r\nimport {IServiceFactoryExtended} from '../../service-factory-extended.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {ILanguageSwitcherItem} from './language-switcher-item.interface';\r\n\r\nexport class LanguageSwitcherItem implements ILanguageSwitcherItem {\r\n constructor(private _config: LanguageSwitcherItemConfiguration, private services: IServiceFactoryExtended) {\r\n }\r\n\r\n get title(): string {\r\n return this._config.title;\r\n }\r\n\r\n get url(): string {\r\n return this._config.url;\r\n }\r\n\r\n get isCurrent(): boolean {\r\n return false;\r\n }\r\n\r\n makeCurrent(): void {\r\n this.services.analytics.sendAnalytics('Navigation', 'Language', this.title);\r\n this._executeOnClickJs();\r\n let url = this._config.url;\r\n\r\n if(this.services.device.hybrid.isEmbedded) {\r\n this.services.window.openSelf(url);\r\n } else {\r\n this._createCookie().then(() => {\r\n this.services.user.logout();\r\n setTimeout(() => {\r\n if(this._config.sendFunnelParameters) {\r\n url = this.services.marketing.appendSCutToUrl(url);\r\n }\r\n this.services.window.openSelf(url);\r\n }, 200);\r\n })\r\n }\r\n }\r\n\r\n private _createCookie(): Promise {\r\n if(this.services.user.isAuthorized) {\r\n return this.services.user.getAutoLoginToken()\r\n .then(token => {\r\n this.services.cookies.createDomainCookie('orbit_autologin_token', token);\r\n }).catch(() => {\r\n this.services.logger.error('Failed to get autologin token in order to switch language');\r\n });\r\n } else {\r\n return Promise.resolve();\r\n }\r\n }\r\n\r\n private _executeOnClickJs(): void {\r\n try {\r\n\r\n\r\n if (!this._config.onClickJs) {\r\n return;\r\n }\r\n\r\n if (!Check.isString(this._config.onClickJs)) {\r\n this.services.logger.error(`onClickJs is not a string for language switcher item ${this.title}`);\r\n return;\r\n }\r\n\r\n if (this._config.onClickJs.length > 50) {\r\n this.services.logger.error(`Too long callback method for language switcher item ${this.title} click event: ${this._config.onClickJs.substring(0, 50)} ...`);\r\n return;\r\n }\r\n\r\n // eslint-disable-next-line\r\n let func = new Function(this._config.onClickJs);\r\n func();\r\n }\r\n catch (err) {\r\n this.services.logger.error(`Failed to execute onClickJs for language swithcer item ${this.title}; onClickJs: ${this._config.onClickJs}`, err);\r\n }\r\n }\r\n}\r\n\r\n\r\n","import {IServiceFactoryExtended} from '../../service-factory-extended.interface';\r\nimport {ILanguageSwitcherItem} from './language-switcher-item.interface';\r\n\r\nexport class LanguageSwitcherSection {\r\n constructor(private _services: IServiceFactoryExtended, private _title: string, private _fallbackTitleKey: string, private _items: ILanguageSwitcherItem[]) {\r\n\r\n }\r\n\r\n get title(): string {\r\n if(this._title) {\r\n return this._title;\r\n }\r\n\r\n return this._services.translation.translate(this._fallbackTitleKey);\r\n }\r\n\r\n get items(): ILanguageSwitcherItem[] {\r\n return this._items;\r\n }\r\n}\r\n","import {ILanguageSwitcherItem} from './language-switcher-item.interface';\r\n\r\nexport class SelectedLanguageSwitcherItem implements ILanguageSwitcherItem {\r\n constructor(private _title: string) {\r\n\r\n }\r\n get isCurrent(): boolean {\r\n return true;\r\n }\r\n get title(): string {\r\n return this._title;\r\n }\r\n\r\n get url(): string {\r\n return '';\r\n }\r\n\r\n makeCurrent(): void {\r\n }\r\n\r\n}\r\n","import {ServiceBase} from '../ServiceBase';\r\nimport {ILanguageData, ILanguageService} from './language.service.interface';\r\nimport {action, observable} from 'mobx';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {TranslatedText} from './translated-text';\r\n\r\nimport {LanguageSwitcherStructure} from './language-switcher/language-switcher-structure';\r\nimport {LanguageSwitcherItem} from './language-switcher/language-switcher-item';\r\nimport {LanguageSwitcherSection} from './language-switcher/language-switcher-section';\r\nimport {SelectedLanguageSwitcherItem} from './language-switcher/selected-language-switcher-item';\r\nimport {ILanguageSwitcherItem} from './language-switcher/language-switcher-item.interface';\r\nimport {\r\n LanguageSwitcherConfiguration,\r\n LanguageSwitcherItemConfiguration, LanguageSwitcherSectionConfiguration\r\n} from '../../app-bootstrap/config-interfaces/b2c-startup.configurations';\r\n\r\nexport class LanguageService extends ServiceBase implements ILanguageService {\r\n constructor(private _defaultLanguageData: ILanguageData, services: IServiceFactoryExtended) {\r\n super(services);\r\n\r\n this._loadLanguageData();\r\n\r\n if (this._isLanguageSwitcherEnabled) {\r\n this._setLanguageSwitcher(this.services.configuration.startupConfiguration.b2c.languageSwitcher);\r\n } else {\r\n this._setLanguageSwitcher(null);\r\n }\r\n\r\n\r\n this.reaction(() => this.services.location.currentUri,\r\n (uri) => {\r\n this._updateLanguageSwitcher(uri.pathName.toString());\r\n }, {\r\n fireImmediately: this.languageSwitcher.isEmpty\r\n });\r\n }\r\n\r\n private get _isLanguageSwitcherEnabled(): boolean {\r\n return Boolean(this.services.configuration.data.languageSwitcher?.display)\r\n }\r\n\r\n\r\n private _lastUrlWithoutTheFragmentQueriedForLanguageSwitcher = '';\r\n\r\n public get isRTLLanguage(): boolean {\r\n return this.services.dom.getElementsByTagName('html')[0].classList.contains('cgp-rtl');\r\n }\r\n\r\n get currentLanguage(): string {\r\n return this.services.configuration.startupConfiguration.b2c.language.iso3;\r\n }\r\n\r\n get currentLanguageIso2(): string {\r\n return this.services.configuration.startupConfiguration.b2c.language.iso2;\r\n }\r\n\r\n\r\n private _getDefaultTexts(): TranslatedText {\r\n return this._defaultLanguageData.text || {};\r\n }\r\n\r\n\r\n private _loadLanguageData(): void {\r\n let textOverrides = this.services.configuration.startupConfiguration.orbit.lang?.text;\r\n let translatedTexts = {...this._getDefaultTexts(), ...textOverrides};\r\n\r\n this._setTranslatedTexts(translatedTexts);\r\n }\r\n\r\n\r\n\r\n @observable.ref\r\n translatedTexts: TranslatedText = {};\r\n\r\n @action.bound\r\n private _setTranslatedTexts(data: TranslatedText) : void {\r\n this.translatedTexts = data;\r\n }\r\n\r\n @observable.ref\r\n languageSwitcher: LanguageSwitcherStructure;\r\n\r\n @action.bound\r\n private _setLanguageSwitcher(langSwitcherConfig: LanguageSwitcherConfiguration): void {\r\n let languagesSection = this._extractLangSwitcherSection(langSwitcherConfig && langSwitcherConfig.languages, langSwitcherConfig && langSwitcherConfig.languageSettings, 'CHOOSE_LANG');\r\n\r\n let countriesSection = this._extractLangSwitcherSection(langSwitcherConfig && langSwitcherConfig.countries, langSwitcherConfig && langSwitcherConfig.countrySettings, 'CHOOSE_COUNTRY')\r\n\r\n this.languageSwitcher = {\r\n languagesSection: languagesSection,\r\n countriesSection: countriesSection,\r\n isEmpty: languagesSection.items.length === 0 && countriesSection.items.length === 0\r\n };\r\n }\r\n\r\n private _extractLangSwitcherSection(itemsConfig: LanguageSwitcherItemConfiguration[], sectionConfig: LanguageSwitcherSectionConfiguration, fallbackTitleKey: string): LanguageSwitcherSection {\r\n itemsConfig = itemsConfig || [];\r\n sectionConfig = sectionConfig || {title: '', current: ''};\r\n\r\n let items: ILanguageSwitcherItem[] = [];\r\n\r\n if(sectionConfig.current && itemsConfig.length > 0) {\r\n items.push(new SelectedLanguageSwitcherItem(sectionConfig.current));\r\n }\r\n\r\n itemsConfig.forEach(cfg => {\r\n items.push(new LanguageSwitcherItem(cfg, this.services));\r\n });\r\n\r\n return new LanguageSwitcherSection(this.services,\r\n sectionConfig.title,\r\n fallbackTitleKey,\r\n items);\r\n\r\n }\r\n\r\n _updateLanguageSwitcher(url: string) {\r\n if (this.languageSwitcher.isEmpty) {\r\n return;\r\n }\r\n\r\n if(this._lastUrlWithoutTheFragmentQueriedForLanguageSwitcher !== url && !this.services.device.hybrid.isEmbedded) {\r\n this._lastUrlWithoutTheFragmentQueriedForLanguageSwitcher = url;\r\n\r\n this.services.cmsApi\r\n .getLanguageSwitcherConfiguration(url)\r\n .then(config => {\r\n if (config) { this._setLanguageSwitcher(config); }\r\n });\r\n }\r\n }\r\n}\r\n","import { Check } from \"@sparkware/app-utils\";\r\nimport { SideMenuLinkConfiguration, CustomElementLink, InternalLink, ExternalLink } from \"../config-data-sections/side-menu.configuration\";\r\n\r\nexport function isCustomLink(config: SideMenuLinkConfiguration): config is CustomElementLink {\r\n return (!Check.isNullOrUndefined((config as any).isCustomElement) && (config as any).isCustomElement === true);\r\n}\r\n\r\nexport function isInternalLink(config: SideMenuLinkConfiguration): config is InternalLink {\r\n if (isCustomLink(config)) {\r\n return false;\r\n }\r\n return (Check.isNullOrUndefined(config.isExternalLink) || config.isExternalLink === false);\r\n}\r\n\r\nexport function isExternalLink(config: SideMenuLinkConfiguration): config is ExternalLink {\r\n if (isCustomLink(config)) {\r\n return false;\r\n }\r\n return (!Check.isNullOrUndefined(config.isExternalLink) && config.isExternalLink === true);\r\n}\r\n\r\n","import {ISideMenuService, SideMenuLinkAction} from './side-menu.service.interface';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IServiceFactoryExtended} from \"../service-factory-extended.interface\";\r\nimport {InternalLink, ExternalLink, SideMenuLinkConfiguration} from \"../configurations/config-data-sections/side-menu.configuration\";\r\nimport {action, observable} from \"mobx\";\r\nimport { isExternalLink, isInternalLink } from '../configurations/helpers/side-menu-typeguards.helpers';\r\nimport {IOverlayConsumer} from \"../overlay/overlay-consumer.interface\";\r\n\r\nexport class SideMenuService extends ServiceBase implements ISideMenuService, IOverlayConsumer {\r\n @observable.ref isMobileMenuOpen: boolean = false;\r\n\r\n @action.bound\r\n private _setIsMobileMenuOpen(shouldOpen: boolean) {\r\n this.isMobileMenuOpen = shouldOpen;\r\n }\r\n\r\n constructor(serviceFactory: IServiceFactoryExtended) {\r\n super(serviceFactory);\r\n this.reaction(\r\n () => this.services.overlay.isOpen,\r\n (isOpen) => {\r\n if (!isOpen) {\r\n this.closeMobileMenu();\r\n }\r\n }\r\n );\r\n this.services.overlay.registerConsumer(this);\r\n }\r\n\r\n get needsOverlay(): boolean {\r\n return this.isMobileMenuOpen;\r\n }\r\n\r\n onOverlayClicked() {\r\n this.closeMobileMenu();\r\n }\r\n\r\n getOverlayZIndex(): number | undefined {\r\n return this.zIndex - 1;\r\n }\r\n\r\n get zIndex(): number {\r\n return 120;\r\n }\r\n\r\n getLinkAction(config: SideMenuLinkConfiguration): SideMenuLinkAction {\r\n return this._linkAction(config);\r\n }\r\n\r\n openMobileMenu(): void {\r\n if (!this.isMobileMenuOpen) {\r\n this.services.userMenu.closeMenu();\r\n this.services.sdk.closeRunningGame();\r\n this._setIsMobileMenuOpen(true);\r\n }\r\n }\r\n\r\n closeMobileMenu(): void {\r\n if (this.isMobileMenuOpen) {\r\n this.services.gameSearch.closeSearchResult();\r\n this.closeMobileLanguageSwitcher();\r\n this._setIsMobileMenuOpen(false);\r\n }\r\n }\r\n\r\n openHelp(): void {\r\n this.services.externalLinks.openHelpPage();\r\n this.services.userMenu.closeMenu();\r\n this.services.analytics.sendAnalytics('Navigation', 'Header', 'Help');\r\n }\r\n\r\n private _linkAction(config: SideMenuLinkConfiguration): SideMenuLinkAction {\r\n return event => {\r\n event.preventDefault();\r\n this.services.analytics.sendAnalytics('Navigation', 'NavBar', config.text);\r\n\r\n if (this.services.menuFlow.hasCustomFlow(config)) {\r\n const flowResult = this.services.menuFlow.executeCustomFlow(config);\r\n if (flowResult && !flowResult.continue) {\r\n return;\r\n }\r\n }\r\n\r\n this.closeMobileMenu();\r\n this.services.userMenu.closeMenu();\r\n this.services.overlay.closeOverlay();\r\n\r\n if (isExternalLink(config)) {\r\n this._externalLink(config);\r\n } else if (isInternalLink(config)) {\r\n this._internalLink(config);\r\n }\r\n };\r\n }\r\n\r\n private _internalLink(config: InternalLink) {\r\n const link = this.proceedLink(config.link);\r\n switch (config.tabState) {\r\n case '_blank':\r\n this.services.sdk.openInNewWindow(this.services.marketing.appendSCutToUrl(link));\r\n break;\r\n case '_self':\r\n default:\r\n this.services.location.push(link.toLowerCase());\r\n break;\r\n }\r\n }\r\n\r\n private _externalLink(config: ExternalLink) {\r\n const link = this.proceedLink(config.link);\r\n const linkParams = {\r\n source: ('externalLinkSource' in config) ? config.externalLinkSource : link,\r\n view: config.target,\r\n options: config.options,\r\n sourceLink: null,\r\n };\r\n if (config.useDirectLink) {\r\n if (config.noConcatScut) {\r\n linkParams.sourceLink = link;\r\n } else {\r\n linkParams.sourceLink = this.services.marketing.appendSCutToUrl(link);\r\n }\r\n }\r\n\r\n this.services.externalLinks.openExternalBrand(linkParams, {dl: config.dl}, config.useCallbackURL);\r\n }\r\n\r\n private proceedLink(link:string): string {\r\n //add all replaces for the link here\r\n return link?.replace('{cid}', this.services.user.cid);\r\n }\r\n\r\n @observable.ref\r\n isMobileLanguageSwitcher: boolean = false;\r\n\r\n @action.bound\r\n openMobileLanguageSwitcher(): void {\r\n this.isMobileLanguageSwitcher = true;\r\n }\r\n\r\n @action.bound\r\n closeMobileLanguageSwitcher(): void {\r\n this.isMobileLanguageSwitcher = false;\r\n }\r\n}\r\n","import {GameInfo, OpenGameParameters} from '../games/game-info';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {SuggestedLinkConfiguration} from '../configurations/config-data-sections/game-search-box.configuration';\r\n\r\nexport interface ISearchSuggestion {\r\n readonly key: string;\r\n readonly text: string;\r\n readonly linkIconClass: string;\r\n readonly type: string;\r\n readonly gameInfo: GameInfo;\r\n executeAction(): void;\r\n}\r\n\r\nexport const SUGGESTED_CATEGORIES = \"Suggested_Categories\";\r\n\r\nexport function isSuggestedCategory(searchSuggestion: ISearchSuggestion): boolean {\r\n return searchSuggestion?.type === SUGGESTED_CATEGORIES;\r\n}\r\n\r\nexport class GameSuggestion implements ISearchSuggestion {\r\n constructor(private services: IServiceFactoryExtended, private _gameInfo: GameInfo, private _analyticsLabel: string, private _index?: number, private _aiSortingType?: string) {\r\n\r\n }\r\n\r\n get gameInfo(): GameInfo {\r\n return this._gameInfo;\r\n }\r\n\r\n get type(): string {\r\n return this._analyticsLabel;\r\n }\r\n\r\n get key(): string {\r\n return this._gameInfo.gameType + '_' + this._gameInfo.title;\r\n }\r\n\r\n get text(): string {\r\n return this._gameInfo.title;\r\n }\r\n\r\n get linkIconClass(): string {\r\n return this._gameInfo.gameCategory;\r\n }\r\n\r\n executeAction(): void {\r\n\r\n const openGameParams: OpenGameParameters = {\r\n isRealMode: true,\r\n pageName: 'Search',\r\n gameIndex: this._index,\r\n listTitle: this.type,\r\n aiSortingType: this._aiSortingType,\r\n showIntermediatePage: this.services.cmsSegmentation.isCstatus === false //Show intermediate page only for user with cStatus == false, TASK 1832892\r\n };\r\n\r\n this._gameInfo.open(openGameParams);\r\n }\r\n\r\n}\r\n\r\n\r\nexport class SearchLinkSuggestion implements ISearchSuggestion {\r\n constructor(private _linkConfig: SuggestedLinkConfiguration, private services: IServiceFactoryExtended, private _analyticsAction: string) {\r\n\r\n }\r\n\r\n get gameInfo(): GameInfo {\r\n return null;\r\n }\r\n\r\n get type(): string {\r\n return this._analyticsAction;\r\n }\r\n\r\n get key(): string {\r\n return this._linkConfig.text;\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate(this._linkConfig.text);\r\n }\r\n\r\n get linkIconClass(): string {\r\n return 'link';\r\n }\r\n\r\n executeAction() {\r\n this.services.analytics.sendAnalytics('Search', this.type, this.text);\r\n if(this._linkConfig.link) {\r\n this.services.location.push(this._linkConfig.link);\r\n } else {\r\n this.services.externalLinks.openLink({\r\n source: this._linkConfig.externalLinkSource\r\n });\r\n }\r\n }\r\n}\r\n\r\n\r\nexport class GameSearchResult {\r\n constructor(private _games: ISearchSuggestion[], private _suggestedCategories: ISearchSuggestion[], private _suggestedGames: ISearchSuggestion[]) {}\r\n\r\n get suggestedGames(): ISearchSuggestion[] {\r\n return this._suggestedGames;\r\n }\r\n\r\n get games(): ISearchSuggestion[] {\r\n return this._games;\r\n }\r\n\r\n get suggestedCategories(): ISearchSuggestion[] {\r\n return this._suggestedCategories;\r\n }\r\n}\r\n","import {MarketingParams} from \"../../../common/interfaces/marketing-params.interface\";\r\nimport {IOpenMyAccountOptions} from \"./handlers/my-account/my-account.external-link-handler.interface\";\r\nimport {IOpenRegistrationOptions} from \"./handlers/registration/registration.external-link-handler.interface\";\r\n\r\nexport type ExternalLinkViewMode = 'window' | 'iframe' | 'redirect' | 'second_web_view';\r\n\r\nexport interface OpenLinkParams {\r\n source?: string;\r\n sourceLink?: string;\r\n options?: any;\r\n view?: ExternalLinkViewMode;\r\n resolveByCallback?: boolean;\r\n addCloseOption?: boolean;\r\n priorityLevel?: string;\r\n}\r\n\r\nexport interface OpenContactUsOptions{\r\n view: ExternalLinkViewMode;\r\n}\r\n\r\nexport enum OpenMembershipResponse {\r\n unknown = 0,\r\n play = 1,\r\n deposit = 2,\r\n close = 3\r\n}\r\n\r\n\r\nexport interface OpenRichPageOptions {\r\n campaignId: string;\r\n}\r\n\r\n\r\nexport interface IExternalLinksService {\r\n openExternalBrand(params: OpenLinkParams, marketingParams?: MarketingParams, useCallbackURL?: boolean): Promise;\r\n openLink(params: OpenLinkParams, marketingParams?: MarketingParams, useCallbackURL?: boolean): Promise;\r\n openMyAccount(options?: IOpenMyAccountOptions): Promise;\r\n openMembership(options?: IOpenRegistrationOptions): Promise;\r\n openUploadDocument(): Promise;\r\n openContactUs(options?: OpenContactUsOptions, marketingParams?: MarketingParams, resolveByCallback?: boolean): Promise;\r\n openHelpPage(): Promise;\r\n openDownloadApp(): Promise;\r\n openResponsibleGamblingLink(view?:number):void;\r\n openOldChat(): Promise;\r\n openPendingPlayApplication(token: string): Promise;\r\n openSafeToPlay(): Promise;\r\n openRichPage(options: OpenRichPageOptions): Promise;\r\n openSport(): Promise;\r\n openInternalUrl(url: string): Promise;\r\n openExternalUrl(url: string): Promise;\r\n openBankId(url: string): void;\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;@media ${({theme}) => theme.mediaQuery.lAndBelow };\r\n cursor: pointer;\r\n border: 1px 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.35rem;\r\n transform: translateY(-50%);\r\n width: 30px;\r\n height: 30px;\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-position: -138px -626px;\r\n z-index: 2;\r\n pointer-events: none;\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow}, ${({theme}) => theme.mediaQuery.lowHeight} {\r\n left: 0.15rem;\r\n transform: scale(0.9) translateY(-55%);\r\n }\r\n\r\n`;","import styled from \"styled-components\";\r\nimport {SearchPCIconBoxDefault} from \"./search-pc-icon.default.box\";\r\nimport {SearchInputFormBox} from \"../search-input-form/search-input-form.box\";\r\n\r\nexport const SearchPCIconCasino777Box = styled(SearchPCIconBoxDefault)`\r\n background-position: -453px -581px;\r\n\r\n ${SearchInputFormBox}:hover & {\r\n background-position: -488px -581px;\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {SearchPCIconBoxDefault} from \"./search-pc-icon.default.box\";\r\nimport {SearchInputFormBox} from \"../search-input-form/search-input-form.box\";\r\n\r\nexport const SearchPCIconHarrahsBox = styled(SearchPCIconBoxDefault)`\r\n opacity: 0.5;\r\n \r\n ${SearchInputFormBox}:hover & {\r\n opacity: 1\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {SearchPCIconBoxDefault} from \"./search-pc-icon.default.box\";\r\nimport {SearchInputFormBox} from \"../search-input-form/search-input-form.box\";\r\n\r\nexport const SearchPCIconWSOPBox = styled(SearchPCIconBoxDefault)`\r\n opacity: 0.5;\r\n \r\n ${SearchInputFormBox}:hover & {\r\n opacity: 1\r\n }\r\n`;","import {SearchPCIconBoxDefault} from \"./search-pc-icon.default.box\";\r\nimport {styledByTheme} from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport {SearchPCIconCasino777Box} from \"./search-pc-icon.casino777.box\";\r\nimport {SearchPCIconHarrahsBox} from \"./search-pc-icon.harrahs.box\";\r\nimport {SearchPCIconWSOPBox} from \"./search-pc-icon.wsop.box\";\r\n\r\nexport const SearchPCIconBox = styledByTheme(SearchPCIconBoxDefault)\r\n .forCasino777(SearchPCIconCasino777Box)\r\n .forHarrahs(SearchPCIconHarrahsBox)\r\n .forWsop(SearchPCIconWSOPBox)\r\n .apply();","import {OrbitComponent} from \"../../../base-components/orbit-component/orbit-component\";\r\nimport React from \"react\";\r\nimport {SearchInputArea} from \"../search-input-area/search-input-area\";\r\nimport {SearchInputFormBox} from \"./boxes/search-input-form/search-input-form.box\";\r\nimport {SearchPCIconBox} from \"./boxes/search-pc-icon/search-pc-icon.box\";\r\nimport {observer} from \"mobx-react\";\r\n\r\n@observer\r\nexport class SearchInputPCComponent extends OrbitComponent<{}> {\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}","import styled, {css} from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../themes/architecture/styled-by-device\";\r\n\r\ninterface GameSearchDefaultBoxProps {\r\n open: boolean;\r\n}\r\n\r\nconst GameSearchMobileDefaultBox = styled.div`\r\n ${({open}) => open && css`\r\n flex: 1;\r\n `}\r\n`;\r\n\r\nconst GameSearchPCDefaultBox = styled.div`\r\n position: relative;\r\n display: flex;\r\n`;\r\n\r\n\r\nexport const GameSearchBox: any = styledByDevice(GameSearchPCDefaultBox, GameSearchMobileDefaultBox);","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {SearchResultComponent} from './search-result/search-result.component';\r\nimport {SearchInputMobileComponent} from \"./search-input/search-input-mobile/search-input-mobile.component\";\r\nimport {SearchInputPCComponent} from \"./search-input/search-input-pc/search-input-pc.component\";\r\nimport {GameSearchBox} from \"./boxes/game-search-box/game-search.box\";\r\nimport {CyClass} from '../../../common/cy-classes';\r\nimport classNames from 'classnames';\r\n\r\nexport interface IGameSearchComponentProps {\r\n className?: string;\r\n}\r\n\r\n@observer\r\nexport class GameSearchComponent extends OrbitComponent {\r\n _renderSearchInput() {\r\n return this.services.device.isMobile ? : ;\r\n }\r\n\r\n private _onUpdate = () => {\r\n this.services.gameSearch.searchResultComponentRef.current?.scrollTo(0, 0);\r\n }\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n this.services.gameSearch.searchInputRef?.current.addEventListener(\"input\", this._onUpdate);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.services.gameSearch.searchInputRef?.current.removeEventListener(\"input\", this._onUpdate);\r\n super.componentWillUnmount();\r\n }\r\n \r\n render() {\r\n return (\r\n \r\n {this._renderSearchInput()}\r\n \r\n \r\n );\r\n }\r\n\r\n}\r\n","import React, {createRef} from \"react\";\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IGameSearchService} from './game-search.service.interface';\r\nimport {DomEventSubscription} from '../../../utils/event-listener-registration';\r\nimport {action, computed, observable} from 'mobx';\r\nimport {\r\n SearchLinkSuggestion,\r\n GameSearchResult,\r\n GameSuggestion,\r\n ISearchSuggestion,\r\n SUGGESTED_CATEGORIES\r\n} from './game-search-result';\r\nimport {SuggestedLinkConfiguration} from '../configurations/config-data-sections/game-search-box.configuration';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {GameInfo, gameInfoComparerByTitle} from '../games/game-info';\r\nimport {IModalDialogHandler} from \"../dialog/dialog.service.interface\";\r\nimport {GameSearchComponent} from \"../../components/game-search/game-search.component\";\r\nimport {removeSpecialCharacters} from \"../../../utils/string-helpers\";\r\nimport { LIST_TYPE_ID } from \"../../../common/const/ai-trending-list-ids-map\";\r\nimport {IOverlayConsumer} from \"../overlay/overlay-consumer.interface\";\r\n\r\nexport class GameSearchService extends ServiceBase implements IGameSearchService, IOverlayConsumer {\r\n\r\n private _closeMobileSideMenuOnSearchClose: boolean = false;\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n\r\n this.services.overlay.registerConsumer(this);\r\n\r\n this.reaction(() => this.services.games.gamesMap,\r\n () => {\r\n this._resetGamesSearchListCache();\r\n this.search(this.currentSearchText);\r\n }, {\r\n fireImmediately: true\r\n });\r\n\r\n this.reaction(() => {\r\n return {\r\n trendingRecommendedGamesForPlayerByBets: this.services.aiEngine.trendingRecommendedGamesForPlayerByBets,\r\n aiRecommendedGames: this.services.aiEngine.aiRecommendedGames\r\n }\r\n },\r\n () => {\r\n if(!this.isSearchInProgress) {\r\n this._setDefaultSearchResult();\r\n }\r\n });\r\n }\r\n private _miniOrbitSearchBoxDialogHandler: IModalDialogHandler | null = null;\r\n\r\n private _searchInputRef: React.RefObject = createRef();\r\n private _searchComponentRef: React.RefObject = createRef();\r\n private _searchResultComponentRef: React.RefObject = createRef();\r\n\r\n private _gamesSearchListCache: GameInfo[] | null = null;\r\n private get gamesSearchList(): GameInfo[] {\r\n if(!this._gamesSearchListCache) {\r\n this._gamesSearchListCache = this._buildGamesSearchList()\r\n }\r\n\r\n return this._gamesSearchListCache;\r\n }\r\n\r\n _resetGamesSearchListCache() {\r\n this._gamesSearchListCache = null;\r\n }\r\n\r\n private _buildGamesSearchList(): GameInfo[] {\r\n return Object.values(this.services.games.gamesMap).sort(gameInfoComparerByTitle);\r\n }\r\n\r\n private _openMiniOrbitSearchDialog(): void {\r\n this.services.dialog.showModal((dialogHandler) => {\r\n this._miniOrbitSearchBoxDialogHandler = dialogHandler;\r\n return ();\r\n }, {\r\n title: ' ',\r\n onClosed: () => this.closeSearchResult(),\r\n forceFullscreenTablet: true\r\n });\r\n }\r\n\r\n get needsOverlay(): boolean {\r\n return this.isSearchBoxOpened;\r\n }\r\n\r\n getOverlayZIndex(): number | undefined {\r\n return undefined;\r\n }\r\n\r\n onOverlayClicked() {\r\n this.closeSearchResult();\r\n }\r\n\r\n private _openFullOrbitSearchResult() {\r\n this._disposeDocumentClickSubscription();\r\n /*\r\n * Handle search result close on document click\r\n * Wonder why we use setTimeout? From React 17 the events are bound to react-dom root element instead of window.document\r\n * Read more here: https://github.com/facebook/react/issues/20636\r\n */\r\n setTimeout(() => {\r\n this._documentClickSubscription = this.services.dom.subscribeTo.click(this._handleClickOutsideSearchComponent);\r\n });\r\n\r\n }\r\n\r\n get searchInputRef() {\r\n return this._searchInputRef;\r\n }\r\n\r\n get searchComponentRef() {\r\n return this._searchComponentRef;\r\n }\r\n\r\n get searchResultComponentRef() {\r\n return this._searchResultComponentRef;\r\n }\r\n\r\n openSearchResult(): void {\r\n if(this.isSearchBoxOpened) { //No need to open it if is already opened\r\n return;\r\n }\r\n\r\n if(this.services.miniOrbit.isEnabled) {\r\n this._openMiniOrbitSearchDialog();\r\n } else {\r\n this._openFullOrbitSearchResult();\r\n }\r\n\r\n this._setIsSearchBoxOpened(true);\r\n\r\n this.searchInputRef?.current?.focus();\r\n\r\n if(this.services.device.isMobile){\r\n this._closeMobileSideMenuOnSearchClose = !this.services.sideMenu.isMobileMenuOpen;\r\n if(!this.services.sideMenu.isMobileMenuOpen) {\r\n this.services.sideMenu.openMobileMenu();\r\n }\r\n }\r\n\r\n this.services.analytics.sendAnalytics('Navigation', this.services.routing.currentRoute?.data?.arenaType || 'Header', 'Search_Open');\r\n }\r\n\r\n\r\n private _documentClickSubscription: DomEventSubscription | null = null;\r\n\r\n private _disposeDocumentClickSubscription() {\r\n if(this._documentClickSubscription) {\r\n this._documentClickSubscription.dispose();\r\n this._documentClickSubscription = null;\r\n }\r\n }\r\n\r\n\r\n private _closeMiniOrbitSearchDialog = () => {\r\n if(this._miniOrbitSearchBoxDialogHandler) {\r\n this._miniOrbitSearchBoxDialogHandler.close();\r\n this._miniOrbitSearchBoxDialogHandler = null;\r\n }\r\n };\r\n\r\n\r\n private _closeFullOrbitSearchResult = () => {\r\n this._disposeDocumentClickSubscription();\r\n };\r\n\r\n private _handleClickOutsideSearchComponent = (event) => {\r\n if (this._searchComponentRef.current && !this._searchComponentRef.current.contains(event.target)) {\r\n this.closeSearchResult();\r\n }\r\n }\r\n\r\n closeSearchResult = () => {\r\n if(!this.isSearchBoxOpened) { //if is already closed don't close it again\r\n return;\r\n }\r\n if(this.services.miniOrbit.isEnabled) {\r\n this._closeMiniOrbitSearchDialog();\r\n } else {\r\n this._closeFullOrbitSearchResult();\r\n }\r\n\r\n if(this._closeMobileSideMenuOnSearchClose){\r\n this._closeMobileSideMenuOnSearchClose = false;\r\n this.services.sideMenu.closeMobileMenu();\r\n }\r\n\r\n this._setIsSearchBoxOpened(false);\r\n\r\n //Will called when search box close or when game is selected (And closing the results as well)\r\n if(this.isSearchInProgress)\r\n this.services.analytics.sendAnalytics('Search', 'Entry', this.currentSearchText);\r\n\r\n this._setCurrentSearchText('');\r\n this._setDefaultSearchResult();\r\n };\r\n\r\n private _getGameSuggestion() {\r\n const gamesSuggestions: GameSuggestion[] = [];\r\n let aiSortingTypeForAnalytics:string = \"byactiveusers\";\r\n let aiGames = this.services.aiEngine.trendingRecommendedGamesForPlayerByActiveUsers;\r\n\r\n if(!(aiGames?.length > 0)) {\r\n aiSortingTypeForAnalytics = 'config';\r\n aiGames = this.services.configuration.data.search.suggestedGames;\r\n }\r\n\r\n aiGames.forEach(gameType => {\r\n const gameInfo = this.services.games.gamesMap[gameType];\r\n\r\n if(!Check.isNullOrUndefined(gameInfo)){\r\n gamesSuggestions.push(new GameSuggestion(this.services, gameInfo, `Suggested_Games_${aiSortingTypeForAnalytics}`, gamesSuggestions.length, aiSortingTypeForAnalytics))\r\n }\r\n });\r\n\r\n return gamesSuggestions.slice(0, 6);\r\n }\r\n\r\n private _setDefaultSearchResult() {\r\n const quickLinks = this.services.configuration.data.search.quickLinks\r\n .map(quickLinkConfig => new SearchLinkSuggestion(quickLinkConfig, this.services, 'Quick_Links'));\r\n\r\n this._setSearchResult(new GameSearchResult([], quickLinks, this._getGameSuggestion()));\r\n }\r\n\r\n @computed get isSearchInProgress(): boolean {\r\n return this.currentSearchText.length >= 2;\r\n }\r\n\r\n @observable isSearchBoxOpened: boolean = false;\r\n @action.bound\r\n private _setIsSearchBoxOpened(value: boolean) {\r\n this.isSearchBoxOpened = value;\r\n }\r\n\r\n @observable currentSearchText: string = '';\r\n @action.bound\r\n private _setCurrentSearchText(value: string): void {\r\n this.currentSearchText = value;\r\n }\r\n\r\n search(text: string): void {\r\n text = text || '';\r\n\r\n if(!this.isSearchBoxOpened && text.length > 0) {\r\n this.openSearchResult();\r\n }\r\n\r\n this._setCurrentSearchText(text);\r\n\r\n if(this.isSearchInProgress) { //we only search if there are at least 2 characters typed in the search box\r\n let regEx = new RegExp(removeSpecialCharacters(text), 'gi');\r\n this._setSearchResult(this._getSearchResult(regEx));\r\n } else {\r\n this._setDefaultSearchResult();\r\n }\r\n }\r\n\r\n\r\n private _getSearchResult(regEx: RegExp): GameSearchResult {\r\n let games = this._searchForGames(regEx);\r\n let suggestedCategories: ISearchSuggestion[];\r\n if(games.length === 0) {\r\n suggestedCategories = this._getDefaultSuggestedCategories();\r\n } else {\r\n suggestedCategories = this._searchForSuggestedCategories(regEx);\r\n }\r\n\r\n return new GameSearchResult(games, suggestedCategories, this._getGameSuggestion());\r\n }\r\n\r\n @observable.ref\r\n searchResult: GameSearchResult;\r\n\r\n @action.bound\r\n private _setSearchResult(value: GameSearchResult) {\r\n this.searchResult = value;\r\n }\r\n\r\n private _searchForGames(regEx: RegExp): ISearchSuggestion[] {\r\n\r\n const result: GameInfo[] = [];\r\n const gameTypeToGameInfoObj = {};\r\n\r\n this.gamesSearchList.forEach((gameInfo) => {\r\n if (removeSpecialCharacters(gameInfo.title).match(regEx)) {\r\n result.push(gameInfo);\r\n gameTypeToGameInfoObj[gameInfo.gameType] = gameInfo;\r\n }\r\n });\r\n\r\n const sortedResultGameTypes = this.services.aiEngine.sortGamesByAI(result.map(gameInfo => gameInfo.gameType), LIST_TYPE_ID.ACTIVE_USERS);\r\n return sortedResultGameTypes.map((gameType, index) => new GameSuggestion(this.services, gameTypeToGameInfoObj[gameType], `Search_Results`, index, 'byactiveusers'));\r\n }\r\n\r\n\r\n private _searchForSuggestedCategories(regEx: RegExp): ISearchSuggestion[] {\r\n let suggestedCategoriesOptions = this.services.configuration.data.search.suggestedCategories.suggestedCategoriesOptions;\r\n if(!suggestedCategoriesOptions) {\r\n return this._getDefaultSuggestedCategories();\r\n }\r\n\r\n for(let i = 0; i < suggestedCategoriesOptions.length; i++) {\r\n let option = suggestedCategoriesOptions[i];\r\n let result: ISearchSuggestion[] = [];\r\n if(option.search.match(regEx) && option.categories && option.categories.length > 0) {\r\n result = option.categories.map(categoryConfig => this._createSuggestedCategory(categoryConfig))\r\n // TODO: Remove this after updating the Check signatures. Let type inference do the magic\r\n .filter((categorySuggestion): categorySuggestion is ISearchSuggestion => !Check.isNullOrUndefined(categorySuggestion));\r\n }\r\n\r\n if(result.length > 0) {\r\n return result;\r\n }\r\n }\r\n\r\n return this._getDefaultSuggestedCategories();\r\n }\r\n\r\n private _getDefaultSuggestedCategories(): ISearchSuggestion[] {\r\n return this.services.configuration.data.search.suggestedCategories.defaultSuggestedCategories\r\n .map(suggestedCategory => this._createSuggestedCategory(suggestedCategory))\r\n // TODO: Remove this after updating the Check signatures. Let type inference do the magic\r\n .filter((suggestion): suggestion is ISearchSuggestion => !Check.isNullOrUndefined(suggestion));\r\n }\r\n\r\n _createSuggestedCategory(categoryConfig: SuggestedLinkConfiguration): ISearchSuggestion | null {\r\n if(categoryConfig.gameID) {\r\n let gameInfo = this.services.games.gamesMap[categoryConfig.gameID];\r\n if(!gameInfo) {\r\n this.services.logger.error(`Game type ${categoryConfig.gameID} is in the search suggested categories but this game is not configured to be in this site!`);\r\n return null;\r\n }\r\n return new GameSuggestion(this.services, gameInfo, SUGGESTED_CATEGORIES);\r\n }\r\n return new SearchLinkSuggestion(categoryConfig, this.services, SUGGESTED_CATEGORIES);\r\n }\r\n}\r\n","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 ExternalLinkViewMode,\r\n IExternalLinksService,\r\n OpenContactUsOptions,\r\n OpenLinkParams, OpenMembershipResponse,\r\n OpenRichPageOptions\r\n} from \"../external-links.service.interface\";\r\nimport {IServiceFactoryExtended} from \"../../service-factory-extended.interface\";\r\nimport {OnPlayerActionParams} from \"../../sdk/sdk-events\";\r\nimport {CHANNEL_ELEMENTS, CHANNEL_SOURCE} from \"../../../../common/const/casinofied-analytics-consts\";\r\nimport {AreaType} from \"@sparkware/uc-sdk-core\";\r\nimport {MarketingParams} from \"../../../../common/interfaces/marketing-params.interface\";\r\nimport Device from \"../../../../sdk/src/utils/device/device\";\r\nimport {SdkOpenExternalLinkParams} from \"../../sdk/sdk.service.interface\";\r\nimport {GNWP_SOURCES} from \"../../../../sdk/src/components/external_links/external_links_consts\";\r\nimport {PRIORITY_LEVEL} from \"../../../../sdk/src/services/overlay_manager/overlay_manager_levels\";\r\nimport {IOpenMyAccountOptions} from \"../handlers/my-account/my-account.external-link-handler.interface\";\r\nimport {IOpenRegistrationOptions} from \"../handlers/registration/registration.external-link-handler.interface\";\r\n\r\nexport class ExternalLinksLegacyStrategy extends ServiceBase implements IExternalLinksService {\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n\r\n this.services.sdk.events.onPlayerAction(this._onPlayerActionHandler.bind(this));\r\n }\r\n\r\n\r\n private _onPlayerActionHandler(params: OnPlayerActionParams) {\r\n if(params.actionName === 'deposit') {\r\n this.services.cashier.openCashier({\r\n ...params.options,\r\n channel: {\r\n source: CHANNEL_SOURCE.registration,\r\n area: AreaType.StraightToCashier,\r\n element: CHANNEL_ELEMENTS.depositButton\r\n }\r\n });\r\n }\r\n }\r\n\r\n openLink(params: OpenLinkParams, marketingParams?: MarketingParams, useCallbackURL: boolean = false): Promise {\r\n let marketingData = this.services.marketing.getMarketingData(marketingParams);\r\n const isHybrid = Device.hybrid.isHybrid;\r\n\r\n\r\n const sdkOpenParams: SdkOpenExternalLinkParams = {\r\n view: params.view,\r\n source: params.source,\r\n sourceLink: params.sourceLink,\r\n addCloseOption: params.addCloseOption,\r\n priorityLevel: params.priorityLevel,\r\n marketing: marketingData,\r\n options: {\r\n ...params.options,\r\n showRegister: !this.services.cmsSegmentation.isCisOrCip && this.services.configuration.data.generalSettings.showRegisterButton\r\n }\r\n };\r\n\r\n if(params.source === 'cashier') {\r\n return this.services.cashier.openCashier({\r\n ...sdkOpenParams.options,\r\n channel: {\r\n source: CHANNEL_SOURCE.casinoClient,\r\n area: AreaType.NavigationMenu,\r\n element: CHANNEL_ELEMENTS.depositButton\r\n }\r\n\r\n }, sdkOpenParams.marketing, useCallbackURL);\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n if(params.resolveByCallback && !isHybrid) {\r\n sdkOpenParams.actionCallback = (result: any) => resolve(result);\r\n }\r\n\r\n this.services.sdk.openExternalLink(sdkOpenParams, useCallbackURL).then(()=> {\r\n // In case there is an actionCallback this promise will be resolved by a call from inside sdk.openExternalLink\r\n if(!sdkOpenParams.actionCallback) {\r\n resolve();\r\n }\r\n }).catch((err)=> {\r\n reject(err);\r\n });\r\n });\r\n }\r\n\r\n openResponsibleGamblingLink(view?:number):void{\r\n this.services.sdk.openResponsibleGamingLink(view);\r\n }\r\n\r\n\r\n async openMyAccount(options?: IOpenMyAccountOptions, marketingParams?: MarketingParams): Promise {\r\n await this.openLink({\r\n source: 'my_account',\r\n options: options,\r\n resolveByCallback: false\r\n }, marketingParams);\r\n }\r\n\r\n async openContactUs(options?: OpenContactUsOptions, marketingParams?: MarketingParams, resolveByCallback: boolean = false): Promise {\r\n await this.openLink({\r\n source: 'contact_us',\r\n view: options?.view,\r\n resolveByCallback: resolveByCallback\r\n }, marketingParams);\r\n }\r\n\r\n async openOldChat(): Promise {\r\n await this.openLink({\r\n source: 'live_chat',\r\n view: 'window'\r\n });\r\n }\r\n\r\n async openHelpPage(): Promise {\r\n await this.openLink({\r\n source: 'help',\r\n view: 'window',\r\n resolveByCallback: false\r\n });\r\n }\r\n\r\n async openDownloadApp(): Promise {\r\n await this.openLink({\r\n sourceLink: this.services.sdk.getDownloadAppLink(),\r\n view: 'redirect',\r\n resolveByCallback: false\r\n });\r\n }\r\n\r\n async openUploadDocument(): 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 let response = await this.openLink({\r\n source: 'membership'\r\n }, options?.marketingParams);\r\n\r\n response = (response || {}).actionName;\r\n\r\n\r\n switch(response) {\r\n case 'play':\r\n return OpenMembershipResponse.play;\r\n case 'deposit':\r\n return OpenMembershipResponse.deposit;\r\n case 'close':\r\n return OpenMembershipResponse.close;\r\n default:\r\n this.services.logger.error(`Unknown response '${response}' received from openMembership`);\r\n return OpenMembershipResponse.unknown;\r\n }\r\n }\r\n\r\n async openPendingPlayApplication(token: string): Promise {\r\n await this.openLink({\r\n source: GNWP_SOURCES.PENDING_PLAY,\r\n options: {\r\n token: token\r\n }\r\n });\r\n }\r\n\r\n async openSafeToPlay(): Promise {\r\n const url = this.services.sdk.getSkin().getSafeToPlayURL();\r\n if(url) {\r\n await this.openLink({\r\n sourceLink: url,\r\n view: 'window'\r\n });\r\n }\r\n }\r\n\r\n async openRichPage(options: OpenRichPageOptions): Promise {\r\n if(!options.campaignId) {\r\n throw new Error('Rich campaignId parameter was not provided');\r\n }\r\n\r\n const url = this.services.configuration.servicesConfigs.Integration.rich?.richPageUrl;\r\n if(!url) {\r\n throw new Error('Rich page url was not configured');\r\n }\r\n\r\n await this.services.location.redirect(url.replace('{campaignid}', options.campaignId));\r\n }\r\n\r\n async openSport(): Promise {\r\n await this.openLink({\r\n source: GNWP_SOURCES.SPORT\r\n });\r\n }\r\n\r\n async openInternalUrl(url: string): Promise {\r\n if(!url) {\r\n throw new Error('openInternalUrl failed! No url provided');\r\n }\r\n\r\n await this.services.location.push(url);\r\n\r\n }\r\n async openExternalUrl(url: string): Promise {\r\n if(!url) {\r\n throw new Error('openExternalUrl failed! No url provided');\r\n }\r\n\r\n let view: ExternalLinkViewMode = this.services.device.os.isMobileOS ? 'iframe' : 'window';\r\n\r\n await this.openLink({\r\n sourceLink: url,\r\n addCloseOption: true,\r\n view: view,\r\n priorityLevel: PRIORITY_LEVEL.INTERNAL_OVER_EXTERNAL_LINK\r\n });\r\n }\r\n\r\n openExternalBrand(params: OpenLinkParams, marketingParams?: MarketingParams, useCallbackURL: boolean = false): Promise {\r\n if (params.sourceLink) {\r\n const externalBrandLink = this.services.stateOfResidenceIdentifier.prepareUrlForExternalBrand(params.sourceLink);\r\n return this.openLink({...params, sourceLink: externalBrandLink}, marketingParams, useCallbackURL);\r\n } else {\r\n return this.openLink(params, marketingParams, useCallbackURL);\r\n }\r\n }\r\n\r\n 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}\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 {OpenLinkParams, OpenMembershipResponse} from \"../external-links.service.interface\";\r\nimport {IOpenRegistrationOptions} from \"../handlers/registration/registration.external-link-handler.interface\";\r\n\r\nconst UseModernStrategy = {\r\n forMyAccount: true,\r\n forRegistration: true\r\n}\r\n\r\nexport class ExternalLinksModernStrategy extends ExternalLinksLegacyStrategy {\r\n\r\n private get _handlers(): IExternalLinksHandlersFactory {\r\n return this.services.regulation.current.externalLinks;\r\n }\r\n\r\n\r\n openMyAccount(options?: IOpenMyAccountOptions, marketingParams?: MarketingParams): Promise {\r\n if(UseModernStrategy.forMyAccount) {\r\n return this._handlers.myAccount.openMyAccount(options);\r\n }\r\n\r\n return super.openMyAccount(options);\r\n }\r\n\r\n async openMembership(options?: IOpenRegistrationOptions): Promise {\r\n if(UseModernStrategy.forRegistration) {\r\n await this._handlers.registration.openRegistration(options);\r\n return OpenMembershipResponse.close;\r\n }\r\n\r\n return await super.openMembership(options);\r\n }\r\n\r\n openLink(params: OpenLinkParams, marketingParams?: MarketingParams, useCallbackURL: boolean = false): Promise {\r\n if(params.source === 'membership' && UseModernStrategy.forRegistration) {\r\n return this.openMembership({\r\n marketingParams: marketingParams\r\n });\r\n }\r\n return super.openLink(params, marketingParams, useCallbackURL);\r\n }\r\n\r\n}","import {ServiceBase} from '../ServiceBase';\r\nimport {\r\n IExternalLinksService,\r\n OpenContactUsOptions,\r\n OpenLinkParams,\r\n OpenMembershipResponse,\r\n OpenRichPageOptions\r\n} from './external-links.service.interface';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {MarketingParams} from \"../../../common/interfaces/marketing-params.interface\";\r\nimport {ExternalLinksLegacyStrategy} from \"./strategies/external-links-legacy.strategy\";\r\nimport {ExternalLinksModernStrategy} from \"./strategies/external-links-modern.strategy\";\r\nimport {IOpenMyAccountOptions} from \"./handlers/my-account/my-account.external-link-handler.interface\";\r\nimport {IOpenRegistrationOptions} from \"./handlers/registration/registration.external-link-handler.interface\";\r\nimport {IExternalLinksProxy} from \"../../../common/interfaces/external-links-proxy.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 return this._strategy.openMyAccount(options);\r\n }\r\n\r\n async openContactUs(options?: OpenContactUsOptions, marketingParams?: MarketingParams, resolveByCallback: boolean = false): Promise {\r\n return this._strategy.openContactUs(options, marketingParams, resolveByCallback);\r\n }\r\n\r\n async openOldChat(): Promise {\r\n return this._strategy.openOldChat();\r\n }\r\n\r\n async openHelpPage(): Promise {\r\n return this._strategy.openHelpPage();\r\n }\r\n\r\n async openDownloadApp(): Promise {\r\n return this._strategy.openDownloadApp();\r\n }\r\n\r\n async openUploadDocument(): Promise {\r\n return this._strategy.openUploadDocument();\r\n }\r\n\r\n async openMembership(options?: IOpenRegistrationOptions): Promise {\r\n return this._strategy.openMembership(options);\r\n }\r\n\r\n async openPendingPlayApplication(token: string): Promise {\r\n return this._strategy.openPendingPlayApplication(token);\r\n }\r\n\r\n async openSafeToPlay(): Promise {\r\n return this._strategy.openSafeToPlay();\r\n }\r\n\r\n openRichPage(options: OpenRichPageOptions): Promise {\r\n return this._strategy.openRichPage(options);\r\n }\r\n\r\n openSport(): Promise {\r\n return this._strategy.openSport();\r\n }\r\n\r\n openInternalUrl(url: string): Promise {\r\n return this._strategy.openInternalUrl(url);\r\n }\r\n openExternalUrl(url: string): Promise {\r\n return this._strategy.openExternalUrl(url);\r\n }\r\n\r\n openExternalBrand(params: OpenLinkParams, marketingParams?: MarketingParams, useCallbackURL?: boolean): Promise {\r\n return this._strategy.openExternalBrand(params, marketingParams, useCallbackURL);\r\n }\r\n\r\n openBankId(url: string): void {\r\n this._strategy.openBankId(url);\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 interface LiveCasinoGridItemInfoItemDefaultBoxProps {\r\n isLiveStreamOverlay?: boolean;\r\n}\r\n\r\nexport const LiveCasinoGridItemInfoItemDefaultBox = styled.div`\r\n display: flex;\r\n align-items: center;\r\n margin: ${props => props.isLiveStreamOverlay ? '0 0.75em 0 0.75em' : '0 1em 0 0'};\r\n color: ${props => props.theme.colors.textLight};\r\n letter-spacing: 0.1rem;\r\n font-size: 1em;\r\n height: 24px;\r\n`;","import styled from \"styled-components\";\r\nimport {LiveCasinoGridItemInfoItemDefaultBox} from \"./live-casino-grid-item-info-item.default.box\";\r\n\r\nexport const LiveCasinoGridItemInfoItemSIBox = styled(LiveCasinoGridItemInfoItemDefaultBox)`\r\n font-size: 1.2em;\r\n letter-spacing: 0.48px;\r\n`;\r\n","import {styledByTheme} from \"../../../../../../../themes/architecture/styled-by-theme\";\r\nimport {LiveCasinoGridItemInfoItemDefaultBox} from \"./live-casino-grid-item-info-item.default.box\";\r\nimport {LiveCasinoGridItemInfoItemSIBox} from \"./live-casino-grid-item-info-item.si.box\";\r\n\r\nexport const LiveCasinoGridItemInfoItemBox = styledByTheme(LiveCasinoGridItemInfoItemDefaultBox)\r\n .forSI(LiveCasinoGridItemInfoItemSIBox)\r\n .forSICis(LiveCasinoGridItemInfoItemSIBox)\r\n .apply();","import styled from \"styled-components\";\r\n\r\nexport const LobbyGridDefaultBox = styled.div`\r\n overflow: hidden;\r\n\r\n // This is for CLS purpose, we want to make sure there is no 'jump' of the footer when lazy loaded swipers loads\r\n padding-bottom: 300px;\r\n\r\n max-width: 100%;\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n width: 100%;\r\n }\r\n`;","import {LobbyGridDefaultBox} from \"./lobby-grid.default.box\";\r\nimport {styledByTheme} from \"../../themes/architecture/styled-by-theme\";\r\n\r\nexport const LobbyGridBox = styledByTheme(LobbyGridDefaultBox).apply();","import {LiveCasinoGridItemDefaultBox} from \"./live-casino-grid-item.default.box\";\r\n\r\nexport const LiveCasinoGridItemBox = LiveCasinoGridItemDefaultBox;","import styled, {css} from \"styled-components\";\r\n\r\ninterface ILiveCasinoGridItemDefaultBoxProps {\r\n fluidWidth?: boolean; // when true, don't set the width, let it flow within its parent\r\n}\r\n\r\nexport const LiveCasinoGridItemDefaultBox = styled.div`\r\n box-sizing: border-box;\r\n\r\n /* Prevents CSS Transform flicker */\r\n backface-visibility: hidden;\r\n\r\n ${({fluidWidth}) => !fluidWidth && css`\r\n\r\n width: calc(100% / 5);\r\n padding: 1em 0.5em;\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndAbove} {\r\n width: calc(100% / 3);\r\n }\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove} {\r\n width: calc(100% / 4);\r\n }\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n width: calc(100% / 2);\r\n padding: 0.5em 0.25em;\r\n }\r\n `}\r\n`;","import 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 ButtonLabelBox = styled.span`\r\n text-transform: uppercase;\r\n padding: 1px ${({lateralPadding}) => lateralPadding}em 0px;\r\n font-size: ${({fontSize}) => fontSize}em;\r\n line-height: 1.15;\r\n max-height: 2.2em;\r\n\r\n white-space: ${({allowLabelWrap}) => allowLabelWrap ? 'unset' : 'nowrap'};\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n`;\r\n","import styled, { css } from \"styled-components\";\r\nimport { CssRule } from \"../../../../themes/architecture/css-helpers/css-rule\";\r\n\r\ninterface IButtonIconWrapperProps {\r\n rotated45?: boolean;\r\n reverseOnRTL?: boolean;\r\n}\r\n\r\nexport const ButtonIconWrapperBox = styled.span`\r\n ${props => props.rotated45 ? css`\r\n transform: rotate(-45deg);\r\n ` : null}\r\n\r\n ${props => props.reverseOnRTL ? css`\r\n ${CssRule.For.RTL.build()} &{\r\n transform: scaleX(-1);\r\n }\r\n ` : null}\r\n`;\r\n","import React from \"react\";\r\nimport { withTheme } from \"styled-components\";\r\nimport { OrbitTheme } from \"../../../themes/architecture/orbit-theme.interface\";\r\nimport { SvgSizeUnit } from \"../../icon/svg-icon/svg.icon\";\r\nimport { IButtonCommonProps, ButtonPreset, ButtonStroke, ButtonSizeVariant, IButtonIconProps } from \"./button-props.interface\";\r\nimport { ButtonBox } from \"./boxes/button.box\";\r\nimport { ButtonLabelBox } from \"./boxes/button-label.box\";\r\nimport { ButtonIconWrapperBox } from \"./boxes/button-icon-wrapper.box\";\r\n\r\ninterface IButtonProps extends IButtonCommonProps {\r\n preset: ButtonPreset;\r\n stroke?: ButtonStroke;\r\n icon?: IButtonIconProps;\r\n sizeVariant?: ButtonSizeVariant;\r\n className?: string;\r\n allowLabelWrap?: boolean;\r\n tooltip?: string;\r\n\r\n /**\r\n * theme is addded by styled-component's withTheme\r\n * children should not be here, but typescript complains otherwise, when using this component with children\r\n */\r\n theme: OrbitTheme;\r\n children?: React.ReactNode;\r\n\r\n /* button interactions */\r\n onClick?(): void;\r\n onMouseEnter?(): void;\r\n onMouseLeave?(): void;\r\n}\r\n\r\nclass $Button extends React.Component {\r\n render() {\r\n let {\r\n children, theme, preset, icon, stroke, sizeVariant, rotated45, rounded, elevated, allowLabelWrap, tooltip,\r\n onClick, onMouseEnter, onMouseLeave,\r\n ...otherProps\r\n } = this.props;\r\n let hasIcon = !!icon;\r\n let hasLabel = !!children;\r\n\r\n onClick = this.props.disabled ? undefined : onClick;\r\n onMouseEnter = this.props.disabled ? undefined : onMouseEnter;\r\n onMouseLeave = this.props.disabled ? undefined : onMouseLeave;\r\n\r\n let presetValues = theme.baseUIComponents.button.presets[preset];\r\n let themePresetDefaults = theme.baseUIComponents.button.defaults;\r\n\r\n stroke = stroke ?? presetValues.stroke ?? themePresetDefaults.stroke;\r\n rounded = rounded ?? presetValues.rounded ?? themePresetDefaults.rounded;\r\n elevated = elevated ?? presetValues.elevated ?? themePresetDefaults.elevated;\r\n sizeVariant = sizeVariant || \"regular\";\r\n\r\n let iconSize = icon && icon.size ? icon.size : \"regular\";\r\n let iconPlacement = icon && icon.placement ? icon.placement : \"left\";\r\n\r\n let strokeWidth = theme.baseUIComponents.button.strokeValues[stroke];\r\n let height = theme.baseUIComponents.button.sizeVariantValues[sizeVariant].height;\r\n let iconSizeValue = theme.baseUIComponents.button.sizeVariantValues[sizeVariant].iconSize[iconSize];\r\n let fontSize = theme.baseUIComponents.button.sizeVariantValues[sizeVariant].fontSize || presetValues.fontSize || themePresetDefaults.fontSize;\r\n let lateralPadding = sizeVariant === \"small\" ? 0.6 : 1;\r\n\r\n /**\r\n * Rotation is supported for icon only buttons. We support this for casino 777 play game button which is a diamond shaped button\r\n */\r\n rotated45 = rotated45 && hasIcon && !hasLabel;\r\n\r\n return \r\n { (icon && iconPlacement === \"left\") ? this.renderIcon(icon.Component, iconSizeValue, {rotated45, reverseOnRTL: icon.reverseOnRTL}) : null }\r\n { children ? {children} : null }\r\n { (icon && iconPlacement === \"right\") ? this.renderIcon(icon.Component, iconSizeValue, {rotated45, reverseOnRTL: icon.reverseOnRTL}) : null }\r\n \r\n }\r\n\r\n private renderIcon(IconComponent: IButtonIconProps[\"Component\"], size: number, options?: {rotated45?: boolean, reverseOnRTL?: boolean}) {\r\n return \r\n \r\n \r\n }\r\n\r\n}\r\n\r\nexport const Button = withTheme($Button);\r\n","import {LiveCasinoGridItemInfobarIconDefaultBox} from \"./live-casino-grid-item-infobar-icon.default.box\";\r\n\r\nexport const LiveCasinoGridItemInfobarIconBox = LiveCasinoGridItemInfobarIconDefaultBox;","import styled from \"styled-components\";\r\nimport { Image } from \"../../../../../../raw-components/image/image\";\r\n\r\nexport const LiveCasinoGridItemInfobarIconDefaultBox = styled(Image)`\r\n margin-right: 0.25em;\r\n`;","import {LiveCasinoGridItemThumbnailImageDefaultBox} from \"./live-casino-grid-item-thumbnail-image.default.box\";\r\n\r\nexport const LiveCasinoGridItemThumbnailImageBox = LiveCasinoGridItemThumbnailImageDefaultBox;","import styled from \"styled-components\";\r\nimport {ITEM_WRAPPER_BOX} from \"../../css-constants\";\r\nimport { Image } from \"../../../../../raw-components/image/image\";\r\n\r\nexport const LiveCasinoGridItemThumbnailImageDefaultBox = styled(Image)<{filterBlur?: boolean}>`\r\n width: 100%;\r\n transition: transform 0.25s ease;\r\n ${({filterBlur}) => filterBlur ? 'filter: blur(2px)' : null};\r\n .${ITEM_WRAPPER_BOX}:hover &{\r\n transform: scale(1.2);\r\n }\r\n`;","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}","export const CHANNEL_SOURCE = {\r\n casinoClient: 'CASINO_CLIENT',\r\n partyJackpotToaster: 'PARTY_JACKPOT_TOASTER',\r\n omg: 'OMG',\r\n myAccount: 'MY_ACCOUNT',\r\n registration: 'REGISTRATION'\r\n}\r\n\r\nexport const CHANNEL_ELEMENTS = {\r\n depositButton: 'deposit_button',\r\n withdrawButton: 'withdraw_button',\r\n 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}\r\n\r\nexport const DISPLAY_MESSAGE_NAMES = {\r\n DISRUPTIVE_WARNING_MESSAGE_NAME: \"DisruptiveWarningMessage\",\r\n DISRUPTIVE_KICKOFF_MESSAGE_NAME: \"DisruptiveKickOffMessage\",\r\n LUGAS_COOLDOWN_MESSAGE_NAME:\"LugasCoolingPeriod\",\r\n LUGAS_ACTIVE_MESSAGE_NAME:\"LugasParallelPlaying\",\r\n LUGAS_LOGOUT_MESSAGE_NAME:\"LugasLogout\"\r\n}\r\n\r\nexport const ACTION_TAKEN_NAMES = {\r\n CONFIRM_ACTION: \"confirm\",\r\n CANCEL_ACTION: \"cancel\",\r\n}","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","import React from 'react';\r\nimport {OrbitComponent} from '../../base-components/orbit-component/orbit-component';\r\nimport {TapHandler} from '../../tap-handler/tap-handler.component';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {AnyStyledComponent} from 'styled-components';\r\nimport styled from 'styled-components';\r\n\r\ninterface LinkProps {\r\n box?: AnyStyledComponent;\r\n id?: string;\r\n onClick?: (event?: any) => void;\r\n className?: string;\r\n href?: string;\r\n enableTap?: boolean;\r\n preventDefaultOnClick?: boolean\r\n target?: string;\r\n itemProp?: string;\r\n customProps?: {[key: string]: any};\r\n}\r\n\r\nconst DefaultBox = styled.a`\r\n color: ${props => props.theme.colors.text};\r\n`;\r\n\r\nexport class Link extends OrbitComponent {\r\n\r\n private _onClick = (event) => {\r\n\r\n if (this.services.miniOrbit.isEnabled && this.props.target === \"_blank\") {\r\n event.preventDefault();\r\n this.services.miniOrbit.openUrl(this.props.href);\r\n\r\n } else if (Check.isNullOrUndefined(this.props.preventDefaultOnClick) || this.props.preventDefaultOnClick) {\r\n event.preventDefault();\r\n }\r\n\r\n if (this.props.onClick) {\r\n this.props.onClick(event);\r\n }\r\n };\r\n\r\n private _getAnchorProps(): any {\r\n let result: any = {};\r\n\r\n if(this.props.id) {\r\n result.id = this.props.id;\r\n }\r\n if(this.props.className) {\r\n result.className = this.props.className;\r\n }\r\n\r\n if(this.props.href) {\r\n result.href = this.services.location.buildFullUri(this.props.href || '/').toString();\r\n }\r\n\r\n if(this.props.target) {\r\n result.target = this.props.target;\r\n }\r\n\r\n if(this.props.itemProp) {\r\n result.itemProp = this.props.itemProp;\r\n }\r\n\r\n if (this.props.customProps) {\r\n result.customProps = this.props.customProps;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private _renderAnchor(anchorRef: any) {\r\n const Box = this.props.box || DefaultBox;\r\n return (\r\n \r\n {this.props.children}\r\n \r\n );\r\n }\r\n\r\n render() {\r\n if (!this.props.enableTap) {\r\n return this._renderAnchor(null);\r\n }\r\n\r\n let anchorRef: any = React.createRef();\r\n return (\r\n \r\n {this._renderAnchor(anchorRef)}\r\n \r\n );\r\n }\r\n}\r\n","var map = {\n\t\"./888/888.company-model\": [\n\t\t1179,\n\t\t2,\n\t\t23,\n\t\t100\n\t],\n\t\"./evolution/evolution.company-model\": [\n\t\t1125,\n\t\t2,\n\t\t92\n\t],\n\t\"./netent/netent.company-model\": [\n\t\t1135,\n\t\t2,\n\t\t96\n\t],\n\t\"./nyx/integrations/nyx.new-integration.company-model\": [\n\t\t677,\n\t\t2,\n\t\t22,\n\t\t51\n\t],\n\t\"./nyx/integrations/nyx.old-integration.company-model\": [\n\t\t600,\n\t\t2,\n\t\t22,\n\t\t52\n\t],\n\t\"./nyx/nyx.company-model\": [\n\t\t1056,\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\t1144,\n\t\t2,\n\t\t97\n\t],\n\t\"./play-n-go/play-n-go.company-model\": [\n\t\t1156,\n\t\t2,\n\t\t90\n\t],\n\t\"./playtech/playtech.company-model\": [\n\t\t1157,\n\t\t2,\n\t\t91\n\t],\n\t\"./pragmatic/pragmatic.company-model\": [\n\t\t1158,\n\t\t2,\n\t\t93\n\t],\n\t\"./red-tiger/red-tiger.company-model\": [\n\t\t1180,\n\t\t2,\n\t\t50,\n\t\t101\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 = 820;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./ballysdover/theme.definition\": [\n\t\t1173,\n\t\t0,\n\t\t1,\n\t\t70\n\t],\n\t\"./casino777/theme.definition\": [\n\t\t1134,\n\t\t0,\n\t\t1,\n\t\t71\n\t],\n\t\"./casino888/cip/theme.definition\": [\n\t\t1174,\n\t\t0,\n\t\t1,\n\t\t75\n\t],\n\t\"./casino888/cis/theme.definition\": [\n\t\t1057,\n\t\t0,\n\t\t1,\n\t\t76\n\t],\n\t\"./casino888/theme.definition\": [\n\t\t1141,\n\t\t0,\n\t\t1,\n\t\t77\n\t],\n\t\"./delawarepark/theme.definition\": [\n\t\t1142,\n\t\t0,\n\t\t1,\n\t\t78\n\t],\n\t\"./harrahs/theme.definition\": [\n\t\t1175,\n\t\t0,\n\t\t1,\n\t\t79\n\t],\n\t\"./harrington/theme.definition\": [\n\t\t1176,\n\t\t0,\n\t\t1,\n\t\t80\n\t],\n\t\"./mrgreen/theme.definition\": [\n\t\t1121,\n\t\t0,\n\t\t1,\n\t\t81\n\t],\n\t\"./si/cis/theme.definition\": [\n\t\t1155,\n\t\t0,\n\t\t1,\n\t\t46,\n\t\t82\n\t],\n\t\"./si/theme.definition\": [\n\t\t1143,\n\t\t0,\n\t\t1,\n\t\t46,\n\t\t72\n\t],\n\t\"./wsop/cip/theme.definition\": [\n\t\t1177,\n\t\t0,\n\t\t1,\n\t\t73\n\t],\n\t\"./wsop/theme.definition\": [\n\t\t1178,\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 = 826;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./ara\": [\n\t\t604,\n\t\t27\n\t],\n\t\"./ara.ts\": [\n\t\t604,\n\t\t27\n\t],\n\t\"./chi\": [\n\t\t605,\n\t\t33\n\t],\n\t\"./chi.ts\": [\n\t\t605,\n\t\t33\n\t],\n\t\"./dan\": [\n\t\t606,\n\t\t42\n\t],\n\t\"./dan.ts\": [\n\t\t606,\n\t\t42\n\t],\n\t\"./dut\": [\n\t\t607,\n\t\t43\n\t],\n\t\"./dut.ts\": [\n\t\t607,\n\t\t43\n\t],\n\t\"./eng\": [\n\t\t383\n\t],\n\t\"./eng.ts\": [\n\t\t383\n\t],\n\t\"./fin\": [\n\t\t608,\n\t\t28\n\t],\n\t\"./fin.ts\": [\n\t\t608,\n\t\t28\n\t],\n\t\"./fre\": [\n\t\t609,\n\t\t29\n\t],\n\t\"./fre.ts\": [\n\t\t609,\n\t\t29\n\t],\n\t\"./ger\": [\n\t\t610,\n\t\t30\n\t],\n\t\"./ger.ts\": [\n\t\t610,\n\t\t30\n\t],\n\t\"./gre\": [\n\t\t611,\n\t\t31\n\t],\n\t\"./gre.ts\": [\n\t\t611,\n\t\t31\n\t],\n\t\"./ita\": [\n\t\t612,\n\t\t32\n\t],\n\t\"./ita.ts\": [\n\t\t612,\n\t\t32\n\t],\n\t\"./jpn\": [\n\t\t613,\n\t\t34\n\t],\n\t\"./jpn.ts\": [\n\t\t613,\n\t\t34\n\t],\n\t\"./nor\": [\n\t\t614,\n\t\t35\n\t],\n\t\"./nor.ts\": [\n\t\t614,\n\t\t35\n\t],\n\t\"./por\": [\n\t\t615,\n\t\t36\n\t],\n\t\"./por.ts\": [\n\t\t615,\n\t\t36\n\t],\n\t\"./rum\": [\n\t\t616,\n\t\t37\n\t],\n\t\"./rum.ts\": [\n\t\t616,\n\t\t37\n\t],\n\t\"./rus\": [\n\t\t617,\n\t\t38\n\t],\n\t\"./rus.ts\": [\n\t\t617,\n\t\t38\n\t],\n\t\"./spa\": [\n\t\t618,\n\t\t39\n\t],\n\t\"./spa.ts\": [\n\t\t618,\n\t\t39\n\t],\n\t\"./swe\": [\n\t\t619,\n\t\t40\n\t],\n\t\"./swe.ts\": [\n\t\t619,\n\t\t40\n\t],\n\t\"./tha\": [\n\t\t620,\n\t\t41\n\t],\n\t\"./tha.ts\": [\n\t\t620,\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 = 827;\nmodule.exports = webpackAsyncContext;","import {IGamePartsViewModel} from \"../game-parts/game-parts-view-model.interface\";\r\nimport {GameInfo} from \"../../../games/game-info\";\r\nimport {IGameSize} from \"../open-game-api-callers/open-game-api-response.interface\";\r\nimport {\r\n Nullable,\r\n NullableUndefinedString,\r\n UndefinedNumber\r\n} from \"../../../../../common/types/nullable-types\";\r\nimport {IRunningGameControllerViewModel} from \"../game-controller/running-game-controller.interface\";\r\nimport {IOpenHistoryGameParams} from \"../../game-runner.service.interface\";\r\nimport {IFreePlayVoucherViewModel} from \"../../../free-play/vouchers/free-play-voucher-view-model.interface\";\r\n\r\nexport enum GameModeEnum {\r\n Demo = 0,\r\n Real = 1,\r\n History = 2\r\n}\r\n\r\nexport interface IGameSessionDataViewModel {\r\n readonly totalBets: number;\r\n readonly totalWins: number;\r\n readonly vendorGameSessionId: NullableUndefinedString;\r\n readonly regulationGameSessionId: NullableUndefinedString;\r\n readonly regulationParticipationTicketId: NullableUndefinedString;\r\n readonly netPosition: number;\r\n}\r\n\r\nexport interface IGameFreePlayContextViewModel {\r\n readonly isFreePlay: boolean;\r\n readonly 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}","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 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}\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}\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: \"#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 base05: \"#c1c1c18f\",\r\n\r\n base06: \"#828282\",\r\n\r\n base07: \"#e1e2e3\",\r\n\r\n base08Shadow: \"#000000bf\",\r\n\r\n ...grayColors\r\n}\r\n","import styled, { css } from 'styled-components';\r\n\r\nexport const dialogTextMixin = css`\r\n color: ${({theme}) => theme.colors.textLight};\r\n font-size: 1.5rem;\r\n text-align: center;\r\n`;\r\n\r\nexport const dialogHighlightedTextMixin = css`\r\n color: ${props => props.theme.colors.brandPrimary};\r\n font-size: 1.5rem;\r\n text-align: center;\r\n`;\r\n\r\nexport const DialogTextBox = styled.div`\r\n margin-top: 2rem;\r\n ${dialogTextMixin}\r\n`;\r\n\r\nexport const DialogHighlightedTextBox = styled.div`\r\n margin-top: 2rem;\r\n ${dialogHighlightedTextMixin}\r\n`;\r\n\r\nexport const ListDialogTextBox = styled.div`\r\n color: ${({theme}) => theme.colors.textContrast};\r\n margin-top: 4rem;\r\n font-size: 1.5rem;\r\n text-align: left;\r\n`;\r\n\r\nexport const DialogDimmedTextBox = styled.div` \r\n margin-top: 2rem;\r\n font-size: 1.4rem;\r\n text-align: center;\r\n color: ${({theme}) => theme.colors.textMiddleDark};\r\n `;"],"sourceRoot":""}