{"version":3,"sources":["app-react/themes/architecture/gray-colors.ts","app-react/services/game-runner/interfaces/game-context/game-context-view-model.interface.ts","sdk/src/exceptions/cgp_error_codes.ts","app-react/components/game-window/navbar/game-navbar-css-constants.ts","app-react/themes/assets.ts","app-react/services/arenas/arena-consts.ts","common/const/free_play_consts.ts","app-react/components/base-components/orbit-suspense/orbit-suspense.tsx","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/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","common/interfaces/blue-ribbon-party-jackpot.interface.ts","sdk/src/utils/date_formatter.ts","app-react/services/dialog/dialog.service.interface.ts","sdk/src/services/toaster/toaster_service_consts.js","common/const/game_groups_consts.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/css-constants.ts","app-react/components/base-components/routed-component/routed.component.ts","common/const/ab-testing-names.ts","common/const/wallet_balance_type.ts","sdk/src/events/events.ts","app-react/themes/architecture/by-theme-registry.ts","app-react/themes/architecture/styled-by-theme.tsx","common/utils/image-preload.ts","app-react/services/gaming-history/gaming-history-type.ts","app-react/components/balance-box/balance-value.component.tsx","sdk/src/utils/event.ts","app-react/components/top-image/boxes/top-banner/top-banner.default.box.ts","app-react/components/top-image/boxes/top-banner/top-banner-777.box.ts","app-react/components/top-image/boxes/top-banner/top-banner.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/daily-deal/boxes/daily-deal-container.box.ts","app-react/components/daily-deal/boxes/daily-deal-chest-glow.box.ts","app-react/components/daily-deal/boxes/daily-deal-chest.box.ts","app-react/components/daily-deal/boxes/daily-deal-text-strip.box.ts","app-react/components/daily-deal/boxes/daily-deal-chest-halo.box.ts","app-react/components/daily-deal/daily-deal.component.tsx","app-react/components/link-to-offer/boxes/link-to-offer-base/link-to-offer-box-base.ts","app-react/components/link-to-offer/boxes/link-to-offer-icon/link-to-offer-icon.default.box.ts","app-react/components/link-to-offer/boxes/link-to-offer-icon/link-to-offer-icon.box.ts","app-react/components/link-to-offer/boxes/link-to-offer-dialog-close/link-to-offer-dialog-close.box.ts","app-react/components/link-to-offer/boxes/link-to-offer-dialog-close/link-to-offer-dialog-close.default.box.ts","app-react/components/link-to-offer/link-to-offer.component.tsx","app-react/components/orbit-swiper/swiper-window.component.tsx","app-react/components/arena-games-lists/arena-games-lists.component.tsx","app-react/components/inside-orbit-menu-container/inside-orbit-menu-container.consts.ts","app-react/themes/definitions/casino777/base-colors.ts","common/const/responsible-gaming.ts","common/interfaces/orbit-component-to-sdk-adapter/components-props/time-spent-reminder-options.ts","common/const/cashier-session-types.ts","app-react/components/inside-orbit-menu-container/inside-orbit-menu-container.component.tsx","app-react/components/clock/clock.component.tsx","app-react/components/sdk/sdk.component.tsx","app-react/basic-components/main-screen/main-screen.component.tsx","app-react/themes/definitions/harrahs/base-colors.ts","settings/configuration/languages/eng.ts","common/cy-classes.ts","polyfills.ts","app-react/app-bootstrap/application-startup-configurations-reader/application-startup-configurations-reader.ts","app-react/app-bootstrap/sdk-initializer/sdk-hooks-provider.ts","app-react/services/configurations/evaluation/properties-evaluator/properties-evaluator.ts","app-react/services/configurations/evaluation/statements/statements-evaluator/statements-evaluator.ts","app-react/services/configurations/evaluation/value-evaluators/object-evaluator/object-evaluator.ts","app-react/services/configurations/evaluation/value-evaluators/array-evaluator/array-evaluator.ts","app-react/services/configurations/evaluation/value-evaluators/simple-value-evaluator/simple-value-evaluator.ts","app-react/services/configurations/evaluation/statements/statement-evaluator/statement-evaluator.ts","app-react/services/configurations/evaluation/statements/logical-operators/base-logical-operator.ts","app-react/services/configurations/evaluation/statements/logical-operators/or-logical-operator/or-logical-operator.ts","app-react/services/configurations/evaluation/statements/logical-operators/and-logical-operator/and-logical-operator.ts","app-react/services/configurations/evaluation/statements/segmentation-rule/segmentation-rule.ts","app-react/services/configurations/evaluation/statements/comparison-operators/base-comparison-operator.ts","app-react/services/configurations/evaluation/statements/comparison-operators/equal-operator/equal-operator.ts","app-react/services/configurations/evaluation/statements/comparison-operators/not-equal-operator/not-equal-operator.ts","app-react/services/configurations/evaluation/property-level-context/property-level-context.ts","app-react/services/configurations/evaluation/property-evaluator/property-evaluator.ts","app-react/services/configurations/create-statements-definition.ts","app-react/services/configurations/evaluation/special-properties-evaluators/games-id-property-evaluator/games-id-property-evaluator.ts","app-react/services/configurations/evaluation/statements/comparison-operators/is-falsy-operator/is-falsy-operator.ts","app-react/services/configurations/evaluation/statements/comparison-operators/greater-than-operator/greater-than-operator.ts","app-react/services/configurations/evaluation/statements/comparison-operators/less-than-operator/less-than-operator.ts","app-react/services/configurations/evaluation/statements/comparison-operators/any-of-operator/any-of-operator.ts","app-react/services/configurations/evaluation/configuration-evaluation-context/configuration-evaluation-context.ts","app-react/services/game-preview-features-selector/preview-features/game-preview-feature.interface.ts","app-react/app-bootstrap/sdk-initializer/sdk-initializer.ts","app-react/services/qa-environment-pop-up-blocker/qa-environment-pop-up-blocker.service.constants.ts","app-react/services/ServiceBase.ts","app-react/services/qa-environment-pop-up-blocker/qa-environment-pop-up-blocker.service.ts","app-react/services/video-live-stream/video-playing-service-base.ts","app-react/services/video-live-stream/live-stream-playing.service.ts","app-react/services/translation/text-translation.ts","app-react/services/translation/translation.service.ts","app-react/services/currency/currency.service.ts","app-react/services/analytics/analytics.service.ts","app-react/services/lobby-game-info-preview/lobby-game-info-preview.service.ts","app-react/services/running-game/running-game.service.ts","app-react/components/lobby-game-info-preview/intermediate-page/title/boxes/game-info-button/game-info-button.default.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/title/boxes/game-info-button/game-info-button.casino777.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/title/boxes/game-info-button/game-info-button.box.ts","app-react/components/modal-dialog/boxes/title/dialog-title.default.box.ts","app-react/components/modal-dialog/boxes/title/dialog-title.box.ts","app-react/components/modal-dialog/boxes/close-button/dialog-close-button.box.ts","app-react/components/modal-dialog/boxes/close-button/dialog-close-button.default.box.ts","app-react/components/modal-dialog/css-classes.ts","app-react/components/modal-dialog/boxes/header/dialog-header.default.box.ts","app-react/components/modal-dialog/boxes/header/dialog-header.cip.box.ts","app-react/components/modal-dialog/boxes/header/dialog-header.box.ts","app-react/components/modal-dialog/parts/header/dialog-header.component.tsx","app-react/components/lobby-game-info-preview/intermediate-page/title/title.component.tsx","app-react/components/lobby-game-info-preview/common/trailer-or-stripe-image/stripe-image/boxes/stripe-image/stripe-image.default.box.ts","app-react/components/lobby-game-info-preview/common/trailer-or-stripe-image/stripe-image/boxes/stripe-image/stripe-image.box.ts","app-react/components/lobby-game-info-preview/common/trailer-or-stripe-image/stripe-image/game-stripe-image.component.tsx","app-react/components/lobby-game-info-preview/common/trailer-or-stripe-image/trailer/boxes/trailer/trailer.box.ts","app-react/components/lobby-game-info-preview/common/trailer-or-stripe-image/trailer/boxes/trailer/trailer.default.box.ts","app-react/components/lobby-game-info-preview/common/trailer-or-stripe-image/trailer/game-trailer.component.tsx","app-react/components/lobby-game-info-preview/common/trailer-or-stripe-image/trailer-or-stripe-image.component.tsx","app-react/components/lobby-game-info-preview/common/game-info-container/features/cell/boxes/cell-value-bool/cell-value-bool.default.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/cell/boxes/cell-value-bool/cell-value-bool.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/cell/boxes/cell-value-text/cell-value-text.default.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/cell/boxes/cell-value-text/cell-value-text.casino777.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/cell/boxes/cell-value-text/cell-value-text.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/cell/boxes/cell-title/cell-title.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/cell/boxes/cell-title/cell-title.default.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/cell/game-feature-cell.component.tsx","app-react/components/lobby-game-info-preview/common/game-info-container/features/table/boxes/table-container/table-container.default.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/table/boxes/table-container/table-container.casino777.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/table/boxes/table-container/table-container.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/features/table/game-features-table.component.tsx","app-react/components/lobby-game-info-preview/common/game-info-container/about/boxes/game-description-text/game-description-text.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/about/boxes/game-description-text/game-description-text.default.box.ts","app-react/basic-components/general-title/general-title.default.box.ts","app-react/components/lobby-game-info-preview/common/boxes/section-title/section-title.default.box.ts","app-react/basic-components/general-title/general-title.casino777.box.ts","app-react/components/lobby-game-info-preview/common/boxes/section-title/section-title.casino777.box.ts","app-react/components/lobby-game-info-preview/common/boxes/section-title/section-title.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/about/game-about.component.tsx","app-react/components/lobby-game-info-preview/common/game-info-container/jackpot/boxes/game-jackpot-preview/game-jackpot-preview.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/jackpot/boxes/game-jackpot-preview/game-jackpot-preview.default.box.ts","app-react/components/game-jackpot/boxes/root/game-jackpot.default.box.ts","app-react/components/game-jackpot/boxes/root/game-jackpot.si.box.ts","app-react/components/game-jackpot/boxes/root/game-jackpot.box.ts","app-react/components/game-jackpot/boxes/value/game-jackpot-value.default.box.ts","app-react/components/game-jackpot/boxes/value/game-jackpot-value.si.box.ts","app-react/components/game-jackpot/boxes/value/game-jackpot-value.box.ts","app-react/components/game-jackpot/game-jackpot.component.tsx","app-react/components/lobby-game-info-preview/common/game-info-container/jackpot/boxes/jackpot-amount-preview/jackpot-amount-preview.default.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/jackpot/boxes/jackpot-amount-preview/jackpot-amount-preview.casino777.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/jackpot/boxes/jackpot-amount-preview/jackpot-amount-preview.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/jackpot/game-jackpot-preview.component.tsx","app-react/components/lobby-game-info-preview/common/game-info-container/game-preview-info-container.default.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/game-preview-info-container.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/game-preview-info-container.component.tsx","app-react/components/lobby-game-info-preview/intermediate-page/game-icon-and-play-buttons/boxes/container/container.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/game-icon-and-play-buttons/boxes/container/container.default.box.ts","app-react/basic-components/game-icon/game-icon.box.ts","app-react/basic-components/game-icon/game-icon.default.box.ts","app-react/basic-components/play-buttons/play-buttons.box.ts","app-react/basic-components/play-buttons/play-buttons.default.box.ts","app-react/basic-components/game-icon-wrapper/game-icon-wrapper.box.ts","app-react/basic-components/game-icon-wrapper/game-icon-wrapper.default.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/game-icon-and-play-buttons/game-icon-and-play-buttons.component.tsx","app-react/components/lobby-game-info-preview/intermediate-page/boxes/intermediate-page/intermediate-page.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/boxes/intermediate-page/intermediate-page.default.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/boxes/stripe-image-and-buttons/stripe-image-and-buttons.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/boxes/stripe-image-and-buttons/stripe-image-and-buttons.default.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/boxes/gradient/gradient.default.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/boxes/gradient/gradient.casino777.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/boxes/gradient/gradient.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/only-real-money-warning/boxes/warning-image/warning-image.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/only-real-money-warning/boxes/warning-image/warning-image.default.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/only-real-money-warning/boxes/warning-text/warning-text.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/only-real-money-warning/boxes/warning-text/warning-text.default.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/only-real-money-warning/boxes/warning-message/warning-message.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/only-real-money-warning/boxes/warning-message/warning-message.default.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/only-real-money-warning/only-real-money-warning.component.tsx","app-react/components/lobby-game-info-preview/intermediate-page/open-game-intermediate-page.component.tsx","app-react/services/restrictions/no-game-restriction.ts","app-react/services/games/game-info.tsx","app-react/services/configurations/inject-admin-arenas.ts","app-react/services/games/games.service.ts","app-react/services/configurations/configurations.service.ts","app-react/services/user/user.service.ts","common/const/ai-trending-list-ids-map.ts","common/interfaces/cashier-widgets-eligibility-details.interface.ts","app-react/services/browser-buttons-handler/browser-buttons-handler.service.ts","app-react/services/segmentation-aggregator/segmentation-aggregator.service.ts","app-react/services/client-device/features/client-device.features.ts","app-react/services/client-device/detected/client-device.detected.ts","app-react/services/client-device/client-device.service.ts","app-react/services/device/device.service.ts","app-react/consts/seo-categories.ts","app-react/services/ai-engine/ai-engine.service.ts","app-react/services/games-filter/filters/game-filter.interface.ts","app-react/services/deep-link/deep-link-builders/deeplink-json-object-builder/deeplink-json-object-builder.ts","app-react/services/deep-link/deep-link-parsers/parsers/deep-link-json-object-parser/deep-link-json-object-parser.ts","app-react/services/deep-link/deep-link-parsers/deep-link-parser.service.ts","app-react/services/deep-link/deep-link.service.ts","app-react/services/sdk/cgp-sdk.interface.ts","app-react/services/sdk/sdk-events.ts","app-react/services/sdk/sdk-events-trigger.ts","app-react/services/sdk/sdk.service.ts","app-react/services/games-filter/filters/other.filter.ts","app-react/services/safezone/safezone.service.interface.ts","app-react/services/games-filter/filters/vendor.filter.ts","app-react/services/games-filter/filters/custom.filter.ts","app-react/services/games-filter/filters/game-group.filter.ts","app-react/services/games-filter/filters/subgroup-name.filter.ts","app-react/services/games-filter/filters/all-roulette.filter.ts","app-react/services/games-filter/filters/all-blackjack.filter.ts","app-react/services/games-filter/filters/all-poker.filter.ts","app-react/services/games-filter/filters/all-baccarat.filter.ts","app-react/services/games-filter/filters-definitions.ts","app-react/services/games-filter/filters/company.filter.ts","app-react/services/games-filter/filters/game-types.filter.ts","app-react/services/games-filter/games-filter.service.ts","app-react/services/configurations/config-data-sections/arenas.configuration.ts","app-react/services/user-menu/useful-link-actions.ts","app-react/components/useful-links/boxes/useful-links-item/useful-links-item.default.box.ts","app-react/components/useful-links/boxes/useful-links-item/useful-links-item.casino777.box.ts","app-react/components/useful-links/boxes/useful-links-item/useful-links-item.cip.box.ts","app-react/components/useful-links/boxes/useful-links-item/useful-links-item.box.ts","app-react/services/user-menu/useful-links/config-useful-link.tsx","app-react/components/useful-links/boxes/useful-links-item/useful-links-item-side-text.box.ts","app-react/services/user-menu/useful-links/sdk-useful-link.tsx","app-react/services/user-menu/user-menu.service.ts","app-react/components/single-game/common/boxes/game-badge/game-badge.default.box.ts","app-react/components/single-game/common/boxes/game-badge/game-badge.casino777.box.ts","app-react/components/single-game/common/boxes/game-badge/game-badge.box.ts","app-react/components/single-game/common/parts/game-badge/game-badge.component.tsx","app-react/components/single-game/css-constants.ts","app-react/components/single-game/common/boxes/game-image/game-image.default.box.ts","app-react/components/single-game/common/boxes/game-image/game-image.box.ts","app-react/components/single-game/common/boxes/game-image/game-image-animated.box.ts","app-react/components/single-game/common/boxes/game-image/game-image-animated.default.box.ts","app-react/components/single-game/common/parts/game-image/game-image-animated.component.tsx","app-react/components/raw-components/aspect-ratio-container/aspect-ratio-container.component.tsx","app-react/components/single-game/common/parts/game-image/game-image.component.tsx","app-react/components/single-game/common/parts/game-image-container.component/game-image-container.component.tsx","app-react/components/single-game/regular-template/boxes/game-title/game-title.default.box.ts","app-react/components/single-game/regular-template/boxes/game-title/game-title.casino777.box.ts","app-react/components/single-game/regular-template/boxes/game-title/game-title.cip.box.ts","app-react/components/single-game/regular-template/boxes/game-title/game-title.si.box.ts","app-react/components/single-game/regular-template/boxes/game-title/game-title.box.ts","app-react/components/single-game/regular-template/boxes/min-max-bet-amount/min-max-bet-amount.default.box.ts","app-react/components/single-game/regular-template/boxes/min-max-bet-amount/min-max-bet-amount.casino777.box.ts","app-react/components/single-game/regular-template/boxes/min-max-bet-amount/min-max-bet-amount.box.ts","app-react/components/single-game/regular-template/parts/info-page-button/info-page-button.component.tsx","app-react/components/single-game/regular-template/boxes/game-buttons/game-buttons.box.ts","app-react/components/single-game/regular-template/boxes/game-buttons/game-buttons.default.box.ts","app-react/components/single-game/regular-template/parts/play-demo-button/play-demo-button.component.tsx","app-react/components/single-game/regular-template/boxes/game-details-container/game-details-container.default.box.ts","app-react/components/single-game/regular-template/boxes/game-details-container/game-details-container.casino777.box.ts","app-react/components/single-game/regular-template/boxes/game-details-container/game-details-container.box.ts","app-react/components/single-game/regular-template/boxes/jackpot-amount/jackpot-amount.default.box.ts","app-react/components/single-game/regular-template/boxes/jackpot-amount/jackpot-amount.casino777.box.ts","app-react/components/single-game/regular-template/boxes/jackpot-amount/jackpot-amount.si.box.ts","app-react/components/single-game/regular-template/boxes/jackpot-amount/jackpot-amount.box.ts","app-react/components/single-game/regular-template/boxes/game-info-container/game-info-container.box.ts","app-react/components/single-game/regular-template/boxes/game-info-container/game-info-container.default.box.ts","app-react/components/single-game/regular-template/boxes/amount-container/amount-container.box.ts","app-react/components/single-game/regular-template/boxes/two-rows-game-title-container/two-rows-game-title-container.box.ts","app-react/components/single-game/regular-template/parts/game-details-container/game-details-container.component.tsx","app-react/components/single-game/regular-template/boxes/game/game.default.box.ts","app-react/components/single-game/regular-template/boxes/game/game.casino777.box.ts","app-react/components/single-game/regular-template/boxes/game/game.cis.box.ts","app-react/components/single-game/regular-template/boxes/game/game.box.ts","app-react/components/single-game/regular-template/boxes/play-real-button/play-real-button.default.box.ts","app-react/components/single-game/regular-template/boxes/play-real-button/play-real-button.casino777.box.ts","app-react/components/single-game/regular-template/boxes/play-real-button/play-real-button.box.tsx","app-react/components/single-game/regular-template/boxes/game-image-container/game-image-container.default.box.ts","app-react/components/single-game/regular-template/boxes/game-image-container/game-image-container.casino777.box.ts","app-react/components/single-game/video-template/single-game-video-template.component.tsx","app-react/components/single-game/regular-template/boxes/game-image-container/game-image-container.box.ts","app-react/components/single-game/regular-template/boxes/game-number-badge/game-number-badge.box.ts","app-react/components/single-game/regular-template/single-game-regular-template.component.tsx","utils/css-class-name-builder.ts","app-react/components/single-game/jackpot-template/boxes/game/game.default.box.ts","app-react/components/single-game/jackpot-template/boxes/game/game.box.ts","app-react/components/single-game/jackpot-template/boxes/game-image-container/game-image-container.default.box.ts","app-react/components/single-game/jackpot-template/boxes/game-image-container/game-image-container.box.ts","app-react/components/single-game/jackpot-template/boxes/game-details-container/game-details-container.box.ts","app-react/components/single-game/jackpot-template/boxes/game-details-container/game-details-container.default.box.ts","app-react/components/single-game/jackpot-template/boxes/game-title/game-title.default.box.ts","app-react/components/single-game/jackpot-template/boxes/game-title/game-title.casino777.box.ts","app-react/components/single-game/jackpot-template/boxes/game-title/game-title.box.ts","app-react/components/single-game/jackpot-template/boxes/jackpot-amount/jackpot-amount.default.box.ts","app-react/components/single-game/jackpot-template/boxes/jackpot-amount/jackpot-amount.casino777.box.ts","app-react/components/single-game/jackpot-template/boxes/jackpot-amount/jackpot-amount.box.ts","app-react/components/single-game/jackpot-template/parts/game-details-container/game-details-container.component.tsx","app-react/components/single-game/jackpot-template/single-game-jackpot-template.component.tsx","app-react/components/single-game/live-template/boxes/live-game-container/live-game-container.box.ts","app-react/components/single-game/live-template/boxes/live-game-container/live-game-container.default.box.ts","app-react/components/single-game/live-template/single-game-live-template.component.tsx","app-react/components/live-streaming-tile/video-common-components/video-tile/boxes/video-tile.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile/boxes/video-tile-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-overlay-item/video-overlay-item.box.ts","app-react/components/live-streaming-tile/video-common-components/video-overlay-item/video-overlay-item.default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-sound-button/boxes/video-sound-button.box.ts","app-react/components/live-streaming-tile/video-common-components/video-sound-button/boxes/video-sound-button-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-sound-button/video-sound-button.component.tsx","app-react/components/live-streaming-tile/video-common-components/video-tile-overlay/video-tile-overlay.component.tsx","app-react/components/live-streaming-tile/video-common-components/video-tile-overlay/boxes/video-tile-overlay.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-overlay/boxes/video-tile-overlay-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-static-image-overlay/video-tile-static-image-overlay.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-static-image-overlay/video-tile-static-image-overlay-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-skeleton-container/video-tile-skeleton-container.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-skeleton-container/video-tile-skeleton-container-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-component/boxes/video-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-component/boxes/video.box.ts","app-react/components/live-streaming-tile/video-common-components/video-play-button/video-play-button.box.tsx","app-react/components/live-streaming-tile/video-common-components/video-play-button/video-play-button.default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-container/video-container-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-container/video-container.box.ts","app-react/components/live-streaming-tile/video-common-components/video-component/video.component.tsx","app-react/components/live-streaming-tile/video-common-components/video-tile-skeleton/skeleton-animated-button.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-skeleton/skeleton-animated-rectangle.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-footer/boxes/video-tile-footer.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-footer/boxes/video-tile-footer-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-skeleton/video-tile.skeletonbox.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-skeleton/video-tile-skeleton.defaultbox.ts","app-react/components/single-game/single-game-skeleton.component.tsx","app-react/components/live-streaming-tile/video-common-components/video-retry-screen/video-retry-screen-boxes/video-retry-screen-tile.box.ts","app-react/components/live-streaming-tile/video-common-components/video-retry-screen/video-retry-screen-boxes/video-retry-screen-tile-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-retry-screen/video-retry-screen-boxes/video-retry-screen-icon.box.ts","app-react/components/live-streaming-tile/video-common-components/video-retry-screen/video-retry-screen-boxes/video-retry-screen-icon-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-retry-screen/video-retry-screen-boxes/video-retry-screen-title.box.ts","app-react/components/live-streaming-tile/video-common-components/video-retry-screen/video-retry-screen-boxes/video-retry-screen-title-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-retry-screen/video-retry-screen-boxes/video-retry-screen-text.box.ts","app-react/components/live-streaming-tile/video-common-components/video-retry-screen/video-retry-screen-boxes/video-retry-screen-text-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-retry-screen/video-retry-screen.component.tsx","app-react/components/live-streaming-tile/video-common-components/video-thumbnail-image/video-thumbnail-image.component.tsx","app-react/components/live-streaming-tile/video-common-components/video-tile-betting-range/video-tile-betting-range.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-betting-range/video-tile-betting-range-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-game-title/video-tile-game-title.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-game-title/video-tile-game-title-default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-footer/boxes/video-tile-footer-section.box.ts","app-react/components/live-streaming-tile/video-common-components/video-tile-footer/boxes/video-tile-footer-section-default.box.ts","app-react/components/live-streaming-tile/static-video-specific-components/video-list-jackpot-value/video-list-jackpot-value.box.tsx","app-react/components/live-streaming-tile/static-video-specific-components/video-list-jackpot-container/video-list-jackpot-container.box.tsx","app-react/components/live-streaming-tile/video-common-components/video-tile-footer/video-tile-footer.component.tsx","app-react/components/live-streaming-tile/video-common-components/video-tile/video-tile.component.tsx","app-react/components/single-game/video-template/boxes/video-item-container.box.ts","app-react/components/single-game/video-template/boxes/video-item-container-default.box.ts","app-react/components/single-game/single-game.component.tsx","app-react/components/single-game-placeholder/boxes/placeholder/game-placeholder.default.box.ts","app-react/services/jackpots-with-state/jackpots-with-state.service.interface.ts","app-react/components/single-game-placeholder/boxes/placeholder/game-placeholder.box.ts","app-react/components/single-game-placeholder/boxes/game-image/game-image.box.ts","app-react/components/single-game-placeholder/boxes/game-image/game-image.default.box.ts","app-react/components/single-game-placeholder/single-game-placeholder.component.tsx","app-react/components/orbit-swiper/boxes/swiper-wrapper/swiper-wrapper.default.box.ts","app-react/components/orbit-swiper/boxes/swiper-wrapper/swiper-wrapper.casino777.box.ts","app-react/components/orbit-swiper/boxes/swiper-wrapper/swiper-wrapper.box.ts","app-react/components/orbit-swiper/boxes/swiper-games-list/swiper-games-list.default.box.ts","app-react/components/orbit-swiper/boxes/swiper-games-list/swiper-games-list.box.ts","app-react/components/orbit-swiper/boxes/swiper/swiper.box.ts","app-react/components/orbit-swiper/boxes/swiper/swiper.default.box.ts","app-react/components/orbit-swiper/orbit-swiper.component.tsx","app-react/components/recently-played/recently-played.component.tsx","app-react/services/arenas/models/lists/games-list-base.model.tsx","app-react/components/game-list-title/constants.ts","app-react/components/game-list-title/boxes/list-title-icon/list-title-icon.default.box.ts","app-react/components/game-list-title/boxes/list-title-icon/list-title-icon.wsop.cip.box.ts","app-react/components/game-list-title/boxes/list-title-icon/list-title-icon.cis.box.ts","app-react/components/game-list-title/boxes/list-title-icon/list-title-icon.box.ts","app-react/components/jackpot-widget/boxes/jackpot-widget.default.box.ts","app-react/components/jackpot-widget/boxes/jackpot-widget.box.ts","app-react/components/jackpot-widget/boxes/bg/jackpot-widget-bg.box.ts","app-react/components/jackpot-widget/boxes/logo/jackpot-widget-logo.box.ts","app-react/components/jackpot-widget/boxes/amount/jackpot-widget-amount.box.ts","app-react/components/jackpot-widget/boxes/footer/jackpot-widget-footer.box.ts","app-react/components/jackpot-widget/boxes/footer/clock/label/jackpot-widget-clock-label.box.ts","app-react/components/jackpot-widget/boxes/footer/clock/box/jackpot-widget-clock.box.ts","app-react/components/jackpot-widget/jackpot-widget-clock.component.tsx","app-react/components/jackpot-widget/boxes/amount/label/jackpot-widget-amount-label.box.ts","app-react/components/jackpot-widget/boxes/footer/collecting/label/jackpot-widget-collecting-label.ts","app-react/components/jackpot-widget/boxes/footer/collecting/amount/jackpot-widget-collecting-amount.ts","app-react/components/jackpot-widget/boxes/shine/jackpot-widget-shine.box.ts","app-react/services/pixi-app/animated-icon-base-service.service.ts","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/components/jackpot-widget/jackpot-widget.component.tsx","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.casino777.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.777.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.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.box.ts","app-react/components/game-list-title/boxes/list-title/list-title.default.box.ts","app-react/components/game-list-title/boxes/list-title/list-title.casino777.box.ts","app-react/components/game-list-title/boxes/list-title/list-title.cip.box.ts","app-react/components/game-list-title/boxes/list-title/list-title.cis.box.ts","app-react/components/game-list-title/boxes/list-title/list-title.box.ts","app-react/components/game-list-title/game-list-title.component.tsx","app-react/components/orbit-swiper/orbit-swiper-buttons/boxes/wrapper/swiper-buttons.default.box.ts","app-react/components/orbit-swiper/orbit-swiper-buttons/boxes/wrapper/swiper-buttons.casino777.box.ts","app-react/components/orbit-swiper/orbit-swiper-buttons/boxes/wrapper/swiper-buttons.box.ts","app-react/components/orbit-swiper/orbit-swiper-buttons/boxes/button/swiper-button.box.ts","app-react/components/orbit-swiper/orbit-swiper-buttons/orbit-swiper-buttons.tsx","app-react/services/arenas/models/swiper-logic-handler/swipe-logic-handler.ts","app-react/services/arenas/models/lists/swiper-list-base.model.tsx","app-react/services/arenas/models/lists/api-list-base.model.tsx","app-react/services/arenas/models/lists/recently-played/recently-played-list.model.tsx","app-react/components/ai-list/top-picks.component.tsx","app-react/services/arenas/models/lists/top-picks/top-picks-list.model.tsx","app-react/components/ai-new-games-list/ai-new-games-list.component.tsx","app-react/services/arenas/models/lists/new-games/new-games-list.model.tsx","app-react/components/players-like-you/players-like-you.component.tsx","app-react/services/arenas/models/lists/players-like-you/players-like-you-list.model.tsx","app-react/services/arenas/models/lists/static-swiper/static-swiper-list.model.tsx","app-react/components/games-grid/games-grid-batch/games-grid-batch.component.tsx","app-react/components/games-grid/boxes/games-grid/games-grid.default.box.ts","app-react/components/games-grid/boxes/games-grid/games-grid.casino777.box.ts","app-react/components/games-grid/boxes/games-grid/games-grid.box.ts","app-react/components/games-grid/boxes/no-games-found-message/no-games-found-message.box.ts","app-react/components/games-grid/boxes/no-games-found-message/no-games-found-message.default.box.ts","app-react/components/games-grid/boxes/games-grid-container.box.ts","app-react/components/games-grid/games-grid.component.tsx","app-react/services/arenas/models/lists/games-grid/games-grid-list.model.tsx","app-react/services/arenas/models/lists/live-casino/live-casino-list.model.tsx","app-react/components/because-you-played/because-you-played.component.tsx","app-react/services/arenas/models/lists/because-you-played/because-you-played-list.model.tsx","app-react/components/live-streaming-tile/live-streaming-specific-components/live-streaming-list-title/live-streaming-list-title.box.ts","app-react/components/live-streaming-tile/live-streaming-specific-components/live-streaming-list-title/live-streaming-list-title.default.box.ts","app-react/components/live-streaming-tile/live-streaming-specific-components/live-streaming-title-icon/live-streaming-title-icon.box.ts","app-react/components/live-streaming-tile/live-streaming-specific-components/live-streaming-title-icon/live-streaming-title-icon.default.box.ts","app-react/services/arenas/models/swiper-logic-handler/live-stream-swipe-logic-handler.ts","app-react/components/live-streaming-tile/video-common-components/video-navigation/video-navigation.default.box.ts","app-react/components/live-streaming-tile/video-common-components/video-navigation/video-navigation.box.ts","app-react/components/video-list-component/video-list.component.tsx","app-react/services/arenas/models/lists/video-list/default-video-list.model.tsx","app-react/services/arenas/models/lists/video-list/live-streaming-video-list.model.tsx","app-react/services/arenas/models/lists/video-list/static-video-list.model.tsx","app-react/services/arenas/models/lists/list-factory.ts","app-react/services/arenas/models/arenas/arena-base.model.tsx","app-react/components/home-page-header-arenas/boxes/home-page-header-arena-icon/home-page-header-arena-icon.default.box.ts","app-react/components/home-page-header-arenas/boxes/home-page-header-arena-icon/home-page-header-arena-icon.box.ts","app-react/components/home-page-header-arenas/boxes/home-page-header-arena-title/home-page-header-arena-title.box.ts","app-react/components/home-page-header-arenas/boxes/home-page-header-arena-title/home-page-header-arena-title.default.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-arena-badge/home-page-header-arena-badge.default.box.ts","app-react/components/home-page-header-arenas/boxes/home-page-header-arenas-container.default.box.ts","app-react/components/home-page-header-arenas/boxes/home-page-header-arenas-container.box.ts","app-react/components/home-page-header-arenas/boxes/home-page-header-arena-link/home-page-header-arena-link.box.ts","app-react/components/home-page-header-arenas/boxes/home-page-header-arena-link/home-page-header-arena-link.default.box.ts","app-react/components/home-page-header-arenas/boxes/home-page-header-arena-skeleton/home-page-header-arena-skeleton.box.ts","app-react/components/home-page-header-arenas/boxes/home-page-header-arena-skeleton/home-page-header-arena-skeleton.default.box.ts","app-react/components/home-page-header-arenas/home-page-header-arena-icon.component.tsx","app-react/components/home-page-header-arenas/home-page-header-arenas.component.tsx","app-react/components/home-page/boxes/home-page-top-banner-background.box.ts","app-react/components/home-page/boxes/home-page-top-banner-divider-line.ts","app-react/components/free-to-play-animated-icon/boxes/free-to-play-animated-icon1.box.ts","app-react/components/free-to-play-animated-icon/boxes/free-to-play-animated-icon2.box.ts","app-react/services/user-game-orientation/user-game-orientation.service.interface.ts","app-react/components/free-to-play-animated-icon/free-to-play-animated-icon.component.tsx","app-react/components/home-page/home-page.component.tsx","app-react/services/arenas/models/arenas/home-page/home-page-arena.model.tsx","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/arena-info-preview/boxes/arena-picture/arena-picture.box.ts","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/arena-info-preview/boxes/arena-picture/arena-picture.default.box.ts","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/arena-info-preview/boxes/arena-title/arena-title.box.ts","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/arena-info-preview/boxes/arena-title/arena-title.default.box.ts","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/arena-info-preview/boxes/arena-description-text/arena-description-text.box.ts","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/arena-info-preview/boxes/arena-description-text/arena-description-text.default.box.ts","app-react/components/lobby-game-info-preview/pc-game-info-preview/boxes/lobby-game-info/lobby-game-info.default.box.ts","app-react/components/lobby-game-info-preview/pc-game-info-preview/boxes/lobby-game-info/lobby-game-info.box.ts","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/arena-info-preview/arena-info-preview.component.tsx","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/game-info-preview/title/pc-game-preview-title.component.tsx","app-react/components/lobby-game-info-preview/pc-game-info-preview/parts/game-info-preview/game-info-preview.component.tsx","app-react/components/lobby-game-info-preview/pc-game-info-preview/pc-game-info-preview.component.tsx","app-react/components/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/components/arena-host/casino-arena/casino-arena.component.tsx","app-react/services/arenas/models/arenas/casino-lobby/casino-lobby-arena.model.tsx","app-react/services/arenas/models/arenas/void-arena/void-arena.model.ts","app-react/services/arenas/models/lists-sort-order-storage.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-filter-button-icon/live-casino-filter-button-icon.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.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.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.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.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/live-casino-widget/boxes/crown/live-arena-widget-crown.box.ts","app-react/components/live-casino-widget/boxes/logo/live-arena-widget-logo.box.ts","app-react/components/live-casino-widget/boxes/main-container/live-arena-widget-main-container.box.ts","app-react/components/live-casino-widget/boxes/capsule/live-arena-widget-capsule-container.box.ts","app-react/components/live-casino-widget/boxes/capsule/live-arena-widget-capsule-start.box.ts","app-react/components/live-casino-widget/boxes/capsule/live-arena-widget-capsule-mid-container.box.ts","app-react/components/live-casino-widget/boxes/capsule/live-arena-widget-capsule-end.box.ts","app-react/components/live-casino-widget/boxes/capsule/separator/live-arena-widget-separator.box.ts","app-react/components/live-casino-widget/boxes/capsule/description/live-arena-widget-description.box.ts","app-react/components/live-casino-widget/boxes/capsule/amount/live-arena-widget-amount.box.ts","app-react/components/live-casino-widget/boxes/capsule/clock/live-arena-widget-clock.box.ts","app-react/components/live-casino-widget/live-arena-widget.component.tsx","app-react/components/arena-host/new-live-casino-arena/new-live-casino-arena.component.tsx","app-react/services/arenas/models/arenas/new-live-casino/new-live-casino-arena.model.tsx","app-react/services/arenas/models/arenas/live-casino/live-casino-arena.model.tsx","app-react/services/arenas/arenas.service.tsx","app-react/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.tsx","app-react/services/sitemap/breadcrumbs/non-navigatable-breadcrumb.tsx","app-react/services/sitemap/breadcrumbs/navigatable-breadcrumb.tsx","app-react/services/sitemap/sitemap-node.ts","app-react/services/sitemap/sitemap.service.ts","app-react/services/marketing/marketing.service.ts","app-react/services/language/language-switcher/language-switcher-item.ts","app-react/services/language/language-switcher/language-switcher-section.ts","app-react/services/language/language-switcher/selected-language-switcher-item.ts","app-react/services/language/language.service.ts","app-react/services/configurations/helpers/side-menu-typeguards.helpers.ts","app-react/services/side-menu/side-menu.service.ts","app-react/services/game-search/game-search-result.ts","app-react/services/external-links/external-links.service.interface.ts","app-react/components/game-search/search-result/search-box-title/boxes/search-title-box/search-title.box.ts","app-react/components/game-search/search-result/search-box-title/boxes/search-title-box/search-title.default.box.ts","app-react/components/game-search/search-result/search-box-title/search-box-title.component.tsx","app-react/components/game-search/search-result/found-games/boxes/search-games-list/search-games-list.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/search-link.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/search-link.default.box.ts","app-react/components/game-search/search-result/found-games/boxes/search-no-game-found/search-no-games-found.default.box.ts","app-react/components/game-search/search-result/found-games/boxes/search-no-game-found/search-no-games-found.casino777.box.ts","app-react/components/game-search/search-result/found-games/boxes/search-no-game-found/search-no-games-found.box.ts","app-react/components/game-search/search-result/search-game-item/boxes/search-game-item/search-game-item.box.ts","app-react/components/game-search/search-result/highlight-search-list-item/boxes/search-match.box.ts","app-react/components/game-search/search-result/highlight-search-list-item/boxes/search-match.default.box.ts","app-react/components/game-search/search-result/highlight-search-list-item/highlight-search-list-item.component.tsx","app-react/components/game-search/search-result/search-game-item/boxes/search-text-wrapper/search-text-wrapper.box.ts","app-react/components/game-search/search-result/search-game-item/search-game-item.component.tsx","app-react/components/game-search/search-result/suggested-games/suggested-games.component.tsx","app-react/components/game-search/search-result/found-games/boxes/more-games/more-games.box.ts","app-react/components/game-search/search-result/found-games/found-games.component.tsx","app-react/components/game-search/search-result/search-result-item/boxes/search-result-item-box/search-result-item.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-result-item-box/search-result-item.default.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/slots-search-link/slots-search-link.default.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/slots-search-link/slots-search-link.casino777.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/slots-search-link/slots-search-link.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/live-search-link/live-search-link.default.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/live-search-link/live-search-link.casino777.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/live-search-link/live-search-link.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/card-and-table-search-link/card-and-table-search.default.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/card-and-table-search-link/card-and-table-search-link.casino777.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/card-and-table-search-link/card-and-table-search-link.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/regular-search-link/regular-search-link.default.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/regular-search-link/regular-search-link.casino777.box.ts","app-react/components/game-search/search-result/search-result-item/boxes/search-links/regular-search-link/regular-search-link.box.ts","app-react/components/game-search/search-result/search-result-item/search-result-item.component.tsx","app-react/components/game-search/search-result/suggested-links/boxes/search-links-list/search-links-list.box.ts","app-react/components/game-search/search-result/suggested-links/boxes/search-links-list/search-links-list.default.box.ts","app-react/components/game-search/search-result/suggested-links/suggested-links.component.tsx","app-react/components/game-search/search-result/boxes/search-form-results-box/search-form-results.default.box.ts","app-react/components/game-search/search-result/boxes/search-form-results-box/search-form-results.casino777.box.ts","app-react/components/game-search/search-result/boxes/search-form-results-box/search-form-results.box.ts","app-react/components/game-search/search-result/boxes/search-form-results-wrapper-box/search-form-results-wrapper.default.box.ts","app-react/components/game-search/search-result/boxes/search-form-results-wrapper-box/search-form-results-wrapper.casino777.box.ts","app-react/components/game-search/search-result/boxes/search-form-results-wrapper-box/search-form-results-wrapper.box.ts","app-react/components/game-search/search-result/search-result.component.tsx","app-react/components/game-search/search-input/search-input-mobile/boxes/search-clear-icon/search-clear-icon.default.box.ts","app-react/components/game-search/search-input/search-input-mobile/boxes/search-clear-icon/search-clear-icon.casino777.box.ts","app-react/components/game-search/search-input/search-input-mobile/boxes/search-clear-icon/search-clear-icon.box.ts","app-react/components/game-search/search-input/search-input-mobile/boxes/search-input-mobile/search-input-mobile.default.box.ts","app-react/components/game-search/search-input/search-input-mobile/boxes/search-input-mobile/search-input-mobile.casino777.box.ts","app-react/components/game-search/search-input/search-input-mobile/boxes/search-input-mobile/search-input-mobile.box.ts","app-react/components/game-search/search-input/search-input-mobile/boxes/search-box-mobile-icon/search-box-mobile-icon.default.box.ts","app-react/components/game-search/search-input/search-input-mobile/boxes/search-box-mobile-icon/search-box-mobile-icon.casino777.box.ts","app-react/components/game-search/search-input/search-input-mobile/boxes/search-box-mobile-icon/search-box-mobile-icon.box.ts","app-react/components/game-search/search-input/search-input-area/boxes/search-input-area-box/search-input-area.default.box.ts","app-react/components/game-search/search-input/search-input-area/boxes/search-input-area-box/search-input-area.casino777.box.ts","app-react/components/game-search/search-input/search-input-area/boxes/search-input-area-box/search-input-area.harrahs.box.ts","app-react/components/game-search/search-input/search-input-area/boxes/search-input-area-box/search-input-area.casino888.box.ts","app-react/components/game-search/search-input/search-input-area/boxes/search-input-area-box/search-input-area.ballysdover.box.ts","app-react/components/game-search/search-input/search-input-area/boxes/search-input-area-box/search-input-area.delawarepark.box.ts","app-react/components/game-search/search-input/search-input-area/boxes/search-input-area-box/search-input-area.harrington.box.ts","app-react/components/game-search/search-input/search-input-area/boxes/search-input-area-box/search-input-area.box.ts","app-react/components/game-search/search-input/search-input-area/search-input-area.tsx","app-react/components/game-search/search-input/search-input-mobile/search-input-mobile.component.tsx","app-react/components/game-search/search-input/search-input-pc/boxes/search-input-form/search-input-form.box.ts","app-react/components/game-search/search-input/search-input-pc/boxes/search-input-form/search-input-form.default.box.ts","app-react/components/game-search/search-input/search-input-pc/boxes/search-pc-icon/search-pc-icon.default.box.ts","app-react/components/game-search/search-input/search-input-pc/boxes/search-pc-icon/search-pc-icon.casino777.box.ts","app-react/components/game-search/search-input/search-input-pc/boxes/search-pc-icon/search-pc-icon.harrahs.box.ts","app-react/components/game-search/search-input/search-input-pc/boxes/search-pc-icon/search-pc-icon.wsop.box.ts","app-react/components/game-search/search-input/search-input-pc/boxes/search-pc-icon/search-pc-icon.box.ts","app-react/components/game-search/search-input/search-input-pc/search-input-pc.component.tsx","app-react/components/game-search/boxes/game-search-box/game-search.box.ts","app-react/components/game-search/game-search.component.tsx","app-react/services/game-search/game-search.service.tsx","app-react/services/external-links/external-links.service.ts","app-react/services/cms/cms-api/cms-api.service.ts","app-react/components/cms-banner/banner-content/banner-content.component.tsx","app-react/services/cms/cms-banners/banner-definition/banner-definition.tsx","app-react/services/cms/cms-banners/cms-banners.service.ts","app-react/services/cms/cms-pages/cms-pages.service.ts","app-react/services/cms/cms-segmentation/cms-segmentation.service.ts","app-react/services/deep-link/deep-link-actions/deep-link-action-base.ts","app-react/services/deep-link/deep-link-actions/cashier/cashier-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/login/login-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/play-game/play-game-deep-link-action-base.ts","app-react/services/deep-link/deep-link-actions/play-game/play-game-real/play-game-real-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/play-game/play-game-demo/play-game-demo-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/register/register-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/my-account/my-account-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/redirect/redirect-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/terminate/terminate-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/upload-document/upload-document-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/jackpot-games/jackpot-games-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/freeplay/freeplay-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/open-list/open-list-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/control-center/control-center-deeplink-action.ts","app-react/services/deep-link/deep-link-actions/free-to-play/free-to-play-deeplink-action.ts","app-react/services/deep-link/deep-link-action-factory/deep-link-actions-factory.service.ts","app-react/services/sdk-component-factory/sdk-component-factory.service.ts","app-react/components/sticky-handler/sticky-handler.ts","app-react/services/sticky-handler-factory/sticky-handler-factory.service.ts","app-react/services/game-preview-features-selector/preview-features/boolean-game-preview-feature.ts","app-react/services/game-preview-features-selector/preview-features/money-game-preview-feature.ts","app-react/services/game-preview-features-selector/preview-features/numeric-game-preview-feature.ts","app-react/services/game-preview-features-selector/preview-features/all-features.ts","app-react/services/game-preview-features-selector/game-preview-features-selector.service.ts","app-react/services/game-route-handler/game-route-handler.service.ts","app-react/app-bootstrap/launcher-overrides-reader/launcher-overrides-reader.ts","app-react/services/launcher/launcher.service.ts","app-react/services/spinner/spinner.service.ts","app-react/services/web-vitals/web-vitals.service.ts","app-react/services/menu-flow/menu-flow.service.ts","app-react/services/analytics/analytics-data-layer.service.interface.ts","app-react/services/poker-integration/poker-integration.service.ts","app-react/components/mini-orbit/routing/mini-orbit-routing-definition.tsx","app-react/services/routing-configuration/routing-configuration.service.tsx","app-react/services/routing/route/orbit-route.ts","app-react/services/routing/routing.service.ts","app-react/services/overlay/overlay.service.ts","app-react/services/time/time.service.ts","app-react/services/ab-filtering/ab-filtering-strategy.ts","app-react/services/ab-filtering/ab-filtering.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.casino777.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/adapter-factory/mini-orbit-communication-adapter-factory.service.ts","app-react/services/games-filter/dynamic-filter-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/internal-nav-side-menu-link.component.tsx","app-react/components/side-menu-rework/side-menu-link/icons/base/side-menu-link-icon-wrap-base.box.ts","app-react/components/side-menu-rework/side-menu-link/icons/base/side-menu-link-icon-base.box.ts","app-react/components/side-menu-rework/side-menu-link/icons/home-side-menu.icon.ts","app-react/components/side-menu-rework/side-menu-link/icons/slots-side-menu-link.icon.ts","app-react/components/side-menu-rework/side-menu-link/icons/new-games-side-menu-link.icon.ts","app-react/components/side-menu-rework/side-menu-link/icons/jackpots-side-menu-link.icon.ts","app-react/components/side-menu-rework/side-menu-link/icons/casinogames-side-menu-link.icon.ts","app-react/components/side-menu-rework/side-menu-link/icons/exclusive888-side-menu-link.icon.ts","app-react/components/side-menu-rework/side-menu-link/icons/roulette-side-menu-link.icon.ts","app-react/components/side-menu-rework/side-menu-link/icons/blackjack-side-menu-link.icon.ts","app-react/components/side-menu-rework/side-menu-link/icons/livecasino-side-menu-link.icon.ts","app-react/components/side-menu-rework/side-menu-link/icons/vip-side-menu-link.icon.ts","app-react/components/side-menu-rework/side-menu-link/icons/gettingstarted-side-menu-link.icon.ts","app-react/components/side-menu-rework/side-menu-link/icons/banking-side-menu-link.icon.ts","app-react/components/side-menu-rework/side-menu-link/icons/videopoker-side-menu-link.icon.ts","app-react/components/side-menu-rework/side-menu-link/icons/promotions-side-menu.icon.ts","app-react/components/side-menu-rework/side-menu-link/icons/blog-side-menu-link.icon.ts","app-react/components/side-menu-rework/side-menu-link/icons/livechat-side-menu-link.icon.ts","app-react/components/side-menu-rework/side-menu-link/icons/poker-circle-side-menu-link.icon.ts","app-react/components/side-menu-rework/side-menu-link/icons/sport-circle-side-menu-link.icon.ts","app-react/components/side-menu-rework/side-menu-link/icons/club888-side-menu-link.icon.ts","app-react/components/side-menu-rework/side-menu-link/icons/gaming-history-side-menu-link.icon.tsx","app-react/components/side-menu-rework/side-menu-link/icons/cashier-history-side-menu-link.icon.tsx","app-react/components/side-menu-rework/side-menu-link/icons/installpwa-side-menu-link.icon.ts","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/party-jackpot-win-celebration-popup/boxes/party-jackpot-win-celebration-popup-container/party-jackpot-win-celebration-popup-container.box.ts","app-react/components/party-jackpot-win-celebration-popup/boxes/amount/party-jackpot-win-celebration-popup-amount.box.ts","app-react/components/party-jackpot-win-celebration-popup/boxes/image-container/party-jackpot-win-celebration-popup-image-container.box.ts","app-react/components/party-jackpot-win-celebration-popup/boxes/buttons-container/party-jackpot-win-celebration-popup-buttons-container.box.ts","app-react/components/party-jackpot-win-celebration-popup/boxes/content-container/party-jackpot-win-celebration-popup-title.box.ts","app-react/components/party-jackpot-win-celebration-popup/boxes/title/party-jackpot-win-celebration-popup-title.box.ts","app-react/components/party-jackpot-win-celebration-popup/party-jackpot-win-celebration-popup.component.tsx","app-react/components/party-jackpot-welcome-popup/boxes/party-jackpot-welcome-popup-container/party-jackpot-welcome-popup-container.box.ts","app-react/components/party-jackpot-welcome-popup/boxes/title/party-jackpot-welcome-popup-title.box.ts","app-react/components/party-jackpot-welcome-popup/boxes/description/party-jackpot-welcome-popup-description.box.ts","app-react/components/party-jackpot-welcome-popup/boxes/image-container/party-jackpot-welcome-popup-image-container.box.ts","app-react/components/party-jackpot-welcome-popup/boxes/buttons-container/party-jackpot-welcome-popup-buttons-container.box.ts","app-react/components/party-jackpot-welcome-popup/boxes/header-container/party-jackpot-welcome-popup-header-container.box.ts","app-react/components/party-jackpot-welcome-popup/boxes/bottom-note/party-jackpot-welcome-popup-bottom-note.box.ts","app-react/components/party-jackpot-welcome-popup/boxes/title-container/party-jackpot-welcome-popup-title-container.box.ts","app-react/components/party-jackpot-welcome-popup/boxes/separator/party-jackpot-welcome-popup-separator.box.ts","app-react/components/party-jackpot-welcome-popup/party-jackpot-welcome-popup.component.tsx","app-react/services/party-jackpot/party-jackpot.service.tsx","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/modal-dialog/boxes/text/dialog-text.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/services/graphyte/graphyte-clickstream/graphyte-clickstream.service.ts","app-react/services/graphyte/graphyte.service.ts","app-react/components/party-jackpot-ingame-widget/boxes/party-jackpot-ingame-widget-container/party-jackpot-ingame-widget-container.box.ts","app-react/components/party-jackpot-ingame-widget/boxes/amount-container/party-jackpot-ingame-widget-amount-container.box.ts","app-react/components/party-jackpot-ingame-widget/boxes/clock-container/party-jackpot-ingame-widget-clock-container.box.ts","app-react/components/party-jackpot-ingame-widget/boxes/content-container/party-jackpot-ingame-widget-content-container.box.ts","app-react/components/party-jackpot-ingame-widget/party-jackpot-ingame-widget.component.tsx","app-react/components/responsible-gaming-buttons/germany/boxes/panic-button.box.ts","app-react/components/responsible-gaming-buttons/css-classes.ts","app-react/components/responsible-gaming-buttons/germany/boxes/panic-button-tooltip.box.ts","app-react/components/responsible-gaming-buttons/germany/boxes/panic-button-popup.box.ts","app-react/components/responsible-gaming-buttons/germany/boxes/panic-button-popup-time.box.ts","app-react/components/responsible-gaming-buttons/germany/boxes/panic-button-popup-ok.box.ts","app-react/components/responsible-gaming-buttons/germany/panic-button-popup.component.tsx","app-react/components/responsible-gaming-buttons/germany/boxes/panic-button-tooltip-click-here.ts","app-react/components/responsible-gaming-buttons/germany/boxes/panic-button-tooltip-close.box.ts","app-react/components/responsible-gaming-buttons/germany/boxes/panic-button-mobile-overlay.box.ts","app-react/components/responsible-gaming-buttons/germany/responsible-gaming-buttons-germany.component.tsx","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/state-popup/boxes/state-popup-wrapper.box.ts","app-react/components/state-popup/state-popup.component.tsx","app-react/components/geo-permission-popup/boxes/geo-permission-popup-wrapper.box.ts","app-react/components/geo-permission-popup/geo-permission-popup.component.tsx","app-react/components/time-spent-reminder/with-balance/boxes/tsr-with-balance.box.ts","app-react/components/time-spent-reminder/with-balance/time-spent-reminder-with-balance.component.tsx","app-react/components/game-item/boxes/game-item-container.box.ts","app-react/components/game-item/boxes/game-item-img-wrapper.box.ts","app-react/components/game-item/boxes/game-item-fp-thumb.box.ts","app-react/components/game-item/boxes/game-item-delimiter.box.ts","app-react/components/game-item/boxes/game-item-details-wrapper.box.ts","app-react/components/game-item/boxes/game-item-title.box.ts","app-react/components/game-item/boxes/game-item-jackpot.box.ts","app-react/components/game-item/boxes/game-item-buttons-area.box.ts","app-react/components/game-item/game-item.component.tsx","app-react/components/idle-recommendation/boxes/idle-recommendation-toaster.box.ts","app-react/components/idle-recommendation/boxes/idle-recommendation-header.box.ts","app-react/components/idle-recommendation/boxes/idle-recommendation-header-title-wrapper.box.ts","app-react/components/idle-recommendation/boxes/idle-recommendation-header-title.box.ts","app-react/components/idle-recommendation/boxes/idle-recommendation-game-details.box.ts","app-react/components/idle-recommendation/boxes/idle-recommendation-toaster-background.box.ts","app-react/components/idle-recommendation/idle-recommendation.component.tsx","app-react/services/orbit-component-to-sdk-adapter/orbit-component-to-sdk-adapter.service.tsx","app-react/services/omg-proxy/omg-proxy.service.ts","app-react/services/casinofied/message-broker/message-broker.consts.ts","app-react/services/casinofied/message-broker/message-broker.service.ts","app-react/services/casinofied/casinofied-helper-functions.ts","app-react/services/casinofied/app-launcher/apps/adapters/casinofied-zoid-application-adapter.ts","app-react/services/limits-toaster/limits-toaster.service.ts","app-react/services/casinofied/app-launcher/apps/adapters/casinofied-regular-application-adapter.ts","app-react/services/casinofied/app-launcher/apps/casinofied-application-base.ts","app-react/services/casinofied/app-launcher/apps/casinofied-application.interface.ts","app-react/services/casinofied/app-launcher/apps/inside-drawer.application.tsx","app-react/services/casinofied/app-launcher/apps/chat/chat.application.ts","app-react/services/casinofied/app-launcher/casinofied-app-sdk-loader.ts","app-react/services/casinofied/app-launcher/components/casinofied-bubble.component.tsx","app-react/services/casinofied/app-launcher/components/casinofied-component-base.ts","app-react/services/casinofied/app-launcher/apps/adapters/unified-cashier-zoid-adapter.ts","app-react/services/casinofied/app-launcher/apps/deposit-widget/deposit-widget.application.ts","app-react/components/payments-redirect-focus/boxes/payment-redirect-focus-title/payment-redirect-focus-title.box.ts","app-react/components/payments-redirect-focus/boxes/payment-redirect-focus-title/payment-redirect-focus-title.default.box.ts","app-react/components/payments-redirect-focus/boxes/payment-redirect-focus-container/payment-redirect-focus.box.ts","app-react/components/payments-redirect-focus/payments-redirect-focus.component.tsx","app-react/services/casinofied/app-launcher/apps/payments-redirect/payments-redirect.application.tsx","app-react/services/casinofied/app-launcher/apps/full-cashier/full-cashier.application.ts","app-react/services/casinofied/app-launcher/apps/cashout-widget/cashout-widget.application.ts","app-react/services/casinofied/app-launcher/apps/customer-relations/customer-relations.application.ts","app-react/services/casinofied/app-launcher/apps/bonus-wheel/bonus-wheel-application.ts","app-react/services/casinofied/app-launcher/apps/help-centre/help-centre.application.ts","app-react/services/casinofied/app-launcher/casinofied-app-factory.ts","app-react/services/casinofied/app-launcher/casinofied-app-launcher.service.ts","app-react/services/casinofied/action-handler/action-handler-base.ts","app-react/services/casinofied/action-handler/handlers/open-banking.action-handler.ts","app-react/services/casinofied/action-handler/handlers/upload-documents.action-handler.ts","app-react/services/casinofied/action-handler/handlers/open-deposit.action-handler.ts","app-react/services/casinofied/action-handler/handlers/open-withdraw.action-handler.ts","app-react/services/casinofied/action-handler/handlers/open-link.action-handler.ts","app-react/services/casinofied/action-handler/handlers/open-chat.action-handler.ts","app-react/services/casinofied/action-handler/handlers/open-link-with-form-post.action-handler.ts","app-react/services/casinofied/action-handler/casinofied-action-handler.service.ts","app-react/services/floating-bubbles/floating-bubbles.service.ts","app-react/components/source-of-funds/boxes/source-of-funds.box.ts","app-react/components/source-of-funds/source-of-funds-popup.component.tsx","app-react/services/restriction-ruler/restriction-ruler.service.tsx","app-react/services/restriction-ruler/restriction-ruler.service.interface.ts","app-react/services/red-tiger/red-tiger.service.ts","app-react/services/casinofied/analytics-publisher/casinofied-analytics.service.ts","app-react/services/http/http-with-request-time-measurement.service.ts","app-react/services/ab-testing-ai-sort/ab-testing-ai-sort-games-lists.service.ts","app-react/services/cashier/cashier.service.ts","app-react/services/regulation/legacy-regulation-wrapper.ts","app-react/services/regulation/regulation.service.ts","app-react/services/burnout/player-burnout.service.ts","app-react/services/player-offerings/player-offerings/offers/offer-base.ts","app-react/services/player-offerings/player-offerings/offers/welcome-offer.tsx","app-react/components/wheel-of-fortune/boxes/wheel-of-fortune-shell.box.ts","app-react/components/wheel-of-fortune/boxes/wheel-of-fortune-colors.box.ts","app-react/components/wheel-of-fortune/boxes/wheel-of-fortune-wrapper.box.ts","app-react/components/wheel-of-fortune/wheel-of-fortune.component.tsx","app-react/services/player-offerings/player-offerings/offers/wheel-of-fortune-offer.tsx","app-react/components/link-to-offer/boxes/link-to-offer-banner/link-to-offer-banner.default.box.ts","app-react/components/link-to-offer/boxes/link-to-offer-banner/link-to-offer-banner.box.ts","app-react/services/player-offerings/player-offerings/offers/registration-offer.tsx","app-react/services/player-offerings/player-offerings.service.tsx","app-react/services/pixi-app/pixi-app-creator.ts","app-react/services/pixi-app/pixi-app.service.ts","app-react/services/storage/local-storage-keys.ts","app-react/services/game-animated-icons-manager/game-animated-icons-manager.service.ts","app-react/services/webgl-context-manager/webgl-context-manager.service.ts","app-react/services/exit-popup/exit-popup-consts.ts","app-react/services/exit-popup/exit-popup.service.tsx","app-react/services/tooltip/tooltip.model.ts","app-react/services/tooltip/tooltip.service.ts","app-react/services/gaming-history/models/paginator/history-paginator-base.model.ts","app-react/services/gaming-history/models/record/history-record-base.model.ts","app-react/services/gaming-history/models/record/user-gaming-history-record.model.ts","app-react/services/gaming-history/models/paginator/user-gaming-history-paginator.model.ts","app-react/services/gaming-history/models/record/session-gaming-history-record.model.ts","app-react/services/gaming-history/models/paginator/session-gaming-history-paginator.model.ts","app-react/services/gaming-history/gaming-history.service.ts","app-react/services/companies/companies.service.ts","app-react/services/because-you-played/because-you-played.service.ts","app-react/services/game-runner/running-game-browser-tab-controller.ts","app-react/components/profile-box-messages-indicator/consts/indicator-layout.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/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-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/consts/indicator-icon-bg-position.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/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-messages-indicator/indicators/challenges-indicator.component.tsx","app-react/components/profile-box/boxes/profile-messages-divider.box.ts","app-react/components/profile-box/boxes/profile-buttons.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-button.default.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-button.casino777.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-button.casino888.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-button.ballysdover.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-button.harrington.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-button.harrahswsop.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-button.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-add-button/profile-cashier-add-button.default.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-add-button/profile-cashier-add-button.harrahswsop.box.ts","app-react/components/profile-box/boxes/profile-cashier-button/profile-cashier-add-button/profile-cashier-add-button.box.ts","app-react/components/profile-box/boxes/profile-wrapper.box.ts","app-react/components/profile-box/boxes/profile-box-messages/profile-messages.box.ts","app-react/components/profile-box/profile-box.component.tsx","app-react/components/side-menu/brand-list/boxes/brand-switch-list.box.ts","app-react/components/side-menu/brand-list/boxes/brand-switch-list-item.box.ts","app-react/components/side-menu/brand-list/boxes/brand-switch-list-item-icon.box.ts","app-react/components/side-menu/brand-list/brand-list.component.tsx","app-react/components/side-menu/store-button/store-button.component.tsx","app-react/components/side-menu/boxes/menu-links-goups-container.box.ts","app-react/components/side-menu/boxes/side-menu-container.box.ts","app-react/components/side-menu/boxes/mobile-menu-item-container.box.ts","app-react/components/side-menu/boxes/mobile-menu-item-link.box.ts","app-react/components/side-menu/mobile-help-menu-item/help-center-menu-item-icon.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/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.box.ts","app-react/components/main-nav/boxes/mobile/back/mobile-back.box.ts","app-react/components/main-nav/boxes/mobile/back/mobile-back-label.box.ts","app-react/components/main-nav/boxes/main-nav-canvas/main-nav-canvas.default.box.ts","app-react/components/main-nav/boxes/main-nav-canvas/main-nav-canvas.casino777.box.ts","app-react/components/main-nav/boxes/main-nav-canvas/main-nav-canvas.si.box.ts","app-react/components/main-nav/boxes/main-nav-canvas/main-nav-canvas.box.ts","app-react/components/main-nav/boxes/main-nav.box.ts","app-react/components/main-nav/boxes/main-nav-content-wrapper.box.ts","app-react/components/main-nav/boxes/main-nav-menu.box.ts","app-react/components/main-nav/main-nav.component.tsx","app-react/components/user-menu/user-menu/boxes/user-menu-section.box.ts","app-react/components/loyalty-bar/boxes/loyalty-bar-section.box.ts","app-react/components/loyalty-bar/loyalty-bar.component.tsx","app-react/components/user-details/boxes/user-details-section.box.ts","app-react/components/user-details/boxes/user-details-wrapper.box.ts","app-react/components/user-details/boxes/user-menu-picture.box.ts","app-react/components/user-menu/user-menu/boxes/user-menu-title.box.ts","app-react/components/user-details/boxes/user-menu-title-account.box.ts","app-react/components/user-details/boxes/user-menu-title-mobile.box.ts","app-react/components/user-info/user-info-label.box.ts","app-react/components/user-details/user-details.component.tsx","app-react/components/useful-links/boxes/useful-links-section.box.ts","app-react/components/useful-links/boxes/log-out/log-out-section.box.ts","app-react/components/user-menu/user-menu/boxes/user-menu-section-icon.box.ts","app-react/components/useful-links/boxes/useful-links-section-icon.box.ts","app-react/components/useful-links/boxes/log-out/log-out-link.box.ts","app-react/components/useful-links/useful-links.component.tsx","app-react/components/balance-box/bonus-and-cash-balance/boxes/bonus-and-cash-balance.box.ts","app-react/components/balance-box/bonus-and-cash-balance/boxes/balance-inner.box.ts","app-react/components/balance-box/bonus-and-cash-balance/boxes/balance-title-inner.box.ts","app-react/components/balance-box/balance-value-boxes/balance-value-bonus-and-cash.box.ts","app-react/components/balance-box/bonus-and-cash-balance/bonus-and-cash-balance.component.tsx","app-react/components/balance-box/balance-box-buttons/boxes/balance-buttons-group.box.ts","app-react/components/balance-box/balance-box-buttons/user-balance-buttons.component.tsx","app-react/components/balance-box/boxes/user-menu-balance-title.box.ts","app-react/components/balance-box/boxes/user-balance-section.box.ts","app-react/components/balance-box/boxes/user-balance-section-icon.box.ts","app-react/components/balance-box/balance-value-boxes/balance-value-primary.box.ts","app-react/components/balance-box/user-balance.component.tsx","app-react/components/user-menu/user-challenges/boxes/user-challenges-container.box.ts","app-react/components/user-menu/user-challenges/boxes/user-challenges-title.box.ts","app-react/components/user-menu/user-challenges/user-challenge.component.tsx","app-react/components/user-menu/user-challenges/user-challenges.component.tsx","app-react/components/user-menu/mini-safezone/boxes/mini-safezone.default.box.tsx","app-react/components/user-menu/mini-safezone/boxes/mini-safezone.box.ts","app-react/components/user-menu/mini-safezone/mini-safezone.component.tsx","app-react/components/user-menu/user-menu/boxes/user-menu-scroll-wrapper.box.ts","app-react/components/user-menu/user-menu/boxes/user-menu-fake-ios-padding.box.ts","app-react/components/user-menu/user-menu/user-menu-mobile.component.tsx","app-react/components/welcome-user/boxes/welcome-user.box.ts","app-react/components/welcome-user/boxes/welcome-greeting.box.ts","app-react/components/welcome-user/boxes/welcome-user-info.box.ts","app-react/components/welcome-user/welcome-user.component.tsx","app-react/components/user-menu/close-button/boxes/user-menu-close-pc-button.box.ts","app-react/components/user-menu/close-button/boxes/user-menu-close-icon.box.tsx","app-react/components/user-menu/user-menu/boxes/user-menu-header.box.ts","app-react/components/user-menu/user-menu/user-menu-pc.component.tsx","app-react/components/free-play/boxes/container/free-play-container.box.ts","app-react/components/free-play/boxes/vouchers-swiper/vouchers-swiper.box.ts","app-react/components/free-play/boxes/vouchers-swiper/arrow/voucher-swiper-arrow-container.box.ts","app-react/components/free-play/parts/voucher-card/swiper/vouchers-swiper.component.tsx","app-react/components/free-play/boxes/voucher-games-list/voucher-games-list.box.ts","app-react/components/free-play/boxes/vouchers-swiper/vouchers-swiper-title.box.ts","app-react/components/free-play/boxes/vouchers-swiper/vouchers-swiper-background.box.ts","app-react/components/free-play/boxes/voucher-games-list-title/voucher-games-list-title.box.ts","app-react/components/free-play/free-play-container.component.tsx","app-react/components/user-menu/user-menu/boxes/root/user-menu-root.default.box.ts","app-react/components/user-menu/user-menu/boxes/root/user-menu-root.casino777.box.ts","app-react/components/user-menu/user-menu/boxes/root/user-menu-root.box.ts","app-react/components/user-menu/user-menu/boxes/wrapper/user-menu-wrapper.default.box.ts","app-react/components/user-menu/user-menu/boxes/wrapper/user-menu-wrapper.box.ts","app-react/components/user-menu/user-menu/boxes/holder/user-menu-holder.default.box.ts","app-react/components/user-menu/user-menu/boxes/holder/user-menu-holder.box.ts","app-react/components/user-menu/user-menu.component.tsx","app-react/components/header/top-header-right/help-button/help-button.component.tsx","app-react/components/icons/base/sprite-icon.box.tsx","app-react/components/icons/icons.component.tsx","app-react/components/icons/library/close.icon.tsx","app-react/components/icons/library/poker-brand-small.icon.tsx","app-react/components/icons/library/sport-brand-small.icon.tsx","app-react/components/icons/library/casino-brand-small.icon.tsx","app-react/components/header/top-header-left/cross-brand/boxes/cross-brand-list.default.box.ts","app-react/components/header/top-header-left/cross-brand/boxes/cross-brand-list.box.ts","app-react/components/header/top-header-left/cross-brand/boxes/cross-brand-item.default.box.ts","app-react/components/header/top-header-left/cross-brand/boxes/cross-brand-item.box.ts","app-react/components/header/top-header-left/cross-brand/boxes/cross-brand-item-icon.default.box.ts","app-react/components/header/top-header-left/cross-brand/boxes/cross-brand-item-icon.box.ts","app-react/components/header/top-header-left/cross-brand/cross-brands.component.tsx","app-react/components/header/top-header-left/mobile-burger-menu/mobile-burger-menu.component.tsx","app-react/components/header/boxes/language-switcher/header-language-switcher.box.ts","app-react/components/header/top-header-right/language-switcher/header-language-switcher.component.tsx","app-react/components/header/boxes/navbar-separator/navbar-separator.default.box.ts","app-react/components/header/boxes/navbar-separator/navbar-separator.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.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.box.ts","app-react/components/header/boxes/navbar-left-container/header-navbar-left-container.default.box.ts","app-react/components/header/boxes/navbar-left-container/header-navbar-left-container.box.ts","app-react/components/header/boxes/navbar-right-container/header-navbar-right-container.default.box.ts","app-react/components/header/boxes/navbar-right-container/header-navbar-right-container.box.ts","app-react/components/header/header.component.tsx","app-react/components/drawer/boxes/body/drawer-body.default.box.tsx","app-react/components/drawer/boxes/body/drawer-body.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.box.tsx","app-react/components/overlay/overlay.component.tsx","app-react/components/spinner/boxes/spinner/spinner.default.box.ts","app-react/components/spinner/boxes/spinner/spinner.box.ts","app-react/components/spinner/boxes/spinner-brand/spinner-brand.default.box.ts","app-react/components/spinner/boxes/spinner-brand/spinner-brand.box.ts","app-react/components/spinner/boxes/spinner-background/spinner-background.default.box.ts","app-react/components/spinner/boxes/spinner-background/spinner-background.casino777.box.ts","app-react/components/spinner/boxes/spinner-background/spinner-background.cip.box.ts","app-react/components/spinner/boxes/spinner-background/spinner-background.cis.box.ts","app-react/components/spinner/boxes/spinner-background/spinner-background.box.ts","app-react/components/spinner/boxes/spinner-logo/spinner-logo.default.box.ts","app-react/components/spinner/boxes/spinner-logo/spinner-logo.casino777.box.ts","app-react/components/spinner/boxes/spinner-logo/spinner-logo.cip.box.ts","app-react/components/spinner/boxes/spinner-logo/spinner-logo.wsop.box.ts","app-react/components/spinner/boxes/spinner-logo/spinner-logo.delawarepark.box.ts","app-react/components/spinner/boxes/spinner-logo/spinner-logo.ballysdover.box.ts","app-react/components/spinner/boxes/spinner-logo/spinner-logo.harrington.box.ts","app-react/components/spinner/boxes/spinner-logo/spinner-logo.cis.box.ts","app-react/components/spinner/boxes/spinner-logo/spinner-logo.box.ts","app-react/components/spinner/spinner.component.tsx","app-react/components/breadcrumbs/breadcrumbs.component.tsx","app-react/components/app-footer/app-footer.component.tsx","app-react/components/router-outlet/boxes/router-outlet.default.box.ts","app-react/components/router-outlet/boxes/router-outlet.casino777.box.ts","app-react/components/router-outlet/boxes/router-outlet.casino888.box.ts","app-react/components/router-outlet/boxes/router-outlet.harrahs.box.ts","app-react/components/router-outlet/boxes/router-outlet.wsop.box.ts","app-react/components/router-outlet/boxes/router-outlet.si.box.ts","app-react/components/router-outlet/boxes/router-outlet.box.ts","app-react/components/router-outlet/router-outlet.component.tsx","app-react/components/sticky-navigation-menu/boxes/bottom-sticky-navbar-container.box.ts","app-react/components/sticky-navigation-menu/boxes/bottom-sticky-navbar-container.default.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-list/sticky-navigation-menu-list.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-list/sticky-navigation-menu-list.default.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-item/sticky-navigation-menu-item.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-item/sticky-navigation-menu-item.default.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-item/sticky-navigation-menu-item-icon.default.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-item/sticky-navigation-menu-item-icon.wsop.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-item/sticky-navigation-menu-item-icon.harrahs.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-item/sticky-navigation-menu-item-icon.casino777.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-item/sticky-navigation-menu-item-icon.harrington.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-item/sticky-navigation-menu-item-icon.ballysdover.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-item/sticky-navigation-menu-item-icon.delawarepark.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-item/sticky-navigation-menu-item-icon.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-active-indicator/sticky-navigation-menu-active-indicator.default.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-active-indicator/sticky-navigation-menu-active-indicator.wsop.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-active-indicator/sticky-navigation-menu-active-indicator.harrahs.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-active-indicator/sticky-navigation-menu-active-indicator.casino777.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-active-indicator/sticky-navigation-menu-active-indicator.ballysdover.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-active-indicator/sticky-navigation-menu-active-indicator.harrington.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-active-indicator/sticky-navigation-menu-active-indicator.delawarepark.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-active-indicator/sticky-navigation-menu-active-indicator.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-active-indicator/sticky-navigation-menu-active-indicator-rail.box.ts","app-react/components/sticky-navigation-menu/boxes/sticky-navigation-menu-active-indicator/sticky-navigation-menu-active-indicator-rail.default.box.ts","app-react/components/sticky-navigation-menu/sticky-navigation-menu-active-indicator.component.tsx","app-react/components/sticky-navigation-menu/sticky-navigation-menu-list.component.tsx","app-react/components/sticky-navigation-menu/sticky-navigation-menu.component.tsx","app-react/components/floating-bubbles/boxes/floating-bubbles-container.box.ts","app-react/components/floating-bubbles/boxes/floating-bubble.box.ts","app-react/components/floating-bubbles/floating-bubbles.component.tsx","app-react/components/container/boxes/main-wrapper.default.box.ts","app-react/components/container/boxes/main-wrapper.cip.box.ts","app-react/components/container/boxes/main-wrapper.box.ts","app-react/components/container/container.component.tsx","app-react/components/modal-dialog/modal-dialogs-container.component.tsx","app-react/components/sdk/orbit-components-rendered-inside-sdk-container.tsx","app-react/components/burnout/player-burnout-layer.component.tsx","app-react/components/tooltip/boxes/tooltip-arrow/tooltip-arrow.default.ts","app-react/components/tooltip/boxes/tooltip-arrow/tooltip-arrow.777.ts","app-react/components/tooltip/boxes/tooltip-arrow/tooltip-arrow.box.ts","app-react/components/tooltip/boxes/tooltip-close-button.box.ts","app-react/components/tooltip/boxes/tooltip-container/tooltip-container.default.ts","app-react/components/tooltip/boxes/tooltip-container/tooltip-container.box.ts","app-react/components/tooltip/boxes/tooltip-glow/tooltip-glow.default.ts","app-react/components/tooltip/boxes/tooltip-glow/tooltip-glow.777.ts","app-react/components/tooltip/boxes/tooltip-glow/tooltip-glow.box.ts","app-react/components/tooltip/boxes/tooltip-content.box.ts","app-react/components/tooltip/tooltip-container.component.tsx","app-react/components/game-window/loading-indicators/boxes/game-loading-indicator-root.box.ts","app-react/components/game-window/loading-indicators/game-loading-indicator.component.tsx","app-react/components/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/arena-host/seo-bread-crumbs/seo-breadcrumbs-container.box.ts","app-react/components/arena-host/seo-bread-crumbs/seo-bread-crumbs.component.tsx","app-react/themes/architecture/styled-by-device.tsx","app-react/basic-ui-components/x-close-button/x-close-button.box.ts","app-react/services/cms/cms-banners/cm-banner-id/cms-banner-id.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/shared-components/table-seats.component.tsx","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/components/arena-host/casino-arena/casino-arena.template-types.ts","app-react/themes/definitions/casino888/cis/base-colors.ts","common/const/service-worker-constants.ts","app-react/basic-ui-components/form/select.box.ts","common/utils/cashier-util.ts","app-react/services/storage/session-storage-keys.ts","app-react/components/game-window/navbar/common/boxes/close-game-button/game-navbar-close-button.box.ts","app-react/components/free-play/voucher-card-css-constants.ts","app-react/themes/architecture/asset.ts","sdk/src/components/external_links/external_links_consts.js","app-react/themes/architecture/css-helpers/css-rule.ts","app-react/basic-ui-components/icon/svg-icon/svg.icon.tsx","sdk/src/services/hybrid/native/native_const.js","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.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.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/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/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/group-filters-list/boxes/group-filters-list-container.box.ts","app-react/components/filters/group-filters-list/boxes/group-filters-list-group.box.ts","app-react/components/filters/group-filters-list/boxes/group-filters-list-group-title.box.ts","app-react/components/filters/group-filters-list/boxes/group-filters-list-container-filter-by.box.ts","app-react/components/filters/group-filters-list/boxes/group-filters-list-group-title-active-preview.box.ts","app-react/components/filters/group-filters-list/boxes/group-filters-list-group-title-container.box.ts","app-react/components/filters/group-filters-list/boxes/group-filters-list-group-filters-container.box.ts","app-react/components/filters/group-filters-list/boxes/group-filters-list-group-filter.box.ts","app-react/components/filters/group-filters-list/boxes/group-filters-list-group-filter-input.box.ts","app-react/components/filters/group-filters-list/boxes/group-filters-list-group-filter-title.box.ts","app-react/components/filters/group-filters-list/group-filters-list.component.tsx","app-react/components/filters/filters-games-list-mobile/filters-games-list-mobile.component.tsx","app-react/components/header/top-header-left/filters/filters-mobile-button.component.tsx","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/lobby-header.component.tsx","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/live-casino-grid-item-infobar.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/live-casino-grid-item-infobar.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/live-casino-grid-item-infobar.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/bet-interval/live-casino-grid-item-bet-interval.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/bet-interval/live-casino-grid-item-bet-interval.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/bet-interval/live-casino-grid-item-bet-interval.si.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/bet-interval/live-casino-grid-item-bet-interval.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/closed-message/live-casino-grid-item-closed-message.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/closed-message/live-casino-grid-item-closed-message.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/closed-message/live-casino-grid-item-closed-message.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/thumbnail/live-casino-grid-item-thumbnail-overlay.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/thumbnail/live-casino-grid-item-thumbnail-overlay.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/thumbnail/live-casino-grid-item-thumbnail.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/thumbnail/live-casino-grid-item-thumbnail.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/wrapper/live-casino-grid-item-wrapper.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/wrapper/live-casino-grid-item-wrapper.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/wrapper/live-casino-grid-item-wrapper.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/title/live-casino-grid-item-title.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/infobar/bet-behind/live-casino-grid-item-bet-behind-button.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/bet-behind/live-casino-grid-item-bet-behind-button.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/bet-behind/live-casino-grid-item-bet-behind-button.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/jackpot/live-casino-grid-item-jackpot.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/jackpot/live-casino-grid-item-jackpot.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/jackpot/live-casino-grid-item-jackpot.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/closed-message/live-casino-grid-item-open-at.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/live-casino-arena-grid-item.component.tsx","app-react/components/free-play/boxes/voucher-card/voucher-card.box.ts","app-react/components/free-play/boxes/voucher-card/voucher-card-side.box.ts","app-react/components/free-play/boxes/voucher-card/face/voucher-card-face.box.ts","app-react/components/free-play/boxes/voucher-card/face/content/voucher-card-face-content.box.ts","app-react/components/free-play/boxes/voucher-card/common/footer/voucher-card-side-footer.box.ts","app-react/components/free-play/boxes/voucher-card/face/footer/voucher-card-face-footer.box.ts","app-react/components/free-play/boxes/voucher-card/face/content/icon/voucher-card-face-icon-container.box.ts","app-react/components/free-play/boxes/voucher-card/face/content/details/voucher-card-face-details.box.ts","app-react/components/free-play/boxes/voucher-card/face/content/details/original-amount/voucher-card-face-original-amount.box.ts","app-react/components/free-play/boxes/voucher-card/face/content/details/name/voucher-card-face-voucher-name.box.ts","app-react/components/free-play/boxes/voucher-card/face/content/details/current-amount/voucher-card-face-current-amount-container.box.ts","app-react/components/free-play/boxes/voucher-card/face/content/icon/voucher-card-face-icon.box.ts","app-react/components/free-play/boxes/voucher-card/face/content/details/current-amount/voucher-card-face-current-amount.box.ts","app-react/components/free-play/boxes/voucher-card/common/footer/side-toggle/voucher-card-side-toggle-button.box.ts","app-react/components/free-play/boxes/voucher-card/common/footer/footer-content/voucher-card-side-footer-content.box.ts","app-react/components/free-play/boxes/voucher-card/face/header/voucher-card-face-header.box.ts","app-react/components/free-play/parts/voucher-card/face/voucher-card-face-header.component.tsx","app-react/components/free-play/parts/voucher-card/face/voucher-card-face.component.tsx","app-react/components/free-play/boxes/voucher-card/back/voucher-card-back.box.ts","app-react/components/free-play/boxes/voucher-card/back/header/voucher-card-back-header.box.ts","app-react/components/free-play/boxes/voucher-card/back/content/voucher-card-back-content.box.ts","app-react/components/free-play/boxes/voucher-card/back/footer/voucher-card-back-footer.box.ts","app-react/components/free-play/parts/voucher-card/back/voucher-card-back.component.tsx","app-react/components/free-play/parts/voucher-card/voucher-card.component.tsx","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-filter-buttons/live-casino-filter-buttons.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-filter-buttons/live-casino-filter-buttons.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-filter-buttons/live-casino-filter-buttons.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-navbar-scroll/live-casino-navbar-scroll.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-navbar-scroll/live-casino-navbar-scroll.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-navbar-overflow/live-casino-navbar-overflow.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-navbar-overflow/live-casino-navbar-overflow.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-navbar/live-casino-navbar.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-navbar/live-casino-navbar.cip.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-navbar/live-casino-navbar.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-navbar/live-casino-navbar.cis.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/live-casino-navbar/live-casino-navbar.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-navbar/boxes/buttons-active-indicator/buttons-active-indicator.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/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/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.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.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/header/top-header-left/regulatory-data/boxes/regulatory-data.default.box.ts","app-react/components/header/top-header-left/regulatory-data/boxes/regulatory-data.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/burnout/burnout-animation/burnout-animation-constants.ts","app-react/components/burnout/burnout-animation/boxes/burnout-animation-container.box.ts","app-react/components/burnout/burnout-animation/boxes/burnout-animation.box.ts","app-react/components/burnout/burnout-animation/boxes/burnout-animation-text.box.ts","app-react/components/burnout/burnout-animation/burnout-animation.component.tsx","app-react/components/burnout/burnout-animation/boxes/burnout-fab.box.tsx","app-react/components/burnout/burnout-animation/burnout-animation-wrapper.component.tsx","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/grid/live-casino-grid.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/grid/live-casino-grid.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/grid/live-casino-grid.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/grid/skeleton/live-casino-grid-item-skeleton.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/grid/skeleton/live-casino-grid-item-skeleton-title.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/grid/skeleton/live-casino-grid-item-skeleton-wrapper.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/live-casino-arena-grid.component.tsx","app-react/components/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.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.box.ts","app-react/components/clock-and-last-login-box/clock-and-last-login-box.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.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/shared-components/roulette-draws.component.tsx","app-react/components/header/top-header-right/header-welcome-buttons/boxes/header-welcome-buttons-container.default.box.ts","app-react/components/header/top-header-right/header-welcome-buttons/boxes/header-welcome-buttons-container.harrahs.box.ts","app-react/components/header/top-header-right/header-welcome-buttons/boxes/header-welcome-buttons-container.box.ts","app-react/components/header/top-header-right/header-welcome-buttons/boxes/header-welcome-buttons-button.box.ts","app-react/components/header/top-header-right/header-welcome-buttons/header-welcome-buttons.component.tsx","app-react/basic-components/lobby-wrapper/lobby-wrapper.default.box.ts","app-react/basic-components/lobby-wrapper/lobby-wrapper.casino777.box.ts","app-react/basic-components/lobby-wrapper/lobby-wrapper.si.box.ts","app-react/basic-components/lobby-wrapper/lobby-wrapper.box.ts","app-react/components/useful-links/boxes/useful-links-list/useful-links-list.default.box.ts","app-react/components/useful-links/boxes/useful-links-list/useful-links-list.cip.box.ts","app-react/components/useful-links/boxes/useful-links-list/useful-links-list.box.ts","app-react/components/useful-links/parts/useful-links-list/useful-links-list.component.tsx","app-react/components/cms-banner/empty-banner/empty-banner-container.box.ts","app-react/components/cms-banner/empty-banner/empty-banner.component.tsx","app-react/services/cms/cms-banners/banner-definition/empty-banner-definition.tsx","app-react/services/media-query/breakpoints.ts","app-react/services/media-query/media-query-builder.ts","app-react/services/media-query/media-queries.ts","app-react/services/cms/cms-content-decorator/cms-link.ts","app-react/services/cms/cms-content-decorator/evaluate-scripts.ts","app-react/services/cms/cms-content-decorator/cms-content-decorator.ts","app-react/basic-components/lobby-grid/lobby-grid.default.box.ts","app-react/basic-components/lobby-grid/lobby-grid.casino777.box.ts","app-react/basic-components/lobby-grid/lobby-grid.box.ts","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/new-live-casino-arena/live-casino-arena-grid/boxes/grid-item/live-casino-grid-item.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/grid-item/live-casino-grid-item.default.box.ts","app-react/components/clock/boxes/clock.component.box.tsx","app-react/components/clock/boxes/clock.component.default.box.tsx","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/infobar-icon/live-casino-grid-item-infobar-icon.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/infobar-icon/live-casino-grid-item-infobar-icon.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/info-item/live-casino-grid-item-info-item.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.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/thumbnail/live-casino-grid-item-thumbnail-image.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/thumbnail/live-casino-grid-item-thumbnail-image.default.box.ts","sdk/src/services/overlay_manager/overlay_manager_levels.ts","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/raw-components/link/link.tsx","app-react/services/companies/companies-models lazy /^/.*/.company/-model$/ groupOptions: {} namespace object","app-react/themes/hex-to-rgba.ts","app-react/themes/definitions lazy /^/.*/theme/.definition$/ groupOptions: {} namespace object","settings/configuration/languages lazy /^/.*$/ groupOptions: {} namespace object","common/const/casinofied-analytics-consts.ts","sdk/src/services/regulation/regulation_const.ts","app-react/themes/architecture/theme-names.ts","app-react/themes/architecture/css-helpers/flex.ts","common/const/jackpot_map_ids.ts"],"names":["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","GameModeEnum","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","GAME_NAVBAR_SPACE_BETWEEN_ITEMS","multiplier","GAME_NAVBAR_BUTTON_WIDTH","GAME_NAVBAR_BUTTON_HEIGHT","Assets","fonts","_888_Black_eot","Asset","_888_Black_otf","_888_Black_svg","_888_Black_ttf","_888_Black_woff","_888_Black_woff2","_888_Bold_eot","_888_Bold_otf","_888_Bold_svg","_888_Bold_ttf","_888_Bold_woff","_888_DemiBold_eot","_888_DemiBold_otf","_888_DemiBold_svg","_888_DemiBold_ttf","_888_DemiBold_woff","_888_DemiBold_woff2","_888_Light_eot","_888_Light_otf","_888_Light_svg","_888_Light_ttf","_888_Light_woff","_888_Light_woff2","_888_Medium_eot","_888_Medium_otf","_888_Medium_svg","_888_Medium_ttf","_888_Medium_woff","_888_Medium_woff2","_888_Regular_eot","_888_Regular_otf","_888_Regular_svg","_888_Regular_ttf","_888_Regular_woff","_888_Regular_woff2","_888_SemiCondensedBold_eot","_888_SemiCondensedBold_otf","_888_SemiCondensedBold_svg","_888_SemiCondensedBold_ttf","_888_SemiCondensedBold_woff","_888_SemiCondensedBold_woff2","_888_SemiCondensedDemiBold_eot","_888_SemiCondensedDemiBold_otf","_888_SemiCondensedDemiBold_svg","_888_SemiCondensedDemiBold_ttf","_888_SemiCondensedDemiBold_woff","_888_SemiCondensedDemiBold_woff2","_888_Thin_eot","_888_Thin_otf","_888_Thin_svg","_888_Thin_ttf","_888_Thin_woff","_888_Thin_woff2","_888_Ultra_eot","_888_Ultra_otf","_888_Ultra_svg","_888_Ultra_ttf","_888_Ultra_woff","_888_Ultra_woff2","digital_7_mono_ttf","Lobster_Regular_eot","Lobster_Regular_otf","Lobster_Regular_svg","Lobster_Regular_ttf","Lobster_Regular_woff","Lobster_Regular_woff2","oleo_script_reg_eot","oleo_script_reg_svg","oleo_script_reg_ttf","oleo_script_reg_woff","oleo_script_reg_woff2","oleo_script_reg_ext_woff2","RobotoCondensed_Bold_ttf","TradeGothicLTStd_Bd2_otf","Bello_Script_eot","Bello_Script_svg","Bello_Script_ttf","Bello_Script_woff","Bello_Script_woff2","Futura_PT_Bold_eot","Futura_PT_Bold_otf","Futura_PT_Bold_svg","Futura_PT_Bold_ttf","Futura_PT_Bold_woff","Futura_PT_Bold_woff2","Futura_PT_Book_eot","Futura_PT_Book_otf","Futura_PT_Book_svg","Futura_PT_Book_ttf","Futura_PT_Book_woff","Futura_PT_Book_woff2","Futura_PT_Demi_eot","Futura_PT_Demi_otf","Futura_PT_Demi_svg","Futura_PT_Demi_ttf","Futura_PT_Demi_woff","Futura_PT_Demi_woff2","Futura_PT_Heavy_eot","Futura_PT_Heavy_otf","Futura_PT_Heavy_svg","Futura_PT_Heavy_ttf","Futura_PT_Heavy_woff","Futura_PT_Heavy_woff2","Futura_PT_Medium_eot","Futura_PT_Medium_otf","Futura_PT_Medium_svg","Futura_PT_Medium_ttf","Futura_PT_Medium_woff","Futura_PT_Medium_woff2","FuturaPTBold_otf","FuturaPTBoldOblique_otf","FuturaPTBook_otf","FuturaPTBookOblique_otf","FuturaPTCondBold_otf","FuturaPTCondBoldOblique_otf","FuturaPTCondBook_otf","FuturaPTCondBookOblique_otf","FuturaPTCondExtraBold_otf","FuturaPTCondExtraBoldOblique_otf","FuturaPTCondMedium_otf","FuturaPTCondMediumOblique_otf","FuturaPTDemi_otf","FuturaPTDemiOblique_otf","FuturaPTExtraBold_otf","FuturaPTExtraBoldOblique_otf","FuturaPTHeavy_otf","FuturaPTHeavyOblique_otf","FuturaPTLight_otf","FuturaPTLightOblique_otf","FuturaPTMedium_otf","FuturaPTMediumOblique_otf","a_and_s_signwriter_ttf","Gotham_Black_otf","Gotham_BlackItalic_otf","Gotham_Bold_otf","Gotham_BoldItalic_otf","Gotham_Book_otf","Gotham_BookItalic_otf","Gotham_Light_otf","Gotham_LightItalic_otf","Gotham_Medium_otf","Gotham_MediumItalic_otf","Gotham_Thin_otf","Gotham_ThinItalic_otf","Gotham_Ultra_otf","Gotham_UltraItalic_otf","GothamXNarrow_Black_otf","GothamXNarrow_BlackItalic_otf","GothamXNarrow_Bold_otf","GothamXNarrow_BoldItalic_otf","GothamXNarrow_Book_otf","GothamXNarrow_BookItalic_otf","GothamXNarrow_Light_otf","GothamXNarrow_LightItalic_otf","GothamXNarrow_Medium_otf","GothamXNarrow_MediumItalic_otf","GothamXNarrow_Thin_otf","GothamXNarrow_ThinItalic_otf","GothamXNarrow_Ultra_otf","GothamXNarrow_UltraItalic_otf","Industry_Black_ttf","Industry_Bold_ttf","Industry_Demi_ttf","Industry_Medium_ttf","Poppins_Regular_ttf","Poppins_SemiBold_ttf","SolanoGothicMVB_Bd_ttf","images","arena_shaddow_png","broken_link_icon_png","casino_live_logo_mobile_png","casino_live_logo_png","check_png","checkbox_checked_png","checkbox_empty_png","close_modal_dialog_png","EGR_logo_png","empty_image_sq_gif","empty_image_gif","exclusives_list_icon_png","full_screen_off_png","full_screen_on_png","game_default_background_png","horizontal_line_glow_mobile_png","horizontal_line_glow_png","idle_recomm_toaster_bg_png","infoBTN_png","ios_share_svg","jackpot_widget_title_crown_png","lamp_png","live_tables_top_border_png","party_jackpot_logo_png","placeholder_game_icon_png","placeholder_game_icon_sq_png","right_arrow_png","shaddow_bg_png","side_menu_header_decoration_png","splash_page_logo_0_0_png","splash_page_logo_0_111_png","splash_page_logo_1_53_png","splash_page_logo_31_46_png","splash_page_logo_58_82_png","splash_page_logo_68_98_png","splash_page_logo_69_100_png","splash_page_logo_70_102_png","splash_page_logo_71_104_png","splash_page_logo_72_105_png","splash_page_logo_73_107_png","splash_page_logo_75_113_png","splash_page_logo_76_119_png","splash_page_logo_79_125_png","splash_page_logo_8_78_png","splash_page_logo_81_129_png","splash_page_logo_84_137_png","splash_page_logo_87_141_png","splash_page_logo_88_144_png","splash_page_logo_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","SpriteSheetPC1920_png","texture_png","top_banner_placeholder_gif","vertical_line_glow_png","www_splash_page_logo_1_111_png","_3px_tile_png","_888casinologo_png","brilliant_png","close_modal_dialog_hover_png","history_bg_title_png","home_content_banner_png","home_page_top_banner_png","info_img_png","jackpots_bg_png","lang_reg_icon_png","lang_selected_icon_png","letter_info_png","letter_play_png","letter_design_png","live_arena_banner_png","live_chat_png","live_content_banner_png","notification_off_png","only_real_money_game_warning_png","pay_icon_png","swiper_layout_bottom_shaddow_png","user_menu_box_icon_png","user_png","_888casinologo_dark_png","blackSquare_png","div_lang_png","germany_panic_icon_png","ballysdover_logo_png","delaware_park_logo_png","hccasinologo_png","harrington_logo_png","si_logo_png","animated_icons_poc","millionaire_genie_megaways","genie_megaways_v1_atlas","genie_megaways_v1_json","genie_megaways_v1_png","genie_megaways_v2_atlas","genie_megaways_v2_json","genie_megaways_v2_png","genie_megaways_v3_atlas","genie_megaways_v3_json","genie_megaways_v3_png","genie_megaways_v4_atlas","genie_megaways_v4_json","genie_megaways_v4_png","arena_link_to_offer","Close_BTN_green_svg","Gift_BTN_green_svg","browser_icons","chrome_icon_PNG","microsoft_edge_png","mozilla_firefox_png","burnout","burnout_animation_atlas","burnout_animation_json","burnout_animation_png","burnout_animation_last_frame_png","daily_deal","daily_deal_chest_glow_png","daily_deal_chest_halo_png","daily_deal_chest_text_strip_svg","daily_deal_chest_png","f2p","freeToPlay1_atlas","freeToPlay1_json","freeToPlay1_png","freeToPlay2_atlas","freeToPlay2_json","freeToPlay2_png","free_play","fp_left_arrow_png","fp_right_arrow_png","fp_step_msg_bg_png","fp_vouchers_bg_png","freeplay_bg_type_fp_png","freeplay_bg_type_fs_png","freeplay_bg_type_jfp_png","freeplay_bg_type_jfs_png","freeplay_type_fp_png","freeplay_type_fs_png","freeplay_type_jfp_png","freeplay_type_jfs_png","games_icons_background","BGcardandtable_png","BGGameBlack_png","BGGameBlackSquare_png","BGicon_png","BGredTiger_png","game_frame","demo_left_corner_png","demo_right_corner_png","freeplay_indicator_png","freeplay_indicator_selected_png","freeplay_left_corner_png","freeplay_right_corner_png","real_left_corner_png","real_right_corner_png","regulation_strip_clock_png","history","history_details_left_corner_png","history_calendar_png","jackpot_widget","crown_png","daily","background_png","logo_png","high_noon","hourly_captain8","mobile","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","responsible_gambling","age_18plus_capsule_png","age_18plus_flat_png","age_18plus_round_png","age_21plus_flat_png","age_21plus_round_png","begambleaeare_logo_png","gamecare_logo_png","safeZoneIcon_svg","wheel_of_fortune","colors_svg","shell_svg","arenas","CasinoGames","online_blackjack_png","online_casino_games_png","online_jackpot_png","online_roulette_png","online_slots_png","HomePage","blackjack_arena_info_png","cards_arena_info_png","casino_games_arena_png","daily_jackpots_arena_icon_png","default_arena_png","live_arena_png","new_games_arena_png","new_games_arena_info_png","roulette_arena_info_png","scratch_cards_arena_png","scratch_cards_arena_info_png","slots_arena_info_png","slots_jackpots_arena_png","video_poker_arena_info_png","_888exclusive_arena_png","_888exclusive_arena_info_png","blackjack_arena_png","cards_arena_png","InstantWin_game_info_png","live_arena_elite_lounge_png","live_game_shows_arena_png","roulette_arena_png","scratch_cards_arena_icon_png","video_poker_arena_png","visual_sport_arena_info_png","progressive_slots_arena_icon_png","progressive_slots_arena_info_png","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","blackjack_arena_banner_mobile_rtl_png","blackjack_arena_banner_pc_rtl_png","blackjack_arena_banner_tablet_rtl_png","roulette_arena_banner_mobile_rtl_png","roulette_arena_banner_pc_rtl_png","roulette_arena_banner_tablet_rtl_png","logos","vip_diamond_logo_mobile_png","vip_diamond_logo_pc_png","vip_diamond_logo_pc_dark_png","vip_gold_logo_mobile_png","vip_gold_logo_pc_png","vip_gold_logo_pc_dark_png","vip_platinum_logo_mobile_png","vip_platinum_logo_pc_png","vip_platinum_logo_pc_dark_png","vip_regular_logo_mobile_png","vip_regular_logo_pc_png","vip_regular_logo_pc_dark_png","sdk_icons","_18_plus_png","_21_plus_png","Close_png","Close_hover_png","fprightarrow_png","fpvoucherback_png","fpVoucherBG_png","fpvoucherfreeplay_png","fpvoucherfreespin_png","fpvoucherinfoclose_png","fpvoucherinfoopen_png","fpvoucherjackpotfreeplay_png","fpvoucherjackpotfreespin_png","freeplayVoucherBG_png","freeSpinsVoucherBG_png","full_screen_png","game_frame_fp_indicator_png","game_frame_freeplay_mode_left_png","game_frame_freeplay_mode_right_png","game_frame_practicel_mode_left_png","game_frame_practicel_mode_right_png","game_frame_real_mode_left_png","game_frame_real_mode_right_png","general_notification_png","hat_png","icons_down_arrow_png","jackpotplayFreePlayVoucherBG_png","jackpotplayFreeSpinVoucherBG_png","jackpotplayVoucherBG_png","leftarrow_png","password_png","rightarrow_png","toaster_information_message_png","touchFinger_png","username_png","game_frame_bg_fp_left_png","game_frame_bg_fp_right_png","post_login_mobile_png","store","store_button_android_eng_png","store_button_android_fin_png","store_button_android_fre_png","store_button_android_ger_png","store_button_android_nor_png","store_button_android_por_png","store_button_android_rus_png","store_button_android_spa_png","store_button_android_swe_png","store_button_ios_eng_svg","store_button_ios_fin_svg","store_button_ios_fre_svg","store_button_ios_ger_svg","store_button_ios_nor_svg","store_button_ios_por_svg","store_button_ios_rus_svg","store_button_ios_spa_svg","store_button_ios_swe_svg","tooltip","gift_svg","mini_orbit","cip","exclusives_list_icon_cip_png","x_close_png","arenas_header_buttons","casino_games_icon_png","jackpots_icon_png","live_icon_png","my_casino_icon_png","selected_png","slots_icon_png","unselected_png","header_icons","gift_png","moreMenu_png","search_png","cis","videos","harmonium_mp4","games","game_icon_placeholder_png","about","eng_about_json","preview_default_images","default_game_strip_card_and_table_png","default_game_strip_card_and_table_mobile_png","default_game_strip_live_png","default_game_strip_live_mobile_png","default_game_strip_slots_png","default_game_strip_slots_mobile_png","fallbackCMSComponent","default_cgp_shell_css","defaultFooter_html","harrahsFooter_html","wsopFooter_html","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","FP_VOUCHER_TYPES","FP_MESSAGE_MODE","POPUP","EMBEDDED_INTERNAL","OrbitSuspense","fallback","className","this","props","children","React","PureComponent","ButtonsWrapperDefaultBox","styled","div","buttonsOnSeparateLines","flexColumnContainerMixin","flexRowReverseContainerMixin","ButtonWrapperDefaultBox","flexGrowItem","ButtonSpacerDefaultBox","flexFixedSizeItem","LinkActionBox","button","theme","font","family","body","colors","brandPrimary","LinkWrapperDefaultBox","ModalDialogActionsComponent","onClick","primaryAction","preset","fullWidth","text","secondaryAction","useWarningPreset","linkAction","Component","BannerContainerBox","LOBBY_PAGE","background","minHeight","css","CmsBannerComponent","observer","services","cmsBanners","loadBanner","_bannerId","CmsBannerId","componentID","templateID","fallbackComponent","contentDefinition","bannersMap","key","EmptyBannerDefinition","_bannerDefinition","render","showPlaceholder","OrbitComponent","PartyJackpotType","PartyJackpotJoinStatus","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","s","L","o","getTimezoneOffset","flags","dd","_pad","ddd","dddd","mm","mmm","mmmm","yy","yyyy","h","hh","HH","MM","ss","l","Math","round","t","tt","T","TT","Z","match","pop","replace","floor","abs","S","$0","val","len","valAsString","format","DialogButtonClickHandleResultEnum","PENDING_TOASTERS_KEY","DISPLAYED_TOASTERS_KEY","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","TOAST_TYPES","TIMED","ACKNOWLEDGE","ACTION","TRANSITIONS","POSITION","BOTTOM_RIGHT","BOTTOM_LEFT","TOP_RIGHT","TOP_LEFT","TOP_CENTER","BOTTOM_CENTER","CENTER","DEFAULT_CONFIG","imageWidth","layout","close","rtl","position","targetFirst","timeout","drag","pauseOnHover","resetOnHover","progressBar","animateInside","transitionIn","transitionOut","transitionInMobile","transitionOutMobile","GAME_GROUP","BACCARAT","BACKGAMMONN","BLACKJACK","CARRIBEAN_POKER","CRAPS","CRAZY_BLACKJACK","HEAD_TO_HEAD","HI_LO","KENO","LIVE_CASINO","PAI_GOW_POKER","POKER","POKER_TEMPLATE_GAMES","POOLS","POWER_VIDEO_POKER","ROULETTE","ROULETTE_LIKE","SCRATCH_CARD","SLOT","VIDEO_SLOT","VIDEO_POKER","VIDEO_SLOT_BONUS_GAME","ITEM_WRAPPER_BOX","RED","GREEN","RoutedComponent","FEATURE_NEW_FILTERING","FEATURE_GAME_RECOMMENDATIONS","FEATURE_ROUTE_OVERWRITE","FEATURE_NAME_SAFE_ZONE_TOGGLE","FEATURE_NAME_LIST_ON_TOP","FEATURE_NAME_PARTY_JACKPOTS","FEATURE_NAME_GRAPHYTE_LISTS","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_EXIT_POPUP_SQUARE_ICON","FEATURE_NAME_BECAUSE_YOU_PLAYED_LIST","FEATURE_NAME_DISABLE_ANIMATED_GAME_ICONS","FEATURE_NAME_FLOATING_ICON_F2P","BalanceType","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","ANALYTIC_TRIGGER_ACTIVATED","ANALYTIC_DATA_LAYER_UPDATE","ANALYTICS_EXPERIMENT_ACTIVATED","ANALYTICS_OPTIMIZE_TRIGGER","INCOMING_MARKETING_DATA","INCOMING_MARKETING_FLOW","CONVERSION_PRE_LOGIN_EVENT","CONVERSION_POST_LOGIN_EVENT","PLAYER_ACTION","BALANCE_UPDATED","CURRENCY_UPDATED","RECENTLY_PLAYED_GAMES_UPDATED","LIVE_FEEDS_LATEST_WINNERS_UPDATED","LIVE_FEEDS_WINNINGS_UPDATED","LIVE_FEEDS_TOTAL_JACKPOTS_UPDATED","LIVE_FEEDS_JACKPOT_AMOUNTS_UPDATED","LIVE_FEEDS_STATE_JACKPOTS_UPDATED","OMG_AWAITING_MESSAGES_UPDATED","OMG_OPEN_AWAITING_MESSAGES","OAUTH_REMOVE_FROM_LOCAL_STORAGE","LOCAL_STORAGE_CHANGED","ELEMENT_CREATED","FREE_PLAY_UPDATED","FREE_PLAY_VOUCHER_REMOVED","FREE_PLAY_OPEN_VOUCHERS_MSG","RESIZE_FORM","BEGIN_LOGIN_AFTER_REGISTRATION","LOGIN_COMPLETED_AFTER_REGISTERATION","LOGIN_FAILED_AFTER_REGISTRATION","REGISTRATION_COMPLETED","DETACH_REGISTER_EVENT","FREE_PLAY_VOUCHER_MSG_OPENED","FREE_PLAY_OPEN_INTERNAL_VOUCHERS_MESSAGE","TOAST_CREATED","TOAST_SHOW","TOAST_HIDE","TOAST_CLOSE_BUTTON","TOAST_USER_DISMISS","HYBRID_ALERT","HYBRID_OPEN_MAIL","HYBRID_UPDATE_INFO_KEY","FIREBASE_GOT_NEW_TOKEN","TOUCH_ID_GET_TOKEN_FROM_SRV","TOUCH_ID_INIT_SCREEN_SHOW","TOUCH_ID_TRY_AGAIN_SKIP","TOUCH_ID_CHECK_TOKEN_ENABLE","TOUCH_ID_TOKEN_ENABLE_RES","TOUCH_ID_CLEAR_TOKEN","TOUCH_ID_NATIVE_CANCEL","TOUCH_ID_LOGIN_ERROR","TOUCH_ID_AUTO_LOGIN","TOUCH_ID_STATE_CHANGED","WEB_VIEW_NAVIGATE_GAME","WEB_VIEW_NAVIGATE_DEPOSIT_WIDGET","WEB_VIEW_NAVIGATE_CASHIER","SECOND_WEB_VIEW_OLD_CALL","SECOND_WEB_VIEW_CLOSE","SECOND_WEB_VIEW_OPEN","SECOND_WEB_VIEW_CLOSE_ALL","MINI_CASHIER_HEIGHT_CHANGED","CONTENT_LOADED","OVERLAY_OPEN_AWAIT","OVERLAY_CLOSE_EXPIRED","INTERNAL_URL_NAVIGATION","FABRIC_ADD_EVENT","ADD_TAG_OPEN_APP_VER","ADD_TAG","REM_TAG","DEEPLINK_RECEIVED","WEB_LOGIN_OPEN_REGISTER","ROUTE_CHANGED","RESTRICTIONS_CHANGED","SESSION_TIMER_UPDATE","WINDOW_FOCUS_GAIN","WINDOW_FOCUS_LOSS","GEO_HYBRID_UPDATE_ENABLE","GEO_HYBRID_GT_CB","GEO_HYBRID_GET_LOCATION","GEO_HYBRID_GET_LOCATION_RES","GEO_LOCATION_FAILED","GEO_LOCATION_SUCCEED","GEO_KICK_EVENT","SESSION_EVENT_KICK","SESSION_EVENT_WALLET","SESSION_EVENT_OMG_RECEIVED","SESSION_EVENT_FREE_PLAY_RECEIVED","SESSION_EVENT_FREE_PLAY_REMOVED","SESSION_EVENT_FREE_PLAY_BATCH_ADDED","SESSION_EVENT_FREE_PLAY_BATCH_UPDATED","SESSION_EVENT_FREE_PLAY_BATCH_REMOVED","SESSION_EVENT_THIRD_PARTY_FREE_PLAY_UPDATED","SESSION_EVENT_NET_POSITION_UPDATE","SESSION_EVENT_RECEIVED_TOASTER","SESSION_EVENT_UPDATERESTRICTION_RECEIVED","SESSION_EVENT_PLAYER_BURNOUT_MESSAGE_RECEIVED","NET_POSITION_VALUE_UPDATE","SECOND_WEB_VIEW_NAVIGATE_SPORT","TIME_UPDATED_FROM_SERVER","ON_BROWSER_PAGE_HIDE","TOKEN_LIFETIME_EXPIRED","LIVE_TABLES_UPDATE","LOADING_INDICATOR_EMBEDDED_UPDATE","LOADING_INDICATOR_EMBEDDED_UPDATE_V2","LOADING_INDICATOR_EMBEDDED_CLOSED_BY_X","BLUE_RIBBON_PERSONAL_JP_STATE_CHANGED","BLUE_RIBBON_PARTY_JP_STATE_CHANGED","BLUE_RIBBON_PARTY_JACKPOT_WIN","BLUE_RIBBON_PARTY_JACKPOT_INSUFFICIENT_MONEY","BLUE_RIBBON_CONNECTION_COMPLETE","BLUE_RIBBON_IS_ENABLED_CHANGED","GAMES_QUESTIONNAIRE_COMPLETED","GAME_SEQUENCE_FINISH","GAME_POPUP_SHOW","USER_APPROVE_GAME_POPUP","BONUS_ABUSE_PARKING_MONEY","SHOW_POPUP_ABOVE_HYBRID_SECOND_WEB_VIEW","CLOSE_POPUP_ABOVE_HYBRID_SECOND_WEB_VIEW","DEPOSIT_WIDGET_CLOSED","DAILY_DEAL_REMOVE_INDICATION","LOCATION_POPUP_OPEN","LOCATION_POPUP_CLOSED","PLAYER_MESSAGES_STRATEGY_READY","CHANGE_OVERLAY_PRIORITY","OMG_DISPLAYED","LIVE_GAME_SWITCHED","PROMOTIONS_CHANGED","ODR_CLEAR_ALL_GAMES","CLIENT_EVENTS","MENU_CLICKED","LOGIN_BUTTON_CLICKED","REALITY_CHECK_OPENED","REALITY_CHECK_CLOSED","USER_EVENTS","ON_CLICK","ON_DOUBLE_CLICK","ON_SUBMIT","ON_MOUSE_MOVE","ON_MOUSE_DOWN","ON_KEY_PRESS","ON_DOM_MOUSE_SCROLL","ON_MOUSE_WHEEL","ON_TOUCH_START","ON_TOUCH_MOVE","ON_TOUCH_END","ON_MSPOINTER_MOVE","ON_RESIZE","ON_FOCUS","ON_CHANGE","ON_BLUR","USER_ACTIVITY_EVENTS_ALL","USER_ACTIVITY_EVENTS_FOR_HYBRID","ByThemeRegistry","_default","_registry","getRegistryItem","themeName","override","ThemeName","Casino777","Casino888","Casino888Cip","WsopCip","Casino888Cis","Harrahs","Wsop","BallysDover","Delawarepark","Harrington","SI","StyledByTheme","ComponentDefinition","currentTheme","ref","forwardedRef","forwardRef","styledByTheme","defaultComponent","imagePreload","src","TimeSpan","fromMinutes","Promise","res","rej","image","Image","onload","clearTimeout","timeoutRejection","error","backgroundUrl","imageObj","onerror","setTimeout","totalMilliseconds","imagePreloadWithDefault","defaultPath","catch","GamingHistoryType","BalanceValue","balance","bankroll","walletProxy","balanceType","numberIndex","search","symbolIndex","min","WrapperComponent","defaultProps","BOTH","span","moneyColor","Event","_subscriptions","name","callback","context","eName","eCallback","eContext","Error","Array","isArray","eventName","cleanFunctions","eventIdx","push","on","off","forEach","subscription","self","onceCallback","apply","_originalCallback","params","subscriptions","getAllSubscriptions","events","concat","event","ex","console","cb","splice","cleanFn","TopBannerDefaultBox","NEW_LIVE_CASINO_PAGE","mediaQuery","mAndBelow","GAMING_HISTORY_PAGE","sAndBelow","TopBanner777tBox","lAndBelow","TopBannerBox","forCasino777","TopBannerImageBox","PCBox","MobileBox","TopBannerLogoImageDefaultBox","styledByDevice","TopBannerLogoImageCasino777Box","LIVE_CASINO_PAGE","TopBannerLogoImageBox","DefaultBox","h1","medium","textLight","TopBannerTitleDefaultBox","TopBannerTitleCasino777Box","bold","TopBannerTitleBox","TopBannerLiveLogoDefaultBox","TopBannerLiveLogoCasino777Box","TopBannerLiveLogoBox","TopImageComponent","title","srcLogo","device","isMobile","liveArena","casinoLiveLogoMobile","casinoLiveLogoPC","alt","translation","translate","topImageRef","_renderLogoAndTitle","PcBox","DailyDealContainerBox","glowRotateAnimation","keyframes","DailyDealChestGlowBox","dailyDeal","glow","chestScaleAnimation","DailyDealChestBox","img","DailyDealTextStripBox","textStrip","DailyDealChestHaloBox","halo","DailyDealComponent","_onDailyDealClick","analytics","sendAnalytics","getCurrentArena","arenaName","visitDailyDeal","dailyDealCampaignId","chest","LinkToOfferBoxBase","isHybridEmbedded","CssRule","For","build","hasCircle","linkToOfferIconKeyframes","hexToRgba","LinkToOfferIconBox","shouldAnimate","landscape","not","tablet","LinkToOfferDialogCloseBox","zIndex","LinkToOfferComponent","_onCloseDialog","playerOfferings","hasOpenedPopup","closeCurrentPopup","setWelcomeOfferConfig","linkToOfferConfig","welcomeBonus","CloseIconComponent","icons","linkToOfferCloseIcon","isHighPriorityOffer","dialog","getMaxCGPOverlayZIndex","hybrid","isEmbedded","size","sizeIsHeight","currentOffer","currentLinkToOffer","_onLinkToOfferClicked","shouldUseLinkToOfferAnimation","offer","analyticsCategory","routing","currentRoute","data","arenaType","options","onPopupClosed","showOfferPopup","SwiperWindowComponent","arena","renderList","windowPosition","ArenaGamesListsComponent","_intersectionSpy","_timeoutRef","_onIntersect","_loadNextBatch","_onCaptureIntersectionSpyRef","element","_onFailedToCreateIntersectionSpy","setState","swiperWindowsCount","_arena","listsCount","state","getArena","reaction","user","isAuthorized","nextBatch","getNextBatchSize","_ensureIntersectionSpyIsOutsideOfViewPort","clearInterval","spyBoxRectangle","getBoundingClientRect","top","bottom","window","innerHeight","document","documentElement","clientHeight","from","x","i","range","_windowsRange","Fragment","map","listWindowPosition","onIntersect","onCaptureIntersectionSpyRef","onFailedToCreateIntersectionSpy","cyClass","OrbitComponentWithState","INSIDE_ORBIT_MENU_CONTAINER","baseColors","base01","base01Contrast","base01Dark","base01Light","base02","base02Contrast","base02Dark","base02Light","base03","base03Contrast","base03Dark","base03Light","base04","base04Contrast","base04Dark","base04Light","base05","base05Contrast","base05Dark","base05Light","GermanyResponsibleGamingButtonPlacement","TSR_TYPE","CASHIER_SESSION_TYPES","DEPOSIT","WITHDRAWAL","FULL_CASHIER_CDH","FULL_CASHIER","QUICK_DEPOSIT","COOLING_OFF","VERIFY_ID","MOBILE_VERIFY_ID","InsideOrbitMenuContainerComponent","isInsideAutomation","style","display","textAlign","id","ClockComponent","sdkProps","datetime","box","ClockComponentBox","classNames","componentId","SdkComponent","_elementRef","_captureElementRef","_renderSdkComponent","_sdkComponentRenderer","sdkComponentFactory","createComponentRenderer","sdkComponentRenderer","dispose","_disposeSdkComponent","prevProps","prevState","snapshot","JSON","stringify","Box","e","_passOnClick","MainScreenComponent","MAIN_SCREEN","CyClass","smoothscroll","polyfill","overrideJson","require","ApplicationStartupConfigurationsReader","_defaultOrbitConfigurations","_window","_launcherOverridesReader","_http","_logger","_launcherOverrides","_b2cConfigurations","a","getOverrides","_getB2CConfigurations","_getCasinoConfigurations","casinoConfigurations","configs","configurationPath","_getConfigPath","orbitServer","orbit","extraProperties","paths","server","brandName","brand","country","sdk","admin","adminConfig","b2c","mockApplicationStartupConfigs","configurationPathOverride","_getOrbitConfigPathOverride","endsWith","getGlobalProperty","ALL_CONFIGS_KEY","_applyOrbitConfigsOverrides","_applySdkConfigOverrides","_applyOrbitExternalConfigsOverrides","config","configsOverrideUrl","isAbsolutUrl","joinUrlParts","externalConfigsUrl","get","newConfigs","warning","externalLangConfigsUrl","language","iso3","newLang","lang","Language","iso2","orbitLang","SDKTexts","b2cConfigs","languageIso3Override","languageIso2Override","publicationIdOverride","publicationID","publicationId","segmentsOverrides","webData","segments","_applyB2COverrides","SdkHooksProvider","url","location","redirect","href","miniOrbit","isEnabled","openUrl","_isMiniOrbit","MINI_CIP_BASE_ROUTE","MINI_CIS_BASE_ROUTE","basePath","Uri","URL","pathName","getBase","toLowerCase","mapperData","configuration","usedGameTypesBySite","gameType","header","getHeaderRegulationDataElement","imageFilePath","resolveGameImagePath","orbitComponentInsideSdkProvider","cashier","gameRunner","PropertiesEvaluator","_propertiesEvaluators","_config","Check","isNullOrUndefined","propEvaluator","defineProperty","propertyName","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","index","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","err","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","then","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","_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","QA_ENVIRONMENT_POP_UP_BLOCKER_COOKIE","ServiceBase","_serviceFactory","_reactions","thisProto","getPrototypeOf","constructor","CLASS","expression","effect","opts","mobxReaction","getAbTestingDataForFeature","_getClassName","disposer","md5","QAEnvironmentPopUpBlockerService","password","servicesConfigs","QAEnvironmentPopUp","validationKey","_setCookie","expirationDate","setMonth","getMonth","cookies","createCookie","VideoPlayingServiceBase","observable","action","bound","gaCategory","_swiperHandler","_init","onAppPaused","_setIsAppVisible","onAppResumed","onGameOpen","_setIsVideoMuted","isSupported","isVideoMuted","isAppVisible","currentRegulationCode","regulation","getRegulationCode","disableForRegulationPreLogin","LiveVideoStream","_checkIfSupported","structuredLoggingService","getLogger","addCategory","addAction","info","_setIsSupported","computed","LiveStreamPlayingService","LiveStreamNativePlayer","LiveStreamHlsPlayer","gameInfo","videoReference","dontAutoSwipe","streamSource","videoURL","watchTimeLimit","os","isAndroid","TextTranslation","translationService","translationKey","_parameters","TranslationService","translatedTexts","parameters","translatedPhrase","langData","currentLanguage","_resolveBraces","log","str","objectKeys","objectKey","resolveConfigurationValue","CurrencyService","withDecimal","formatMoney","minBet","maxBet","getCurrencyIso3","AnalyticsService","category","label","omitStructuredLogger","engine","sendToDWH","addLabel","addValue","addCustomData","customData","appID","setAppID","setEventType","eventType","eventData","getGoogleClientID","LobbyGameInfoPreviewService","serviceFactory","_setGamePreviewTimeout","_clearGamePreviewTimeout","_allowPreview","_currentGamePreviewPinned","_resetGamePreview","currentPreviewedGame","gamesMap","clearGamePreview","allowGamePreview","_setCurrentPreviewedGame","RunningGameService","_listenForLastRealGame","_listenForLastOpenDemoGame","isGameRunning","continuePlayingCurrentGame","closeRunningGame","lastGameInfo","lastPlayedRealGame","correlatedGamesForLastPlayedRealGame","onGameClose","closeOptions","isReal","isGamePlayed","showNextGameSuggestion","setLastPlayedRealGame","getGameInfo","getCorrelatedGames","correlatedGames","getGamesInfoArray","gameInfosArray","_setLastPlayedRealGame","_setCorrelatedGamesForLastPlayedRealGame","gi","setLastOpenDemoGame","_setLastOpenDemoGame","lastOpenDemoGame","GameInfoButtonDefaultBox","boxBorderContrast","GameInfoButtonCasino777Box","GameInfoButtonBox","DialogTitleBox","DialogCloseButtonBox","XCloseButtonBox","components","modalDialog","closeButtonSize","APPLY_BORDERS","APPLY_ANIMATION","MOBILE_CENTERED_HEADER","FORCE_TRANSPARENT_BACKGROUND","FORCE_TRANSPARENT_CONTENT_BACKGROUND","DISABLE_FULLSCREEN_MOBILE","FORCE_CENTRALIZATION","APPLY_MAX_HEIGHT","FORCE_FULLSCREEN_TABLET","APPLY_MODAL_CLOSING_ANIMATION","DialogHeaderDefaultBox","backgroundLight","height","DialogHeaderCipBox","DialogHeaderBox","forCip","forWsopCip","DialogHeaderComponent","hideCloseButton","onCloseButtonClick","_renderTitle","_renderCloseButton","headerHeight","headerRegulationDataHeight","_renderContent","TitleComponent","_openGameInfo","_closeInfoMobile","infoPageURL","dialogHandler","isEmpty","intermediatePageGameInfoButton","_renderOpenInfoButton","xlAndBelow","StripeImageBox","GameStripeImageComponent","imageSrc","stripImage","stripeImageFallback","fallbackSrc","TrailerBox","GameTrailerComponent","width","poster","autoPlay","loop","type","TrailerOrStripeImageComponent","hasVideoTrailer","CellValueBoolBox","checkMark","CellValueTextDefaultBox","brandSecondary","CellValueTextCasino777Box","dangerDark","CellValueTextBox","CellTitleBox","GameFeatureCellComponent","_renderNoInfo","check","_renderCheckbox","_renderDescription","_renderValue","TableContainerDefaultBox","table","boxBorder","boxBorderLight","TableContainerBoxCasino777Box","brandSecondaryDark","TableContainerBox","GameFeaturesTableComponent","cells","reduce","acc","curr","cell","features","chunks","splitArrayToChunks","cellSpacing","chunk","_renderGameInfoTableRow","GameDescriptionTextBox","regular","h2","generalTitle","flexAdaptiveSizeItem","GeneralTitleDefaultBox","SectionTitleDefaultBox","common","secondary","RTL","spriteSheet","BasePcBox","BaseMobileBox","GeneralTitleCasino777Box","SectionTitleCasino777Box","SectionTitleBox","GameAboutComponent","aboutText","GameJackpotPreviewBox","GameJackpotDefaultBox","GameJackpotSIBox","GameJackpotBox","forSI","GameJackpotValueDefaultBox","GameJackpotValueSIBox","brandPrimaryContrast","GameJackpotValueBox","GameJackpotComponent","jackpotValue","jackpots","getGameJackpot","currency","JackpotAmountPreviewDefaultBox","JackpotAmountPreviewCasino777Box","JackpotAmountPreviewBox","GameJackpotPreviewComponent","GamePreviewInfoContainerBox","GamePreviewInfoContainerComponent","hasJackpot","generalSettings","shouldRenderJackpotPreview","gamesPreviewConfig","shouldDisplayJackpot","gameTitleComponent","gamePreviewFeaturesSelector","getPreviewFeatures","_renderJackpotPreview","ContainerBox","GameIconBox","singleGame","defaultBackgroundImage","PlayButtonsBox","GameIconWrapperBox","xs","GameIconAndPlayButtonsComponent","_openRealGame","open","openGameParams","isRealMode","_openDemoGame","allowDemoButtonInIntermediatePage","gameImageInsideIntermediatePage","getGameImagePlaceHolderUrl","_renderDemoButton","IntermediatePageBox","texture","StripeImageAndButtonsBox","GradientDefaultBox","GradientCasino777Box","backgroundContrast","GradientBox","WarningImageBox","WarningTextBox","WarningMessageBox","RealMoneyOnlyWarningComponent","onlyRealMoneyGameWarning","OpenGameIntermediatePageComponent","allowWithdrawOnlyFromReal","pageName","_renderOnlyRealMoneyWarning","showIntermediatePage","isCalledFromIntermediatePage","NoGameRestriction","GAMES_CATEGORIES","gameInfoComparerByTitle","game1","game2","List_Type","GameInfo","_rawGameData","_aboutText","allowSwitchGameMode","numberOfLines","_hasCustomFilter","filterName","filtersList","findIndex","filter","hasBonusGames","numberOfDecks","isMultiHand","hasFreeSpins","subGroupName","isEliteLounge","hasSideBets","maxBetPerSpot","ClassicSlots","HighVolatilityTag","LowVolatilityTag","isAllowedCategory","gameCategory","gameGroup","_isAuthorized","forceDemoButton","_isMobile","isAnonymousSupported","siteMap","isUrlInSiteMap","debug","Boolean","getGameCategory","companyName","vendorName","squareIcon","animatedIcon","shouldUseSquareIcons","hybrid_icon","animated_square","getAnimatedJsonUrl","_getResolvedGameImagePath","animated_round","icon","pngImagePath","animatedImageTimings","delay","interval","badge","video_thumbnail","gameBadgePath","maxBetPerBrand","useSquareIcon","gameIconPlaceHolderSq","gameIconPlaceHolder","seoValue","seo","gameName","categoryName","imagePath","strip_mobile","strip_pc","previewDefaultImage","gamesPreviewDefaultImages","gameCategoryWithUnderScores","multiplayer","forceIntermediatePageForAutorizedUsers","isDemoModeSupported","shouldUseModernMode","_openInModernMode","_openInLegacyMode","cmsSegmentation","isCstatus","_showIntermediatePage","_shouldRedirectToMembership","_openMembership","closeGame","_sendOpenGameAnalytics","_sendGraphyteOpenGameEvent","gameController","marketingParams","eventsTrigger","updateMarketingParams","openGame","gameMode","Real","freePlayParams","skipFreePlaySuggestion","Demo","shouldSuggestNextGame","shouldShowIntermediatePage","showModal","graphyteClickstream","sendGameOpenEvent","gameTitle","listTitle","gameIndex","openGameOptions","showRegister","isCisOrCip","showRegisterButton","freePlayData","freePlayId","freePlayType","marketing","getMarketingData","gameHandler","externalLinks","openLink","source","dl","_replaceUnderscore","analyticsLabel","analyticsAction","openFromDrawer","listPosition","aiEngine","AIListTypeID","AdminListID","sendElasticInfoEvent","words","arena_icon","restriction","gameGroupId","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","statusCode","_getGamesInfoMap","_setGamesMap","getGamesInfo","_buildGamesMap","inCacheGames","getGamesInfoForHistory","getGamesInfoMap","numberOfGames","forceSquareIcons","animated","getAdminArenaLists","adminArenaConfigData","arenaKey","listType","adminLists","lists","list","currentList","Metadata","segmentation","SubLists","gamesId","ConfigurationsService","startupConfigs","startupConfiguration","_gameGroupToCategoryMapping","_createConfigData","launcher","getTestedGames","originalConfigData","homePage","gamesLists","Swipers","popularTables","PopularTables","swiperGamesList","allGamesGrid","Grids","injectAdminArenas","_getConfigEvaluationContextServices","_defineCustomConfigProperty","getOwnPropertyNames","parseInt","runInAction","configData","evaluator","gamesCategories","mappedCategory","_mapGameCategoryToEnum","gameTypesMap","_getUsedGamesByHomePage","_getUsedGamesByArenas","_getUsedGameTypesByLiveGamesArena","_getUsedGameTypesByNewLiveGamesArena","values","gamesList","gamesIds","arenaConfig","swiperConfig","gamesGridConfig","liveCasinoArenaConfig","gameTypeConfig","gameId","popularTablesConfig","tableConfig","tableGamesIds","fullPath","objectValue","fullPathArray","split","fileName","imageFileName","imagesBasePath","gamesImages","serverPath","path","homePageGamesLists","jackpotId","newGameArenaConfig","find","listConfig","isSelfUpdatedByNewest","_getCurrentArenaLists","listId","homePageHeaderArenas","headerArenasOrder","arenaHeader","homepageHeader","arenaNames","orderedArenas","getConfigs","allLinks","sideMenu","menu_links","LIST_TYPE_ID","UserService","waitForAutoLogin","_updateUserData","onOAuthStateChanged","logoutReason","userData","_userData","localStorage","setItem","statusGroupId","_checkForFaultyCStatus","playerStatus","getItem","scrollTo","_updateSegments","cStatus","IsAuthorized","IsVIP","GenderId","DaysSinceRegistration","daysSinceRegistration","activeChallengeCount","userName","cid","registrationCountry","joinDate","timeSinceRegistration","parse","totalDays","Infinity","playerRMStatus","depositWidgetEligibility","isABEligible","isNtsEligible","errorMessage","ineligibleReason","cashOutWidgetEligibility","getCountryName","getAutoLoginToken","token","getPlatformToken","viewOptions","openLoginForm","logout","isInAutologin","_isInAutoLogin","waitForAutologin","_removeAutoLoginTokenFromUrl","urlWithoutToken","currentUri","removeSearchParam","autoLoginParams","runAutoLogin","offset","time","userController","selfExclusionPanic","timezoneOffset","productPackage","getProductPackageId","tokenInfo","loginIP","BrowserButtonsHandlerService","pushedFakeHistoryState","_subscribe","isMobileSideMenuOpen","isMobileMenuOpen","isUserAreaMenuOpen","userMenu","isOpen","goBack","pushWithoutValidation","pathname","_onBackButtonClicked","closeMobileMenu","closeMenu","_callback","Device","inCasino","subscribeTo","hardwareBackButton","popstate","SegmentationAggregatorService","userSegments","cmsSegments","deviceSegments","isMiniOrbit","isPWAInstallable","progressiveWebApp","_setAllSegments","_extraSegments","allSegments","_allSegments","segmentsLastUpdate","now","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","isIpad","SEO_CATEGORIES","FilterType","NO_AI_GAMES_RECOMMENDATIONS","AiEngineService","_isLoadTrendingRecommendedGamesForPlayerInProgress","_onOauthChange","onGamesQuestionnaireCompleted","_updateAiRecommendedGames","_loadTrendingRecommendedGamesForPlayer","_trendingGamesRecommendations","gamesByBets","gamesByActiveUsers","tempGameTypesMap","aiRecommendedGames","trendingRecommendedGamesForPlayer","BETS","ACTIVE_USERS","_allAiRecommendedGameTypes","_initalizeTrendingRecommendations","getAIRecommendations","filterOutRecentlyPlayedGames","aiRecommendationsData","_setAiRecommendedGames","maxGames","_setAllAiRecommendedGameTypes","_sendAIRecommendationAnalytics","analyticsObject","sendAIRecommendations","listIDs","insightController","getCasinoRecommendedDynamicListsForPlayer","listsIDs","allAiRecommendedGameTypes","gamesMapOverride","ignoreNumberOfGames","fixedGameTypes","aiGameTypes","originalIndexes","sort","gt1","gt2","index1","index2","getTrendingRecommendedGamesForPlayer","trendingRecommendedGames","_setTrendingRecommendedGamesForPlayer","listTypeId","trendingRecommendedGamesForPlayerByBets","trendingRecommendedGamesForPlayerByActiveUsers","gamesTypesArray","aiGamesByScore","_getGamesTypesByListTypeID","first","second","firstGamePlace","indexOf","secondGamePlace","DeepLinkJsonObjectBuilder","actionsChain","deepLinkObject","resultedMarketingParams","currentActionIndex","currentActionsChainPointer","actionPropName","idPropName","descriptor","actionParams","wtc","nextAction","join","DeepLinkJsonObjectParser","actionNextPropName","idNextPropName","DEEP_LINK_HASH_PARAM","DEEP_LINK_QUERY_PARAM","SPECIFIC_NAVIGATION","SPECIFIC_NAVIGATION_PARAM","DeepLinkParserService","deepLinkJson","_extractDeepLinkJsonFromFragment","_extractDeepLinkJsonFromDeepLinkQueryParam","isDeepLinkFromSpecificNavigation","_extractDeepLinkJsonFromSpecificNavigationQueryParam","_isDeepLinkObject","fragment","hash","decodeUriComponentRecursive","queryParams","getParamValue","DeepLinkService","_isExecuting","_executeDeepLinkFromSdkEvent","_waitForAutologin","deepLinkActionsFactory","createActionFromDeepLinkObject","_executeAction","_executeDeepLinkFromPostMessage","postEvent","messageData","ActionName","deepLinkJsonObject","_subscribeToCurrentUriReaction","onDeepLinkReceived","postMessage","_executeDeepLinkFromCurrentRoute","execute","lastTimeDeepLinkWasExecuted","reactionDisposer","createActionFromCurrentRoute","urlWithoutHash","getUrlWithoutHash","navigate","isArrayOfStrings","CGP_EVENTS_NAMES","SdkEvents","CGP","onEvent","SdkEventsTrigger","fire","gametype","SdkService","_events","_updateLocalStorageAccordingToCookie","_displayHybrid","hasNavigationHistory","routeChanged","isFunction","displayHybrid","isLoginFromRegistration","getCGPMaxOverlayZIndex","getRegulationDateAndTimeFormat","rawUserData","getUserData","rawAccountData","accountData","getDepositWidgetEligibilityDetails","getCashoutWidgetEligibilityDetails","firstName","FirstName","lastName","LastName","isVIP","DWHGameGroupOrientation","StatusGroupId","genderID","TimeSinceRegistration","PlayerRMStatus","sessionId","getSessionId","RegistrationCountry","JoinDate","isFTD","FTDSubBrand","IsPromotionPermitted","isSdkReady","getAIList","numberOfRecentlyPlayedGameToFilterOut","aiGameTypesArray","listTypeIds","getAINewGamesList","getCurrentServerDate","getAbTestingData","featureName","waitForAnonymousAbTestingData","getUserSegments","format$$$","linkParams","useCallbackURL","getSourceSubBrandName","callbackUrl","getExternalBrandCallbackURL","openExternalLink","view","openResponsibleGamingLink","navbar","login","getRegulationService","isHybridEmbeddedGame","openHybridLink","autologinCookie","getCookie","setAutoLoginToken","removeCookie","getGRSEnvironments","countPlayerChallenges","openInNewWindow","menuActionExecute","method","getExternalBrandCallbackURLMethod","menuJSON","startLiveTableFeeds","startEvolutionLiveFeeds","stopLiveTableFeeds","stopEvolutionLiveFeeds","refreshThirdPartyVouchers","closeCurrentDetailHistory","campaignId","getRichPageUrl","getDailyDealCampaigns","getJackpotsWithState","getJackpotAmountByGameType","getNumberOfAwaitingMessages","openOmgAwaitingMessages","getFreeplayVouchers","toasterData","showToaster","plainNumber","getBankroll","loadSafezoneSdk","getProductPackage","getPlatformSystemID","getSkin","getClientPlatform","getVersion","getCulture","shouldReplaceLoginWithDownloadAppForMobileWebApp","shouldPreventOpenGameForMobileWebApp","getBrandName","getMinimumAge","onOrbitInitComplete","getEnvironment","pushDataToDataLayer","getCountryIso3","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","SAFEZONE_CONTAINERS_ID","COMPONENT_NAMES","OtherFilter","allAvailableFilters","_allOtherCategoryFilters","availableFilter","filterType","categoryFilter","currentActiveFilters","activeCategoryFiltes","activeFilter","applyFilter","VendorFilter","_vendorName","featureFilter","removeSpaces","CustomFilter","_filterType","_evaluate","GameGroupFilter","_gameGroupName","SubgroupNameFilter","_subGroupName","AllRouletteFilter","AllBlackjackFilter","AllPokerFilter","AllBaccaratFilter","FILTERS","game","isExclusiveGame","isNewGame","hasLowStakes","isClassicSlot","hasHighVolatility","hasLowVolatility","CompanyFilter","_companyName","GameTypesFilter","_gameTypes","GamesFilterService","_filterByTextDebounceTimeout","_availableGamesFilters","other","filters","_currentFilters","searchText","_searchText","filteredGamesMap","_applyFiltering","isFilteredGamesMapInitialized","routeData","_setCurrentFilters","_setSearchText","trim","f","isDynamic","arenaFilters","_getArenaFilters","filtersFromFragment","_extractFiltersFromFragment","newFilters","filterId","_cloneFilter","filterFromFragment","dynamicFilter","dynamicFilterFactory","createDynamicFilter","filterID","gameFilter","_applyTextFiltering","_applyGamesFilters","onFilters","onFiltersGroupedByType","filterDefinition","categoriesFilters","_checkCategories","_checkFeatures","searchWordsRegExp","word","RegExp","isAllWordsMatch","_getAllFiltersDisabled","_doFilterNavigation","shouldRedirect","_disableAllFilters","filterIds","originalFilter","checked","filterValue","filters_v2","OPEN_SAFEZONE_SOURCE_VALUES","CHANNEL","CLOSE_SAFEZONE_SOURCE_VALUES","SafeZoneDeeplink","ApiListType","ACTIONS","SAFEZONE_EVENTS","UsefulLinkActions","link","handler","_findHandler","linkId","handlerName","charAt","openOldCashier","sessionType","openMyAccount","tabId","openContactUs","target","AppLauncher","apps","CR_HELP_CENTER","enabled","_openHelpWidget","onContactUs","_openLinkAction","safezone","openFullSafezone","TimeSpentReminderPage","openHelpPage","appLauncher","openHelpWidget","businessCorrelationID","tools","getGuid","channel","area","AreaType","NavigationMenu","AppIdentifiers","CRHelpCenter","CasinoClient","shouldOpenLocal","local","sourceLink","li","boxBorderDark","textHover","backgroundHover","hideArrow","UsefulLinksItemDefaultBox","UsefulLinksItemCasino777Box","UsefulLinksItemCipBox","UsefulLinksItemBox","forCis","ConfigUsefulLink","linkConfig","iconAsset","iconURI","imageAsset","imageAlt","imageURI","renderImageItem","renderTextItem","UsefulLinksItemSideTextBox","SdkUsefulLink","activator","sideText","sideTextClass","ANALYTICS_CATEGORY","USEFUL_LINKS_ACTION","UserMenuService","linkActions","overlay","registerConsumer","reFetchLinks","onTouchIDActiveStateChanged","_fetchLinks","links","_setUsefulLinks","shouldOpen","shouldBeRewards","isRewardsInfo","newLinks","usefulLinks","fetchSteps","_fetchConfigLinks","_fetchSdkLinks","all","stepLinks","combinedLinks","n","orderLinksByPosition","sortingOrder","sortBy","drawer","_doConfigMenuAction","getUsefulLinks","sdkLinks","filteredOutIds","_getSdkFilteredOutUsefulLinksIds","pickedLinks","_doSdkMenuAction","executeAction","hour","getHours","minute","getMinutes","welcomeMessage","defaultMessage","conditions","ruleHour","ruleMinute","openDeposit","CHANNEL_SOURCE","casinoClient","UserArea","CHANNEL_ELEMENTS","depositButton","openWithdraw","withdrawButton","showLoyalty","menuFlow","hasCustomFlow","executeCustomFlow","continue","externalLinkSource","openMenu","_setIsRewardsInfo","_setIsOpen","right","closeDrawer","GameBadgeDefaultBox","GameBadgeCasino777Box","GameBadgeBox","GameBadgeComponent","badgeUrl","lazy","GAME_BOX","GAME_BOX_JACKPOT_TEMPLATE","TWO_LINES_TITLE","ENABLE_HOVER_ANIMATION","SWIPER_MODE","GAME_IMAGE_CONTAINER","SINGLE_GAME_IMAGE","commonGameImageCssMixin","GameImageBox","hide","GameImageAnimatedBox","GameImageAnimatedComponent","animatedImageWrapper","pixiAnimationRegistration","_captureAnimatedImageElementRef","unregister","loadPixiAnimatedIcon","gameAnimatedIconsManager","register","jsonUrl","animationJsonUrl","wrapper","timings","animationTiming","onAnimationLoad","onAnimationBeforeUnload","onAnimationUnload","AspectRatioBox","expectedWidth","expectedHeight","AspectRatioContentBox","useBGColorDuringLoadAnimation","isLoading","backgroundDark","AspectRatioContainerComponent","GameImageComponent","_loadAnimatedIconTimeout","onSettled","loadingAnimation","attemptLoadAnimatedIcon","getGameImage","useSquareIcons","getAnimatedImageTimings","hideStaticImage","onAnimationIconStateChange","abTestingFeatureDataProvider","animatedGameIconsDisabled","seoAlt","getImageSeoAlt","imgUrl","useLazyLoad","useLazyLoading","getGameImageExpectedSizes","onLoadStart","onLoad","GameImageContainerComponent","_handleImageDoneLoading","gameItemImageRef","createRef","allowTap","elementRef","onOpenRealGame","isCasinoGameIcon","playRealGameButton","GameTitleDefaultBox","hasTwoLinesTitle","GameTitleCasino777Box","textContrast","GameTitleCipBox","GameTitleSIBox","GameTitleBox","MinMaxBetAmountDefaultBox","dangerLight","mAndAbove","MinMaxBetAmountCasino777Box","MinMaxBetAmountBox","InfoPageButtonComponent","infoIcon","onOpenInfoPage","margin","GameButtonsBox","PlayDemoButtonComponent","onOpenAnonymousGame","GameDetailsContainerDefaultBox","squareGameIcon","horizontalLineGlowPC","horizontalLineGlowMobile","GameDetailsContainerCasino777Box","GameDetailsContainerBox","JackpotAmountDefaultBox","JackpotAmountCasino777Box","JackpotAmountSiBox","small","JackpotAmountBox","GameInfoContainerBox","AmountContainerBox","TwoRowsGameTitleContainerBox","GameDetailsContainerComponent","disableGameInfoHover","allowHoverDetails","hasInfoPage","allowDemoButtonInSingleGame","_allowHoverDetails","_renderJackpot","formattedMinBaxBets","formatMinMaxBet","allowMinMaxBet","_renderMinBaxBet","_hasDetails","_renderAmount","_renderGameInfoSection","_renderGameButtons","HOME_PAGE","WIDE_GRID","xlAndAbove","GameDefaultBox","GameCasino777Box","GameCisBox","GameBox","PlayRealButtonDefaultBox","lowHeight","xlExact","PlayRealButtonCasino777Box","PlayRealButtonBox","isSquareIcon","cardAndTablesSquareBackgroundImage","cardAndTablesBackgroundImage","defaultSquareBackgroundImage","getPlaceholderBackground","ORBIT_TAP","GameImageContainerDefaultBox","VIDEO_ITEM_TYPE","GameImageContainerCasino777Box","GameImageContainerBox","GameNumberBadgeBox","SingleGameRegularTemplateComponent","isMobileOS","showNumberBadge","_renderGameNumberBadge","onMouseEnter","onMouseLeave","_renderPlayRealGameButton","CssClassNameBuilder","_classes","classes","c","verticalLineGlow","ultra","SingleGameJackpotTemplateComponent","LiveGameContainerBox","SingleGameLiveTemplateComponent","tableId","liveTable","liveTableFeeds","getTableInfo","fluidWidth","seoCategory","captureGameElementRef","VideoTileBox","newLiveCasino","gridItem","wrapperBorder","VideoOverlayItemBox","capsule","VideoSoundButtonBox","VideoSoundButtonComponent","videoPlayingService","MuteIcon","muteIcon","UnmuteIcon","unmuteIcon","toggleVideoSound","_handleClick","_renderIcon","VideoTileOverlayComponent","_padding","videoPlaying","bottomLeftComponent","left","bottomRightComponent","_renderTopRight","_renderBottomLeft","_renderBottomRight","VideoTileOverlayBox","VideoTileStaticImageOverlayBox","VideoTileSkeletonContainerBox","VideoDefaultBox","video","VideoBox","VideoPlayButtonBox","VideoContainerDefaultBox","displayVideo","videoIsLoading","videoWatchTimeLimitReached","VideoContainerBox","VideoComponent","_videoElement","_isAppVisible","_captureVideoRef","mediaElement","_playVideo","_videoPlayer","_createVideoPlayer","play","_pauseVideo","pause","_detectIfVideoIsInFocus","isInCenterStage","inViewport","_handlePlayVideoClick","logUIAction","_renderPlayerControls","autoplayAllowed","_retryPlay","_destroyPlayer","player","getVideoPlayer","isLastGametype","liveStreamPlayer","setLiveStreamPlayer","hasError","onError","onLoading","watchTimeLimitReached","onWatchTimeLimitReached","playsInline","muted","destroy","SkeletonAnimatedButton","borderRadius","SkeletonAnimatedRectangle","VideoTileFooterBox","VideoTileSkeletonbox","DummyTextBox","DummyTextBoxAbsolute","DummyTextBoxRelative","SingleGameSkeletonComponent","placeholderImageSrc","templateType","JACKPOTS_ITEM","_renderJackpotGameSkeleton","LIVE_STREAMING_ITEM","STATIC_VIDEO_ITEM","_renderVideoSkeleton","_renderRegularGameSkeleton","VideoRetryScreenTileBox","VideoRetryScreenIconBox","VideoRetryScreenTitleBox","VideoRetryScreenTextBox","VideoRetryScreenComponent","_retryAndSetError","retryFn","setHasError","BrokenLinkIcon","brokenLinkIcon","sizeUnit","SvgSizeUnit","Rem","sizeVariant","VideoThumbnailImageComponent","_getImageSource","videoThumbnailUrl","tableInfo","TableImage","gameArenaIcon","imageRandom","random","addQueryParam","filterBlur","VideoTileBettingRangeBox","VideoTileGameTitleBox","VideoTileFooterSectionBox","VideoListJackpotValueBox","VideoListJackpotContainerBox","VideoTileFooterComponent","_tableInfo","MinBet","MaxBet","Name","_renderMinMaxBet","_renderGameTitle","_renderSecondaryText","onClickPlay","VideoTileComponent","_posterImageLoadPromise","_retryFn","onPosterImageLoaded","setPosterImageLoaded","_onPlayClickHandler","_hasError","_posterImageLoaded","_isVideoLoading","firstTimeLoadingDone","_isFirstTimeLoading","_isWatchTimeLimitReached","statusText","setIsVideoLoading","setIsWatchTimeLimitReached","_renderVideoThumbnailImage","_renderPlayerOverlay","_renderTileOverlayComponent","_renderRetryScreen","videoItemType","STATIC","isLiveStreamOverlay","_renderPlayer","_renderFooter","_renderSkeleton","_renderStaticImageOverlay","VideoItemContainerBox","stepBackStyle","SingleGameVideoTemplate","_inSwiperIntersectionObserver","_viewportIntersectionObserver","_videoContainerElement","_captureVideoContainerRef","observe","unobserve","_inSwiperIntersectionObserverCallback","entries","entry","setIsInCenterStage","isIntersecting","_viewportIntersectionObserverCallback","setInViewport","_getVideoPlayingService","LIVE_STREAM","liveStreamPlaying","staticVideoPlaying","intersectionObserverOptions","threshold","root","rootMargin","IntersectionObserver","_isInCenterStage","disconnect","_inViewport","_createViewportIntersectionObserver","intersectionTarget","_createSwiperIntersectionObserver","_destroySwiperIntersectionObserver","_destroyViewportIntersectionObserver","SingleGameComponent","animatedIconState","openRealGame","_openGame","openAnonymousGame","openInfoPage","setAnimatedIconState","lobbyGameInfoPreview","setGamePreview","openInRealMode","skipIntermediatePage","builder","append","isInsideSwiper","toCssClass","_buildComponentClasses","LIVE_CASINO_ITEM","JackpotThemeType","GamePlaceHolderBox","embededHybrid","BaseGameImageBox","SingleGamePlaceholderComponent","emptyImage","SwiperWrapperDefaultBox","SwiperWrapperCasino777Box","SwiperWrapperBox","isTouchDevice","SwiperGamesListBox","SwiperBox","OrbitSwiperComponent","_swiperGameListElement","_captureSwiperGameListElement","viewModel","swipeLogicHandler","setElement","_title","_swiperWrapperElement","showGameTitleOnMultipleLines","numberOfGamesSkeletons","placeHolders","numberOfPlaceholders","numSkeletons","skeletons","_renderOneGame","lastGameType","_renderGamesSkeletons","isVisible","renderListHeader","_captureSwiperWrapperElement","isTouch","renderSpecialWidgets","_renderGames","_renderPlaceholders","renderListNavigation","renderListFooter","RecentlyPlayedComponent","max","GamesListBaseModel","_isAISorted","getAiEngine","maxGamesToShowInList","_shouldBeDisplayed","_applyGameTypesTransformations","_getGameTypes","_reduceGameTypes","_sortGameTypes","_distinctGameTypes","sortGames","_numberOfGamesToBeIgnoredInAISorting","gamesFilter","Set","_renderList","JACKPOT_WIDGET","RED_TIGER_JACKPOT","ListTitleIconDefaultBox","gamesListTitle","dailyJackpot","EXCLUSIVES_LIST_ICON","exclusive","ListTitleIconWsopCipBox","gamesListTitleOverride","ListTitleIconCisBox","ListTitleIconBox","JackpotWidgetDefaultBox","isClickable","JackpotWidgetBox","JackpotWidgetBgBox","shouldRenderSkeleton","byType","jackpotType","widgetIsMinimized","JackpotWidgetLogoBox","forcePCView","JackpotWidgetAmountDefaultBox","JACKPOT_STATE","Cold","backgroundMiddleDark","widgetWidth","JackpotWidgetAmountCasino777Box","themeType","Light","danger","JackpotWidgetAmountBox","JackpotWidgetFooterBox","JackpotWidgetClockLabelDefaultBox","Hot","JackpotWidgetClockLabelCasino777Box","JackpotWidgetClockLabelBox","JackpotWidgetClockDefaultBox","clock","JackpotWidgetClockCasino777Box","JackpotWidgetClockBox","JackpotWidgetClockComponent","updateClockInterval","clockInit","getMustHitTime","clearClockInterval","updateClock","setInterval","serverDate","mustHitDate","remainingTimeMilis","getTime","remainingTimeTimeSp","fromMilliseconds","clockValue","useTotalHours","jackpotsWithState","getThemeType","JackpotWidgetAmountLabelDefaultBox","JackpotWidgetAmountLabelCasino777Box","JackpotWidgetAmountLabelBox","JackpotWidgetCollectingLabelDefaultBox","JackpotWidgetCollectingLabelCasino777Box","JackpotWidgetCollectingLabelBox","JackpotWidgetCollectingAmountDefaultBox","JackpotWidgetCollectingAmountCasino777Box","JackpotWidgetCollectingAmountBox","animationProps","JackpotWidgetBorderShine","startPos","BorderShineWidth","endPos","borderShineKeyframes","AnimatedIconUnloadReason","JackpotWidgetRadialShine","RadialShineWidth","radialShineKeyframes","JackpotWidgetAspectRatioBox","shouldMinimize","JackpotWidgetAmountContainer","JackpotWidgetFooterElementSkeletonBox","JackpotWidgetClockLabelSkeletonBox","JackpotWidgetCollectingLabelSkeletonBox","JackpotWidgetFooterSkeletonBox","JackpotWidgetAmountSkeletonBox","JackpotWidgetComponent","_onWidgetClick","widgetConfig","listInfo","getGamesListByJackpotId","JackpotType","Party","partyJackpot","openJackpotInfoPage","_isWidgetClickable","aspectRatioBox","resizeObserverInstance","_captureJackpotWidgetAspectRatioBoxRef","refEl","ResizeObserver","setWidgetWidth","oldRefEl","readyState","imagesReady","JackpotInternalId","Daily","jackpotHandler","currentJackpots","jackpotData","_isJackpotHandlerReady","logo","_setImagesReady","jackpotState","OffHours","Regular","jackpotInfo","getPartyJackpot","isExpired","joinStatus","NotJoined","_shouldRenderSkeleton","startGradual","lastWinAmount","WrapperBox","mustHitTimeFn","mustHitTime","jackpotAmount","_getCountDownTimerTranslationKey","elementRectangle","JackpotWidgetCasino777Box","JackpotWidgetWrapperBox","RedTigerWidgetDefaultBox","Pc777Box","RedTigerWidget777Box","RedTigerWidgetBox","RedTigerWidgetHitAreaDefaultBox","RedTigerWidgetHitAreaCasino777Box","RedTigerWidgetHitAreaBox","RedTigerWidgetFrameContainerDefaultBox","iframe","RedTigerWidgetFrameContainerBox","RedTigerWidgetComponent","redTiger","redirectToWidgetActionLink","actionLink","skin","_logMissingProps","frameBorder","scrolling","getWidgetUrl","GeneralTitleBox","ListTitleTextDefaultBox","redTigerJackpot","ListTitleTextCasino777Box","ListTitleTextCipBox","ListTitleTextCisBox","ListTitleTextBox","ListTitleDefaultBox","ListTitleCasino777Box","ListTitleCipBox","ListTitleCisBox","ListTitleBox","GameListTitleComponent","cssClasses","SwiperButtonsDefaultBox","SwiperButtonsCasino777Box","SwiperButtonsBox","SwiperButtonBox","OrbitSwiperButtons","onSwiperButtonPrevClick","swiper","movePrevious","onSwiperButtonNextClick","moveNext","seeAllClickHandler","seeAllButtonUrl","allowNext","allowPrevious","fixedSize","backIcon","disabled","forwardIcon","reverseOnRTL","_renderMoveNextAndPreviousButtons","_renderSeeAllButton","SwipeLogicHandler","_gamesListViewModel","_resizeEventHandler","_isRTLLanguage","_isSwiperOnTheMove","_mobileScrollingTimeout","_onMobileSwipe","_sendAnalytics","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","getTranslation","_getTitleTranslationParams","HourlyCaptain8","shouldInjectUsernameInTitle","ignoreNumberOfGamesInAISorting","seeAllConfig","seeAll","useAISortedList","isFilterOn","abFiltering","filterGamesByAbTesting","_getNumberOfGamesSkeletons","_reduceGameTypesForJackpotsItemTemplateInHomePage","isHomePage","forceListInLayout","redTigerWidget","onClickHandler","_renderJackpotWidget","_renderRedTigerWidget","_renderHeaderIconAndText","_getTitleCssClasses","_renderSwiperButtons","_seeAllUrl","titleIconClassName","_isJackpotWidgetHost","_isRedTigerJackpotWidgetHost","_renderHeaderIcon","_renderHeaderText","ApiListBaseModel","RecentlyPlayedListModel","listKey","TopPicksComponent","TopPicksListModel","AiNewGamesListComponent","NewGamesListModel","aiNewEngine","aiNewRecommendedGames","PlayersLikeYouComponent","PlayersLikeYouListModel","_computeGameTypes","playersLikeYouGamesListTypeId","topCount","topNumber","countryName","StaticSwiperListModel","GamesGridBatchComponent","isResolved","_intersectionObserver","_intersectionObserverCallback","intersectionRatio","_destroyIntersectionObserver","_captureThresholdElement","_createIntersectionObserver","listTitleTranslationKey","nextBatchGameTypes","propsForNextBatch","batchIndex","batchIndexOffset","currentBatchGameTypes","_renderNextBatch","_renderCurrentBatch","GamesGridDefaultBox","GamesGridCasino777Box","GamesGridBox","NoGamesFoundMessageBox","p","GamesGridContainerBox","CGP_GAME_OPEN","GamesGridComponent","_renderNoGames","GamesGridListModel","gridConfig","LiveCasinoListModel","moveGamesThatOpenSoonToTheEnd","BecauseYouPlayedComponent","runningGame","BecauseYouPlayedPlayedListModel","listenForLastPlayedRealGame","becauseYouPlayed","LiveStreamingListTitleBox","LiveStreamingTitleIconBox","LiveStreamSwipeLogicHandler","_services","_touchStartX","_swipeDirection","_touchDragThreshold","_swipeTransitionCss","_handleTouchStart","changedTouches","clientX","_handleTouchEnd","_handleTransitionEnd","firstElementChild","transition","_setIsNavigationAllowed","allowed","overflow","prepend","lastElementChild","requestAnimationFrame","LiveStreamingNavigationCommonBox","isActive","VideoListNavigationPrevButtonDefaultBox","VideoListNavigationNextButtonDefaultBox","VideoCutCommonBox","VideoListLeftCutDefaultBox","VideoListRightCutDefaultBox","VideoListNavigationPrevButtonBox","VideoListNavigationNextButtonBox","VideoListLeftCutBox","VideoListRightCutBox","VideoListComponent","_getLastGameType","DefaultVideoListModel","_offsetStorageKey","storedValue","baseArray","_gameTypesOffsets","_getGameTypesOffsetFromLocalStorage","newOffset","gTypes","lastGame","unshift","PrevIcon","leftArrowIcon","NextIcon","rightArrowIcon","viewBox","filterUnits","dx","dy","stdDeviation","in2","in","fill","LiveStreamingVideoListModel","_isLiveStreamDisabled","isVideoLiveStreamEnabled","isDisabledPrelogin","_cycleGamesAndIncrementOffset","hasVideoURL","tablesData","gType","openTablesIds","StaticVideoListModel","_isStaticVideoListDisabled","isStaticVideoListEnabled","setSwiperHandler","ListFactory","apiListType","RECENTLY_PLAYED","TOP_PICKS","NEW_GAMES","PLAYERS_LIKE_YOU","LIVE_CASINO_VIDEO","STATIC_VIDEO","BECAUSE_YOU_PLAYED","ArenaBaseModel","_postLoginListsSortOrderStorage","_listFactory","_updateAIEngineSwipersSortOrder","_aiEngineListsSortOrder","_isUsingExternalAIForSwipersSorting","_getSwipersConfigurations","sw","_setAiEngineListsSortOrder","swipers","_getSwiperIdToPutOnTop","listIndex","originalSwipers","scores","notForcedInLayoutSortedSwipers","forceInLayout","s1","s2","sortedSwipersConfigs","gameList","mappedGameList","shift","_createAllLists","_sendGameListsAnalytics","allLists","_appendGrids","_limitTheNumberOfSwipers","_saveSwipersPostLoginSortOrder","_sortSwipersByPostLoginOrder","_movePreferredSwiperOnTop","_sortSwipersByAI","_createSwipers","maxSwipersToShow","maxNumberOfSwipers","_renderListAndBanner","_renderPromotionalBanner","currentListPosition","saveSortOrder","sortLists","_createSwiper","_getGridsConfigurations","_createGrid","createGrid","createSwiper","bannerConfig","_getPromotionalBannerConfig","bannerMinHeight","_getBannerMinHeightInPixels","useSmallHeaderArenas","headerArenaIconDropShadow","HomepageHeaderArenaIconBox","HomepageHeaderArenaTitleBox","HomepageHeaderArenaBadgeBox","indicatorBadge","backgroundInGridLayout","HomePageHeaderArenasContainerBox","HomepageHeaderArenaLinkBox","HomepageHeaderArenaSkeletonBox","HomePageHeaderArenaIconComponent","_handleDoneLoading","HomePageHeaderArenasComponent","_handleArenaAction","jsonAction","_handleArenaRedirect","prop","placeholder","dynamic","seoConfig","categories","preventDefault","enableTap","homePageArenaDefaultPlaceHolder","_getSeo","newGamesIndication","homepage","newAddedGames","_handleArenaClick","_renderArenaIcon","headerArenas","_renderOneHeaderArena","HomepageTopBannerBackgroundBox","homepageTopBannerPlaceholder","HomepageTopBannerDividerBox","MutualBox","FreeToPlayAnimatedIcon1Box","FreeToPlayAnimatedIcon2Box","GAME_ORIENTATION_IDS","AnimatedIconBaseService","observedTarget","reason","animationDisposer","loadingInProgress","abortLoading","resourceName","pixiApp","createPixiApp","onContextLost","attemptDisposeAnimation","CONTEXT_LOST","app","disposePixiApp","PixiSpine","canvas","loadResources","resources","spineAnimation","Spine","spineData","availableAnimations","animations","runAnimation","setAnimation","addListener","complete","animationSchedule","stage","addChild","appendChild","FreeToPlayAnimatedIconComponent","icon1RequestOptions","freeToPlay1","icon2RequestOptions","freeToPlay2","iconObservableTarget","_openBonusWheel","freeToPlay","showPromotion","floatingIcon","REQUESTED","requestOptions","iconIndex","loadFreeToPlayAnimation","CASINO_BONUS_GAME_WIDGET","StyledBox","_captureElementRefForIcon","HomePageComponent","topBannerProps","getCmsTopBannerProps","useMiniTopBanner","seoSection","linkToOffer","MOVE_TOP","_renderTopBanner","_renderHomePageArenaHeaders","_renderBonusWheelButton","_renderDailyDealBox","_renderSeoBanner","_renderLinkToOffer","HomePageArenaModel","postLoginListsSortOrderStorage","routeDefinition","resetNewAddedGames","graphyte","homepageLists","gameGroupOrientation","userGameOrientation","groupId","listOnTop","graphyteLists","recentlyPlayedListConfig","promotionalBanner","displayPlace","ArenaPictureBox","ArenaTitleBox","ArenaDescriptionTextBox","textMiddleDark","lobbyInfoKeyframes","LobbyGameInfoBox","STICKY","ArenaInfoPreviewComponent","arenaPictureLoading","arenaInfo","isSticky","previewImage","description","PcGamePreviewTitleComponent","GameInfoPreviewComponent","_onMouseEnter","pinCurrentGamePreview","_onMouseLeave","unPinCurrentGamePreview","gameCategoryClassName","PcGameInfoPreviewComponent","enableGamePreview","disableGamePreview","enabledOnPC","stickyHandler","FiltersGameListPcBox","FiltersGamesListPcComponent","_toggleFilter","selectedFilter","currentFilters","currentFilter","toggleFilter","onToggle","CasinoArenaComponent","_stickyHandler","stickyHandlerFactory","createStickyHandler","classList","remove","getArenaConfig","sideBarInfo","infoSideBar","infoTitle","infoText","infoImage","topImage","showSearchIcon","ARENA_TYPES","WIDE_ARENA","CasinoLobbyArenaModel","VoidArenaModel","POST_LOGIN_LISTS_ORDER_KEY","ListsSortOrderStorage","_listsSavedOrder","getJson","_createEmptyListsOrder","listsOrder","_getSavedListsOrder","setJson","arenaListsOrder","listsOrderMap","l1","l2","LiveCasinoFilterButtonIconBox","isActiveTab","filterButtonLabel","ACTIVE","LiveCasinoFilterButtonLabelDefaultBox","LiveCasinoFilterButtonLabelCasino777Box","LiveCasinoFilterButtonLabelBox","LiveCasinoArenaNavbarButtonDefaultBox","Link","filterButtonBackground","ipad","LiveCasinoArenaNavbarButtonCasino777Box","LiveCasinoArenaNavbarButtonBox","LiveCasinoArenaNavbarButton","buttonIconMap","Map","rouletteIcon","pokerIcon","blackjackIcon","baccaratIcon","eliteLoungeIcon","gameShowsIcon","newGamesIcon","topGamesIcon","tripleEightExclusiveIcon","iconKey","has","IconComponent","_getButtonIcon","seoPage","onFilterClicked","buttonLabelRef","LiveArenaWidgetCrownBox","liveArenaWidget","LiveArenaWidgetLogoBox","LiveArenaWidgetMainContainerBox","LiveArenaWidgetCapsuleContainerBox","LiveArenaWidgetCapsuleStartBox","infoCapsule","backgroundStart","LiveArenaWidgetCapsuleMidContainerBox","backgroundMiddle","LiveArenaWidgetCapsuleEndBox","backgroundEnd","LiveArenaWidgetSeparatorBox","separator","LiveArenaWidgetDescriptionBox","smallFont","LiveArenaWidgetAmountBox","LiveArenaWidgetClockBox","LiveArenaWidgetComponent","_isAllPartyJPAvailable","getStandardJackpotState","_renderClock","amountInCents","currentValue","trKey","_getDescriptionTranslationKey","NewLiveCasinoArenaComponent","_topImageRef","updateAiRecommendedLiveGames","current","FilterButtonComponent","isAllLiveGamesPromotion","allLiveGamesPartyJackpot","getAllLiveGamesJackpot","LIVE_CASINO_PAGE_WRAPPER","_renderLiveCasinoArenaNavbar","_renderLiveArenaWidget","tablesConfigs","promotionalBannerConfig","NewLiveCasinoArenaModel","LiveCasinoArenaComponent","default","LiveCasinoArenaModel","ArenasService","_arenas","_loadArenas","_createArena","arenasConfigs","arenasWithoutFilterButton","BreadcrumbsItemComponent","noLinkClass","itemProp","itemScope","itemType","NonNavigatableBreadcrumb","NavigatableBreadcrumb","_url","_navigate","SiteMapNode","_urlParts","_children","_loadChildren","UriPath","toArray","ch","requestedUrlParts","_createChildrenBreadcrumbs","childBreadcrumbs","createBreadcrumbs","child","toFlatSiteMap","SiteMapService","_root","_flatSiteMapByUrl","_initSiteMap","uri","_setBreadcrumbs","_createBreadCrumbs","sitemap","breadcrumbs","uriPath","uriParts","MarketingService","sCut","_sCut","_sCutQueryParams","urlParts","getUrlWithoutSearchAndHash","parameterName","parameterValue","dlAsNumber","sCutData","additionalParams","testData","_convertParameterToNumber","dlp","_getDlp","encodeUriRecursive","sr","TestData","AdditionalParams","LanguageSwitcherItem","_executeOnClickJs","openSelf","_createCookie","sendFunnelParameters","appendSCutToUrl","createDomainCookie","onClickJs","Function","func","LanguageSwitcherSection","_fallbackTitleKey","_items","SelectedLanguageSwitcherItem","LanguageService","_defaultLanguageData","_lastUrlWithoutTheFragmentQueriedForLanguageSwitcher","_loadLanguageData","_isLanguageSwitcherEnabled","_setLanguageSwitcher","languageSwitcher","_updateLanguageSwitcher","getElementsByTagName","contains","textOverrides","_getDefaultTexts","_setTranslatedTexts","langSwitcherConfig","languagesSection","_extractLangSwitcherSection","languages","languageSettings","countriesSection","countries","countrySettings","items","itemsConfig","sectionConfig","fallbackTitleKey","cfg","cmsApi","getLanguageSwitcherConfiguration","isCustomLink","isCustomElement","SideMenuService","_linkAction","_setIsMobileMenuOpen","gameSearch","closeSearchResult","closeMobileLanguageSwitcher","flowResult","closeOverlay","isExternalLink","isInternalLink","_internalLink","_externalLink","proceedLink","tabState","useDirectLink","noConcatScut","isMobileLanguageSwitcher","SUGGESTED_CATEGORIES","OpenMembershipResponse","GameSuggestion","_gameInfo","_analyticsLabel","_index","_aiSortingType","aiSortingType","SearchLinkSuggestion","_linkConfig","_analyticsAction","GameSearchResult","_games","_suggestedCategories","_suggestedGames","SearchTitleBox","SearchBoxTitleComponent","SearchGamesListBox","SearchLinkBox","SearchNoGamesFoundDefaultBox","SearchNoGamesFoundCasino777Box","SearchNoGamesFoundBox","SearchGameItemBox","SearchMatchBox","HighlightSearchListItemComponent","removeSpecialCharacters","currentSearchText","beforeHighlightText","highlightText","numberOfSpecialCharacters","afterHighlightText","SearchTextWrapperBox","SearchGameItemComponent","_onClickHandler","searchSuggestion","SuggestedGamesComponent","suggestedCategory","_renderGame","MoreGamesBox","shouldDisplay","FoundGamesComponent","_hasMoreItems","loadedGamesCount","searchResult","suggestedGame","isPC","active","onLoadMore","gamesToRender","_renderMoreGames","suggestedGames","_renderFoundGames","_renderNoSearchResultMessage","SearchResultItemBox","SlotsSearchLinkDefaultBox","SlotsSearchLinkCasino777Box","SlotsSearchLinkBox","LiveSearchLinkDefaultBox","LiveSearchLinkCasino777Box","LiveSearchLinkBox","CardAndTableSearchLinkDefaultBox","CardAndTableSearchLinkCasino777Box","CardAndTableSearchLinkBox","RegularSearchLinkDefaultBox","RegularSearchLinkCasino777Box","RegularSearchLinkBox","SearchResultItemComponent","iconStyle","_renderSearchLinkBox","linkIconClass","SearchLinksListBox","ul","SuggestedLinksComponent","_renderSuggestedCategory","_renderSuggestedCategories","isHybridAndroid","SearchFormResultsDefaultBox","SearchFormResultsCasino777Box","SearchFormResultsBox","SearchFormResultsWrapperDefaultBox","SearchFormResultsWrapperCasino777Box","SearchFormResultsWrapperBox","defaultState","loadedGames","SearchResultComponent","_onLoadMore","moreItems","_resetState","isSearchInProgress","suggestedCategories","isSearchBoxOpened","isIOS","portrait","searchResultComponentRef","_renderSearchResults","SearchClearIconDefaultBox","visible","SearchClearIconCasino777Box","SearchClearIconBox","SearchInputMobileDefaultBox","SearchInputMobileCasino777Box","SearchInputMobileBox","SearchBoxMobileIconDefaultBox","SearchBoxMobileIconCasino777Box","SearchBoxMobileIconBox","SearchInputArenaMutual","input","SearchInputArenaDefaultPCBox","SearchInputArenaDefaultMobileBox","SearchInputAreaDefaultBox","SearchInputAreaMutual","SearchInputAreaCasino777PCBox","SearchInputAreaCasino777MobileBox","SearchInputAreaCasino777Box","SearchInputArenaHarrahsPCBox","SearchInputArenaHarrahsBox","SearchInputMutual","SearchInputAreaPCBox","SearchInputAreaMobileBox","SearchInputAreaCasino888Box","SearchInputAreaBallysDoverPCBox","SearchInputAreaBallysDoverBox","SearchInputAreaDelawareParkPCBox","SearchInputAreaDelawareParkBox","SearchInputAreaHarringtonPCBox","SearchInputAreaHarringtonBox","SearchInputAreaBox","forCasino888","forHarrahs","forBallysDover","forDelawarePark","forHarrington","SearchInputArea","_onChangeHandlder","openSearchResult","searchInputRef","autoComplete","onChange","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","_getSearchResult","_searchForGames","_getDefaultSuggestedCategories","_searchForSuggestedCategories","gameTypeToGameInfoObj","gamesSearchList","sortGamesByAI","suggestedCategoriesOptions","option","categoryConfig","_createSuggestedCategory","categorySuggestion","defaultSuggestedCategories","suggestion","gameID","ExternalLinksService","onPlayerAction","_onPlayerActionHandler","actionName","openCashier","registration","StraightToCashier","marketingData","sdkOpenParams","reject","resolveByCallback","actionCallback","response","deposit","unknown","CmsApiService","_404PageContent","getCMSOrigin","cmsPublicationId","bannersIds","headers","_getBannersRequestOptions","isSiteInfraAWS","_getBannersRequestUrl","_getBannersRequestParamsGET","_getBannersRequestParamsPOST","post","bannersDescriptions","fileNames","_readFallbackBanners","files","configuredFallbackUrl","_getFallbackUrlFromConfig","promises","computedFallbackUrl","promise","customQueryParams","_getPagesRequestOptions","currentMiniOrbitConfig","uriParams","UriParams","addParam","_publicationID","_addSlashesInTheSides","getAllParams","hasParam","originalName","cmsPageContentApiUrl","_apiOrigin","fallbackCMSComponentsPath","createUrlSearchParams","bannerId","publicationid","PagePlaceHoldersXML","encodeURIComponent","componentsParams","createHeaders","addXXContext","userSignature","getCmsUserSignature","message","signature","_getSegmentesRequestOptions","_isRouteToHtmlFile","BannerContentComponent","_bannerContentDecorator","_bannerContentElementRef","_captureBannerContentElementRef","_redecorateBannerContent","_disposeBannerContentDecorator","innerHTML","html","CmsContentDecorator","BannerDefinition","_html","CmsBannersService","_currentUsedBannersIds","_reloadBannersContent","_readBanners","_setBanners","hasBannerContent","newBanner","bannersIdsCollection","BannersIdCollection","getBanners","cmsResponseData","bannersWithContent","_extractBannersWithContent","bannersIdsWithoutContent","exclude","bannerInfo","fallbackBanners","requestedBannersIdsCollection","bannerData","Content","getOriginalBannerId","ComponentId","TemplateId","bannersIdsWithFallbackFile","fallbackFileName","bannersIdsGroupedByFallbackFile","_groupBannersIdsByFallbackFile","getFallbackBanners","fallbackData","file","bannerContent","_createBannersDefinitionsWithContent","_originalBannersIds","_originalBannersMap","templateId","isMatch","bannersIdsToExclude","bannersIdsToExcludeMap","CmsPagesService","_currentUri","_isFirstLoad","injectedPageMetaTags","_loadCmsPage","_reloadCurrentPageContent","pageDefinition","currentPage","headerTags","prepareElementSelector","elementType","attributes","attributesQuery","query","attributeName","metaTags","tag","rest","previous","parentNode","replaceChild","headerTag","metaTag","querySelector","injectedPageMetaTagPreviousElement","createElement","head","cloneNode","setAttribute","setElementAttributes","addMetaTags","equals","pageElement","getElementById","isOrbitRoute","_loadPageContentWithSpinner","_loadPageContentFromDOM","isB2CRoute","spinner","startSpinner","_loadCmsPageFromApi","stopSpinner","newPage","_setCurrentPage","urlQueryParams","_getPageData","pageData","setDocumentTitle","setCurrentPageMetaTags","headTags","_updateLocation","elementIdToBeScrolledIntoView","getPageContent","get404PageContent","CmsSegmentationService","_loadDefaultSegments","_loadSegmentsFromCmsApi","_setSegments","newSegments","uniqueSegments","getSegments","getSegmentsOverride","isBoolean","_isCIS","isExternalBrand","_isCIP","DeepLinkActionBase","deepLinkBuilder","param","CashierDeepLinkAction","_executeCurrentAction","_executeNextAction","_buildCashierOptions","urlParams","externalClick","deepLink","buildDeepLinkUrl","cashierParams","PromCode","LoginDeepLinkAction","openLogin","PlayGameDeepLinkActionBase","_getGameType","_shouldOpenGameInWebApp","deepLinkToString","_suggestCorrelatedGame","getIsRealMode","gamesInfoArray","suggestedGameType","suggestedAIGameTypes","randomGameIndex","gamePopup","showSuggestedGame","PlayGameRealDeepLinkAction","PlayGameDemoDeepLinkAction","RegisterDeepLinkAction","closeAllDialogs","openMembership","_openCashier","_playGame","cashierAction","_findNextActionOfType","actionType","next","isActionOfType","MyAccountDeepLinkAction","RedirectDeepLinkAction","TerminateDeepLinkAction","UploadDocumentDeepLinkAction","openUploadDocument","JackpotGamesDeeplinkAction","openPartyJackpotGamesDrawer","FreePlayDeepLinkAction","freePlayArriveSubscribe","onFreeplayVouchersUpdated","openRewards","OpenListDeeplinkAction","getListConfig","verticalGamesList","OpenListDeeplinkByTitleAction","getGamesListByTitle","OpenListDeeplinkByIdAction","getGamesListById","Number","ControlCenterDeeplinkAction","FreeToPlayDeeplinkAction","isPromotionEligible","gaAction","specificParams","openDirectGame","appSpecificParameters","DeepLinkActionsFactoryService","_actionsPrototypes","my_account","terminate","parser","deepLinkParser","getParserFromCurrentRoute","_createActionsFromParser","actionInstance","actionPrototype","getParserFromDeepLinkObject","actionsDescriptors","getActionsDescriptors","getDeepLinkBuilder","actionDescriptor","SdkComponentFactoryService","StickyHandler","_onScrollSubscription","_scrollTopMinValue","onWindowScroll","_setIsSticky","scrollY","_updateHeaderHeight","scroll","_isSticky","getHeaderElement","offsetHeight","StickyHandlerFactoryService","BooleanGamePreviewFeature","_name","MoneyGamePreviewFeature","_shouldRenderWhenEmpty","_extractValue","NumericGamePreviewFeature","GamePreviewFeaturesSelectorService","_gameGroupToFeatureMapping","PF","disabledFeatures","GameRouteHandlerService","_onGameOpenSubscription","_onGameCloseSubscription","_currentUriAndGamesMapReaction","_shouldSkipNextCloseGameRedirect","_previousUri","_isOpenGameFromUrlInProgress","_subscribeToGameEvents","_subscribeToUriAndGamesMapChanges","isFirstSubscription","_isOpenGameUri","_tryOpenGameFromUrl","_onGameOpen","_onGameClose","startsWith","eventParams","_unsubscribeFromUriAndGamesMapChanges","_getOpenGameFragment","finally","urlToGoBack","lastAttemptToOpenGameFromUrl","currentFragment","fragmentParts","_setLastAttemptToOpenGameFromUrl","_unsubscribeFromGameEvents","redirectToHistory","LauncherOverridesReader","_storage","cgp_client","LAUNCHER_DATA_STORAGE_KEY","clientData","orbitSpecificOverrides","_getLauncherOverrides","_getOrbitSpecificConfigOverrides","LauncherService","launcherOverridesReader","addedGameTypesFromSdm","SpinnerService","_startTime","_setSpinningStartTime","performanceNow","isSpinning","WebVitalsService","_siteNavCLSReported","_reportedCLSPages","_reportLCP","_attemptReportFID","lastRoute","_logCustomObjectToElastic","_clsData","_cls","toFixed","_resetCLSData","_lcpData","_fidData","STORAGE_NAME","fidDataHandler","eventAction","eventLabel","orbitWebVitalsData","eventValue","_prepareCustomData","topShiftsCount","b","errDetails","lcp","fid","cls","clsElements","bigestShift","bigShiftElements","shiftCounter","SESSION_STATUS","MenuFlowService","customFlows","_executeInstallPwa","_openProactiveChat","menuItem","CR_CHAT","textKey","openChat","openMode","ChatOpenMode","Chat","prompt","PokerIntegrationService","onTokenLifetimeExpired","_onTokenLifetimeExpired","externalBrandCallbackInfo","getExternalBrandCallbackInfo","MiniOrbitPageComponent","MiniOrbitHomePageComponent","MiniOrbitArenaHostComponent","GamingHistoryComponent","RichPageComponent","MINI_ORBIT_ROUTING_DEFINITION","exact","cssSelectors","SLOTS_PAGE","CASINO_GAMES_PAGE","JACKPOTS_PAGE","historyType","UserHistory","redirectHomeIfUnauthorized","showMoreDetails","SESSION_HISTORY_PAGE","SessionHistory","CHALLENGE_PAGE","ArenaHostComponent","CmsPageComponent","GamingHistoryPageComponent","LaboratoryShowcase","RoutingConfigurationService","fallbackRoute","routes","NEW_GAMES_PAGE","PROGRESSIVE_VIDEO_SLOTS_PAGE","ROULETTE_PAGE","VIRTUAL_SPORTS_PAGE","BLACKJACK_PAGE","INSTANT_WIN_GAMES_PAGE","showMoreDetailsLink","preventNotifications","VIDEO_POKER_PAGE","SCRATCH_CARDS_PAGE","EXCLUSIVE_888_GAMES_PAGE","standalone","OrbitRoute","RouteBase","RoutingService","_currentPathName","_updateCurrentRoute","featureData","abChangeRoute","removeItem","routeChangeData","Properties","routeschange","_doRedirect","routingConfiguration","getRoutingConfiguration","tryMatchPath","_removeCurrentRouteCssSelectors","_overrideArenaType","routeParams","_addCurrentRouteCssSelectors","FallbackRoute","fallbackRouteRender","webVitals","leavingPage","toCssClassName","routesToArenaTypesMapping","arenasRoutingOverride","_getCurrentRouteCssSelectors","selector","add","_cleanUpOldAbTestData","currentPathName","OverlayService","ORBIT_OVERLAY_OPEN","disableScrolling","enableScrolling","consumer","_overlayConsumers","unsubscribe","zIndexes","needsOverlay","getOverlayZIndex","some","onOverlayClicked","TimeService","performance","dateAndTimeFormat","dateTime","dateTimeHistory","isUtc","getDateTimeHistoryFormat","AbFilteringStrategy","abFilterData","_logMessage","_filter","filterBy","tryCreateFilter","arenaId","AbFilteringService","_abFilteringData","_abFiltersMap","general","_loadAbFilteringData","_abFilteringEnabled","AbTesting","enableABFiltering","_abFilteringFeature","_mapAbFilteringData","adminRefKey","_userHasAbFiltering","listAdminKey","_listHasAbFiltering","_arenaHasAbFiltering","filterListWithinArena","applyFiltering","abFilteringStrategy","AiNewGamesEngineService","_isAINewRecommendedGamesUpdateInProgress","_aiNewRecommendedGamesData","_updateAiNewRecommendedGames","getAINewRecommendations","_setAiNewRecommendedGames","_sendAINewRecommendationAnalytics","ThemeService","_setCurrentTheme","SDK_CSS_OVERRIDE","_currentThemeDefinition","useSquareIconsForGames","themeDefinition","globalStyles","VoidCommunicationAdapter","openUrlInExternalBrowser","MiniOrbitService","_communicationAdapter","_onKickUserCount","_currentMiniOrbitConfig","_extractCurrentMiniOrbitConfig","splash","onSplashRemoved","onSiteLoaded","_reportAutologinResult","enableBasePathOverride","miniOrbitCommunicationAdapterFactory","createAdapter","onUserKicked","onAutologinSuccess","onAutologinFailed","currentLocationBasePath","miniOrbitConfigSection","basePaths","miniOrbitConfig","miniOrbitArenas","arenasHeaderButtons","DialogConsumerContentDefaultBox","noPadding","disableFullscreenMobile","DialogConsumerContentCasino777Box","brandSecondaryLight","DialogConsumerContentBox","transparentBackgroundOpacity","iPhoneVer10","DialogOverlayDefaultBox","DialogOverlayCasino777Box","DialogOverlayBox","MODAL_DIALOG_ANIMATION_DURATION","showDialogKeyframes","closeDialogKeyFrames","showDialogAnimation","closeDialogAnimation","applyBorders","applyMaxHeight","DialogOverlayContentBox","DialogIconWrapperBox","ModalDialogComponent","_onCloseButtonClickHandler","overlayClasses","MODAL_DIALOG","dialogOptions","forceTransparentBackground","forceCentralization","hideAnimation","additionalHeaderClass","headerClass","headerClasses","mobileCenterHeader","contentClasses","hideBorders","forceTransparentContentBackground","shouldApplyClosingAnimation","overlayTop","dialogHeaderComponent","hideDialogHeader","DialogIcon","noDefaultContentPadding","renderContent","SimpleMessageDialogBox","sAndAbove","SimpleMessageDialogContentBox","SimpleMessageDialogButtonsContainerBox","SimpleMessageDialogButtonBox","Button","buttonWidthProportionOnPC","SimpleMessageButtonComponent","buttonOptions","CloseDialogAndContinue","buttonPreset","numberOfButtons","SimpleMessageDialogIconContainerBox","SimpleMessageDialogComponent","buttons","DialogService","_onDialogCloseHook","closedHandler","_setCurrentOpenModalDialogs","_currentOpenModalDialogs","hasOpenDialogs","_enableScroll","_setCloseAllDialogsHook","newDialogs","dialogComponent","CGP_OVERLAY_OPEN","isHighPriority","forceZOrder","zOrder","shouldBeClosedOnlyByUser","ModalDialogHandler","_getNextZIndex","showPopupAboveSecondWebViewHybrid","_disableScroll","showEmptyTitle","_onCloseHook","_options","_isClosed","_applyCallbackAndCloseDialog","isClosedWithXButton","onClosedByXButton","debugInfo","namedSetTimeout","HeaderService","_headerResizeObserver","_headerRegulationDataResizeObserver","_onHeaderResize","_onHeaderRegulationDataResize","_headerElement","_headerRegulationDataElement","headerElement","stickToBottomTooltipModifier","phase","beforeWrite","fn","popperWidth","rects","popper","popperHeight","styles","elements","adaptive","strategy","placement","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","createTooltip","styling","textColor","borderColor","showCloseButton","invertCloseButtonColors","closeOnClickOutside","showOverlay","modifiers","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","POKER_MINI_ORBIT_COMMUNICATION","PokerCommunicationAdapter","_pokerCommunicationObject","adapter","_pokerSupportsSoftLogin","kickUser","MiniOrbitCommunicationAdapterFactoryService","DynamicFilterFactoryService","dynamicFilterPropertiesIndex","dynamicFilterType","dynamicFilterValue","keyResolver","args","memoize","_memoize","LiveTableFeedsService","_liveTableUpdateSubscription","_getLiveCasinoGameRecommendationsForPlayer","getLiveCasinoGameRecommendationsForPlayer","engineType","_previousOpenTablesIds","_stop","_liveCasinoRecommendedGames","currentOpenTablesIds","_tablesData","tableData","IsOpen","arraysEqual","_setLiveCasinoRecommendedGames","GameTypes","Engine","_start","onLiveTableFeedsUpdate","_onLiveFeedsUpdate","OperationHoursStartTime","_convertTimeToLocalTimeZone","rouletteLastNumbers","RouletteLast5Numbers","rouletteLast5NumbersConverted","_manipulateFeedData","_sendEvent","_updateOpenTimeToLocal","_verifyRouletteLastNumbers","evoLiveFeedResponseTime","computeSplashTimeInSeconds","sendTechnicalEvent","timeUTC","toLocalTime","toHoursAndMinutesString","filteredGameIds","_shouldSortGames","sortingOptions","numberOfSortingExemptGames","abTestingAiSortGamesLists","arenaHasAiSorting","startTime","currentDate","getCurrentDate","timeToOpen","gamesID","closeGamesArr","currentGame","_isGameOpenSoon","DrawerContentDecorator","_originalDrawerContent","_id","isMinimized","onClose","minOverlayZIndex","supportsCloseIntent","Drawer","itemIndex","getLastVisibleDrawerItemIndex","drawerItem","currentContent","currentDrawerContent","existingContentIndex","_drawerContentStack","contentIndexToRemove","_removeOneDrawerItems","clone","itemOnTheStackTop","_closeDrawerContentItem","_getNonMinimizedContents","nonClosableItems","drawerContent","DrawerService","_closeDrawers","DailyDealService","removeDailyDealIndicator","setDailyDealCampaignId","subscribe","_fetchDailyDealCampaign","onDailyDealRemoveIndication","dailyDeals","MarketingCampaignId","richPageUrl","JackpotHandler","gradualIncreaseAmountHelper","onAuthChangeReaction","previousUpdateTime","shouldStartGradual","gradualRealAmountInCents","isFastGradualIncreaseFinish","removeGradualIncreaseAmountHelper","jackpot","newState","createGradualIncreaseAmountHelper","updateAmount","useGradualAmountIncrease","setCurrentJackpotAmount","frequency","gradualIncreaseHelperFactory","create","updateAmountFunction","amount","restart","JackpotsWithStateService","updateCurrentJackpots","readJackpotsData","onJackpotsWithStateUpdate","onBlueRibbonPartyJackpotStateChanged","_onBlueRibbonPartyJackpotStateChanged","jackpotsAddition","jpData","setJackpotData","rawJackpots","jpId","rawJackpot","Jackpot","readJackpotState","winAmount","jpType","Dark","currentJackpotsClone","_convertBlueRibbonPartyJackpot","JackpotsService","onJackpotsAmountsUpdate","jackpotsAmounts","amounts","currentJackpotAmounts","abTestingFeatureIsValid","featureObject","featureProperties","AbTestingFeatureDataProviderService","_playersLikeYouGamesListTypeId","_setIsVideoLiveStreamEnabled","_setIsStaticVideoListEnabled","_setIsExitPopupSquareIconsEnabled","_setIsBecauseYouPlayedEnabled","_setFree2PlayIconNumber","_getFeature","_features","aiSortGamesListsFeatureData","_hasFeature","abTestingSearchGameSuggestionByAI","aitype","abTestingPlayersLikeYouGamesListTypeIdAIData","listid","abTestingListOnTopData","abTestingSafeZoneToggleData","enablesafezone","enabledForRegulation","SafezoneLoader","miniBannersFeature","featuretoggle","componentid","isExitPopupSquareIconsEnabled","isBecauseYouPlayedEnabled","abTestingAnimatedIcons","indexNumber","abTestingFeature","iconid","free2PlayIconNumber","GradualIncreaseHelper","_params","realAmount","fakeAmount","stepAmount","amountIncreaseTimer","stopAmountIncreaseTimer","startAmount","steps","startAmountIncreaseTimer","updateFakeAmount","GradualIncreaseHelperFactoryService","SafezoneService","_safezoneObj","_fullSafezoneHandler","_miniSafezoneHandler","_onSafezoneReady","component","MINI","onReady","FULL","_onCallToActionFunc","actionId","USER_AREA","correlationId","correlationID","closeMiniSafezone","closedFromSafezone","openResponsibleGamblingLink","_kickUserAfterSelfExclude","enableSafeZone","_connectToSafezone","_logoutSafezone","safezoneObjectFactory","createFullSafezoneHandler","createMiniSafezoneHandler","_setHasError","createSafezoneObjectParams","onCallToActionCallback","onReadyCallback","createSafezoneObject","analyticsDataLayer","pushSafezoneInitParams","full","init","mini","safeZoneDeeplink","LOBBY","resetOnLogout","FullSafezoneContentBox","OnErrorBox","OnErrorIconBox","OnErrorTitleBox","OnErrorMessageBox","light","OnErrorButtonsBox","OnErrorComponent","onRetryButtonClick","FullSafezoneComponent","onRender","_retryCreateSafeZone","reconnectToSafezone","_renderError","ARENA_IDS","SafezoneHandlerBase","_safezoneObject","_renderErrorInterval","_ready","_correlationId","_category","_openEventName","_readyEventName","_closeEventName","_containerId","_channel","safezoneObj","_clearRenderErrorInterval","_sendCloseEvent","pushSafezoneEvent","_getEventParams","_sendRenderErrorEvent","session_status","Failure","status","Success","Partial","correlation_id","local_time","FullSafezoneHandler","FULL_SAFEZONE_CONTAINER_ID","_isOpen","_renderSafezone","_openFullSafezoneFromSource","_onFullSafezoneRender","_closeSafezone","CLIENT","MiniSafezoneHandler","MINI_SAFEZONE_CONTAINER_ID","_userMenuOpenReaction","_subscribeToUserMenuOpenReaction","userMenuIsOpen","_checkAndRenderMiniSafezone","_unsubscribeFromUserMenuOpenReaction","MINI_SZ","SafezoneObjectFactoryService","_safezoneFunc","_getSafezoneFunction","_getInitParams","initParams","safeZoneFunction","callToActionCallback","contextObj","userInfo","brandId","subBrandId","systemId","clientPlatform","clientVersion","locale","fontDomain","getFontsPath","onCallToAction","WalletProxyService","fetchAllData","plainNumberBankroll","bType","onBalanceUpdated","bankrollType","_getData","setBankroll","NaN","CASH","BONUS","GameViewDefaultBox","GameViewBox","GameIconContainerBox","GameViewSectionCSS","MiddleSeparatorWrapperGameViewSectionPCBox","MiddleSeparatorWrapperGameViewSectionMobileBox","MiddleSeparatorWrapperGameViewSectionBox","GameWrapperGameViewSectionBox","ButtonWrapperGameViewSectionBox","SubTitleContainerBox","GameViewVerticalDividerBox","GameViewHorizontalDividerBox","MenuContainerBox","DescriptionContainerBox","SideMenuItemDefaultBox","hidden","SideMenuItemCasino777Box","SideMenuItemBox","SideMenuItem","getConfig","hideElement","itemId","GenericSideMenuLinkDefaultBox","backgroundActive","textActive","GenericSideMenuLinkCasino777Box","GenericSideMenuLinkHarrahsWsopBox","GenericSideMenuLinkBox","GenericSideMenuLabelDefaultBox","GenericSideMenuLabelBox","InternalNavSideMenuLink","getLinkAction","InternalNavIcon","Icon","buildFullUri","isLinkToCurrentPage","decodeURI","encodeURI","withArrow","currentPath","candidate","SideMenuLinkIconDefaultWrapBase","SideMenuLinkIconCasino777WrapBase","SideMenuLinkIconWrapBase","SideMenuLinkIconDefaultBase","iconBackgroundActive","SideMenuLinkIconCasino777Base","SideMenuLinkIconBase","HomeSideMenuDefaultIcon","HomeSideMenuCasino777Icon","HomeSideMenuIcon","SlotsSideMenuDefaultIcon","SlotsSideMenuCasino777Icon","SlotsSideMenuIcon","NewGamesSideMenuDefaultIcon","NewGamesSideMenuCasino777Icon","NewGamesSideMenuIcon","JackpotsSideMenuDefaultIcon","JackpotsSideMenuHarrahsIcon","JackpotsSideMenuWsopIcon","JackpotsSideMenuCasino777Icon","JackpotsSideMenuIcon","CasinogamesSideMenuDefaultIcon","CasinogamesSideMenuHarrahsWsopIcon","CasinogamesSideMenuIcon","Exclusive888SideMenuDefaultIcon","Exclusive888SideMenuIcon","RouletteSideMenuDefaultIcon","RouletteSideMenuWsopIcon","RouletteSideMenuCasino777Icon","RouletteSideMenuIcon","BlackjackSideMenuDefaultIcon","BlackjackSideMenuCasino777Icon","BlackjackSideMenuIcon","LivecasinoSideMenuDefaultIcon","LivecasinoSideMenuCasino777Icon","LivecasinoSideMenuIcon","VipSideMenuDefaultIcon","VipSideMenuCasino777Icon","VipSideMenuIcon","GettingStartedSideMenuDefaultIcon","GettingStartedSideMenuIcon","BankingSideMenuDefaultIcon","BankingSideMenuIcon","VideoPokerSideMenuDefaultIcon","VideoPokerSideMenuIcon","PromotionsSideMenuDefaultIcon","PromotionsSideMenuCasino777Icon","PromotionsSideMenuIcon","BlogSideMenuDefaultIcon","BlogSideMenuCasino777Icon","BlogSideMenuIcon","LivechatSideMenuDefaultIcon","LivechatSideMenuHarrahsWsopIcon","LivechatSideMenuCasino777Icon","LivechatSideMenuIcon","PokerCircleSideMenuDefaultIcon","PokerCircleSideMenuIcon","SportCircleSideMenuDefaultIcon","SportCircleSideMenuIcon","Club888SideMenuDefaultIcon","Club888SideMenuIcon","GamingHistorySideMenuIcon","ChipIcon","chipIcon","CashierHistorySideMenuIcon","ArrowsUpDownIcon","arrowsUpDownIcon","InstallPwaSideMenuDefaultIcon","InstallPwaSideMenuIcon","LoyaltyBarSideMenuLink","DepositSideMenuLinkDefaultBox","DepositSideMenuLinkCasino777Box","DepositSideMenuLinkBox","SignupSideMenuLinkCasino888Box","SignupSideMenuLinkBox","ArrowSideMenuLinkDefaultIcon","ArrowSideMenuLinkCasino777Icon","ArrowSideMenuLinkIcon","SignupSideMenuLink","DepositSideMenuLink","SideMenuComponentDefaultBox","SideMenuComponentCasino777Box","SideMenuComponentBox","SideMenuListDefaultBox","SideMenuListCasino777Box","SideMenuListHarrahsWsopBox","SideMenuListBox","SideMenuLinksGroup","menuItems","pickSideMenuItems","menuItemIds","it","listStyleType","k","renderLink","GamePopupCheckboxContainerBox","GamePopupCheckbox","checkboxChecked","checkBoxChecked","checkBoxEmpty","GamePopupComponent","_closeDialog","onClickNotNowButton","_getFallbackUrl","clickNotNowButton","checkboxData","subTitle","getSubTitle","getGameView","getGameSection","getDescription","getMenuBox","showCheckboxItem","GamePopupService","onShowGamePopup","openAfterLoginGamePopup","menuLinks","subTitleText","descriptionText","popupTitleText","onCloseHandler","gamePopupApprovedCallback","welcomeTitleText","suggestedGameText","yourActivityText","_gameMap","openPopup","getMenuItems","USER_GROUP_TO_HEADER_ARENAS_MAPPING","SLOTS","JACKPOTS","EXCLUSIVE888","GAME_SHOWS","CASINO_GAMES","LIVE_BLACKJACK","LIVE_ROULETTE","CASINO_SKILL","CASINO_SOFT","SCRATCH_CARDS","CASINO_MIXT","HomepageService","_setHeaderArenas","getHomePageHeaderArenas","group","_orderHeaderArenas","_updateNewAddedGames","_setNewAddedGames","_newAddedGames","newGamesCount","arenasNames","headerOrderedAreans","getHomePageHeaderArenasByUserOrientation","_sendUserOrientationArenasAnalytics","groupName","selfUpdatedByNewestGamesList","getSelfUpdatedByNewestGamesList","gamesInfo","seenGames","_getNewAddedGamesFromLocalStorage","newGames","_resetNewAddedGames","_setNewAddedGamesFromLocalStorage","_getNewAddedGamesLocalStorageKey","miniBannerComponentIdFromAB","miniTopBannerComponentID","miniBannerComponentIdFromConfig","topBanner","topBannerConfig","getHomePageTopBannerHeight","_getMiniBannerComponentID","AnalyticsDataLayerService","_push","intent","login_session_id","user_type","rm_status","playerRMSStatus","rg_risk_level","sub_brand_name","sub_brand_id","registration_country","registration_date","product_package","PartyJackpotWinCelebrationPopupContainerBox","PartyJackpotWinCelebrationPopupAmountBox","PartyJackpotWinCelebrationPopupImageContainerBox","PartyJackpotWinCelebrationPopupButtonsContainerBox","PartyJackpotWinCelebrationPopupContentContainerBox","PartyJackpotWinCelebrationPopupTitleBox","PartyJackpotWinCelebrationPopupComponent","jackpotName","winning","_getTitle","_getAmount","_getOkButton","PartyJackpotWelcomePopupContainerBox","PartyJackpotWelcomePopupTitleBox","hasBothTitleAndSubtitle","PartyJackpotWelcomePopupDescriptionBox","PartyJackpotWelcomePopupImageContainerBox","PartyJackpotWelcomePopupButtonsContainerBox","PartyJackpotWelcomePopupHeaderContainerBox","PartyJackpotWelcomePopupBottomNoteBox","PartyJackpotWelcomePopupTitleContainerBox","PartyJackpotWelcomePopupSeparatorBox","PartyJackpotWelcomePopupComponent","_onAcceptButtonClicked","onAcceptButtonClicked","_onDeclineButtonClicked","onDeclineButtonClicked","_onTermsAndConditionsClicked","supportsAllLiveGames","partyJackpotName","hasRealMoneyWinPrize","startHour","endHour","allowLabelWrap","_getButtons","_getDescription","_getBottomNote","PartyJackpotService","_isConnected","_onBlueRibbonConnectionComplete","_onPartyJackpotInsufficientMoney","_showInsufficientMoneyToaster","_onPartyJackpotWin","winningPlayer","_showPartyJackpotWinCelebrationPopup","_showPartyJackpotOtherUserWinToaster","partyJackpotId","_jackpots","jp","_isBlueRibbonEnabled","_isAllLiveGamesPromotion","_label","addAnonymousOrReal","B2CLink","_getJackpotGameListById","onBlueRibbonPartyJackpotWin","onBlueRibbonPartyJackpotInsufficientMoney","onBlueRibbonConnectionComplete","onBlueRibbonIsEnabledChanged","_onBlueRibbonIsEnabledChanged","toasterIcon","toaster_icon","playTextTranslation","titleTextTranslation","subtitleTextTranslation","MessageID","Type","Title","SubTitle","DurationInSec","PCImage","MobileImage","buttonText","titleText","subtitleText","depositText","partyJackpotToaster","Message","SessionCooldownPopupBox","dialogTextMixin","dialogHighlightedTextMixin","DialogTextBox","DialogHighlightedTextBox","SessionCooldownPopupTextBox","SessionCooldownPopupTimerBox","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","lAndAbove","xxl","hover","hoverNone","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","partyJpName","potState","_getPartyJackpotInfoFromEventData","ToolsService","uuidv4","VerticalGamesListBox","HeaderBox","GamesListBox","GameDetailsBox","GameDividerBox","ButtonWrapperBox","NO_JACKPOT","GameDetailsNameBox","GameDetailsJpBox","VerticalGamesListGameComponent","displayJackpotInfo","HeaderTitleBox","HeaderCloseButtonBox","closeModalDialog","DjWidgetBox","VerticalGamesListComponent","_onJackpotWidgetClicked","_closeDrawer","widgetConf","isMobileLandscape","_shouldMinimizeJackpotWidget","_shouldMinimizeWidget","scrollTop","onScroll","_onScroll","_renderHeader","_renderGamesList","SEO_CATEGORY","VerticalGamesListService","GAME_GROUP_COOKIE","UserGameOrientationService","_updateUserGameOrientation","orientation","userGameOrientationEnableConfig","User","enableUserGameOrientation","gameGroupCookie","_setUserOrientation","getUserGameOrientation","gameOrientation","_setGameOrientationCookie","setDate","getDate","ApiControllerBase","route","_getRoutePrefix","isUSRegulation","_buildApiRoute","BonusManagerController","_httpPost","ABTestingController","InsightController","req","NetPositionController","OpenSessionsController","RestrictionRulerController","clientRequest","ThirdPartyFreePlayController","GameController","HistoryController","UserController","ApiService","bonusManagerController","aBTestingController","netPositionController","openSessionsController","restrictionRulerController","thirdPartyFreePlayController","historyController","GraphyteClickstreamService","_scriptPromise","_registrationDate","_shouldSendGraphyteClickstreamData","_identifyUser","_sendRegistrationEvent","_sendLoginEvent","_sendTrackEvent","event_name","event_type","_sendPageViewEvent","onRegistrationCompleted","_getISODate","areGraphyteListsEnabled","graphyteTracker","_loadGraphyteScript","resolveJsFilePath","event_datetime","event_info_2","identify","event_info_3","track","_buildGraphyteTrackingProperties","toISOString","brandkey","userid","event_country","event_platform","event_language","event_channel","_getEventChannel","event_uuid","page","location_index","event_value","event_info_1","event_location","event_location_index","GraphyteService","_injectPreconnectURL","_fetchGraphyteRecommendations","Graphyte","homepageLayoutId","layoutId","requestUrl","layoutApiUrl","_buildRequestHeaders","apiKey","brandKey","_buildRequestBody","httpWithRequestTimeMeasurement","_setHomepageLists","_parseGraphyteLists","_logError","bodyObject","areaWrapper","parsedArea","_parseGraphyteArea","gameWrapper","game_code","extra","PartyJackpotInGameWidgetContainerBox","liveParty","in_game_widget_background","PartyJackpotInGameWidgetAmountContainerBox","PartyJackpotInGameWidgetClockContainerBox","PartyJackpotInGameWidgetContentContainerBox","PartyJackpotInGameWidgetComponent","isDragging","_onDrag","_onStop","_onClick","_isRTL","_getWidth","initialX","initialY","isOptedIn","onDrag","onStop","bounds","boundSelector","defaultPosition","_getInitialXAxisPosition","_getInitialYAxisPosition","_getCurrentJackpotAmount","_getClock","PanicButtonBox","germanyPanicButton","IN_DETAILED_HISTORY","PanicButtonTooltipBox","textDark","PanicButtonPopupBox","PanicButtonPopupTimeBox","PanicButtonPopupOkBox","PanicButtonPopupComponent","textMessage1","textMessage2","_getTime","textMessage3","TooltipClickHereBox","PanicButtonTooltipCloseBox","PanicButtonMobileOverlayBox","ResponsibleGamingButtonsGermanyComponent","isTooltipVisible","panicRestrictUser","_openPopup","stopPropagation","_closeToolTip","_getTooltipBox","_restrictUser","_onMouseEnterPanicBtn","_onMouseLeavePanicBtn","onClickPanicBtn","inDetailedHistory","_renderTooltipClickHere","_renderCloseBtn","_renderMobileOverlay","TsrWithDropdownDefaultBox","TsrWithDropdownBox","TsrWithDropdownOptionSelectorBox","TsrWithDropdownMainTextDefaultBox","TsrWithDropdownMainTextCasino777Box","TsrWithDropdownMainTextBox","TsrWithDropdownSelectorContainerBox","TRACKING_UK_TSR_OPTION_NAMES","UK_TSR_RESUME_GAME_OPT","UK_TSR_CONTINUE_OPT","UK_TSR_STOP_REMINDERS_OPT","UK_TSR_REVIEW_REMINDERS_OPT","UK_TSR_HISTORY_OPT","UK_TSR_CLOSE_GAME_OPT","UK_TSR_LOGOUT_OPT","TSR_OPTIONS_BY_TYPE","SESSION_TIMER","GAME_TIMER","TimeSpentReminderWithDropdownComponent","_businessCorrelationId","_renderLoggedInText","playingTimeWithoutUnits","playingTime","_renderSelectorContainer","_renderSelect","selectedOption","_updateSelection","timerType","tsrOption","selection","_actionAlreadyTriggered","_sendActionDataTracking","_closeDialogBox","gameRouteHandler","_onStopFurtherReminders","onStopReminders","_sendActionDataToElastic","casinofiedAnalytics","messageActionTaken","CGPEventCategory","CGPEventAction","setTarget","messageDisplay","displayMessageID","DISPLAY_MESSAGE_IDS","timeSpentReminder","displayMessageName","StatePopupWrapperBox","StatePopupComponent","_onStateSelector","onStateSelect","_onStateNotInListClick","onStateNotInListClick","headerText","GeoPermissionsPopupWrapperBox","GeoPermissionsPopupComponent","_onOkPressed","onOkPressed","headerText1","headerText2","TsrWithBalanceBox","TimeSpentReminderWithBalanceComponent","_executeContinueButtonAction","_executeCloseGameButtonAction","_getFormattedSessionBalance","balanceAbsoluteValue","totalNetLoss","_getFormattedPlayingTime","_getSessionBalanceText","isInGame","GameItemContainerBox","GameItemImgWrapperBox","iPhoneVer5","GameItemFpThumbBox","FreeSpin","freePlay","typeFS","FreePlay","typeFP","FreeJackpotSpin","typeJFS","FreeJackpotPlay","typeJFP","freePlayBgImage","GameItemDelimiterBox","GameItemDetailsWrapperBox","GameItemTitleDefaultBox","GameItemTitleCasino777Box","GameItemTitleBox","GameItemJackpotBox","GameItemButtonsAreaBox","GameItemComponent","playBtnText","IdleRecommendationToasterBox","IdleRecommendationHeaderBox","IdleRecommendationHeaderTitleWrapperBox","IdleRecommendationHeaderTitleBox","IdleRecommendationGameDetailsBox","IdleRecommendationToasterBackgroundBox","idleRecommendationToasterBg","IdleRecommendationComponent","onPlayRecommendedGameHandler","OrbitComponentToSdkAdapterService","_renderComponent","showPartyJackpotWelcomePopup","locationIcon","onMessageClosed","PRIORITY_LEVEL_ZINDEX_MAPPER","PRIORITY_LEVEL","TOUCH_ID","timeSpentReminderClockIcon","_getTimeSpentReminderDialogOptions","currentRenderedComponents","_setCurrentRenderedComponents","unmount","_unmountComponent","OmgProxyService","setNumberOfAwaitingMessages","onOmgAwaitingMessagesUpdated","updatedNumberOfMessages","numberOfAwaitingMessages","STANDARD_TOPIC_HEADER","publisher","MessageBrokerService","channels","MessageBroker","identity","topics","loginSuccess","publish","logoutSuccess","getCasinofiedDeviceInfo","getCasinofiedDeviceType","OS","isNative","browserType","getCasinofiedCommonUserInfo","userMode","regulationTypeID","isVip","isPromotionPermitted","RMS","userFirstName","userLastName","getCasinofiedGeoInfoParams","geoLocationInfo","timeZoneUTCOffset","loginIp","ISP","isp","proxyType","getCasinofiedCommonAppContextParams","productPackageFromID","languageCode","currencyCode","currencyIso3","gaClientID","DeviceType","Tablet","SmartPhone","PC","LIMIT_NAMES","CasinofiedZoidApplicationAdapter","applicationSdk","clonedInitParams","messageBrokerChannels","zoidInitParams","onInitSucceeded","payload","_onInitSucceeded","onInitFailed","_onInitFailed","openApp","_openApp","_onClose","performAction","_onPerformAction","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","isDisposed","timeoutValue","widgetLoadTimeoutMS","openTimeout","_setAppInitFailed","_unsubscribeFromTopics","appInitResult","appInitParams","cleanUp","_isCurrentApp","sessionID","errorDescription","_getAppInitCommonParams","commonParams","_showApp","sdkObjectName","appObject","_getAppSdkObjectName","_createApplicationAdapter","appInitRequest","_getInitAppParams","_getUserInfo","geoInfo","productPackageToID","productPackageID","deviceInfo","_isMinimized","componentData","_getMiniatureComponentID","_setIsMinimized","waitForAppToOpen","createComponent","show","minimizeApp","InsideDrawerApplication","_drawerContentHandler","_retryOpen","retryButton","_shouldMinimizeOnDrawerClose","_publishMinimizeApp","_publishAppClosed","Overlay","retryCloseDrawerMessage","ChatApplication","chatSpecificParams","SOF","OMG","CasinofiedAppSdkLoader","_loadedAppsSDKs","appLauncherConfigs","appConfigs","sdks","loadScripPromise","CasinofiedBubbleComponent","_floatingBubbleHandler","floatingBubbles","addBubble","_containerID","_componentID","_appSdkLoader","_displayComponent","componentController","_componentController","UnifiedCashierZoidAdapter","_onCloseAlreadyCalled","DepositWidgetApplication","componentFactory","GAME_FRAME","PaymentRedirectFocusTitleBox","PaymentRedirectFocusDefaultBox","PaymentRedirectFocusBox","PaymentsRedirectFocusComponent","redirectApp","mftName","_renderButtonContainer","PaymentsRedirectApplication","_focusDialogHandler","_containerElement","psRedirectFocusDialog","paymentsRedirectIcon","sendLogLevelOnly","FullCashierApplication","_onExternalLinkClosedSubscription","_onExternalLinkClosed","linkSource","SessionType","onExternalLinkClosed","FullCashier","appData","CashoutWidgetApplication","CustomerRelationsApplication","featureType","openOldChat","sourceAppID","CustomerRelations","BonusWheelApplication","_bonusWheelContainerElement","HelpCentreApplication","CasinofiedAppFactory","CrChat","OpenBanking","UnifiedCashier","Redirect","UnifiedCashout","CasinoBonusGameWidget","CasinofiedAppLauncherService","_appFactory","_runningApps","_onBeforeOAuthStateChangedHandler","_closeAllApps","_openAppHandler","_onBrowserUnload","userClosedApp","_appClosedHandler","runningApp","_appMinimizedHandler","minimize","_appMaximizedHandler","maximize","_subscribeToTopics","_subscribeToReactions","_subscribeToSdkEvents","_subscribeToBrowserEvents","appMaximized","appMinimized","onBeforeOAuthStateChanged","unload","shouldReportOpenAppEvent","openAppRequest","createApplication","isOpeningInNewWindow","closeReason","trigger","TriggerType","automaticFlow","sourceAppVersion","appIdentifier","userSelection","_launchApp","ActionHandlerBase","OpenBankingActionHandler","openBakingSpecificParams","ProductPackageToID","PAYMENTS_DEPOSIT","UploadDocumentsActionHandler","UploadDocuments","openVerifyId","OpenDepositActionHandler","OpenWithdrawActionHandler","OpenLinkActionHandler","actionData","openExternally","OpenChatActionHandler","CRChat","OpenLinkWithFormPostActionHandler","_performFormPost","platformToken","formPostExtraParams","relatedAccountCid","registrationCategory","formPostParams","extraParams","_shouldOpenInSameWindow","performFormPost","isEmail","actionID","ActionID","openEmail","OpenEmail","OpenOnlineHelp","OPEN_EMAIL","OPEN_ONLINE_HELP","CasinofiedActionHandlerService","_performActionHandler","actionHandler","_createActionHandler","handle","openBanking","uploadDocuments","withdraw","openOnlineHelp","FloatingBubblesService","BubbleContentDecorator","bubbles","bubbleToRemoveIndex","_originalBubble","SourceOfFundsBox","SourceOfFundsPopupComponent","messageRow1","messageRow2","openChatLabel","RestrictionRulerService","enableSOF","RestrictionRuler","_executeRestrictionRulerActions","getRestrictionActions","RequestedAction","restrictionRulerResponse","_showSourceOfFundsMessage","restrictionRuleActionType","notifyRestrictionActionPerformed","showMessageActions","actions","messageId","sofRequired","sourceOfFundsIcon","_notifyRestrictionActionPerformed","RedTigerService","RedTiger","jackPotUrl","jackPotFeedApiUrl","widgetParameters","iso2Lang","currentLanguageIso2","jackpotUrl","jackpotFeedApiUrl","CasinofiedAnalyticsService","_sessionClosed","_sequentialNumber","_authenticationResult","setSequentialNumber","playerSessionId","_createLogger","messageID","_createMessageId","targetAppID","sequentialCorrelationID","setCorrelationId","setBusinessCorrelationID","openingMode","deviceTypeID","resolution","_getResolution","getLaunchInfo","isOk","appClosedParams","appCloseReason","screen","devicePixelRatio","closingReasonID","actionHandlerStep","actionResult","HttpWithRequestTimeMeasurement","_decoratedHttpService","fetchResponseWitLoadTimeReporting","fetchedResponse","parseResponseWitLoadTimeReporting","parsedResponse","_fetchResponse","_parseResponse","endTime","_reportDuration","finishTime","duration","AbTestingAiSortGamesListsService","aiSortGamesLists","CashierService","FULL_CASHIER_MOBILE","FULL_CASHIER_PC","eligibilityResult","abCheckActionHandlerEventData","eligibilityActionHandlerEventData","getEligibility","widgetConfigs","analyticsOptions","_waitForUserToBeLoggedIn","eligibility","isEligible","force","testGroup","testID","_getDepositWidgetEligibility","isEligibleForDepositWidget","_getCashierWidgetEligibility","PAYMENTS_CASHOUT","depositEligibility","_reportEligibilityEvents","openDepositWidget","promoCode","_getCashOutWidgetEligibility","openCashoutWidget","isDepositSessionType","isCashoutSessionType","cashOutEligibility","_openCashierExternalLink","LegacyRegulationWrapper","legacyRegulation","regulationType","REGULATION_NAMES","getRealityCheckIntervalExpectedByTheGame","getAgeResponsibleGamingLabel","updateRealityCheckInterval","RegulationService","sessionCooldownConfig","shouldShowPlayerLimitsToaster","getErrorMessage","LimitsToasterService","_limitsData","DepositLimit","PlayTimeLimit","BankrollLimit","_activeLimitToasters","_toasterDisplayDurationSec","_getPlayerLimits","getPlayerLimits","limitsDataRaw","depositLimitRaw","displayableLimits","limit","limitName","DEPOSIT_LIMIT","limitPeriods","playTimeLimitRaw","PLAYTIME_LIMIT","bankrollLimitRaw","BANKROLL_LIMIT","_handleUserLogout","_showLimitsToaster","hasData","_getFormatedLimitsText","onLiveGameSwitched","typeId","unit","formatedString","period","_getIntervalLabelFromType","_getFormatedTimeUnit","limits","_getFormatedWithSeparators","_getFormatedDepositLimitForType","_getFormatedPlayTimeLimitForType","_displayDepositLimits","_displayPlayTimeLimits","_displayBankrollLimits","PlayerBurnoutService","_isRealMoneyPrize","_burnoutMessageEventSubscription","_omgDisplayedEventSubscription","_gameShowEventSubscription","_gameCloseEventSubscription","_currentlyDisplayedOmgs","_onAuthStateChange","renderAnimation","_onOmgDisplayedEvent","omgData","showOmg","checkIfOmgDisplayed","PlayerBurnout","isRealMoneyPrize","onBurnoutMessageReceived","_onBurnoutMessageReceivedEvent","onOmgDisplayed","OfferBase","offerConfig","_offerShown","sessionStorage","_getSessionStageKey","offerShown","WelcomeOffer","linkToOfferIcon","WOFShellBox","wheelOfFortune","shell","rotateBackward","rotateStarting","rotateFullRotation","rotateFinish","WOFColorsBox","showSpin","WOFWrapperBox","WheelOfFortuneComponent","enableWheelOfFortuneAnimation","WheelOfFortuneOffer","hasWheelOfFortunePromotion","LinkToOfferBannerBox","RegistrationOffer","isRegistrationOfferEnabled","PlayerOfferingsService","_allOffers","_shownOffer","_registrationPopupTimerId","_preventShowingRegistrationPopupThisDemoSession","isEnabledFromConfig","PlayerOfferings","isWheelOfFortuneEnabled","hasWheelOfFortuneConfigSection","hasRegistrationOfferConfigSection","registrationOffer","enableAnimation","_hasWheelOfFortunePromotion","userBalance","_setWOFEnableAnimation","_updateWheelOfFortuneAvailability","_resetShownFlagForAllOffers","welcomeOfferConfig","_welcomeOfferConfig","currentPopup","_updateOfferToShow","onPromotionsChanged","Cid","IsPromotionDisplayedInClient","listenForLastOpenDemoGame","_showRegistrationPopup","_initPopupTimer","shouldBeVisible","welcomeOffer","updateConfig","offers","_getAllOffers","selectedOffer","_setCurrentLinkOffer","getEligiblePromotionCodes","promoCodes","_fetchUserHasWheelOfFortune","hasWheelOfFortune","_setHasWheelOfFortunePromotion","_renderBanner","_setCurrentPopup","loadPixi","PIXI","createPixiApplication","Application","backgroundAlpha","antialias","forceCanvas","force2DCanvasContext","contextLostHandler","stop","_e","selfDestroyOnContextLost","LocalStorageKeys","PixiAppService","_pixiAppCreatorWithWebGlManager","webGlContextManager","makeCreator","resourcesUrls","loader","load","GameAnimatedIconsManagerService","intersectionObserver","observedTargets","isGameOpened","intersectionCallback","VIEWPORT_EXIT","selectAndLoadAnimations","debounceTimeout","selectionRunning","selectionRunAgainNeeded","alreadyRunningAnimationCount","eligibleTargets","remainingSlots","shuffle","loadAnimatedIcon","set","delete","WebGLContextManagerService","_activeContexts","creatorFn","webGl2Context","getContext","webGl1Context","isContextLost","EXIT_POPUP_DEFAULT_CONFIG","EXIT_POPUP_LOCAL_STORAGE_KEY","ExitPopupService","_numberOfAppearancesInSession","_sessionChance","_initDataFromLocalStorage","_setExitPopupDataInLocalStorage","_showExitPopup","closedGameType","_updateMessageChance","recommendedGame","_dontShowAgainGAEvent","dontShowPopupAgain","analyticObject","_calcRandomChance","randomChance","ceil","_isMessageCanBeShown","_openExitPopupMessage","playedGameType","_getCorrelatedGame","correlatedGame","_onPopupClosed","_onCloseButtonClicked","_onCancel","_onOpenRealGame","_clickDontShowPopupAgain","exitPopUpData","_getExitPopupDataInLocalStorage","numberOfAppearancesInSession","chance","sessionChance","newChance","exitPopupData","TooltipModel","tooltipService","_onDocumentClickHandler","tooltipContainer","_domEventSubscription","_autoCloseTimeout","_popperInstance","attachTo","elementToAttach","_getElementToAttach","createPopper","_createTooltipPopper","ev","removeTooltip","TooltipService","tooltipsQueue","currentTooltip","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","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","_getCompanyConstructor","CompanyConstructor","getCompany","applyRegulation","BECAUSE_YOU_PLAYED_LAST_REAL_GAME_LOCAL_STORAGE_KEY","BecauseYouPlayedService","_setBecauseYouPlayedLastPlayedRealGameLocalStorage","_getBecauseYouPlayedLastPlayedRealGameLocalStorage","IndicatorLayout","RunningGameBrowserTabController","_activeGameInAnotherTabDetectionTimer","_detectActiveGameInAnotherTab","isGameRunningInAnotherTab","currentRunningGame","_setActiveGame","gameContext","_onGameClosed","activeGame","_currentBrowserTabId","_activeGameTabId","currentRunningGameTab","currentRunningGameType","GameLoadingIndicatorBaseModel","HybridEmbeddedGameLoadingIndicatorRootBox","HybridEmbeddedGameLoadingIndicatorHeaderBox","HybridEmbeddedGameLoadingIndicatorContentBox","HybridEmbeddedGameLoadingIndicatorSpinnerBox","HybridEmbeddedGameLoadingIndicatorProgressCircle1Box","HybridEmbeddedGameLoadingIndicatorProgressCircle2Box","angle","HybridEmbeddedGameLoadingIndicatorProgressCircle3Box","LoadingCircleLargeIcon","gradientUnits","x1","y1","x2","y2","gradientTransform","stopColor","stopOpacity","accumulate","additive","attributeType","calcMode","dur","repeatCount","to","HybridEmbeddedGameLoadingIndicatorComponent","_onCloseButtonClick","closeLoadingIndicator","totalPackages","packagesStatus","currentPackage","_renderPackageDownloadStatusLabel","downloadPercentage","_renderConnectingSpinner","_renderProgressIndicator","TOASTER_TIMEOUT","HybridEmbeddedGameLoadingIndicatorModel","_sdkEventsSubscriptions","_slowConnectionToasterTimer","_showToaster","ON_DEMAND","ON_DEMAND_CATEGORY","totalSeconds","_updateProgress","percentage","parts","numberOfPackages","_clearToasterTimer","onHybridEmbeddedGameLoadingIndicatorUpdateV1","onHybridEmbeddedGameLoadingIndicatorUpdateV2","statusBar","closeGameLoadingIndicator","hybridGameLoadingIndicatorClosed","WebAppGameLoadingIndicatorComponent","WebAppGameLoadingIndicatorModel","GameRunnerService","gameTabController","_reOpenPendingGame","gameFrameZIndex","persistedGameParams","SessionStorageKeys","currentGameParams","initialGameParams","onDepositWidgetClosed","_refreshCurrentGameBalance","GNWP_SOURCES","CASHIER","gameCommunicationChannel","supportsBalanceRefresh","refreshBalance","initialRunGameParams","_openHistoryGame","_logOpenGameError","_showGameOpenError","messageText","error_code","showSimpleTextModal","errMsgToLog","logError","_runGame","openDemoGame","loadingIndicator","gameLoadingIndicator","_setGameLoadingIndicator","_createGameLoadingIndicator","getRegulatedCompany","_setCurrentRunningGame","createWaitForClosePromise","triggerLegacyGameOpenEvent","waitForGameToClose","triggerLegacyGameCloseEvent","freePlayContext","isFreePlay","stopAutoplay","resumeGamePlay","shouldShowRealityCheckMessageWhileGameIsOpen","shouldShowTimeLimitMessageWhileGameIsOpen","HybridService","gameUrl","prepareGameUrl","getCompiledGameVersion","executeWaitForHybridGameStep","StaticVideoPlayingService","posterImage","StaticVideoPlayer","SessionStorageService","StorageServiceBase","CookiesService","expiration_date","toUTCString","setFullYear","getFullYear","cookie","FreePlayGameModel","voucher","VoucherBaseModel","voucherData","_voucherData","ID","FreePlayTypeId","GameTypeIDList","CurrentBalance","freePlayGames","g","ExpirationDate","newVoucherData","OriginAmount","_formatVoucherAmount","timeToExpiration","timeToExpirationRoundedToSeconds","isCloseToExpiration","expiration","FreePlayVoucherModel","backgroundTypeFP","JackpotFreePlayVoucherModel","backgroundTypeJFP","FreeSpinsVoucherModel","SpinBetAmount","backgroundTypeFS","JackpotFreeSpinsVoucherModel","backgroundTypeJFS","VouchersProviderBase","Tripe8FreePlayVouchersProvider","_cgpEventsSubscriptions","_onFreePlayBatchAddedHandler","vouchers","existingVoucher","_findVoucher","updateVoucherData","voucherModel","_createVoucherModel","_onFreePlayBatchUpdatedHandler","_onFreePlayBatchRemovedHandler","voucherIds","v","onFreePlayBatchAdded","onFreePlayBatchUpdated","onFreePlayBatchRemoved","voucherId","FREE_PLAY_TOOLTIP_DISPLAYED_NUMBER","FREE_PLAY_TOOLTIP_IS_DISPLAYED_IN_SESSION","FreePlayTooltipNotificationHandler","freePlayService","_freePlayIndicatorElementRef","_alreadyNotifiedVouchers","userVouchers","hasNewVouchers","_showTooltipOnFreePlay","_closeTooltip","hasVouchers","_toolTipDisplayCount","_toolTipWasDisplayedOnCurrentSession","_shouldShowTooltip","translateService","FPGiftIcon","giftIcon","_onTooltipClicked","ThirdPartyVouchersProvider","onThirdPartyVouchersReceived","FreePlayService","_toolTipHandler","_setVoucherProviders","setFreePlayIndicatorDOMElementRef","newProviders","_vouchersProviders","vp","allVouchers","provider","isValid","hasGame","RestrictionsService","FreeToPlayService","abIndex","openBonusWheel","ServiceFactory","sdkHooksProvider","windowService","domService","httpService","_appStartupConfigs","_languageData","_externalLinks","Lazy","_userMenu","_pokerIntegration","_partyJackpot","_verticalGamesList","_lobbyGameInfoPreview","_aiEngine","_aiNewEngine","_deepLink","_gameRouteHandler","_gamesFilter","_dynamicFilterFactory","_runningGame","_becauseYouPlayed","_siteMap","_marketing","_cmsPages","_configuration","_spinner","_webVitals","_location","LocationService","_routing","_regulation","_segmentation","_liveTableFeeds","_translation","_currencyService","_analyticsService","_analyticsDataLayerService","_userService","_browserButtonsHandler","_homepageService","_userGameOrientationService","_cmsApi","_cmsBanners","_launcher","_clientDevice","_device","_deepLinkParser","_deepLinkActionsFactory","_sdk","_language","_sideMenu","_gameSearch","_gamePopup","_cmsSegmentation","_stickyHandlerFactory","_menuFlow","_exitPopup","_sdkComponentFactory","_gamePreviewFeaturesSelector","_routingConfiguration","_overlay","_time","_abFiltering","_abTestingFeatureDataProvider","_abTestingAiSort","_themeDefinition","_miniOrbit","_dialog","_header","_pwaManifest","_progressiveWebApp","_miniOrbitCommunicationAdapterFactory","_drawerService","_dailyDeal","_omgProxy","_jackpotsWithState","_gradualIncreaseHelperFactory","_walletProxy","_safezone","_safezoneObjectFactory","_tools","_sessionCooldown","_mediaQuery","_api","_graphyteClickstream","_orbitComponentToSdkAdapter","_graphyte","_messageBroker","_appLauncher","_actionHandler","_floatingBubbles","_restrictionRuler","_redTiger","_casinofiedAnalytics","_liveStreamPlaying","_staticVideoPlaying","_httpWithRequestTimeMeasurement","_cashier","_playerOfferings","_qaEnvironmentPopUpBlockerService","_limitsToaster","_burnoutService","_pixiAppService","_gameAnimatedIconsManagerService","_webGlContextManagerService","_gamingHistory","_companies","_freeToPlayService","_gameRunner","_hybrid","_sessionStorage","_cookies","_freePlay","_restrictions","SplashService","forceInit","fireOrbitInitComplete","LogoContainerDefaultBox","LogoContainerCasino888Box","logoBackground","logoDecoration","LogoContainerCasino777Box","LogoContainerBox","LogoImageDefaultBoxCasino777","LogoImageDefaultBoxHarringtonDelaware","LogoImageDefaultBallysDover","LogoImageDefaultWSOP","LogoImageDefaultHarrash","LogoImageDefaultBox","LogoImageBox","LogoVipImageDefaultBox","LogoVipImageDefaultBoxCasino777","LogoVipImageDefaultBoxHarringtonDelawareBallysDover","LogoVipImageDefaultBoxHarrash","LogoVipImageDefaultBoxWSOP","LogoVipImageBox","LogoBox","withAnalytics","goHome","useDarkLogo","logoURL","TheLogoImageBox","_getLogoImageURL","UserInfo","shownData","selectedUserInfo","useSpanWrapper","ProfilePictureBox","ProfileUserNameDefaultBox","ProfileUserNameCasino777Box","ProfileUserNameBox","avatarState","ProfilePicture","imageSize","_openUserMenu","_getAvatarUrl","_updateAvatarState","onMouseDown","onMouseUp","_renderUserName","avatarUrl","marketingDl","IndicatorDefaultBox","displayLayout","List","IndicatorCasino777Box","IndicatorBox","IndicatorIconBgPosition","listLayout","casino777","harrahsAndWsop","Challenges","getBackgroundPosition","themeKey","iconSet","iconThemeSet","IndicatorIconDefaultBox","IndicatorIconCasino777Box","IndicatorIconHarrahsWsopBox","IndicatorIconBox","pulseAnimation","IndicatorBadgeBox","backgroundInListLayout","IndicatorTextDefaultBox","IndicatorTextCasino777Box","IndicatorTextBox","ProfileBoxMessagesIndicator","indicatorIsActive","indicatorActive","numberOfMessagesIsDefinedAndGreaterThanZero","hasAwaitingMessages","OmgIndicator","omgProxy","FreePlayIndicatorComponent","ChallengesIndicator","hasActiveChallenges","ProfileMessagesDividerDefaultBox","ProfileMessagesDividerCasino777Box","ProfileMessagesDividerHarrahsWsopBox","ProfileMessagesDividerBox","ProfileButtonsDefaultBox","ProfileButtonsHarrahsWsopBox","ProfileButtonsBox","ProfileCashierButtonDefaultBox","ProfileCashierButtonCasino777Box","ProfileCashierButtonCasino888Box","ProfileCashierButtonBallysDoverBox","ProfileCashierButtonHarringtonBox","ProfileCashierButtonHarrahsWsopBox","ProfileCashierButtonBox","ProfileCashierAddButtonDefaultBox","ProfileCashierAddButtonHarrahsWsopBox","ProfileCashierAddButtonBox","ProfileWrapperBox","ProfileMessagesDefaultBox","ProfileMessagesCasino777Box","ProfileMessagesBox","MARKETING_DL","ProfileBox","_renderLogin","_renderCashier","_renderProfileBoxMessages","myChallenges","_openLogin","AddIcon","addIcon","plusButton","BrandSwitchListBox","BrandSwitchListItemBox","border","radius","BrandSwitchListItemIconBox","BrandListComponent","_onBrandClick","brandConfig","class","_renderBrand","StoreButton","store_button","appLink","preventDefaultOnClick","imgSrc","imgSrcFallback","MenuLinksGroupsContainerBox","section","SideMenuContainerBox","MobileMenuItemContainerBox","MobileMenuItemLinkDefaultBox","MobileMenuItemLinkCasino777Box","MobileMenuItemLinkBox","HelpCenterMenuDefaultIcon","HelpCenterMenu777Icon","HelpCenterMenuIcon","MobileHelpCenterMenuItemComponent","_mobileHelpButtonHandler","openHelp","HamburgerMenu","_renderText","MobileLangSwitcherMenuItemSelectedLangBox","MobileLangSwitcherContainerBox","MobileLanguageMenuItemBox","MobileLangSwitcherMenuItemComponent","openMobileLanguageSwitcher","SideMenuHorizontalLineBox","horizontalLineBackgroundColor","horizontalLineBackgroundImage","MobileMenuItemsContainerBox","SideMenu","linkBlocks","menuLinksBlockOrder","_renderSideMenuSection","_renderMobileMenuElements","_renderHelpAndLangSwitcher","_renderBrandList","_renderInsideOrbitMenuContainerMobile","_renderStoreButton","sideMenuConfiguration","isLanguageSwitcherEmpty","helpLinkMobile","_renderMobileHelp","_renderMobileLangSwitcher","brand_sites","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","MobileMenuHeaderBox","flexRowContainerMixin","flexCenterAlignItemsMixin","MobileBackDefaultBox","MobileBackBox","MobileBackLabelBox","MainNavCanvasDefaultBox","MainNavCanvasCasino777Box","MainNavCanvasSIBox","MainNavCanvasBox","MainNavBox","OPEN_MENU","DRAGGING","MainNavContentWrapperBox","MainNavMenuBox","MainNav","mainNavRef","dragProperties","initialPointerX","initialNavMenuTransform","isNavigation","sideMenuDarkLogo","BackIcon","backButtonHandler","_hideMobileMenu","backButtonUseLabel","backButtonCyClass","flexBasis","isRTL","pointerX","touches","pointerXDelta","windowSize","innerWidth","minMainNavXToAutoClose","currentMainNavXPosition","removeProperty","onTouchMove","onTouchEnd","_onStopDragging","_renderMobileMenuHeader","_renderLogo","_renderProfileBox","UserMenuSectionDefaultBox","UserMenuSectionCasino777Box","UserMenuSectionCasino888Box","UserMenuSectionBox","LoyaltyBarSectionBox","LoyaltyBar","showLoyaltyConfig","sendLoyaltyAnalytics","UserDetailsSectionDefaultBox","UserDetailsSectionCasino777Box","UserDetailsSectionHarrahsWsopBox","UserDetailsSectionBox","UserDetailsWrapperDefaultBox","UserDetailsWrapperCasino777Box","UserDetailsWrapperBox","UserMenuPictureDefaultBox","UserMenuPictureCasino777Box","UserMenuPictureBox","UserMenuTitleDefaultBox","UserMenuTitleCasino777Box","UserMenuTitleBox","UserMenuTitleAccountDefaultBox","UserMenuTitleAccountCasino777Box","UserMenuTitleAccountBox","UserMenuTitleMobileDefaultBox","UserMenuTitleMobileCasino777Box","UserMenuTitleMobileBox","UserInfoLabelBox","UserDetails","_setAvatarState","launchMyAccount","_renderAvatar","_renderUserData","translator","UsefulLinksSectionDefaultBox","UsefulLinksSectionCasino777Box","UsefulLinksSectionHarrahsWsopBox","UsefulLinksSectionBox","LogOutSectionDefaultBox","LogOutSectionCasino777Box","LogOutSectionBox","UserMenuSectionIconDefaultBox","UserMenuSectionIconCasino777Box","UserMenuSectionIconBox","UsefulLinksSectionIconDefaultBox","UsefulLinksSectionIconCasino777Box","UsefulLinksSectionIconBox","LogOutLinkDefaultBox","desktop","LogOutLinkCasino777Box","LogOutLinkBox","UsefulLinks","userMenuService","doLogout","BonusAndCashBalanceBox","BalanceInnerBox","BalanceTitleInnerDefaultBox","BalanceTitleInnerCasino777Box","BalanceTitleInnerHarrahsWsopBox","BalanceTitleInnerBox","BalanceValueBonusAndCashDefaultBox","BalanceValueBonusAndCashCasino777Box","BalanceValueBonusAndCashHarrahsWsopBox","BalanceValueBonusAndCashBox","BonusAndCashBalance","BalanceButtonsGroupDefaultBox","BalanceButtonsGroupCasino777Box","BalanceButtonsGroupHarrahsWsopBox","BalanceButtonsGroupBox","UserBalanceButtons","onDeposit","onWithdraw","UserMenuBalanceTitleCasino777Box","UserMenuBalanceTitleBox","UserBalanceSectionBox","UserBalanceSectionIconDefaultBox","UserBalanceSectionIconCasino777Box","UserBalanceSectionIconBox","BalanceValuePrimaryDefaultBox","BalanceValuePrimaryCasino777Box","BalanceValuePrimaryBox","UserBalance","_renderButtons","launchDeposit","launchWithdraw","UserChallengesContainerBox","UserChallengesTitleBox","UserChallengeComponent","launchDrawerLink","UserChallengesComponent","drawerBoxesConfig","drawerBoxes","MiniSafezoneDefaultBox","MiniSafezoneBox","MiniSafezoneComponent","UserMenuScrollWrapperBox","UserMenuFakeIOSPaddingBox","UserMenuMobile","WelcomeUserBox","WelcomeGreetingDefaultBox","WelcomeGreetingCasino777Box","WelcomeGreetingBox","WelcomeUserInfoDefaultBox","WelcomeUserInfoCasino777Box","WelcomeUserInfoBox","WelcomeUser","greeting","showUserTitle","showFirstName","showLastName","_renderUserTitle","_renderUserInfo","userGenderTitle","genderTitle","infoType","UserMenuClosePCButtonBox","UserMenuCloseIconDefaultBox","UserMenuCloseIconCasino777DefaultBox","UserMenuCloseIconBox","UserMenuHeaderBox","UserMenuPc","_renderUserMenuHeader","FreePlayContainerBox","VouchersSwiperBox","VoucherSwiperArrowContainerBox","isPrev","swiperArrowPrev","swiperArrowNext","VouchersSwiperComponent","prevElement","nextElement","dir","slidesPerView","centeredSlides","pagination","clickable","nextEl","prevEl","modules","Pagination","Navigation","onBeforeInit","onActiveIndexChange","onCurrentVoucherIndexChanged","activeIndex","_vouchers","VoucherGamesListBox","VouchersSwiperTitleBox","VouchersSwiperBackgroundBox","backgroundVouchersSlider","VouchersGamesListTitleDefaultBox","VouchersGamesListTitleCasino777Box","VouchersGamesListTitleBox","FreePlayContainerComponent","currentVoucher","currentVoucherIndex","_onCurrentVoucherChangedHandler","voucherGame","marginBottom","voucherIndex","UserMenuRootDefaultBox","USER_MENU_OPEN","UserMenuRootCasino777Box","UserMenuRootBox","UserMenuWrapperDefaultBox","UserMenuWrapperBox","UserMenuHolderDefaultBox","UserMenuHolderBox","UserMenu","holderRef","_closeMenu","_renderMobileBackButton","justifyContent","_renderMenuContents","HelpButtonComponent","PCHeader","topHeaderRightConfig","top_header_right","help","helpIcon","handleClick","SpriteIconBox","sourceX","sourceY","Icons","Close","PokerBrandSmall","SportBrandSmall","CasinoBrandSmall","CrossBrandListDefaultBox","CrossBrandListBox","CrossBrandItemDefaultBox","customProps","poker","sport","casino","CrossBrandItemBox","CrossBrandItemIconDefaultBox","CrossBrandItemIconBox","CrossBrandsComponent","isAuth","directLink","brandClass","formattedBrandClass","BrandIcon","_getBrandIcon","crossBrandsConfig","cross_brand","_renderCrossBrandLinks","MobileBurgerMenuComponent","_clickHandler","HeaderLanguageSwitcherBox","HeaderLanguageSwitcherComponent","_timer","_toggleDropdown","_clearCollapseTimeout","_colapseDropdown","_startCollapseTimeout","earthGlobeIcon","NavbarSeparatorDefaultBox","NavbarSeparatorBox","HeaderNavbarContainerDefaultBox","nav","HeaderNavbarContainerWsopBox","HeaderNavbarContainerHarrahsBox","HeaderNavbarContainerCasino777Box","HeaderNavbarContainerBox","HeaderNavbarMobileWrapperDefaultBox","HeaderNavbarMobileWrapperBox","HeaderNavbarLeftContainerDefaultBox","HeaderNavbarLeftContainerBox","HeaderNavbarRightContainerDefaultBox","HeaderNavbarRightContainerBox","NAVBAR_RIGHT_CONTAINER","HeaderComponent","_captureHeaderRef","setHeaderElement","safeZoneIcon","_headerConfig","_renderDesktopSearchInput","responsibleIcons","_renderInsideOrbitMenuContainerPC","egr_logo","egrLogo","_renderDesktopSafezoneButton","_renderDesktopHelpButton","_renderDesktopLanguageSwitcher","_renderMobileNavbar","_renderDesktopLeftNavbar","_renderDesktopRightNavbar","DrawerBodyDefaultBox","DRAWER_WIDTH","DrawerBodyBox","DrawerContentBox","DrawerComponent","lastVisibleDrawerItemIndex","ReactDOM","createPortal","_renderDrawer","OverlayComponentDefaultBox","OverlayComponentBox","OverlayComponent","SpinnerDefaultBox","SpinnerBox","SpinnerBrandDefaultBox","SpinnerBrandBox","spinnerAnimationKeyframes","SpinnerBackgroundDefaultBox","SpinnerBackgroundCasino777Box","SpinnerBackgroundCIPBox","SpinnerBackgroundCISBox","SpinnerBackgroundBox","SpinnerLogoDefaultBox","SpinnerLogoCasino777Box","SpinnerLogoCIPBox","SpinnerLogoWSOPBox","SpinnerLogoDelawareParkBox","SpinnerLogoBallysDoverBox","SpinnerLogoHarringtonBox","SpinnerLogoCISBox","SpinnerLogoBox","SpinnerComponent","BreadcrumbsComponent","showBreadcrumbs","cmsPages","bcrumb","AppFooterComponent","footerConfiguration","footer","RouterOutletDefaultBox","RouterOutletCasino777Box","brandPrimaryDark","RouterOutletCasino888Box","RouterOutletHarrahsBox","RouterOutletWsopBox","RouterOutletSIBox","RouterOutletBox","RouterOutletComponent","BottomStickyNavbarContainerBox","shouldElevate","StickyNavigationMenuListBox","StickyNavigationMenuItemBox","iconNormalStatePosY","iconActiveStatePosY","StickyNavigationMenuItemIconDefaultBox","StickyNavigationMenuItemIconWsopBox","StickyNavigationMenuItemIconHarrahsBox","StickyNavigationMenuItemIconCasino777Box","StickyNavigationMenuItemIconHarringtonBox","StickyNavigationMenuItemIconBallysDoverBox","StickyNavigationMenuItemIconDelawareParkBox","StickyNavigationMenuItemIconBox","StickyNavigationMenuActiveIndicatorDefaultBox","StickyNavigationMenuActiveIndicatorWsopBox","StickyNavigationMenuActiveIndicatorHarrahsBox","StickyNavigationMenuActiveIndicatorCasino777Box","StickyNavigationMenuActiveIndicatorBallysDoverBox","StickyNavigationMenuActiveIndicatorHarringtonBox","StickyNavigationMenuActiveIndicatorDelawareParkBox","StickyNavigationMenuActiveIndicatorBox","StickyNavigationMenuActiveIndicatorRailBox","StickyNavigationMenuActiveIndicatorComponent","StickyNavigationMenuListComponent","allMenuLinks","validNavPaths","activeElement","stickyMenuBoundingBox","resizeEventHandler","activeLink","activePosition","_setActiveLink","onBeforeChangingLocation","_setActiveLinkPosition","elBoundingBox","stickyMenuLeftEdge","elBoundingBoxCenter","_isActiveLink","_setActiveLinkRef","_handleLinkClick","linksOrder","stickyMenuBlockOrder","linksConfig","_renderLink","el","_setStickyMenuContainerRef","_renderLinksList","StickyNavigationMenuComponent","FloatingBubblesContainerBox","FloatingBubbleBox","FloatingBubblesComponent","bubble","MainWrapperDefaultBox","MainWrapperCipBox","MainWrapperBox","QAEnvironmentPopUpBlocker","ContainerComponent","_showQAEnvironmentPopUpBlocker","qaEnvironmentPopUpBlockerCookie","URLSearchParams","_renderRightDrawer","_renderFullOrbitMobileLayout","_renderFullOrbitPcLayout","_renderMiniOrbit","_renderFullOrbit","ModalDialogsContainerComponent","OrbitComponentsRenderedInsideSdkContainer","componentsPortals","PlayerBurnoutLayerComponent","burnoutService","checkOmg","TooltipArrowDefaultBox","TooltipArrow777Box","TooltipArrowBox","TooltipCloseButtonBox","invertColors","TooltipContainerBox","isAnimated","TooltipGlowDefaultBox","TooltipGlow777Box","TooltipGlowBox","TooltipContentBox","ToolTipContainerComponent","toolTipService","setTooltipContainer","shouldShowCloseButton","GameLoadingIndicatorRootBox","isHidden","GameLoadingIndicatorComponent","AppComponent","removeSplash","splashTime","siteFinishedLoading","renderGame","disableCSSOMInjection","stylisPlugins","RtlPlugin","renderGlobalStyles","_renderCurrentGame","renderApp","orbitElement","InMemoryLocalStorageService","_localStorageData","B2CFrameworkLoader","_languageIso2","_cmsSource","overrides","_loadStyleTag","_buildFilePath","_loadScriptTag","scriptTag","styleTag","DEFAULT_CONFIGS","resolveAssets","assetsContainer","assetLocationInfo","resolveLocation","getThemeName","storageService","baseUri","isMiniOrbitBasePath","ORBIT_LOCATION_OVERRIDE_BASE","selectTheme","storage","themeDefinitionModule","configure","enforceActions","createStorage","lsData","LocalStorageService","getLanguageData","languageIso3","languageDataModule","engLang","startApplication","WindowService","DomService","HttpService","loggerService","ConsoleLoggerService","configurationsReader","readApplicationConfigurations","languageData","process","REACT_APP_THEME_NAME","loadB2CFramework","promo","SeoBreadcrumbsContainerBox","SeoBreadCrumbsComponent","_templateID","_fallbackFileName","_areEqual","val1","val2","TableSeatsComponent","Seats","SeatsTaken","Players","_isTableFull","_getTableIsFullTranslationKey","_getPlayersCountFormated","fullSeatIcon","seatIcon","_getTableIsFullText","_getSeatsIconSource","LayoutWrapperBox","LayoutWrapperDefaultBox","IntersectionSpyComponent","_captureIntersectionSpy","QA_ENV_URBAN_DEFAULT_SETTINGS","defaultIcon","defaultTitle","defaultActionURL","appKey","vapidPublicKey","SelectBox","select","GameNavbarCloseButtonBox","VOUCHER_CARD_WIDTH","_relativePath","_brandsOverrides","_locationInfo","locationInfo","NAVIGATION_VIEWS","WINDOW","IFRAME","REDIRECT","SECOND_WEB_VIEW","CASHIER_ACTIONS","LINK_DEFAULT_CONGIF","allowedViews","dimensions","isAuthRequired","isCloseBtnAllowed","immediateShow","isMobileFullScreen","priorityLevel","macos","browsers","safari","isNotAuthRequired","MEMBERSHIP","backToView","SECONDARY_MESSAGE","COMPONENT_TYPES","DIRECTIVE","CONTACT_US","FORGOT_PASSWORD","FORGOT_USERNAME","MY_ACCOUNT","SPORT","RICH","PENDING_LOGIN","PENDING_PLAY","DOCUMENT_UPLOAD","HELP","negateNextRule","formatRule","EMBEDDED_HYBRID","MINI_ORBIT","Svg","svg","flipOnRTL","SvgIcon","defaultSize","Px","Percent","ratio","version","xmlns","KEY_NAME","FUNC","FUNC_CB","HYBRID_CB","HYBRID_CB_GLOBAL_NAME","HYBRID_CB_FEATURE_FUNC","SRV","MSG","ERROR","DATA","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","OPEN_LINK","DEBUG","RELOAD","AUTOLOGIN","SESSIONTIMER","HEADER_HEIGHT","BANK_ID","PHONE","LEFT","RIGHT","TOP","BOTTOM","SHOW","DP_TO_PX","LOG_CATEGORY","LOG_ACTION","LOG_LABLE","LOG_VALUE","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","FEATURE_CB_FUNC","HYBRID_WEB_CALL","HYBRID_URL_SCHEME_CALL","HYBRID_PUSH_CALL","HYBRID_GEO_CALL","HYBRID_ON_DEMAND_CALL","HYBRID_ON_DEMAND_NYX_CALL","HYBRID_LOBBY_POP_UP_CALL","HYBRID_FIRE_BASE","HYBRID_NATIVE_LOGS","SERIVCES_FUNC_LIST","WEB_VIEW_WEB_SHOW","WEB_VIEW_SAFARI","WEB_VIEW_SAFARI_PING","WEB_VIEW_ACCOMPLISHED","WEB_VIEW_IS_HTML_COMPILED_GAMES","WEB_VIEW_GET_DP_2_PX","GENERAL_INIT_HYBRID","GENERAL_ALERT","GENERAL_ALERT_D","GENERAL_SET_ROTATION","GENERAL_SET_CB","GENERAL_OPEN_MAIL","GENERAL_OPEN_EXTERNAL_LINK","SERIAL_GET_SERIAL","T3_D_TOUCH_INIT_SHORTCUTS","T3_D_TOUCH_UPDATE_SHORTCUT","T3_D_TOUCH_DELETE_SHORTCUT","T3_D_TOUCH_DEL_ALL_SHORTCUTS","T3_D_TOUCH_GET_LAUNCH_SHORTCUT","TOUCH_ID_GET_TOKEN","TOUCH_ID_OPEN","TOUCH_ID_SET_TOKEN","TOUCH_ID_IS_SUPORTED","TOUCH_ID_CLEAR_ALL","TOUCH_ID_PARAMS_FOR_TOKEN","WEB_SECOND_SET_CB","WEB_SECOND_NAVIFATE","WEB_DEPOSIT_WIDGET_NAVIFATE","WEB_SECOND_SHOW","WEB_SECOND_HIDE","WEB_SECOND_CLOSE","WEB_SECOND_UPDATE_SIZE","WEB_DEPOSIT_WIDGET_SUPPORTED","INFO_GET_ALL_INFO","INFO_SET_URL","URL_SCHEME_SET_CB","URL_SCHEME_GET_URL_SCHEME","URL_SCHEME_CLEAR","PUSH_IS_DEVICE_ENABLE","PUSH_SET_CB","PUSH_GET_ACTION","PUSH_ADD_TAG","PUSH_REM_TAG","PUSH_SET_ALIAS","PUSH_PROMPT_PERMISSION","GEO_SET_CB","GEO_GET_LOCATION","GEO_IS_PERMISSION_SUPPORTED","GEO_SHOW_PERMISSION","LEXIS_NEXIS_GET_INFO","LEXIS_NEXIS_IS_SUPPORTED","RATE_APP","ON_DEMAND_IS_READY","ON_DEMAND_CLOSE_GAME","ON_DEMAND_SET_CB","ON_DEMAND_LOAD_CHILL","ON_DEMAND_CLOSE_BY_X","ON_DEMAND_CLOSE_BY_TIME_OUT","ON_DEMAND_CLOSE_BY_LOW_DISK_SPACE","ON_DEMAND_DELETE_GAME_FOLDER","ON_DEMAND_NYX_SET_CB","ON_DEMAND_NYX_NAVIGATE","ON_DEMAND_NYX_CLOSE","ON_DEMAND_NYX_CHANGE_HEADER_HEIGHT","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","LobbyHeaderDefaultBox","stickOffset","LobbyHeaderCasino777Box","LobbyHeaderBox","CommonStyles","LobbyHeaderTitlePCBox","LobbyHeaderTitleMobileBox","LobbyHeaderTitleBox","LobbyHeaderLinePCBox","LobbyHeaderLineMobileBox","boxBorderLighter","LobbyHeaderLineDefaultBox","LobbyHeaderLineCasino777Box","LobbyHeaderLineBox","FiltersMobileButtonDefaultBox","FiltersMobileButtonCasino777Box","FiltersMobileButtonBox","FiltersMobileIconDefaultBox","FiltersMobileIconCasino777Box","FiltersMobileIconBox","FiltersGamesMobilePopupBox","FiltersMobileButtonsBox","GroupFiltersListContainerBox","GroupFiltersListGroupBox","GroupFiltersListGroupTitleBox","GroupFiltersListContainerFilterByBox","GroupFiltersListGroupTitleActivePreviewBox","GroupFiltersListGroupTitleContainerBox","GroupFiltersListGroupFiltersContainerBox","GroupFiltersListGroupFilterBox","GroupFiltersListGroupFilterInputBox","GroupFiltersListGroupFilterTitleBox","GroupFilterComponent","onGroupToggle","onFilterToggle","isMultiSelect","groupTitle","activeFiltersTexts","inputType","GroupFiltersListComponent","currentOpenFilterGroupText","filtersGroupText","filtersGroup","onFilterGroupClicked","FiltersGamesListMobileComponent","_closePopup","filterToToggle","_applyFilters","checkedFiltersIds","applyMultipleFilters","_clearFilters","supportFiltersV2","_renderPopupButtons","FiltersMobileButtonComponent","shouldHideFiltersButtonMobile","LobbyHeaderButtonsContainerBox","LobbyHeaderDefaultButtonsBox","LobbyHeader777ButtonsBox","LobbyHeaderButtonsBox","LobbyHeaderComponent","handleSearchClick","lobbyHeaderClasses","SearchIcon","searchIcon","LiveCasinoGridItemInfobarDefaultBox","infobarBackground","LiveCasinoGridItemInfobarCasino777Box","LiveCasinoGridItemInfobarBox","LiveCasinoGridItemBetIntervalDefaultBox","LiveCasinoGridItemBetIntervalCasino777Box","LiveCasinoGridItemBetIntervalSIBox","LiveCasinoGridItemBetIntervalBox","LiveCasinoGridItemClosedMessageDefaultBox","closedMessageBackground","LiveCasinoGridItemClosedMessageCasino777Box","LiveCasinoGridItemClosedMessageBox","LiveCasinoGridItemThumbnailOverlayBox","LiveCasinoGridItemThumbnailBox","LiveCasinoGridItemWrapperDefaultBox","LiveCasinoGridItemWrapperCasino777Box","LiveCasinoGridItemWrapperBox","LiveCasinoGridItemTitleBox","LiveCasinoGridItemBetBehindButtonDefaultBox","LiveCasinoGridItemBetBehindButtonCasino777Box","LiveCasinoGridItemBetBehindBox","LiveCasinoGridItemJackpotDefaultBox","LiveCasinoGridItemJackpotCasino777Box","LiveCasinoGridItemJackpotBox","LiveCasinoGridItemOpenAtBox","LiveCasinoArenaGridItem","isMobilePhone","Dealer","dealerIcon","jpValue","tableIsFull","BetBehind","_renderDealerName","_renderSeatsCount","_renderRouletteDraws","_renderBetBehindButton","_renderGameThumbnailImage","_renderGameInfobar","_renderGameIsClosed","_renderGameThumbnail","_renderGameItem","VoucherCardBox","VoucherCardSideBox","backgroundImageUrl","VoucherCardFaceBox","backSideShown","VoucherCardFaceContentBox","VoucherCardSideFooterBox","VoucherCardFaceFooterBox","VoucherCardFaceIconContainerBox","VoucherCardFaceDetailsBox","VoucherCardFaceOriginalAmountBox","VoucherCardFaceVoucherNameBox","VoucherCardFaceCurrentAmountContainerBox","VoucherCardFaceIconBox","iconUrl","VoucherCardFaceCurrentAmountBox","VoucherCardSideToggleButtonBox","VoucherCardSideFooterContentBox","VoucherCardFaceHeaderBox","VoucherCardFaceHeaderComponent","_expirationTimer","expirationMessage","VoucherCardFaceComponent","formattedOriginalAmount","formattedCurrentBalance","InfoIcon","_renderOriginalAmount","voucherName","_renderCurrentAmount","onToggleSide","VoucherCardBackBox","VoucherCardBackHeaderBox","VoucherCardBackContentBox","VoucherCardBackFooterBox","VoucherCardBackComponent","CloseIcon","closeIcon","voucherDescription","VoucherCardComponent","_onToggleSide","showBackSide","_onCardSideClickHandler","LiveCasinoFilterButtonsDefaultBox","LiveCasinoFilterButtonsCasino777Box","LiveCasinoFilterButtonsBox","LiveCasinoNavbarScrollBox","LiveCasinoNavbarOverflowBox","LiveCasinoNavbarDefaultBox","LiveCasinoNavbarCipBox","LiveCasinoNavbarCasino777Box","LiveCasinoNavbarCisBox","LiveCasinoNavbarBox","ButtonsActiveIndicatorBox","activeIndicatorBg","activeIndicatorWidth","activeIndicatorPosition","LiveCasinoArenaNavbar","navbarRef","buttonsRefs","scrollContainerRef","_scrollEventHandler","_buttonsRefsFilters","_updateActiveIndicatorPosition","activeButton","currentFilterIndex","scrollContainer","activeIndicator","offsetWidth","widthOffset","activeFilterButtonIndex","filterButton","_onFilterClicked","_getFilterInFirstEnter","filterIndex","_updateStateForFilterChange","setCurrentFilter","runFilter","clearFilters","nextProps","nextState","nextContext","_renderActiveIndicator","FilterLinkIconDefaultBox","FilterLinkIconCasino777Box","FilterLinkIconBox","FilterLinkDefaultBox","FilterLinkCasino777Box","FilterLinkBox","FilterLinkComponent","_onFilterClick","FiltersGamesListBox","FilterLinkListComponent","_toggleHandler","_renderOneFilter","RegulatoryDataBox","GamblingWarningBox","GamblingWarningComponent","gamblingMessageConfig","gambling_message","Mobilebox","ResponsibleGamingIconsBox","ResponsibleIconsComponent","ageButtonConfig","iconType","responsibleIconsConfig","_renderAgeButton","ageButton","RegulatoryDataComponent","_captureHeaderUpperRef","setHeaderRegulationDataElement","_renderMobileLastLogin","_getRegulatoryContent","AnimationDismissType","FLOATING_BUTTON_DURATION_IN_SECONDS","NATIVE_ANIMATION_FRAME_WIDTH","BurnoutAnimationContainer","viewportHeight","animationEnded","dismissType","FadeOut","BurnoutAnimationBox","burnoutAnimation","lastFrame","FloatingButton","CongratulationsTextBox","animationWidth","ExitAnimationDurationByDismissType","BurnoutAnimation","starting","lastFrameCache","_animationElement","_animationWidth","_viewportHeight","_onPauseHandler","captureAnimationDivElement","paused","startAnimation","pixiJson","burnoutAnimationResource","currentAnimationTrackEntry","timeScale","addAnimation","listener","stringValue","setShowCongratsText","start","setDismissType","getExitAnimation","markAnimationEnding","autoUpdate","onExitAnimationEnd","_dismissType","_hasAnimationEnded","_showCongratsText","BurnoutFab","onMount","removeButton","useEffect","BurnoutFabContainer","BurnoutFabInner","disappearAnimation","shadowAppear","BurnoutAnimationWrapper","_onMountFAB","_renderFAB","_showButton","onClickFAB","_removeButtonAnimation","_animationEnded","recheckOmg","retryOnFail","FAB_DISAPPEAR_DURATION_IN_SECONDS","LiveCasinoGridDefaultBox","LiveCasinoGridCasino777Box","LiveCasinoGridBox","LiveCasinoGridItemSkeletonBox","LiveCasinoGridItemSkeletonTitleBox","LiveCasinoGridItemSkeletonWrapperBox","LiveCasinoArenaGrid","_gameElementRef","_gridElementRef","_cmsBannerRendered","_captureGameElementRef","gameElement","_computeNumberOfGamesInARow","_captureGridElementRef","_cmsBannerPosition","_numberOfGamesPerRow","displayRowPlace","gameIds","getLiveGames","_getCurrentSubArenaConfig","maxGamesToShow","_setCMSBannerPosition","activeFilters","currentArena","_getPromotionalBanner","shouldRenderPromoBanner","_prepareGames","_renderGridSkeleton","_renderGridItem","_renderArenaGrid","ClockLastLoginDefaultBox","ClockLastLoginCasino777Box","ClockLastLoginBox","LastLoginBox","ClockAndLastLoginBoxComponent","ClockAndLastLoginBox","getTimeFormat","_renderLastLoginComponent","lastLoginDisplay","getDateTimeFormat","LiveCasinoGridItemDrawsBox","LiveCasinoGridItemDrawDefaultBox","drawColor","drawRedItemBackground","drawGreenItemFirstChildBackground","drawRedItemFirstChildBackground","LiveCasinoGridItemDrawCasino777Box","LiveCasinoGridItemDrawBox","ROULETTE_NUMBERS_MAP","red","green","RouletteDrawsComponent","drawValue","_getDrawColor","HeaderWelcomeButtonsContainerDefaultBox","HeaderWelcomeButtonsContainerHarrahsBox","HeaderWelcomeButtonsContainerBox","HeaderWelcomeButtonsButtonBox","HeaderWelcomeButtonsComponent","_register","_downloadApp","openDownloadApp","register_in_login","_renderSdkWelcomeComponent","_getMarketingDataObject","showUserBadge","postLoginLayoutPc","styleSelectors","_getWelcomeStyleObj","preLoginLayoutPc","preLoginLayoutMobile","externalBrand","_renderDownloadApp","_showRegistrationButton","_renderWithRegistrationButton","_renderWithoutRegistrationButton","LobbyWrapperDefaultBox","LobbyWrapperCasino777Box","LobbyWrapperSIBox","LobbyWrapperBox","UsefulLinksListDefaultBox","UsefulLinksListCipBox","UsefulLinksListBox","UsefulLinksListComponent","onItemClick","EmptyBannerContainerBox","EmptyBannerComponent","MediaType","MediaOrientation","MediaPointer","breakpoints","MediaQueryBuilder","_mediaType","w","precision","xsMax","sMax","mMax","lMax","xlMax","maxWidth","minWidth","Portrait","Landscape","maxHeight","Fine","Coarse","None","CmsLink","_anchorElement","_cmsContentRootElement","anchorUri","tryParseUrl","scrollIntoView","evaluateScriptsWithExternalFile","fakeDiv","scriptElements","elementsLength","script","consoleLogFunc","isOrbitInQAMode","tryEnd","removeChild","_cmsLinks","_evaluateScripts","_loadCmsLinks","scriptRegex","exec","evaluateScripts","linkTags","currentLink","childElementSelector","LobbyGridDefaultBox","LobbyGridCasino777Box","LobbyGridBox","Load","LoadingDotBox","animationDelay","LoadingDotsBox","LoadingDotsComponent","LiveCasinoGridItemBox","LiveCasinoGridItemInfobarIconBox","LiveCasinoGridItemInfoItemBox","LiveCasinoGridItemThumbnailImageBox","BASE","POP_UP","OPEN_SESSION","FP","OMG_BEHIND","NEXT_GAME","GAME_LOADING_INDICATOR","GAME_FRAME_LOADER","GAME_FRAME_FP","MINI_CASHIER","LOGIN","EXTERNAL_LINK","INTERNAL_OVER_EXTERNAL_LINK","GEO_FREEZE_WINDOW","TEMP_ACCOUNT","MESSAGE","TOUCH_ID_POPUP","LOCK","SPAIN_SUMMARY_MESSAGE","GAMES_QUESTIONNAIRE","WRAPPER_DEFAULT_INDEX","ButtonBox","rounded","hasIcon","hasLabel","iconSize","strokeWidth","lateralPadding","colorSet","bg","elevated","shadow","rotated45","ButtonLabelBox","fontSize","ButtonIconWrapperBox","$Button","stroke","otherProps","presetValues","baseUIComponents","presets","themePresetDefaults","defaults","iconPlacement","strokeValues","sizeVariantValues","iconSizeValue","renderIcon","Em","withTheme","anchorRef","_getAnchorProps","_renderAnchor","webpackAsyncContext","__webpack_require__","code","ids","exports","hex","opacity","omg","myAccount","urlParam","REGULATION_CODE_TYPES","COM","ITALY","SPAIN","NEVADA","GIB","DELAWARE","NJ","DK","ROMANIA","GERMANY","PORTUGAL","SWEDEN","MALTA","SH","CANADA_ONTARIO","NETHERLANDS","MICHIGAN","UK","REGULATION_SUFFIX","TEMP_ACCOUNT_STATUS","APPROVED","DOCUMENTS_NOT_RECEIVED","PENDING_VERIFICATION","BRANDS","NJ888","CANADA","flexAlignItemsMixin","alignItems","FlexGrowItemBox","FlexContainerBox"],"mappings":"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,+BAAgC,CAC/B,KACA,EACA,IAED,kCAAmC,CAClC,KACA,EACA,IAED,6BAA8B,CAC7B,IACA,EACA,IAED,gCAAiC,CAChC,KACA,EACA,IAED,wBAAyB,CACxB,KACA,EACA,IAED,8BAA+B,CAC9B,KACA,EACA,IAED,0BAA2B,CAC1B,KACA,EACA,KAGF,SAASg+N,EAAoBpoF,GAC5B,IAAIqoF,EAAoBxhP,EAAEujB,EAAK41I,GAC9B,OAAOrjJ,QAAQwgB,UAAUK,MAAK,WAC7B,IAAI/O,EAAI,IAAItP,MAAM,uBAAyB6gJ,EAAM,KAEjD,MADAvxI,EAAE65N,KAAO,mBACH75N,KAIR,IAAI85N,EAAMn+N,EAAI41I,GAAM/yI,EAAKs7N,EAAI,GAC7B,OAAO5rO,QAAQ6rD,IAAI+/K,EAAIpiP,MAAM,GAAGikB,IAAIi+N,EAAoB55N,IAAI+O,MAAK,WAChE,OAAO6qN,EAAoBp7N,MAG7Bm7N,EAAoB1yN,KAAO,WAC1B,OAAOhwB,OAAOgwB,KAAKtL,IAEpBg+N,EAAoBn7N,GAAK,IACzBwQ,EAAO+qN,QAAUJ,G,oBC3EjB,IAAIh+N,EAAM,CACT,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,KAED,WAAY,CACX,KAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,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","file":"static/js/orbit-main.7b583a19.chunk.js","sourcesContent":["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}","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 {Nullable, NullableUndefinedString, UndefinedNumber} 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}\r\n\r\nexport interface IGameFreePlayContextViewModel {\r\n readonly isFreePlay: 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 CGP_ERROR_CODES = {\r\n GENERAL_ERROR_SUPPORT: 100000,\r\n RESTRICTED_COUNTRY: 100105,\r\n INVALID_CREDENTIALS: 110,\r\n LOGIN_RESTRICTION: 100115,\r\n INVALID_REFRESH_TOKEN: 100120,\r\n CAPTCHA_REQUIRED: 170,\r\n TOUCH_ID_CHANGE_PASS: 100300,\r\n TOUCH_ID_EXPIRE: 100305,\r\n GENERAL_ERROR: 900000,\r\n OPENING_GAME_ERROR: 100205,\r\n UNSUPPORTED_ANONYMOUS: 100210,\r\n TIME_LIMIT_REACHED_DAILY: 100155,\r\n TIME_LIMIT_REACHED_WEEKLY: 100180,\r\n TIME_LIMIT_REACHED_MONTHLY: 100181,\r\n\r\n TOKEN_NOT_VALID: 20,\r\n PENDING_ACTION_REQUIRED: 50,\r\n INVALID_GRANT: 'invalid_grant'\r\n};\r\n\r\n\r\nexport function isRefreshTokenError(errorCode: string): boolean {\r\n errorCode = errorCode?.toString();\r\n return errorCode === CGP_ERROR_CODES.INVALID_REFRESH_TOKEN.toString() || errorCode === CGP_ERROR_CODES.INVALID_GRANT;\r\n}\r\n","export function GAME_NAVBAR_SPACE_BETWEEN_ITEMS(multiplier: number = 1) {\r\n return (15 * multiplier) + 'px';\r\n}\r\nexport const GAME_NAVBAR_BUTTON_WIDTH = '20px';\r\nexport const GAME_NAVBAR_BUTTON_HEIGHT = '20px';","/** This is an automatically generated file.*/\nimport {Asset} from './architecture/asset';\nexport const Assets = {\n\tfonts: {\n\t\t_888_Black_eot: new Asset(\"fonts/888-Black.eot\", {}),\n\t\t_888_Black_otf: new Asset(\"fonts/888-Black.otf\", {}),\n\t\t_888_Black_svg: new Asset(\"fonts/888-Black.svg\", {}),\n\t\t_888_Black_ttf: new Asset(\"fonts/888-Black.ttf\", {}),\n\t\t_888_Black_woff: new Asset(\"fonts/888-Black.woff\", {}),\n\t\t_888_Black_woff2: new Asset(\"fonts/888-Black.woff2\", {}),\n\t\t_888_Bold_eot: new Asset(\"fonts/888-Bold.eot\", {'777_com': true}),\n\t\t_888_Bold_otf: new Asset(\"fonts/888-Bold.otf\", {'777_com': true}),\n\t\t_888_Bold_svg: new Asset(\"fonts/888-Bold.svg\", {'777_com': true}),\n\t\t_888_Bold_ttf: new Asset(\"fonts/888-Bold.ttf\", {'777_com': true}),\n\t\t_888_Bold_woff: new Asset(\"fonts/888-Bold.woff\", {'777_com': true}),\n\t\t_888_DemiBold_eot: new Asset(\"fonts/888-DemiBold.eot\", {}),\n\t\t_888_DemiBold_otf: new Asset(\"fonts/888-DemiBold.otf\", {}),\n\t\t_888_DemiBold_svg: new Asset(\"fonts/888-DemiBold.svg\", {}),\n\t\t_888_DemiBold_ttf: new Asset(\"fonts/888-DemiBold.ttf\", {}),\n\t\t_888_DemiBold_woff: new Asset(\"fonts/888-DemiBold.woff\", {}),\n\t\t_888_DemiBold_woff2: new Asset(\"fonts/888-DemiBold.woff2\", {}),\n\t\t_888_Light_eot: new Asset(\"fonts/888-Light.eot\", {}),\n\t\t_888_Light_otf: new Asset(\"fonts/888-Light.otf\", {}),\n\t\t_888_Light_svg: new Asset(\"fonts/888-Light.svg\", {}),\n\t\t_888_Light_ttf: new Asset(\"fonts/888-Light.ttf\", {}),\n\t\t_888_Light_woff: new Asset(\"fonts/888-Light.woff\", {}),\n\t\t_888_Light_woff2: new Asset(\"fonts/888-Light.woff2\", {}),\n\t\t_888_Medium_eot: new Asset(\"fonts/888-Medium.eot\", {}),\n\t\t_888_Medium_otf: new Asset(\"fonts/888-Medium.otf\", {}),\n\t\t_888_Medium_svg: new Asset(\"fonts/888-Medium.svg\", {}),\n\t\t_888_Medium_ttf: new Asset(\"fonts/888-Medium.ttf\", {}),\n\t\t_888_Medium_woff: new Asset(\"fonts/888-Medium.woff\", {}),\n\t\t_888_Medium_woff2: new Asset(\"fonts/888-Medium.woff2\", {}),\n\t\t_888_Regular_eot: new Asset(\"fonts/888-Regular.eot\", {}),\n\t\t_888_Regular_otf: new Asset(\"fonts/888-Regular.otf\", {}),\n\t\t_888_Regular_svg: new Asset(\"fonts/888-Regular.svg\", {}),\n\t\t_888_Regular_ttf: new Asset(\"fonts/888-Regular.ttf\", {}),\n\t\t_888_Regular_woff: new Asset(\"fonts/888-Regular.woff\", {}),\n\t\t_888_Regular_woff2: new Asset(\"fonts/888-Regular.woff2\", {}),\n\t\t_888_SemiCondensedBold_eot: new Asset(\"fonts/888-SemiCondensedBold.eot\", {}),\n\t\t_888_SemiCondensedBold_otf: new Asset(\"fonts/888-SemiCondensedBold.otf\", {}),\n\t\t_888_SemiCondensedBold_svg: new Asset(\"fonts/888-SemiCondensedBold.svg\", {}),\n\t\t_888_SemiCondensedBold_ttf: new Asset(\"fonts/888-SemiCondensedBold.ttf\", {}),\n\t\t_888_SemiCondensedBold_woff: new Asset(\"fonts/888-SemiCondensedBold.woff\", {}),\n\t\t_888_SemiCondensedBold_woff2: new Asset(\"fonts/888-SemiCondensedBold.woff2\", {}),\n\t\t_888_SemiCondensedDemiBold_eot: new Asset(\"fonts/888-SemiCondensedDemiBold.eot\", {}),\n\t\t_888_SemiCondensedDemiBold_otf: new Asset(\"fonts/888-SemiCondensedDemiBold.otf\", {}),\n\t\t_888_SemiCondensedDemiBold_svg: new Asset(\"fonts/888-SemiCondensedDemiBold.svg\", {}),\n\t\t_888_SemiCondensedDemiBold_ttf: new Asset(\"fonts/888-SemiCondensedDemiBold.ttf\", {}),\n\t\t_888_SemiCondensedDemiBold_woff: new Asset(\"fonts/888-SemiCondensedDemiBold.woff\", {}),\n\t\t_888_SemiCondensedDemiBold_woff2: new Asset(\"fonts/888-SemiCondensedDemiBold.woff2\", {}),\n\t\t_888_Thin_eot: new Asset(\"fonts/888-Thin.eot\", {}),\n\t\t_888_Thin_otf: new Asset(\"fonts/888-Thin.otf\", {}),\n\t\t_888_Thin_svg: new Asset(\"fonts/888-Thin.svg\", {}),\n\t\t_888_Thin_ttf: new Asset(\"fonts/888-Thin.ttf\", {}),\n\t\t_888_Thin_woff: new Asset(\"fonts/888-Thin.woff\", {}),\n\t\t_888_Thin_woff2: new Asset(\"fonts/888-Thin.woff2\", {}),\n\t\t_888_Ultra_eot: new Asset(\"fonts/888-Ultra.eot\", {}),\n\t\t_888_Ultra_otf: new Asset(\"fonts/888-Ultra.otf\", {}),\n\t\t_888_Ultra_svg: new Asset(\"fonts/888-Ultra.svg\", {}),\n\t\t_888_Ultra_ttf: new Asset(\"fonts/888-Ultra.ttf\", {}),\n\t\t_888_Ultra_woff: new Asset(\"fonts/888-Ultra.woff\", {}),\n\t\t_888_Ultra_woff2: new Asset(\"fonts/888-Ultra.woff2\", {}),\n\t\tdigital_7_mono_ttf: new Asset(\"fonts/digital_7_mono.ttf\", {}),\n\t\tLobster_Regular_eot: new Asset(\"fonts/Lobster_Regular.eot\", {'777_com': true}),\n\t\tLobster_Regular_otf: new Asset(\"fonts/Lobster_Regular.otf\", {'777_com': true}),\n\t\tLobster_Regular_svg: new Asset(\"fonts/Lobster_Regular.svg\", {'777_com': true}),\n\t\tLobster_Regular_ttf: new Asset(\"fonts/Lobster_Regular.ttf\", {'777_com': true}),\n\t\tLobster_Regular_woff: new Asset(\"fonts/Lobster_Regular.woff\", {'777_com': true}),\n\t\tLobster_Regular_woff2: new Asset(\"fonts/Lobster_Regular.woff2\", {'777_com': true}),\n\t\toleo_script_reg_eot: new Asset(\"fonts/oleo_script_reg.eot\", {}),\n\t\toleo_script_reg_svg: new Asset(\"fonts/oleo_script_reg.svg\", {}),\n\t\toleo_script_reg_ttf: new Asset(\"fonts/oleo_script_reg.ttf\", {}),\n\t\toleo_script_reg_woff: new Asset(\"fonts/oleo_script_reg.woff\", {}),\n\t\toleo_script_reg_woff2: new Asset(\"fonts/oleo_script_reg.woff2\", {}),\n\t\toleo_script_reg_ext_woff2: new Asset(\"fonts/oleo_script_reg_ext.woff2\", {}),\n\t\tRobotoCondensed_Bold_ttf: new Asset(\"fonts/RobotoCondensed-Bold.ttf\", {}),\n\t\tTradeGothicLTStd_Bd2_otf: new Asset(\"fonts/TradeGothicLTStd-Bd2.otf\", {}),\n\t\tBello_Script_eot: new Asset(\"fonts/Bello_Script.eot\", {'777_com': true}),\n\t\tBello_Script_svg: new Asset(\"fonts/Bello_Script.svg\", {'777_com': true}),\n\t\tBello_Script_ttf: new Asset(\"fonts/Bello_Script.ttf\", {'777_com': true}),\n\t\tBello_Script_woff: new Asset(\"fonts/Bello_Script.woff\", {'777_com': true}),\n\t\tBello_Script_woff2: new Asset(\"fonts/Bello_Script.woff2\", {'777_com': true}),\n\t\tFutura_PT_Bold_eot: new Asset(\"fonts/Futura_PT_Bold.eot\", {'777_com': true}),\n\t\tFutura_PT_Bold_otf: new Asset(\"fonts/Futura_PT_Bold.otf\", {'777_com': true}),\n\t\tFutura_PT_Bold_svg: new Asset(\"fonts/Futura_PT_Bold.svg\", {'777_com': true}),\n\t\tFutura_PT_Bold_ttf: new Asset(\"fonts/Futura_PT_Bold.ttf\", {'777_com': true}),\n\t\tFutura_PT_Bold_woff: new Asset(\"fonts/Futura_PT_Bold.woff\", {'777_com': true}),\n\t\tFutura_PT_Bold_woff2: new Asset(\"fonts/Futura_PT_Bold.woff2\", {'777_com': true}),\n\t\tFutura_PT_Book_eot: new Asset(\"fonts/Futura_PT_Book.eot\", {'777_com': true}),\n\t\tFutura_PT_Book_otf: new Asset(\"fonts/Futura_PT_Book.otf\", {'777_com': true}),\n\t\tFutura_PT_Book_svg: new Asset(\"fonts/Futura_PT_Book.svg\", {'777_com': true}),\n\t\tFutura_PT_Book_ttf: new Asset(\"fonts/Futura_PT_Book.ttf\", {'777_com': true}),\n\t\tFutura_PT_Book_woff: new Asset(\"fonts/Futura_PT_Book.woff\", {'777_com': true}),\n\t\tFutura_PT_Book_woff2: new Asset(\"fonts/Futura_PT_Book.woff2\", {'777_com': true}),\n\t\tFutura_PT_Demi_eot: new Asset(\"fonts/Futura_PT_Demi.eot\", {'777_com': true}),\n\t\tFutura_PT_Demi_otf: new Asset(\"fonts/Futura_PT_Demi.otf\", {'777_com': true}),\n\t\tFutura_PT_Demi_svg: new Asset(\"fonts/Futura_PT_Demi.svg\", {'777_com': true}),\n\t\tFutura_PT_Demi_ttf: new Asset(\"fonts/Futura_PT_Demi.ttf\", {'777_com': true}),\n\t\tFutura_PT_Demi_woff: new Asset(\"fonts/Futura_PT_Demi.woff\", {'777_com': true}),\n\t\tFutura_PT_Demi_woff2: new Asset(\"fonts/Futura_PT_Demi.woff2\", {'777_com': true}),\n\t\tFutura_PT_Heavy_eot: new Asset(\"fonts/Futura_PT_Heavy.eot\", {'777_com': true}),\n\t\tFutura_PT_Heavy_otf: new Asset(\"fonts/Futura_PT_Heavy.otf\", {'777_com': true}),\n\t\tFutura_PT_Heavy_svg: new Asset(\"fonts/Futura_PT_Heavy.svg\", {'777_com': true}),\n\t\tFutura_PT_Heavy_ttf: new Asset(\"fonts/Futura_PT_Heavy.ttf\", {'777_com': true}),\n\t\tFutura_PT_Heavy_woff: new Asset(\"fonts/Futura_PT_Heavy.woff\", {'777_com': true}),\n\t\tFutura_PT_Heavy_woff2: new Asset(\"fonts/Futura_PT_Heavy.woff2\", {'777_com': true}),\n\t\tFutura_PT_Medium_eot: new Asset(\"fonts/Futura_PT_Medium.eot\", {'777_com': true}),\n\t\tFutura_PT_Medium_otf: new Asset(\"fonts/Futura_PT_Medium.otf\", {'777_com': true}),\n\t\tFutura_PT_Medium_svg: new Asset(\"fonts/Futura_PT_Medium.svg\", {'777_com': true}),\n\t\tFutura_PT_Medium_ttf: new Asset(\"fonts/Futura_PT_Medium.ttf\", {'777_com': true}),\n\t\tFutura_PT_Medium_woff: new Asset(\"fonts/Futura_PT_Medium.woff\", {'777_com': true}),\n\t\tFutura_PT_Medium_woff2: new Asset(\"fonts/Futura_PT_Medium.woff2\", {'777_com': true}),\n\t\tFuturaPTBold_otf: new Asset(\"fonts/FuturaPTBold.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTBoldOblique_otf: new Asset(\"fonts/FuturaPTBoldOblique.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTBook_otf: new Asset(\"fonts/FuturaPTBook.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTBookOblique_otf: new Asset(\"fonts/FuturaPTBookOblique.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTCondBold_otf: new Asset(\"fonts/FuturaPTCondBold.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTCondBoldOblique_otf: new Asset(\"fonts/FuturaPTCondBoldOblique.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTCondBook_otf: new Asset(\"fonts/FuturaPTCondBook.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTCondBookOblique_otf: new Asset(\"fonts/FuturaPTCondBookOblique.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTCondExtraBold_otf: new Asset(\"fonts/FuturaPTCondExtraBold.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTCondExtraBoldOblique_otf: new Asset(\"fonts/FuturaPTCondExtraBoldOblique.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTCondMedium_otf: new Asset(\"fonts/FuturaPTCondMedium.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTCondMediumOblique_otf: new Asset(\"fonts/FuturaPTCondMediumOblique.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTDemi_otf: new Asset(\"fonts/FuturaPTDemi.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTDemiOblique_otf: new Asset(\"fonts/FuturaPTDemiOblique.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTExtraBold_otf: new Asset(\"fonts/FuturaPTExtraBold.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTExtraBoldOblique_otf: new Asset(\"fonts/FuturaPTExtraBoldOblique.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTHeavy_otf: new Asset(\"fonts/FuturaPTHeavy.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTHeavyOblique_otf: new Asset(\"fonts/FuturaPTHeavyOblique.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTLight_otf: new Asset(\"fonts/FuturaPTLight.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTLightOblique_otf: new Asset(\"fonts/FuturaPTLightOblique.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTMedium_otf: new Asset(\"fonts/FuturaPTMedium.otf\", {'ballysdover_de': true}),\n\t\tFuturaPTMediumOblique_otf: new Asset(\"fonts/FuturaPTMediumOblique.otf\", {'ballysdover_de': true}),\n\t\ta_and_s_signwriter_ttf: new Asset(\"fonts/a_and_s_signwriter.ttf\", {'harrington_de': true}),\n\t\tGotham_Black_otf: new Asset(\"fonts/Gotham-Black.otf\", {'harrington_de': true}),\n\t\tGotham_BlackItalic_otf: new Asset(\"fonts/Gotham-BlackItalic.otf\", {'harrington_de': true}),\n\t\tGotham_Bold_otf: new Asset(\"fonts/Gotham-Bold.otf\", {'harrington_de': true}),\n\t\tGotham_BoldItalic_otf: new Asset(\"fonts/Gotham-BoldItalic.otf\", {'harrington_de': true}),\n\t\tGotham_Book_otf: new Asset(\"fonts/Gotham-Book.otf\", {'harrington_de': true}),\n\t\tGotham_BookItalic_otf: new Asset(\"fonts/Gotham-BookItalic.otf\", {'harrington_de': true}),\n\t\tGotham_Light_otf: new Asset(\"fonts/Gotham-Light.otf\", {'harrington_de': true}),\n\t\tGotham_LightItalic_otf: new Asset(\"fonts/Gotham-LightItalic.otf\", {'harrington_de': true}),\n\t\tGotham_Medium_otf: new Asset(\"fonts/Gotham-Medium.otf\", {'harrington_de': true}),\n\t\tGotham_MediumItalic_otf: new Asset(\"fonts/Gotham-MediumItalic.otf\", {'harrington_de': true}),\n\t\tGotham_Thin_otf: new Asset(\"fonts/Gotham-Thin.otf\", {'harrington_de': true}),\n\t\tGotham_ThinItalic_otf: new Asset(\"fonts/Gotham-ThinItalic.otf\", {'harrington_de': true}),\n\t\tGotham_Ultra_otf: new Asset(\"fonts/Gotham-Ultra.otf\", {'harrington_de': true}),\n\t\tGotham_UltraItalic_otf: new Asset(\"fonts/Gotham-UltraItalic.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_Black_otf: new Asset(\"fonts/GothamXNarrow-Black.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_BlackItalic_otf: new Asset(\"fonts/GothamXNarrow-BlackItalic.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_Bold_otf: new Asset(\"fonts/GothamXNarrow-Bold.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_BoldItalic_otf: new Asset(\"fonts/GothamXNarrow-BoldItalic.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_Book_otf: new Asset(\"fonts/GothamXNarrow-Book.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_BookItalic_otf: new Asset(\"fonts/GothamXNarrow-BookItalic.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_Light_otf: new Asset(\"fonts/GothamXNarrow-Light.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_LightItalic_otf: new Asset(\"fonts/GothamXNarrow-LightItalic.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_Medium_otf: new Asset(\"fonts/GothamXNarrow-Medium.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_MediumItalic_otf: new Asset(\"fonts/GothamXNarrow-MediumItalic.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_Thin_otf: new Asset(\"fonts/GothamXNarrow-Thin.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_ThinItalic_otf: new Asset(\"fonts/GothamXNarrow-ThinItalic.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_Ultra_otf: new Asset(\"fonts/GothamXNarrow-Ultra.otf\", {'harrington_de': true}),\n\t\tGothamXNarrow_UltraItalic_otf: new Asset(\"fonts/GothamXNarrow-UltraItalic.otf\", {'harrington_de': true}),\n\t\tIndustry_Black_ttf: new Asset(\"fonts/Industry-Black.ttf\", {'si_michigan': true}),\n\t\tIndustry_Bold_ttf: new Asset(\"fonts/Industry-Bold.ttf\", {'si_michigan': true}),\n\t\tIndustry_Demi_ttf: new Asset(\"fonts/Industry-Demi.ttf\", {'si_michigan': true}),\n\t\tIndustry_Medium_ttf: new Asset(\"fonts/Industry-Medium.ttf\", {'si_michigan': true}),\n\t\tPoppins_Regular_ttf: new Asset(\"fonts/Poppins-Regular.ttf\", {'si_michigan': true}),\n\t\tPoppins_SemiBold_ttf: new Asset(\"fonts/Poppins-SemiBold.ttf\", {'si_michigan': true}),\n\t\tSolanoGothicMVB_Bd_ttf: new Asset(\"fonts/SolanoGothicMVB-Bd.ttf\", {'si_michigan': 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_michigan': true,'wsop_nj': true}),\n\t\tcheckbox_checked_png: new Asset(\"images/checkbox_checked.png\", {}),\n\t\tcheckbox_empty_png: new Asset(\"images/checkbox_empty.png\", {}),\n\t\tclose_modal_dialog_png: new Asset(\"images/close_modal_dialog.png\", {'777_com': true}),\n\t\tEGR_logo_png: new Asset(\"images/EGR-logo.png\", {}),\n\t\tempty_image_sq_gif: new Asset(\"images/empty-image-sq.gif\", {}),\n\t\tempty_image_gif: new Asset(\"images/empty-image.gif\", {}),\n\t\texclusives_list_icon_png: new Asset(\"images/exclusives_list_icon.png\", {}),\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_michigan': 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_michigan': true,'wsop_nj': true}),\n\t\tparty_jackpot_logo_png: new Asset(\"images/party_jackpot_logo.png\", {}),\n\t\tplaceholder_game_icon_png: new Asset(\"images/placeholder_game_icon.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_michigan': true,'wsop_nj': true}),\n\t\tplaceholder_game_icon_sq_png: new Asset(\"images/placeholder_game_icon_sq.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_michigan': 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_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\tSpriteSheetPC1920_png: new Asset(\"images/SpriteSheetPC1920.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_michigan': true,'wsop_nj': true}),\n\t\ttexture_png: new Asset(\"images/texture.png\", {'777_com': true,'harrahs_nj': true,'si_michigan': 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_michigan': 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_michigan': true,'wsop_nj': true}),\n\t\tclose_modal_dialog_hover_png: new Asset(\"images/close_modal_dialog_hover.png\", {'777_com': true}),\n\t\thistory_bg_title_png: new Asset(\"images/history_bg_title.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': true,'wsop_nj': true}),\n\t\tuser_menu_box_icon_png: new Asset(\"images/user-menu-box-icon.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_michigan': 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_michigan': 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_michigan': true}),\n\t\tgermany_panic_icon_png: new Asset(\"images/germany_panic_icon.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\tballysdover_logo_png: new Asset(\"images/ballysdover_logo.png\", {'ballysdover_de': true}),\n\t\tdelaware_park_logo_png: new Asset(\"images/delaware-park-logo.png\", {'delawarepark_de': true}),\n\t\thccasinologo_png: new Asset(\"images/hccasinologo.png\", {'harrahs_nj': true,'wsop_nj': true}),\n\t\tharrington_logo_png: new Asset(\"images/harrington-logo.png\", {'harrington_de': true}),\n\t\tsi_logo_png: new Asset(\"images/si_logo.png\", {'si_michigan': true}),\n\t\tanimated_icons_poc: {\n\t\t\tmillionaire_genie_megaways: {\n\t\t\t\tgenie_megaways_v1_atlas: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v1.atlas\", {}),\n\t\t\t\tgenie_megaways_v1_json: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v1.json\", {}),\n\t\t\t\tgenie_megaways_v1_png: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v1.png\", {}),\n\t\t\t\tgenie_megaways_v2_atlas: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v2.atlas\", {}),\n\t\t\t\tgenie_megaways_v2_json: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v2.json\", {}),\n\t\t\t\tgenie_megaways_v2_png: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v2.png\", {}),\n\t\t\t\tgenie_megaways_v3_atlas: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v3.atlas\", {}),\n\t\t\t\tgenie_megaways_v3_json: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v3.json\", {}),\n\t\t\t\tgenie_megaways_v3_png: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v3.png\", {}),\n\t\t\t\tgenie_megaways_v4_atlas: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v4.atlas\", {}),\n\t\t\t\tgenie_megaways_v4_json: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v4.json\", {}),\n\t\t\t\tgenie_megaways_v4_png: new Asset(\"images/animated-icons-poc/millionaire-genie-megaways/genie_megaways_v4.png\", {})\n\t\t\t}\n\t\t},\n\t\tarena_link_to_offer: {\n\t\t\tClose_BTN_green_svg: new Asset(\"images/arena-link-to-offer/Close_BTN_green.svg\", {}),\n\t\t\tGift_BTN_green_svg: new Asset(\"images/arena-link-to-offer/Gift_BTN_green.svg\", {})\n\t\t},\n\t\tbrowser_icons: {\n\t\t\tchrome_icon_PNG: new Asset(\"images/browser-icons/chrome-icon.PNG\", {}),\n\t\t\tmicrosoft_edge_png: new Asset(\"images/browser-icons/microsoft-edge.png\", {}),\n\t\t\tmozilla_firefox_png: new Asset(\"images/browser-icons/mozilla-firefox.png\", {})\n\t\t},\n\t\tburnout: {\n\t\t\tburnout_animation_atlas: new Asset(\"images/burnout/burnout_animation.atlas\", {}),\n\t\t\tburnout_animation_json: new Asset(\"images/burnout/burnout_animation.json\", {}),\n\t\t\tburnout_animation_png: new Asset(\"images/burnout/burnout_animation.png\", {}),\n\t\t\tburnout_animation_last_frame_png: new Asset(\"images/burnout/burnout_animation_last_frame.png\", {})\n\t\t},\n\t\tdaily_deal: {\n\t\t\tdaily_deal_chest_glow_png: new Asset(\"images/daily-deal/daily-deal-chest-glow.png\", {}),\n\t\t\tdaily_deal_chest_halo_png: new Asset(\"images/daily-deal/daily-deal-chest-halo.png\", {}),\n\t\t\tdaily_deal_chest_text_strip_svg: new Asset(\"images/daily-deal/daily-deal-chest-text-strip.svg\", {}),\n\t\t\tdaily_deal_chest_png: new Asset(\"images/daily-deal/daily-deal-chest.png\", {})\n\t\t},\n\t\tf2p: {\n\t\t\tfreeToPlay1_atlas: new Asset(\"images/f2p/freeToPlay1.atlas\", {}),\n\t\t\tfreeToPlay1_json: new Asset(\"images/f2p/freeToPlay1.json\", {}),\n\t\t\tfreeToPlay1_png: new Asset(\"images/f2p/freeToPlay1.png\", {}),\n\t\t\tfreeToPlay2_atlas: new Asset(\"images/f2p/freeToPlay2.atlas\", {}),\n\t\t\tfreeToPlay2_json: new Asset(\"images/f2p/freeToPlay2.json\", {}),\n\t\t\tfreeToPlay2_png: new Asset(\"images/f2p/freeToPlay2.png\", {})\n\t\t},\n\t\tfree_play: {\n\t\t\tfp_left_arrow_png: new Asset(\"images/free-play/fp-left-arrow.png\", {}),\n\t\t\tfp_right_arrow_png: new Asset(\"images/free-play/fp-right-arrow.png\", {}),\n\t\t\tfp_step_msg_bg_png: new Asset(\"images/free-play/fp-step-msg-bg.png\", {}),\n\t\t\tfp_vouchers_bg_png: new Asset(\"images/free-play/fp-vouchers-bg.png\", {}),\n\t\t\tfreeplay_bg_type_fp_png: new Asset(\"images/free-play/freeplay-bg-type-fp.png\", {'777_com': true}),\n\t\t\tfreeplay_bg_type_fs_png: new Asset(\"images/free-play/freeplay-bg-type-fs.png\", {'777_com': true}),\n\t\t\tfreeplay_bg_type_jfp_png: new Asset(\"images/free-play/freeplay-bg-type-jfp.png\", {'777_com': true}),\n\t\t\tfreeplay_bg_type_jfs_png: new Asset(\"images/free-play/freeplay-bg-type-jfs.png\", {'777_com': true}),\n\t\t\tfreeplay_type_fp_png: new Asset(\"images/free-play/freeplay-type-fp.png\", {'777_com': true}),\n\t\t\tfreeplay_type_fs_png: new Asset(\"images/free-play/freeplay-type-fs.png\", {'777_com': true}),\n\t\t\tfreeplay_type_jfp_png: new Asset(\"images/free-play/freeplay-type-jfp.png\", {'777_com': true}),\n\t\t\tfreeplay_type_jfs_png: new Asset(\"images/free-play/freeplay-type-jfs.png\", {'777_com': true})\n\t\t},\n\t\tgames_icons_background: {\n\t\t\tBGcardandtable_png: new Asset(\"images/games-icons-background/BGcardandtable.png\", {'777_com': true,'harrahs_nj': true}),\n\t\t\tBGGameBlack_png: new Asset(\"images/games-icons-background/BGGameBlack.png\", {'777_com': true,'harrahs_nj': true}),\n\t\t\tBGGameBlackSquare_png: new Asset(\"images/games-icons-background/BGGameBlackSquare.png\", {'777_com': true}),\n\t\t\tBGicon_png: new Asset(\"images/games-icons-background/BGicon.png\", {'777_com': true,'harrahs_nj': true}),\n\t\t\tBGredTiger_png: new Asset(\"images/games-icons-background/BGredTiger.png\", {'777_com': true})\n\t\t},\n\t\tgame_frame: {\n\t\t\tdemo_left_corner_png: new Asset(\"images/game_frame/demo_left_corner.png\", {'777_com': true}),\n\t\t\tdemo_right_corner_png: new Asset(\"images/game_frame/demo_right_corner.png\", {'777_com': true}),\n\t\t\tfreeplay_indicator_png: new Asset(\"images/game_frame/freeplay_indicator.png\", {'777_com': true}),\n\t\t\tfreeplay_indicator_selected_png: new Asset(\"images/game_frame/freeplay_indicator_selected.png\", {'777_com': true}),\n\t\t\tfreeplay_left_corner_png: new Asset(\"images/game_frame/freeplay_left_corner.png\", {'777_com': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_michigan': true}),\n\t\t\tfreeplay_right_corner_png: new Asset(\"images/game_frame/freeplay_right_corner.png\", {'777_com': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_michigan': true}),\n\t\t\treal_left_corner_png: new Asset(\"images/game_frame/real_left_corner.png\", {'777_com': true}),\n\t\t\treal_right_corner_png: new Asset(\"images/game_frame/real_right_corner.png\", {'777_com': 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}),\n\t\t\thistory_calendar_png: new Asset(\"images/history/history_calendar.png\", {'777_com': 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_michigan': 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}),\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})\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\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\tmobile: {\n\t\t\t\t\tbackground_png: new Asset(\"images/jackpot_widget/hourly_captain8/mobile/background.png\", {})\n\t\t\t\t}\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\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}),\n\t\t\tbegambleaeare_logo_png: new Asset(\"images/responsible-gambling/begambleaeare-logo.png\", {'777_com': true}),\n\t\t\tgamecare_logo_png: new Asset(\"images/responsible-gambling/gamecare-logo.png\", {'777_com': true}),\n\t\t\tsafeZoneIcon_svg: new Asset(\"images/responsible-gambling/safeZoneIcon.svg\", {'777_com': true})\n\t\t},\n\t\twheel_of_fortune: {\n\t\t\tcolors_svg: new Asset(\"images/wheel-of-fortune/colors.svg\", {}),\n\t\t\tshell_svg: new Asset(\"images/wheel-of-fortune/shell.svg\", {'777_com': true})\n\t\t},\n\t\tarenas: {\n\t\t\tCasinoGames: {\n\t\t\t\tonline_blackjack_png: new Asset(\"images/arenas/CasinoGames/online_blackjack.png\", {'777_com': true}),\n\t\t\t\tonline_casino_games_png: new Asset(\"images/arenas/CasinoGames/online_casino_games.png\", {'777_com': true}),\n\t\t\t\tonline_jackpot_png: new Asset(\"images/arenas/CasinoGames/online_jackpot.png\", {'777_com': true}),\n\t\t\t\tonline_roulette_png: new Asset(\"images/arenas/CasinoGames/online_roulette.png\", {'777_com': true}),\n\t\t\t\tonline_slots_png: new Asset(\"images/arenas/CasinoGames/online_slots.png\", {'777_com': true})\n\t\t\t},\n\t\t\tHomePage: {\n\t\t\t\tblackjack_arena_info_png: new Asset(\"images/arenas/HomePage/blackjack_arena_info.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'si_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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}),\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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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},\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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': true,'wsop_nj': true})\n\t\t\t},\n\t\t\treg: {\n\t\t\t\tpost_login_hover_png: new Asset(\"images/avatars/reg/post-login-hover.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_michigan': true,'wsop_nj': true}),\n\t\t\t\tpost_login_pressed_png: new Asset(\"images/avatars/reg/post-login-pressed.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_michigan': true,'wsop_nj': true}),\n\t\t\t\tpost_login_reg_png: new Asset(\"images/avatars/reg/post-login-reg.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_michigan': true,'wsop_nj': true}),\n\t\t\t\tpre_login_hover_png: new Asset(\"images/avatars/reg/pre-login-hover.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_michigan': true,'wsop_nj': true}),\n\t\t\t\tpre_login_pressed_png: new Asset(\"images/avatars/reg/pre-login-pressed.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_michigan': true,'wsop_nj': true}),\n\t\t\t\tpre_login_reg_png: new Asset(\"images/avatars/reg/pre-login-reg.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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,'si_michigan': 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,'si_michigan': 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,'si_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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}),\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}),\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}),\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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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,'si_michigan': 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,'si_michigan': 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,'si_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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\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_michigan': 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_michigan': true,'wsop_nj': true}),\n\t\t\t\tvip_diamond_logo_pc_dark_png: new Asset(\"images/logos/diamond-vip/vip-diamond-logo-pc-dark.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true})\n\t\t\t},\n\t\t\tgold_vip: {\n\t\t\t\tvip_gold_logo_mobile_png: new Asset(\"images/logos/gold-vip/vip-gold-logo-mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_michigan': 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_michigan': true,'wsop_nj': true}),\n\t\t\t\tvip_gold_logo_pc_dark_png: new Asset(\"images/logos/gold-vip/vip-gold-logo-pc-dark.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true})\n\t\t\t},\n\t\t\tplatinum_vip: {\n\t\t\t\tvip_platinum_logo_mobile_png: new Asset(\"images/logos/platinum-vip/vip-platinum-logo-mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_michigan': 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_michigan': true,'wsop_nj': true}),\n\t\t\t\tvip_platinum_logo_pc_dark_png: new Asset(\"images/logos/platinum-vip/vip-platinum-logo-pc-dark.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true})\n\t\t\t},\n\t\t\treg_vip: {\n\t\t\t\tvip_regular_logo_mobile_png: new Asset(\"images/logos/reg-vip/vip-regular-logo-mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_michigan': 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_michigan': true,'wsop_nj': true}),\n\t\t\t\tvip_regular_logo_pc_dark_png: new Asset(\"images/logos/reg-vip/vip-regular-logo-pc-dark.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true})\n\t\t\t}\n\t\t},\n\t\tsdk_icons: {\n\t\t\t_18_plus_png: new Asset(\"images/sdk_icons/18_plus.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\t_21_plus_png: new Asset(\"images/sdk_icons/21_plus.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tClose_png: new Asset(\"images/sdk_icons/Close.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tClose_hover_png: new Asset(\"images/sdk_icons/Close_hover.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tfprightarrow_png: new Asset(\"images/sdk_icons/fprightarrow.png\", {'777_com': true}),\n\t\t\tfpvoucherback_png: new Asset(\"images/sdk_icons/fpvoucherback.png\", {'777_com': true}),\n\t\t\tfpVoucherBG_png: new Asset(\"images/sdk_icons/fpVoucherBG.png\", {'777_com': true}),\n\t\t\tfpvoucherfreeplay_png: new Asset(\"images/sdk_icons/fpvoucherfreeplay.png\", {'777_com': true}),\n\t\t\tfpvoucherfreespin_png: new Asset(\"images/sdk_icons/fpvoucherfreespin.png\", {'777_com': true}),\n\t\t\tfpvoucherinfoclose_png: new Asset(\"images/sdk_icons/fpvoucherinfoclose.png\", {'777_com': true}),\n\t\t\tfpvoucherinfoopen_png: new Asset(\"images/sdk_icons/fpvoucherinfoopen.png\", {'777_com': true}),\n\t\t\tfpvoucherjackpotfreeplay_png: new Asset(\"images/sdk_icons/fpvoucherjackpotfreeplay.png\", {'777_com': true}),\n\t\t\tfpvoucherjackpotfreespin_png: new Asset(\"images/sdk_icons/fpvoucherjackpotfreespin.png\", {'777_com': true}),\n\t\t\tfp_vouchers_bg_png: new Asset(\"images/sdk_icons/fp_vouchers_bg.png\", {'777_com': true}),\n\t\t\tfreeplayVoucherBG_png: new Asset(\"images/sdk_icons/freeplayVoucherBG.png\", {'777_com': true}),\n\t\t\tfreeSpinsVoucherBG_png: new Asset(\"images/sdk_icons/freeSpinsVoucherBG.png\", {'777_com': true}),\n\t\t\tfull_screen_png: new Asset(\"images/sdk_icons/full_screen.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tfull_screen_off_png: new Asset(\"images/sdk_icons/full_screen_off.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tgame_frame_fp_indicator_png: new Asset(\"images/sdk_icons/game-frame-fp-indicator.png\", {'777_com': true}),\n\t\t\tgame_frame_freeplay_mode_left_png: new Asset(\"images/sdk_icons/game_frame_freeplay_mode_left.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tgame_frame_freeplay_mode_right_png: new Asset(\"images/sdk_icons/game_frame_freeplay_mode_right.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tgame_frame_practicel_mode_left_png: new Asset(\"images/sdk_icons/game_frame_practicel_mode_left.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tgame_frame_practicel_mode_right_png: new Asset(\"images/sdk_icons/game_frame_practicel_mode_right.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tgame_frame_real_mode_left_png: new Asset(\"images/sdk_icons/game_frame_real_mode_left.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tgame_frame_real_mode_right_png: new Asset(\"images/sdk_icons/game_frame_real_mode_right.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tgeneral_notification_png: new Asset(\"images/sdk_icons/general_notification.png\", {'777_com': true}),\n\t\t\that_png: new Asset(\"images/sdk_icons/hat.png\", {'777_com': true}),\n\t\t\thot_png: new Asset(\"images/sdk_icons/hot.png\", {'777_com': true}),\n\t\t\ticons_down_arrow_png: new Asset(\"images/sdk_icons/icons_down_arrow.png\", {'777_com': true}),\n\t\t\tjackpotplayFreePlayVoucherBG_png: new Asset(\"images/sdk_icons/jackpotplayFreePlayVoucherBG.png\", {'777_com': true}),\n\t\t\tjackpotplayFreeSpinVoucherBG_png: new Asset(\"images/sdk_icons/jackpotplayFreeSpinVoucherBG.png\", {'777_com': true}),\n\t\t\tjackpotplayVoucherBG_png: new Asset(\"images/sdk_icons/jackpotplayVoucherBG.png\", {'777_com': true}),\n\t\t\tleftarrow_png: new Asset(\"images/sdk_icons/leftarrow.png\", {'777_com': true}),\n\t\t\tnew_badge_png: new Asset(\"images/sdk_icons/new-badge.png\", {'777_com': true}),\n\t\t\tpassword_png: new Asset(\"images/sdk_icons/password.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\trightarrow_png: new Asset(\"images/sdk_icons/rightarrow.png\", {'777_com': true}),\n\t\t\ttoaster_information_message_png: new Asset(\"images/sdk_icons/toaster-information-message.png\", {'777_com': true}),\n\t\t\ttouchFinger_png: new Asset(\"images/sdk_icons/touchFinger.png\", {'777_com': true}),\n\t\t\tuser_png: new Asset(\"images/sdk_icons/user.png\", {'777_com': true}),\n\t\t\tusername_png: new Asset(\"images/sdk_icons/username.png\", {'777_com': true,'harrahs_nj': true,'wsop_nj': true}),\n\t\t\tvip_badge_png: new Asset(\"images/sdk_icons/vip-badge.png\", {'777_com': true}),\n\t\t\tgame_frame_bg_fp_left_png: new Asset(\"images/sdk_icons/game-frame-bg-fp-left.png\", {'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_michigan': 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_michigan': true}),\n\t\t\tpost_login_mobile_png: new Asset(\"images/sdk_icons/post-login-mobile.png\", {'ballysdover_de': true,'harrahs_nj': true,'si_michigan': true,'wsop_nj': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': true,'wsop_nj': true})\n\t\t},\n\t\ttooltip: {\n\t\t\tgift_svg: new Asset(\"images/tooltip/gift.svg\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_michigan': true,'wsop_nj': true})\n\t\t},\n\t\tmini_orbit: {\n\t\t\tcip: {\n\t\t\t\texclusives_list_icon_cip_png: new Asset(\"images/mini_orbit/cip/exclusives_list_icon_cip.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'wsop_nj': true}),\n\t\t\t\ttexture_png: new Asset(\"images/mini_orbit/cip/texture.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'wsop_nj': true}),\n\t\t\t\tx_close_png: new Asset(\"images/mini_orbit/cip/x_close.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'wsop_nj': true}),\n\t\t\t\tjackpot_widget_title_crown_png: new Asset(\"images/mini_orbit/cip/jackpot_widget_title_crown.png\", {'wsop_nj': true}),\n\t\t\t\tarenas_header_buttons: {\n\t\t\t\t\tcasino_games_icon_png: new Asset(\"images/mini_orbit/cip/arenas_header_buttons/casino_games_icon.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'wsop_nj': true}),\n\t\t\t\t\tjackpots_icon_png: new Asset(\"images/mini_orbit/cip/arenas_header_buttons/jackpots_icon.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'wsop_nj': true}),\n\t\t\t\t\tlive_icon_png: new Asset(\"images/mini_orbit/cip/arenas_header_buttons/live_icon.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'wsop_nj': true}),\n\t\t\t\t\tmy_casino_icon_png: new Asset(\"images/mini_orbit/cip/arenas_header_buttons/my_casino_icon.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'wsop_nj': true}),\n\t\t\t\t\tselected_png: new Asset(\"images/mini_orbit/cip/arenas_header_buttons/selected.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'wsop_nj': true}),\n\t\t\t\t\tslots_icon_png: new Asset(\"images/mini_orbit/cip/arenas_header_buttons/slots_icon.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'wsop_nj': true}),\n\t\t\t\t\tunselected_png: new Asset(\"images/mini_orbit/cip/arenas_header_buttons/unselected.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'wsop_nj': true})\n\t\t\t\t},\n\t\t\t\theader_icons: {\n\t\t\t\t\tgift_png: new Asset(\"images/mini_orbit/cip/header_icons/gift.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'wsop_nj': true}),\n\t\t\t\t\tmoreMenu_png: new Asset(\"images/mini_orbit/cip/header_icons/moreMenu.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'wsop_nj': true}),\n\t\t\t\t\tsearch_png: new Asset(\"images/mini_orbit/cip/header_icons/search.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'wsop_nj': true})\n\t\t\t\t}\n\t\t\t},\n\t\t\tcis: {\n\t\t\t\tx_close_png: new Asset(\"images/mini_orbit/cis/x_close.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\t\t\tarenas_header_buttons: {\n\t\t\t\t\tcasino_games_icon_png: new Asset(\"images/mini_orbit/cis/arenas_header_buttons/casino_games_icon.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\t\t\t\tjackpots_icon_png: new Asset(\"images/mini_orbit/cis/arenas_header_buttons/jackpots_icon.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\t\t\t\tlive_icon_png: new Asset(\"images/mini_orbit/cis/arenas_header_buttons/live_icon.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\t\t\t\tmy_casino_icon_png: new Asset(\"images/mini_orbit/cis/arenas_header_buttons/my_casino_icon.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\t\t\t\tselected_png: new Asset(\"images/mini_orbit/cis/arenas_header_buttons/selected.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\t\t\t\tslots_icon_png: new Asset(\"images/mini_orbit/cis/arenas_header_buttons/slots_icon.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\t\t\t\tunselected_png: new Asset(\"images/mini_orbit/cis/arenas_header_buttons/unselected.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true})\n\t\t\t\t},\n\t\t\t\theader_icons: {\n\t\t\t\t\tgift_png: new Asset(\"images/mini_orbit/cis/header_icons/gift.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\t\t\t\tmoreMenu_png: new Asset(\"images/mini_orbit/cis/header_icons/moreMenu.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true}),\n\t\t\t\t\tsearch_png: new Asset(\"images/mini_orbit/cis/header_icons/search.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tvideos: {\n\t\tharmonium_mp4: new Asset(\"videos/harmonium.mp4\", {})\n\t},\n\tgames: {\n\t\tgame_icon_placeholder_png: new Asset(\"games/game_icon_placeholder.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_michigan': true,'wsop_nj': true}),\n\t\tabout: {\n\t\t\teng_about_json: new Asset(\"games/about/eng_about.json\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'ballysdover_de': true,'delawarepark_de': true,'harrahs_nj': true,'harrington_de': true,'si_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': 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_michigan': true}),\n\t\tharrahsFooter_html: new Asset(\"fallbackCMSComponent/harrahsFooter.html\", {'harrahs_nj': true}),\n\t\twsopFooter_html: new Asset(\"fallbackCMSComponent/wsopFooter.html\", {'wsop_nj': true})\n\t}\n};","export const LIVE_CASINO_ARENA_NAME = 'liveCasino';\r\nexport const NEW_LIVE_CASINO_ARENA_NAME = 'newLiveCasino';\r\nexport const CIP_ALL_GAMES_ARENA_NAME = 'cipAllGames';\r\nexport const SLOTS_ARENA_NAME = 'slots';\r\nexport const CASINO_GAMES_ARENA_NAME = 'casinoGames';\r\nexport const JACKPOTS_ARENA_NAME = 'jackpots';\r\nexport const EXCLUSIVE_ARENA_NAME = 'exclusive888Games';\r\nexport const SCRATCH_CARDS_ARENA_NAME = 'scratchCards';\r\nexport const VIDEO_POKER_ARENA_NAME = 'videoPoker';\r\nexport const INSTANT_WIN_GAMES_ARENA_NAME = 'instantWinGames';\r\nexport const BLACKJACK_ARENA_NAME = 'blackjack';\r\nexport const VIRTUAL_SPORT_ARENA_NAME = 'virtualSport';\r\nexport const ROULETTE_ARENA_NAME = 'roulette';\r\nexport const PROGRESSIVE_SLOTS_ARENA_NAME = 'progressiveSlots';\r\nexport const NEW_GAMES_ARENA_NAME = 'newGames';\r\nexport const HOME_PAGE_ARENA = 'homePage';\r\n","export enum FP_VOUCHER_TYPES {\r\n FreeSpin = '1',\r\n FreePlay = '2',\r\n FreeJackpotSpin = '3',\r\n FreeJackpotPlay = '4'\r\n}\r\n\r\nexport const FP_MESSAGE_MODE = {\r\n POPUP: 'popup',\r\n EMBEDDED_INTERNAL: 'embedded-internal'\r\n};\r\n","import 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","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 font-family: ${({theme}) => theme.font.family.body};\r\n font-size: 1.6rem;\r\n font-weight: 700;\r\n color: ${({theme}) => theme.colors.brandPrimary};\r\n text-decoration: underline;\r\n cursor: pointer;\r\n`;\r\n","import styled from 'styled-components';\r\n\r\nexport const LinkWrapperDefaultBox = styled.div`\r\n width: 100%;\r\n margin-top: 3rem;\r\n text-align: center;\r\n`;\r\n","import React from 'react';\r\nimport { Button } from '../../basic-ui-components/button/base/button.component';\r\nimport {ButtonsWrapperDefaultBox} from './boxes/actions/buttons-wrapper.box';\r\nimport {ButtonWrapperDefaultBox, ButtonSpacerDefaultBox} from './boxes/actions/button-wrapper.box';\r\nimport {LinkActionBox} from './boxes/actions/link-action.box';\r\nimport {LinkWrapperDefaultBox} from './boxes/actions/link-wrapper.box';\r\n\r\ninterface IModalDialogActionProps {\r\n text: string;\r\n onClick(): void;\r\n className?: string;\r\n}\r\ninterface IModalDialogButtonsComponentProps {\r\n buttonsOnSeparateLines?: boolean;\r\n primaryAction: IModalDialogActionProps;\r\n secondaryAction?: IModalDialogActionProps & {useWarningPreset?: boolean};\r\n linkAction?: IModalDialogActionProps;\r\n className?: string;\r\n}\r\n\r\nexport class ModalDialogActionsComponent extends React.Component {\r\n render() {\r\n return <>\r\n \r\n \r\n \r\n {this.props.primaryAction.text}\r\n \r\n \r\n {this.props.secondaryAction ? <>\r\n \r\n {this.props.secondaryAction.text}\r\n \r\n : null}\r\n \r\n {this.props.linkAction ? \r\n {this.props.linkAction.text}\r\n : null}\r\n ;\r\n }\r\n}\r\n","import {BannerContainerDefaultBox} from \"./banner-container.default.box\";\r\n\r\nexport const BannerContainerBox = BannerContainerDefaultBox;","import styled, {css} from \"styled-components\";\r\nimport {LOBBY_PAGE} from \"../../../themes/css-global-classes\";\r\n\r\nexport interface IBannerContainerBoxProps {\r\n minHeight?: string;\r\n}\r\n\r\nexport const BannerContainerDefaultBox = styled.div`\r\n position: relative;\r\n width: 100%;\r\n overflow-x: hidden;\r\n\r\n .${LOBBY_PAGE} & {\r\n z-index: 2;\r\n background-color: ${props => props.theme.colors.background}\r\n }\r\n\r\n ${props => props.minHeight && css`\r\n min-height: ${props.minHeight};\r\n`};\r\n`;\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {CmsBannerId} from '../../services/cms/cms-banners/cm-banner-id/cms-banner-id';\r\nimport {observer} from 'mobx-react';\r\nimport {EmptyBannerDefinition} from '../../services/cms/cms-banners/banner-definition/empty-banner-definition';\r\nimport {IBannerDefinition} from '../../services/cms/cms-banners/banner-definition/banner-definition.interface';\r\nimport {BannerContainerBox} from \"./banner-container/banner-container.box\";\r\n\r\nexport interface CmsBannerComponentProps {\r\n componentID: number;\r\n templateID: number;\r\n fallbackComponent: string;\r\n showPlaceholder: boolean;\r\n className?: string;\r\n minHeight?: string;\r\n}\r\n\r\n@observer\r\nexport class CmsBannerComponent extends OrbitComponent {\r\n componentDidMount() {\r\n super.componentDidMount();\r\n this.services.cmsBanners.loadBanner(this._bannerId);\r\n }\r\n\r\n componentDidUpdate() {\r\n this.services.cmsBanners.loadBanner(this._bannerId);\r\n }\r\n\r\n private get _bannerId(): CmsBannerId {\r\n return new CmsBannerId(this.props.componentID, this.props.templateID, this.props.fallbackComponent);\r\n }\r\n\r\n private get _bannerDefinition(): IBannerDefinition {\r\n let contentDefinition = this.services.cmsBanners.bannersMap[this._bannerId.key];\r\n if (contentDefinition) {\r\n return contentDefinition;\r\n }\r\n\r\n return new EmptyBannerDefinition();\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n \r\n {\r\n this._bannerDefinition.render({\r\n showPlaceholder: this.props.showPlaceholder,\r\n minHeight: this.props.minHeight\r\n })\r\n }\r\n \r\n );\r\n }\r\n}","import {JACKPOT_STATE} from '../const/jackpot_map_ids';\r\n\r\nexport type BLUE_RIBBON_POT_STATE = \"COLD\" | \"CHILLY\" | \"WARM\" | \"HOT\";\r\n\r\nexport type BLUE_RIBBON_INACTIVE_REASONS = 'ACTIVE_TIME' | 'COOL_DOWN' | 'MAX_ITERATIONS_EXCEEDED' | 'GAME_ENDED' | 'FUTURE_GAME';\r\n\r\nexport enum PartyJackpotType {\r\n Daily = 0,\r\n Hourly = 1\r\n};\r\n\r\nexport enum PartyJackpotJoinStatus {\r\n Neutral = 0,\r\n Joined = 1,\r\n NotJoined = 2\r\n}\r\n\r\nexport interface IBlueRibbonJackpot {\r\n readonly jackpotId: string;\r\n readonly initialValue: number;\r\n readonly currentValue: number;\r\n readonly isOptedIn: boolean;\r\n readonly isActive: boolean;\r\n readonly hasWin: boolean;\r\n readonly winAmount: number;\r\n readonly winISO3Currency: string | null;\r\n readonly winningPlayer: string | null;\r\n readonly potState: BLUE_RIBBON_POT_STATE;\r\n readonly isEligible: boolean;\r\n readonly hasBetContributions: boolean;\r\n\r\n getStandardJackpotState(): JACKPOT_STATE;\r\n}\r\n\r\nexport interface IBlueRibbonPartyJackpot extends IBlueRibbonJackpot {\r\n readonly type: PartyJackpotType;\r\n readonly inactiveReason: BLUE_RIBBON_INACTIVE_REASONS;\r\n readonly startHour: string;\r\n readonly endHour: string;\r\n readonly mustHitTime: Date;\r\n readonly B2CLink: string;\r\n readonly joinStatus: PartyJackpotJoinStatus;\r\n readonly name: string;\r\n readonly hasRealMoneyWinPrize: boolean;\r\n setName(listName: string);\r\n readonly supportsAllLiveGames: boolean;\r\n readonly isExpired: boolean;\r\n}\r\n\r\nexport interface IBlueRibbonPersonalJackpot extends IBlueRibbonJackpot {\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();","import React from 'react';\r\nimport {ButtonPreset} from \"../../basic-ui-components/button/base/button-props.interface\";\r\nimport { ISvgIconProps } from '../../basic-ui-components/icon/svg-icon/svg.icon';\r\n\r\nexport interface IModalDialogHandler {\r\n close(shouldApplyClosingAnimation?: boolean, isClosedDirectlyByUser?: boolean): void;\r\n zIndex: number;\r\n shouldBeClosedOnlyByUser: boolean;\r\n shouldApplyClosingAnimation: boolean;\r\n}\r\n\r\nexport interface ShowModalOptions {\r\n title?: string;\r\n icon?: React.ComponentType;\r\n onClosed?: () => void;\r\n onClosedByXButton?: ()=> void;\r\n debugInfo?: string;\r\n hideBorders?: boolean;\r\n hideCloseButton?: boolean;\r\n hideAnimation?: 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}\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 icon?: string | React.ReactElement;\r\n showEmptyTitle?: boolean;\r\n hideCloseButton?: boolean;\r\n buttons?: ISimpleTextModalButtonOptions[];\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}","/**\r\n * Created by fabianbr on 6/20/2017.\r\n */\r\n\r\nexport const PENDING_TOASTERS_KEY = 'pending_toasters';\r\n\r\nexport const DISPLAYED_TOASTERS_KEY = 'displayed_toasters';\r\n\r\nexport const 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: 'Large3D',\r\n\ttitleColor: 'secondary',\r\n\tmessageFont: 'Main',\r\n\tmessageSize: 'small',\r\n\tmessageColor: 'base01',\r\n\tbackgroundColor: 'darkMain',\r\n\tprogressColor: 'secondary',\r\n\tprogressBackgroundColor: 'base02',\r\n\tbuttonColor: 'secondary',\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 const TOAST_TYPES = {\r\n\tTIMED: 'timed_toaster',\r\n\tACKNOWLEDGE: 'acknowledge_toaster',\r\n\tACTION: 'action_toaster'\r\n};\r\n\r\nexport const 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 const 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 = {\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: 90,\r\n\t// zindex: 99999,\r\n\tlayout: 1,\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.BOUNCE_IN_UP,\r\n\ttransitionOut: TRANSITIONS.FADE_OUT,\r\n\ttransitionInMobile: TRANSITIONS.BOUNCE_IN_DOWN,\r\n\ttransitionOutMobile: TRANSITIONS.FADE_OUT\r\n\t// onOpened: function () {},\r\n\t// onClosed: function () {}\r\n};","const GAME_GROUP = {\r\n BACCARAT: 11,\r\n BACKGAMMONN: 40,\r\n BLACKJACK: 12,\r\n CARRIBEAN_POKER: 18,\r\n CRAPS: 10,\r\n CRAZY_BLACKJACK: 20,\r\n HEAD_TO_HEAD: 207,\r\n HI_LO: 202,\r\n KENO: 16,\r\n LIVE_CASINO: 201,\r\n PAI_GOW_POKER: 17,\r\n POKER: 100,\r\n POKER_TEMPLATE_GAMES: 206,\r\n POOLS: 212,\r\n POWER_VIDEO_POKER: 19,\r\n ROULETTE: 13,\r\n ROULETTE_LIKE: 203,\r\n SCRATCH_CARD: 204,\r\n SLOT: 14,\r\n VIDEO_SLOT: 30,\r\n VIDEO_POKER: 15,\r\n VIDEO_SLOT_BONUS_GAME: 31\r\n};\r\n\r\n\r\n\r\nexport {GAME_GROUP};","export const ITEM_WRAPPER_BOX = 'item-wrapper-box';\r\nexport const RED = 'red';\r\nexport const GREEN = 'green';","import {OrbitComponent} from '../orbit-component/orbit-component';\r\n\r\nexport class RoutedComponent extends OrbitComponent {\r\n}\r\n","export const FEATURE_NEW_FILTERING = \"AbFiltering\";\r\nexport 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_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_GRAPHYTE_LISTS = \"AbGraphyteLists\";\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_EXIT_POPUP_SQUARE_ICON = \"ExitPopupSquareIconEnabled\";\r\nexport const FEATURE_NAME_BECAUSE_YOU_PLAYED_LIST = \"BecauseYouPlayedListEnabled\";\r\nexport const FEATURE_NAME_DISABLE_ANIMATED_GAME_ICONS = \"DisableAnimatedIcons\";\r\nexport const FEATURE_NAME_FLOATING_ICON_F2P = \"FloatingIconF2P\";\r\n","export enum BalanceType {\r\n CASH = \"cash\",\r\n BONUS = \"bonus\",\r\n BOTH = \"both\"\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 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 CONVERSION_PRE_LOGIN_EVENT : 'CONVERSION_PRE_LOGIN_EVENT',\r\n CONVERSION_POST_LOGIN_EVENT : 'CONVERSION_POST_LOGIN_EVENT',\r\n PLAYER_ACTION: 'PLAYER_ACTION',\r\n\r\n BALANCE_UPDATED: 'BALANCE_UPDATED',\r\n CURRENCY_UPDATED: 'CURRENCY_UPDATED',\r\n RECENTLY_PLAYED_GAMES_UPDATED: 'RECENTLY_PLAYED_GAMES_UPDATED',\r\n LIVE_FEEDS_LATEST_WINNERS_UPDATED: 'LIVE_FEEDS_LATEST_WINNERS_UPDATED',\r\n LIVE_FEEDS_WINNINGS_UPDATED: 'LIVE_FEEDS_WINNINGS_UPDATED',\r\n LIVE_FEEDS_TOTAL_JACKPOTS_UPDATED: 'LIVE_FEEDS_TOTAL_JACKPOTS_UPDATED',\r\n LIVE_FEEDS_JACKPOT_AMOUNTS_UPDATED: 'LIVE_FEEDS_JACKPOT_AMOUNTS_UPDATED',\r\n LIVE_FEEDS_STATE_JACKPOTS_UPDATED: 'LIVE_FEEDS_STATE_JACKPOTS_UPDATED',\r\n OMG_AWAITING_MESSAGES_UPDATED: 'OMG_AWAITING_MESSAGES_UPDATED',\r\n OMG_OPEN_AWAITING_MESSAGES: 'OMG_OPEN_AWAITING_MESSAGES',\r\n OAUTH_REMOVE_FROM_LOCAL_STORAGE: 'SYSTEM_EVENTS.OAUTH_REMOVE_FROM_LOCAL_STORAGE',\r\n LOCAL_STORAGE_CHANGED: 'LOCAL_STORAGE_CHANGED',\r\n ELEMENT_CREATED: 'ELEMENT_CREATED',\r\n FREE_PLAY_UPDATED: 'FREE_PLAY_UPDATED',\r\n FREE_PLAY_VOUCHER_REMOVED: 'FREE_PLAY_VOUCHER_REMOVED',\r\n FREE_PLAY_OPEN_VOUCHERS_MSG: 'FREE_PLAY_OPEN_VOUCHERS_MSG',\r\n RESIZE_FORM: 'RESIZE_FORM',\r\n BEGIN_LOGIN_AFTER_REGISTRATION: 'BEGIN_LOGIN_AFTER_REGISTRATION',\r\n LOGIN_COMPLETED_AFTER_REGISTERATION: 'LOGIN_COMPLETED_AFTER_REGISTERATION',\r\n LOGIN_FAILED_AFTER_REGISTRATION: 'LOGIN_FAILED_AFTER_REGISTRATION',\r\n REGISTRATION_COMPLETED: 'REGISTRATION_COMPLETED',\r\n DETACH_REGISTER_EVENT: 'DETACH_REGISTER_EVENT',\r\n FREE_PLAY_VOUCHER_MSG_OPENED: 'FREE_PLAY_VOUCHER_MSG_OPENED',\r\n FREE_PLAY_OPEN_INTERNAL_VOUCHERS_MESSAGE: 'FREE_PLAY_OPEN_INTERNAL_VOUCHERS_MESSAGE',\r\n TOAST_CREATED: 'TOAST_CREATED',\r\n TOAST_SHOW: 'TOAST_SHOW',\r\n TOAST_HIDE: 'TOAST_HIDE',\r\n TOAST_CLOSE_BUTTON: 'TOAST_CLOSE_BUTTON',\r\n TOAST_USER_DISMISS: 'USER_DISMISSED_TOAST',\r\n HYBRID_ALERT: 'HYBRID_ALERT',\r\n HYBRID_OPEN_MAIL: 'HYBRID_OPEN_MAIL',\r\n HYBRID_UPDATE_INFO_KEY : 'HYBRID_UPDATE_INFO_KEY',\r\n FIREBASE_GOT_NEW_TOKEN: 'FIREBASE_GOT_NEW_TOKEN',\r\n TOUCH_ID_GET_TOKEN_FROM_SRV: 'TOUCH_ID_GET_TOKEN_FROM_SRV',\r\n TOUCH_ID_INIT_SCREEN_SHOW: 'TOUCH_ID_INIT_SCREEN_SHOW',\r\n TOUCH_ID_TRY_AGAIN_SKIP: 'TOUCH_ID_TRY_AGAIN_SKIP',\r\n TOUCH_ID_CHECK_TOKEN_ENABLE: 'TOUCH_ID_CHECK_TOKEN_ENABLE',\r\n TOUCH_ID_TOKEN_ENABLE_RES: 'TOUCH_ID_TOKEN_ENABLE_RES',\r\n TOUCH_ID_CLEAR_TOKEN: 'TOUCH_ID_CLEAR_TOKEN',\r\n TOUCH_ID_NATIVE_CANCEL: 'TOUCH_ID_NATIVE_CANCEL',\r\n TOUCH_ID_LOGIN_ERROR: 'TOUCH_ID_LOGIN_ERROR',\r\n TOUCH_ID_AUTO_LOGIN: 'TOUCH_ID_AUTO_LOGIN',\r\n TOUCH_ID_STATE_CHANGED: 'TOUCH_ID_STATE_CHANGED',\r\n WEB_VIEW_NAVIGATE_GAME: 'WEB_VIEW_NAVIGATE_GAME',\r\n WEB_VIEW_NAVIGATE_DEPOSIT_WIDGET: 'WEB_VIEW_NAVIGATE_DEPOSIT_WIDGET',\r\n WEB_VIEW_NAVIGATE_CASHIER: 'WEB_VIEW_NAVIGATE_CASHIER',\r\n SECOND_WEB_VIEW_OLD_CALL: 'SECOND_WEB_VIEW_OLD_CALL',\r\n SECOND_WEB_VIEW_CLOSE: 'SECOND_WEB_VIEW_CLOSE',\r\n SECOND_WEB_VIEW_OPEN: 'SECOND_WEB_VIEW_OPEN',\r\n SECOND_WEB_VIEW_CLOSE_ALL: 'SECOND_WEB_VIEW_CLOSE_ALL',\r\n MINI_CASHIER_HEIGHT_CHANGED: 'MINI_CASHIER_HEIGHT_CHANGED',\r\n CONTENT_LOADED: 'CONTENT_LOADED',\r\n OVERLAY_OPEN_AWAIT: 'OVERLAY_OPEN_AWAIT',\r\n OVERLAY_CLOSE_EXPIRED: 'OVERLAY_CLOSE_EXPIRED',\r\n\tINTERNAL_URL_NAVIGATION: 'INTERNAL_URL_NAVIGATION',\r\n FABRIC_ADD_EVENT : 'FABRIC_ADD_EVENT',\r\n ADD_TAG_OPEN_APP_VER : 'ADD_TAG_OPEN_APP_VER',\r\n ADD_TAG : 'ADD_TAG',\r\n REM_TAG : 'REM_TAG',\r\n DEEPLINK_RECEIVED: 'DEEPLINK_RECEIVED',\r\n WEB_LOGIN_OPEN_REGISTER: 'WEB_LOGIN_OPEN_REGISTER',\r\n ROUTE_CHANGED: 'ROUTE_CHANGED',\r\n RESTRICTIONS_CHANGED: 'RESTRICTIONS_CHANGED',\r\n SESSION_TIMER_UPDATE: 'SESSION_TIMER_UPDATE',\r\n WINDOW_FOCUS_GAIN: 'WINDOW_FOCUS_GAINED',\r\n WINDOW_FOCUS_LOSS: 'WINDOW_FOCUS_LOST',\r\n GEO_HYBRID_UPDATE_ENABLE : 'GEO_HYBRID_UPDATE_ENABLE',\r\n GEO_HYBRID_GT_CB : 'GEO_HYBRID_GT_CB',\r\n GEO_HYBRID_GET_LOCATION : 'GEO_HYBRID_GET_LOCATION',\r\n GEO_HYBRID_GET_LOCATION_RES : 'GEO_HYBRID_GET_LOCATION_RES',\r\n GEO_LOCATION_FAILED : 'GEO_LOCATION_FAILED',\r\n GEO_LOCATION_SUCCEED: 'GEO_LOCATION_SUCCEED',\r\n GEO_KICK_EVENT: 'GEO_KICK_EVENT',\r\n SESSION_EVENT_KICK: 'SESSION_EVENT_KICK',\r\n SESSION_EVENT_WALLET: 'SESSION_EVENT_WALLET',\r\n SESSION_EVENT_OMG_RECEIVED: 'SESSION_EVENT_OMG_RECEIVED',\r\n\tSESSION_EVENT_FREE_PLAY_RECEIVED: 'SESSION_EVENT_FREE_PLAY_RECEIVED', //TODO - obsolete. This should be removed once free play from SDK will be removed\r\n SESSION_EVENT_FREE_PLAY_REMOVED: 'SESSION_EVENT_FREE_PLAY_REMOVED',\r\n SESSION_EVENT_FREE_PLAY_BATCH_ADDED: 'SESSION_EVENT_FREE_PLAY_BATCH_ADDED',\r\n SESSION_EVENT_FREE_PLAY_BATCH_UPDATED: 'SESSION_EVENT_FREE_PLAY_BATCH_UPDATED',\r\n SESSION_EVENT_FREE_PLAY_BATCH_REMOVED: 'SESSION_EVENT_FREE_PLAY_BATCH_REMOVED',\r\n\tSESSION_EVENT_THIRD_PARTY_FREE_PLAY_UPDATED: 'SESSION_EVENT_THIRD_PARTY_FREE_PLAY_UPDATED',\r\n\tSESSION_EVENT_NET_POSITION_UPDATE: 'SESSION_EVENT_NET_POSITION_UPDATE',\r\n SESSION_EVENT_RECEIVED_TOASTER: 'SESSION_EVENT_RECEIVED_TOASTER',\r\n SESSION_EVENT_UPDATERESTRICTION_RECEIVED: 'SESSION_EVENT_UPDATERESTRICTION_RECEIVED',\r\n SESSION_EVENT_PLAYER_BURNOUT_MESSAGE_RECEIVED: 'SESSION_EVENT_PLAYER_BURNOUT_MESSAGE_RECEIVED',\r\n NET_POSITION_VALUE_UPDATE: 'NET_POSITION_VALUE_UPDATE',\r\n SECOND_WEB_VIEW_NAVIGATE_SPORT: 'SECOND_WEB_VIEW_NAVIGATE_SPORT',\r\n TIME_UPDATED_FROM_SERVER: 'TIME_UPDATED_FROM_SERVER',\r\n ON_BROWSER_PAGE_HIDE: 'ON_BROWSER_PAGE_HIDE',\r\n\tTOKEN_LIFETIME_EXPIRED: 'TOKEN_LIFETIME_EXPIRED',\r\n\tLIVE_TABLES_UPDATE: 'LIVE_TABLES_UPDATE',\r\n LOADING_INDICATOR_EMBEDDED_UPDATE: 'LOADING_INDICATOR_EMBEDDED_UPDATE',\r\n LOADING_INDICATOR_EMBEDDED_UPDATE_V2: 'LOADING_INDICATOR_EMBEDDED_UPDATE_V2',\r\n LOADING_INDICATOR_EMBEDDED_CLOSED_BY_X: 'LOADING_INDICATOR_EMBEDDED_CLOSED_BY_X',\r\n BLUE_RIBBON_PERSONAL_JP_STATE_CHANGED: 'BLUE_RIBBON_PERSONAL_JP_STATE_CHANGED',\r\n BLUE_RIBBON_PARTY_JP_STATE_CHANGED: 'BLUE_RIBBON_PARTY_JP_STATE_CHANGED',\r\n BLUE_RIBBON_PARTY_JACKPOT_WIN: 'BLUE_RIBBON_PARTY_JACKPOT_WIN',\r\n BLUE_RIBBON_PARTY_JACKPOT_INSUFFICIENT_MONEY: 'BLUE_RIBBON_PARTY_JACKPOT_INSUFFICIENT_MONEY',\r\n BLUE_RIBBON_CONNECTION_COMPLETE: 'BLUE_RIBBON_CONNECTION_COMPLETE',\r\n BLUE_RIBBON_IS_ENABLED_CHANGED: 'BLUE_RIBBON_IS_ENABLED_CHANGED',\r\n GAMES_QUESTIONNAIRE_COMPLETED: 'GAMES_QUESTIONNAIRE_COMPLETED',\r\n GAME_SEQUENCE_FINISH: 'GAME_SEQUENCE_FINISH',\r\n GAME_POPUP_SHOW: 'GAME_POPUP_SHOW',\r\n USER_APPROVE_GAME_POPUP: 'USER_APPROVE_GAME_POPUP',\r\n BONUS_ABUSE_PARKING_MONEY : 'BONUS_ABUSE_PARKING_MONEY',\r\n SHOW_POPUP_ABOVE_HYBRID_SECOND_WEB_VIEW : 'SHOW_POPUP_ABOVE_HYBRID_SECOND_WEB_VIEW',\r\n CLOSE_POPUP_ABOVE_HYBRID_SECOND_WEB_VIEW : 'CLOSE_POPUP_ABOVE_HYBRID_SECOND_WEB_VIEW',\r\n DEPOSIT_WIDGET_CLOSED : 'DEPOSIT_WIDGET_CLOSED',\r\n DAILY_DEAL_REMOVE_INDICATION: 'DAILY_DEAL_REMOVE_INDICATION',\r\n LOCATION_POPUP_OPEN : 'LOCATION_POPUP_OPEN',\r\n LOCATION_POPUP_CLOSED : 'LOCATION_POPUP_CLOSED',\r\n PLAYER_MESSAGES_STRATEGY_READY: 'PLAYER_MESSAGES_STRATEGY_READY',\r\n CHANGE_OVERLAY_PRIORITY: 'CHANGE_OVERLAY_PRIORITY',\r\n OMG_DISPLAYED: 'OMG_DISPLAYED',\r\n LIVE_GAME_SWITCHED: 'LIVE_GAME_SWITCHED',\r\n PROMOTIONS_CHANGED: 'PROMOTIONS_CHANGED',\r\n ODR_CLEAR_ALL_GAMES: 'ODR_CLEAR_ALL_GAMES'\r\n};\r\n\r\n/**\r\n * Client event symbols, used internally for identifying events uniquely.\r\n */\r\nconst CLIENT_EVENTS = {\r\n MENU_CLICKED: 'MENU_CLICKED',\r\n LOGIN_BUTTON_CLICKED: 'LOGIN_BUTTON_CLICKED',\r\n REALITY_CHECK_OPENED: 'REALITY_CHECK_OPENED',\r\n REALITY_CHECK_CLOSED: 'REALITY_CHECK_CLOSED'\r\n};\r\n\r\nconst USER_EVENTS = {\r\n ON_CLICK: 'click',\r\n ON_DOUBLE_CLICK: 'dblclick',\r\n ON_SUBMIT: 'submit',\r\n ON_MOUSE_MOVE: 'mousemove',\r\n ON_MOUSE_DOWN: 'mousedown',\r\n ON_KEY_PRESS: 'keypress',\r\n ON_DOM_MOUSE_SCROLL: 'DOMMouseScroll',\r\n ON_MOUSE_WHEEL: 'mousewheel',\r\n ON_TOUCH_START: 'touchstart',\r\n ON_TOUCH_MOVE: 'touchmove',\r\n ON_TOUCH_END: 'touchend',\r\n ON_MSPOINTER_MOVE: 'MSPointerMove',\r\n ON_RESIZE: 'resize',\r\n ON_FOCUS: 'focus',\r\n ON_CHANGE: 'change',\r\n ON_BLUR: 'blur'\r\n};\r\n\r\nconst USER_ACTIVITY_EVENTS_ALL = [\r\n SYSTEM_EVENTS.MESSAGE_CLOSE,\r\n SYSTEM_EVENTS.FULL_SCREEN_CHANGE,\r\n SYSTEM_EVENTS.CLOSE_OVERLAY,\r\n SYSTEM_EVENTS.CLOSE_ALL_OVERLAY,\r\n SYSTEM_EVENTS.APP_RESUMED,\r\n SYSTEM_EVENTS.PLAYER_ACTION,\r\n SYSTEM_EVENTS.TOAST_USER_DISMISS,\r\n SYSTEM_EVENTS.OMG_OPEN_AWAITING_MESSAGES,\r\n SYSTEM_EVENTS.FREE_PLAY_VOUCHER_MSG_OPENED,\r\n SYSTEM_EVENTS.BALANCE_UPDATED,\r\n\tSYSTEM_EVENTS.EXTEND_USER_TIME_TO_LIVE,\r\n SYSTEM_EVENTS.GAME_OPEN,\r\n SYSTEM_EVENTS.CLOSE_GAME\r\n];\r\n\r\n/**\r\n * we need this because app resume in hybrid poker nj happen every few minutes because they save the screen open.\r\n * so the user will ever have inactivity kick.\r\n * @type {[string,string,string,string,string,string,string,string,string,string]}\r\n */\r\nconst USER_ACTIVITY_EVENTS_FOR_HYBRID = [\r\n SYSTEM_EVENTS.MESSAGE_CLOSE,\r\n SYSTEM_EVENTS.FULL_SCREEN_CHANGE,\r\n SYSTEM_EVENTS.CLOSE_OVERLAY,\r\n SYSTEM_EVENTS.CLOSE_ALL_OVERLAY,\r\n SYSTEM_EVENTS.PLAYER_ACTION,\r\n SYSTEM_EVENTS.TOAST_USER_DISMISS,\r\n SYSTEM_EVENTS.OMG_OPEN_AWAITING_MESSAGES,\r\n SYSTEM_EVENTS.FREE_PLAY_VOUCHER_MSG_OPENED,\r\n SYSTEM_EVENTS.BALANCE_UPDATED,\r\n SYSTEM_EVENTS.EXTEND_USER_TIME_TO_LIVE,\r\n SYSTEM_EVENTS.GAME_OPEN,\r\n SYSTEM_EVENTS.CLOSE_GAME,\r\n SYSTEM_EVENTS.POST_MESSAGE_ARRIVE\r\n];\r\n\r\nexport {SYSTEM_EVENTS, CLIENT_EVENTS, USER_EVENTS, USER_ACTIVITY_EVENTS_ALL, USER_ACTIVITY_EVENTS_FOR_HYBRID};","import { ThemeName } from \"./theme-names\";\r\n\r\nexport class ByThemeRegistry {\r\n constructor(private _default: T) {}\r\n\r\n private _registry: Partial> = {};\r\n\r\n forCasino777(override: T): this {\r\n this._registry[ThemeName.Casino777] = override;\r\n return this;\r\n }\r\n\r\n forCasino888(override: T): this {\r\n this._registry[ThemeName.Casino888] = override;\r\n return this;\r\n }\r\n\r\n forCip(override: T): this {\r\n this._registry[ThemeName.Casino888Cip] = override;\r\n return this;\r\n }\r\n\r\n forWsopCip(override: T): this {\r\n this._registry[ThemeName.WsopCip] = override;\r\n return this;\r\n }\r\n\r\n forCis(override: T): this {\r\n this._registry[ThemeName.Casino888Cis] = override;\r\n return this;\r\n }\r\n\r\n forHarrahs(override: T): this {\r\n this._registry[ThemeName.Harrahs] = override;\r\n return this;\r\n }\r\n\r\n forWsop(override: T): this {\r\n this._registry[ThemeName.Wsop] = override;\r\n return this;\r\n }\r\n\r\n forBallysDover(override: T): this {\r\n this._registry[ThemeName.BallysDover] = override;\r\n return this;\r\n }\r\n\r\n forDelawarePark(override: T): this {\r\n this._registry[ThemeName.Delawarepark] = override;\r\n return this;\r\n }\r\n\r\n forHarrington(override: T): this {\r\n this._registry[ThemeName.Harrington] = override;\r\n return this;\r\n }\r\n\r\n forSI(override: T): this {\r\n this._registry[ThemeName.SI] = override;\r\n return this;\r\n }\r\n\r\n getRegistryItem = (themeName: ThemeName) => {\r\n return this._registry[themeName] ? this._registry[themeName] : this._default;\r\n }\r\n}\r\n","import React from 'react';\r\nimport { StyledComponent } from 'styled-components';\r\nimport { OrbitTheme } from './orbit-theme.interface';\r\nimport { OrbitComponent } from '../../components/base-components/orbit-component/orbit-component';\r\nimport { ByThemeRegistry } from './by-theme-registry';\r\n\r\nclass StyledByTheme, O extends object = {}>\r\n extends ByThemeRegistry> {\r\n\r\n apply(): StyledComponent {\r\n const getRegistryItem = this.getRegistryItem;\r\n let ComponentDefinition = class extends OrbitComponent{\r\n render() {\r\n let Component: any = getRegistryItem(this.services.theme.currentTheme.themeName);\r\n\r\n return (\r\n \r\n {this.props.children}\r\n \r\n );\r\n }\r\n };\r\n\r\n let finalComponent = React.forwardRef((props, ref) => );\r\n\r\n return (finalComponent as any) as StyledComponent;\r\n }\r\n}\r\n\r\n\r\nexport function styledByTheme<\r\n C extends keyof JSX.IntrinsicElements | React.ComponentType,\r\n O extends object = {}\r\n>(defaultComponent: StyledComponent): StyledByTheme {\r\n return new StyledByTheme(defaultComponent);\r\n}\r\n","import { TimeSpan } from \"@sparkware/app-utils\";\r\n\r\nexport interface ImagePreloadPromiseResponse {\r\n error: string | null;\r\n backgroundUrl: string;\r\n imageObj: HTMLImageElement;\r\n}\r\n\r\nexport function imagePreload(src: string, timeout?: TimeSpan) {\r\n timeout = timeout || TimeSpan.fromMinutes(2);\r\n return new Promise((res, rej) => {\r\n let image = new Image();\r\n image.onload = () => {\r\n clearTimeout(timeoutRejection);\r\n res({error: null, backgroundUrl: src, imageObj: image});\r\n };\r\n image.onerror = ()=> {\r\n rej({\r\n error: 'Could not load image on path => ' + src,\r\n backgroundUrl: src\r\n });\r\n };\r\n const timeoutRejection = setTimeout(() => {\r\n rej({\r\n error: 'Timeout. Could not load image on path => ' + src,\r\n backgroundUrl: src\r\n });\r\n }, timeout.totalMilliseconds);\r\n image.src = src;\r\n });\r\n}\r\n\r\nexport function imagePreloadWithDefault(src: string | null | undefined, defaultPath: string) {\r\n if (src) {\r\n return imagePreload(src).catch(() => {\r\n return imagePreload(defaultPath);\r\n });\r\n } else {\r\n return imagePreload(defaultPath);\r\n }\r\n}\r\n","export enum GamingHistoryType {\r\n UserHistory = 1,\r\n SessionHistory = 2\r\n}\r\n","import React from 'react';\r\nimport { observer } from \"mobx-react\";\r\nimport styled, { AnyStyledComponent } from 'styled-components';\r\nimport { BalanceType } from '../../../common/const/wallet_balance_type';\r\nimport { OrbitComponent } from \"../base-components/orbit-component/orbit-component\";\r\n\r\ninterface IBalanceValueProps {\r\n balanceType?: BalanceType;\r\n className?: string;\r\n WrapperComponent?: AnyStyledComponent;\r\n}\r\n\r\n@observer\r\nexport class BalanceValue extends OrbitComponent {\r\n static defaultProps: Partial = {\r\n balanceType: BalanceType.BOTH,\r\n WrapperComponent: styled.span`\r\n color: ${props => props.theme.colors.moneyColor};\r\n `\r\n };\r\n render() {\r\n let bankroll = this.services.walletProxy.bankroll[this.props.balanceType!];\r\n const balanceMaxChars = 15;\r\n // Bankroll length limited by 15 chars\r\n const numberIndex = bankroll.search(/[0-9]/g);\r\n const symbolIndex = bankroll.search(/[^0-9.,]/g);\r\n let balance: string;\r\n\r\n if (numberIndex > symbolIndex) {\r\n balance = bankroll.slice(numberIndex, numberIndex + balanceMaxChars);\r\n bankroll = bankroll.slice(symbolIndex, numberIndex) + balance;\r\n } else {\r\n balance = bankroll.slice(numberIndex, Math.min(balanceMaxChars, symbolIndex - numberIndex));\r\n bankroll = balance + bankroll.slice(symbolIndex);\r\n }\r\n\r\n let WrapperComponent = this.props.WrapperComponent!;\r\n return \r\n { bankroll }\r\n ;\r\n }\r\n}\r\n","export interface SystemEventSubscription {\r\n off(): void;\r\n}\r\n\r\n/**\r\n * Event based module, publish / subscribe with hierarchical events and notifications.\r\n *\r\n * Usage:\r\n * Event.on('test_one_event', function() {\r\n * console.log('test 1 event fired');\r\n * console.log(arguments);\r\n * });\r\n *\r\n * Event.once('test_two_event', function() {\r\n * console.log('test 2 event fired, once.');\r\n * console.log(arguments);\r\n * });\r\n *\r\n * var three = Event.on('test_three_event', function() {\r\n * console.log('test 3 event fired');\r\n * });\r\n *\r\n * Event.fire('test_one_event', {eventID: 1}); // fires ok\r\n * Event.fire('test_two_event', {eventID: 2}); // fires ok\r\n * Event.fire('test_two_event', {eventID: 3}); // didnt trigger the event since it was unsubscribed (subscribed once only)\r\n * three.off(); // will remove the test_three_event\r\n * Event.fire('test_three_event', {eventID: 4}); // didnt trigger, was remove line above.\r\n *\r\n *\r\n */\r\nclass Event {\r\n /**\r\n * @constructor\r\n */\r\n constructor() {\r\n this._subscriptions = {};\r\n }\r\n\r\n private _subscriptions: any;\r\n\r\n /**\r\n * Attach a callback to an EventName\r\n */\r\n on(name: string | string[], callback: Function, context?: any): SystemEventSubscription {\r\n\r\n if(!(name)) {\r\n throw new Error('The name argument for Event.on is required');\r\n }\r\n\r\n if(!callback) {\r\n throw new Error('The callback argument name for Event.on is required');\r\n }\r\n\r\n context = context || this;\r\n\r\n // allows to subscribe multiple events for the same callback as single events. Clears the syntax on the other end.\r\n if (Array.isArray(name)) {\r\n let cleanFunctions: SystemEventSubscription[] = [];\r\n for (let eventIdx = 0, len = name.length, eventName; eventIdx < len; eventIdx++) {\r\n eventName = name[eventIdx];\r\n cleanFunctions.push(this.on(eventName, callback, context));\r\n }\r\n\r\n // Quit after done.\r\n return {\r\n off: () => cleanFunctions.forEach(subscription => subscription.off())\r\n };\r\n }\r\n\r\n if ('undefined' === typeof this._subscriptions[name]) {\r\n this._subscriptions[name] = [];\r\n }\r\n\r\n this._subscriptions[name].push({\r\n callback: callback,\r\n context: context\r\n });\r\n\r\n // return back a clean remove function with the params encapsulated\r\n return ((eName, eCallback, eContext): SystemEventSubscription => {\r\n return {\r\n off: () => {\r\n this.off(eName, eCallback, eContext);\r\n }\r\n };\r\n })(name, callback, context);\r\n }\r\n\r\n\r\n /**\r\n * Attach a callback to an name, but once only. Will disapear after first execution.\r\n *\r\n */\r\n once(name: string | string[], callback: Function, context?: any): SystemEventSubscription {\r\n context = context || this;\r\n var self = this,\r\n onceCallback: any = function() {\r\n self.off(name, onceCallback, context);\r\n callback.apply(this, arguments);\r\n };\r\n\r\n // preserve the original callback to allow subscribe once method to be removed later if needed.\r\n onceCallback._originalCallback = callback;\r\n\r\n return this.on(name, onceCallback, context);\r\n }\r\n\r\n\r\n /**\r\n * Notify subscriptions by calling their name\r\n */\r\n fire(name: string, params: any = {}) {\r\n let subscriptions = this.getAllSubscriptions();\r\n //clone the subscriptions array\r\n let events = [].concat(subscriptions[name] || []);\r\n\r\n events.forEach(event => {\r\n try {\r\n event.callback.call(event.context, params);\r\n } catch (ex) {\r\n console.error(ex);\r\n }\r\n });\r\n }\r\n\r\n\r\n /**\r\n * Remove a specific name callback from the stack.\r\n *\r\n * Used mostly internally.. but not only. A diffrent \".off\" is binded when you \".on\" and a referance to this \".off\"\r\n * is set.\r\n */\r\n off(name: string | string[], callback: Function, context: any): void {\r\n if (Array.isArray(name)) {\r\n name.forEach(eventName => this.off(eventName, callback, context));\r\n return;\r\n }\r\n context = context || this;\r\n\r\n let events = this._subscriptions[name],\r\n matchCallback = cb => {\r\n return cb === callback || cb._originalCallback === callback;\r\n };\r\n if (events === undefined) {\r\n return;\r\n }\r\n\r\n for (let eventIdx = events.length - 1; 0 <= eventIdx; eventIdx--) {\r\n let event = events[eventIdx];\r\n\r\n // TODO: make this code typesafe so that we can use '==='\r\n // eslint-disable-next-line\r\n if (matchCallback(event.callback) && event.context == context) {\r\n events.splice(eventIdx, 1);\r\n }\r\n }\r\n\r\n // if no callbacks left remove the event name from the tree completly.\r\n if (0 === events.length) {\r\n delete this._subscriptions[name];\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Removes all the subscriptions by reseting the queue.\r\n *\r\n *\r\n * @returns {Object} this - an instance of the current running Event object.\r\n * @public\r\n */\r\n removeAllSubscriptions(): void {\r\n this._subscriptions = [];\r\n }\r\n\r\n\r\n /**\r\n * Get all the active subscriptions tree\r\n */\r\n getAllSubscriptions(): any {\r\n return this._subscriptions;\r\n }\r\n\r\n\r\n /**\r\n * Detach events that the object subscribe to.\r\n */\r\n detachEvents(events: any[]): void {\r\n // Remove reference events.\r\n if (!events) {\r\n return;\r\n }\r\n\r\n events.forEach((event) => {\r\n if (Array.isArray(event)) {\r\n event.forEach((cleanFn) => {\r\n cleanFn.off();\r\n });\r\n } else {\r\n event.off();\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default new Event();","import styled from \"styled-components\";\r\nimport {GAMING_HISTORY_PAGE, NEW_LIVE_CASINO_PAGE} 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} &{\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} &{\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 TopBanner777tBox = 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 {TopBannerDefaultBox} from \"./top-banner.default.box\";\r\nimport {styledByTheme} from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {TopBanner777tBox} from \"./top-banner-777.box\";\r\n\r\nexport const TopBannerBox = styledByTheme(TopBannerDefaultBox)\r\n .forCasino777(TopBanner777tBox)\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 font-family: ${props => props.theme.font.family.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 font-family: ${props => props.theme.font.family.bold};\r\n .${LIVE_CASINO_PAGE} &{\r\n display:none;\r\n }\r\n`;\r\n","import {TopBannerTitleDefaultBox} from \"./top-banner-title.default.box\";\r\nimport {styledByTheme} from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {TopBannerTitleCasino777Box} from \"./top-banner-title.casino777.box\";\r\n\r\nexport const TopBannerTitleBox = styledByTheme(TopBannerTitleDefaultBox).forCasino777(TopBannerTitleCasino777Box).apply();","import styled from \"styled-components\";\r\n\r\nexport const TopBannerLiveLogoDefaultBox = styled.div`\r\n position: absolute;\r\n width: 100%;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n display: flex;\r\n align-items: center;\r\n flex-direction: column;\r\n justify-content: center;\r\n`;\r\n","import styled from \"styled-components\";\r\nimport {TopBannerLiveLogoDefaultBox} from \"./top-banner-live-logo.default.box\";\r\n\r\nexport const TopBannerLiveLogoCasino777Box = styled(TopBannerLiveLogoDefaultBox)`\r\n`;","import {TopBannerLiveLogoDefaultBox} from \"./top-banner-live-logo.default.box\";\r\nimport {styledByTheme} from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {TopBannerLiveLogoCasino777Box} from \"./top-banner-live-logo.casino777.box\";\r\n\r\nexport const TopBannerLiveLogoBox = styledByTheme(TopBannerLiveLogoDefaultBox).forCasino777(TopBannerLiveLogoCasino777Box).apply();","import React, {RefObject} from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\nimport {TopBannerBox} from \"./boxes/top-banner/top-banner.box\";\r\nimport {TopBannerImageBox} from \"./boxes/top-banner-image/top-banner-image.box\";\r\nimport {TopBannerLogoImageBox} from \"./boxes/top-banner-logo-image/top-banner-logo-image.box\";\r\nimport {TopBannerTitleBox} from \"./boxes/top-banner-title/top-banner-title.box\";\r\nimport {TopBannerLiveLogoBox} from \"./boxes/top-banner-live-logo/top-banner-live-logo.box\";\r\nimport {ThemeProvider} from \"styled-components\";\r\n\r\nexport interface TopImageComponentProps {\r\n image: string;\r\n title?: string;\r\n className?: string;\r\n topImageRef?: RefObject;\r\n}\r\n\r\n@observer\r\nexport class TopImageComponent extends OrbitComponent {\r\n\r\n private _renderLogoAndTitle() {\r\n if(this.props.title) {\r\n const srcLogo = this.services.device.isMobile\r\n ? this.services.theme.currentTheme.images.liveArena.casinoLiveLogoMobile.toString()\r\n : this.services.theme.currentTheme.images.liveArena.casinoLiveLogoPC.toString();\r\n return (\r\n \r\n \r\n {this.services.translation.translate(this.props.title)}\r\n \r\n )\r\n }\r\n return null;\r\n }\r\n\r\n render() {\r\n\r\n if(!this.props.image) {\r\n return null;\r\n }\r\n\r\n // TODO: maybe get also an image placeholder to enable lazy loading\r\n return (\r\n \r\n \r\n \r\n {this._renderLogoAndTitle()}\r\n \r\n \r\n )\r\n\r\n }\r\n}\r\n","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../themes/architecture/styled-by-device\";\r\n\r\nconst MobileBox = styled.div`\r\n position: fixed;\r\n bottom: 80px;\r\n \r\n right: 20px;\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: 35px;\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: 83px;\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\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? '100px' : '50px'};\r\n right: 50px;\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: 30px;\r\n }\r\n ${props => props.hasCircle? css`\r\n background-repeat: no-repeat;\r\n background-color: ${props => props.theme.colors.brandPrimary};\r\n border-radius: 50%;\r\n ` : '' }\r\n`;","import styled, {css, keyframes, DefaultTheme} from \"styled-components\";\r\nimport {hexToRgba} from \"../../../../themes/hex-to-rgba\";\r\nimport {LinkToOfferBoxBase} from \"../link-to-offer-base/link-to-offer-box-base\";\r\nimport { CssRule } from \"../../../../themes/architecture/css-helpers/css-rule\";\r\n\r\n\r\nconst linkToOfferIconKeyframes = (props: {theme: DefaultTheme}) => keyframes`\r\n 0% {\r\n transform: scale(0.9);\r\n box-shadow: 0 0 0 0 ${hexToRgba(props.theme.colors.brandPrimary, 0.5)};\r\n }\r\n 60% {\r\n transform: scale(1);\r\n }\r\n 80% {\r\n transform: scale(1);\r\n box-shadow: 0 0 0 35px ${hexToRgba(props.theme.colors.brandPrimary, 0)};\r\n }\r\n 100% {\r\n transform: scale(0.9);\r\n box-shadow: 0 0 0 0 ${hexToRgba(props.theme.colors.brandPrimary, 0)};\r\n }\r\n`;\r\n\r\nexport const LinkToOfferIconDefaultBox = styled(LinkToOfferBoxBase)`\r\n ${props => props.shouldAnimate ? css`animation: ${linkToOfferIconKeyframes} 1.2s infinite` : ''};\r\n /* temporary solution for disabling button on mobile landscape - remove once banners will support landscape mode for phones */\r\n ${CssRule.For.mobile.landscape.not.tablet.build()} & {\r\n visibility: hidden;\r\n }\r\n`;\r\n","import {LinkToOfferIconDefaultBox} from \"./link-to-offer-icon.default.box\";\r\n\r\nexport const LinkToOfferIconBox = LinkToOfferIconDefaultBox;\r\n","import {LinkToOfferDialogCloseDefaultBox} from \"./link-to-offer-dialog-close.default.box\";\r\n\r\nexport const LinkToOfferDialogCloseBox = LinkToOfferDialogCloseDefaultBox;\r\n","import styled from \"styled-components\";\r\nimport {LinkToOfferBoxBase} from \"../link-to-offer-base/link-to-offer-box-base\";\r\n\r\nexport const LinkToOfferDialogCloseDefaultBox = styled(LinkToOfferBoxBase)<{zIndex?: number}>`\r\n z-index: ${props => props.zIndex ?? 201};\r\n`;\r\n","import React from 'react';\r\nimport { OrbitComponent } from '../base-components/orbit-component/orbit-component';\r\nimport {observer} from \"mobx-react\";\r\nimport {LinkToOfferIconBox} from \"./boxes/link-to-offer-icon/link-to-offer-icon.box\";\r\nimport {LinkToOfferDialogCloseBox} from \"./boxes/link-to-offer-dialog-close/link-to-offer-dialog-close.box\";\r\nimport {LinkToOfferConfiguration} from \"../../services/configurations/config-data-sections/link-to-offer.configuration\";\r\nimport { IOffer } from '../../services/player-offerings/player-offerings.service';\r\nimport { IShowOfferOptions } from '../../services/player-offerings/player-offerings.service.interface';\r\n\r\nexport interface LinkToOfferComponentProps {\r\n linkToOfferConfig: LinkToOfferConfiguration;\r\n}\r\n\r\n\r\n@observer\r\nexport class LinkToOfferComponent extends OrbitComponent {\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n this.services.playerOfferings.setWelcomeOfferConfig(this.props.linkToOfferConfig?.welcomeBonus ?? null);\r\n }\r\n\r\n render() {\r\n if (this.services.playerOfferings.hasOpenedPopup) {\r\n let CloseIconComponent = this.services.theme.currentTheme.icons.linkToOfferCloseIcon;\r\n\r\n return (\r\n {this._onCloseDialog()}}\r\n shouldAnimate={false}\r\n hasCircle={true}\r\n zIndex={this.services.playerOfferings.isHighPriorityOffer ? this.services.dialog.getMaxCGPOverlayZIndex() + 2: null}\r\n isHybridEmbedded={this.services.device.hybrid.isEmbedded}\r\n >\r\n \r\n \r\n );\r\n }\r\n\r\n const currentOffer = this.services.playerOfferings.currentLinkToOffer;\r\n if(!currentOffer) {\r\n return null;\r\n }\r\n\r\n return (\r\n {this._onLinkToOfferClicked(currentOffer)}}\r\n shouldAnimate={currentOffer.shouldUseLinkToOfferAnimation()}\r\n hasCircle={currentOffer.shouldUseLinkToOfferAnimation()}\r\n isHybridEmbedded={this.services.device.hybrid.isEmbedded}\r\n >\r\n { currentOffer.render() }\r\n \r\n );\r\n }\r\n\r\n\r\n private _onLinkToOfferClicked(offer: IOffer): void {\r\n\r\n this.services.analytics.sendAnalytics(offer.analyticsCategory, 'Open_Floating_Button', this.services.routing.currentRoute.data.arenaType);\r\n\r\n const options: IShowOfferOptions = {\r\n onPopupClosed: () => {\r\n this.services.analytics.sendAnalytics(offer.analyticsCategory, 'Close_Floating_Button', this.services.routing.currentRoute.data.arenaType);\r\n }\r\n };\r\n this.services.playerOfferings.showOfferPopup(offer, options);\r\n }\r\n\r\n private _onCloseDialog = () => {\r\n if (this.services.playerOfferings.hasOpenedPopup) {\r\n this.services.playerOfferings.closeCurrentPopup();\r\n }\r\n };\r\n}\r\n","import {OrbitComponent} from \"../base-components/orbit-component/orbit-component\";\r\nimport {IArenaViewModel} from \"../../services/arenas/models/arenas/arena-view-model.interface\";\r\nimport {observer} from \"mobx-react\";\r\n\r\ninterface SwiperWindowComponentProps {\r\n windowPosition: number;\r\n arena: IArenaViewModel;\r\n}\r\n\r\n@observer\r\nexport class SwiperWindowComponent extends OrbitComponent {\r\n\r\n render() {\r\n return this.props.arena.renderList(this.props.windowPosition);\r\n }\r\n \r\n}","import React from \"react\";\r\nimport {observer} from \"mobx-react\";\r\nimport {OrbitComponentWithState} from \"../base-components/orbit-component-with-state/orbit-component-with-state\";\r\nimport {IArenaViewModel} from \"../../services/arenas/models/arenas/arena-view-model.interface\";\r\nimport {SwiperWindowComponent} from \"../orbit-swiper/swiper-window.component\";\r\nimport {IntersectionSpyComponent} from \"../../basic-components/intersection-spy/intersection-spy.component\";\r\n\r\nconst INITIAL_BATCH_SIZE = 0;\r\ninterface ArenaGamesListsComponentProps {\r\n arenaName: string;\r\n}\r\n\r\ninterface ArenaGamesListsComponentState {\r\n swiperWindowsCount: number;\r\n}\r\n\r\n@observer\r\nexport class ArenaGamesListsComponent extends OrbitComponentWithState {\r\n\r\n constructor(props: ArenaGamesListsComponentProps) {\r\n super(props);\r\n\r\n this.state = {\r\n swiperWindowsCount: INITIAL_BATCH_SIZE\r\n };\r\n }\r\n\r\n private _intersectionSpy: HTMLElement = null;\r\n\r\n private get _arena(): IArenaViewModel {\r\n return this.services.arenas.getArena(this.props.arenaName);\r\n }\r\n\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n //we need this reaction in order for the list to rerender upon login/logout\r\n this.reaction(() => this.services.user.isAuthorized,\r\n () => {\r\n this.setState({\r\n swiperWindowsCount: INITIAL_BATCH_SIZE\r\n });\r\n });\r\n }\r\n\r\n private _loadNextBatch(): void {\r\n const nextBatch = this._arena.getNextBatchSize(this.state.swiperWindowsCount);\r\n if(nextBatch === 0) {\r\n return;\r\n }\r\n\r\n this.setState({\r\n swiperWindowsCount: this.state.swiperWindowsCount + nextBatch\r\n }, () => {\r\n this._ensureIntersectionSpyIsOutsideOfViewPort();\r\n });\r\n }\r\n\r\n private _timeoutRef: any = null;\r\n private _ensureIntersectionSpyIsOutsideOfViewPort() {\r\n if(this._timeoutRef) {\r\n clearInterval(this._timeoutRef);\r\n }\r\n\r\n this._timeoutRef = setTimeout(() => {\r\n if(this._intersectionSpy) {\r\n const spyBoxRectangle = this._intersectionSpy.getBoundingClientRect();\r\n if (spyBoxRectangle.top >= 0 && spyBoxRectangle.bottom <= (this.services.window.innerHeight || document.documentElement.clientHeight)) {\r\n this._loadNextBatch();\r\n }\r\n }\r\n }, 250);\r\n }\r\n\r\n private _onIntersect = () => {\r\n this._loadNextBatch();\r\n }\r\n\r\n private _onCaptureIntersectionSpyRef = (element: HTMLElement) => {\r\n this._intersectionSpy = element;\r\n }\r\n\r\n private _onFailedToCreateIntersectionSpy = () => {\r\n // if it fails to create the IntersectionObserver we give up on lazy loading and render all lists\r\n this.setState({\r\n swiperWindowsCount: this._arena.listsCount\r\n });\r\n }\r\n\r\n get _windowsRange(): number[] {\r\n return Array.from({length: this.state.swiperWindowsCount}, (x, i) => i + 1);\r\n }\r\n\r\n render() {\r\n const range = this._windowsRange;\r\n this._ensureIntersectionSpyIsOutsideOfViewPort();\r\n return (\r\n \r\n {range.map(listWindowPosition => ())}\r\n\r\n \r\n \r\n );\r\n }\r\n}","export const INSIDE_ORBIT_MENU_CONTAINER = 'inside-orbit-menu-container';","import {grayColors} from \"../../architecture/gray-colors\";\r\n\r\nexport const baseColors = {\r\n base01: \"#0ea79b\", //brandTeal\r\n base01Contrast: \"#19322f\", //blackTeal\r\n base01Dark: \"#8cd1ba\", //softTeal\r\n base01Light: \"#c3e3c7\", //lightGreen\r\n\r\n base02: \"#fcf6d5\", //brandYellow\r\n base02Contrast: \"#4c1723\", //blackRed\r\n base02Dark: \"#a4867c\", //tan\r\n base02Light: \"#eadfc3\", //sepia\r\n\r\n base03: \"#bc3554\", //pink\r\n base03Contrast: \"#fcf6d5\", //brandYellow,\r\n base03Dark: \"#b01619\", //brick\r\n base03Light: \"#ff014f\", //red\r\n\r\n base04: \"#ffd683\", //peach\r\n base04Contrast: \"#4c1723\", //blackRed\r\n base04Dark: \"#ffbe0b\", //papaya\r\n base04Light: \"#ffff00\", //yellow\r\n\r\n\r\n base05: \"#7aec37\", //inchWorm\r\n base05Contrast: \"#000000\",\r\n base05Dark: \"#135823\",\r\n base05Light: \"#d5ec37\", //pear //#87ee4b\r\n\r\n ...grayColors\r\n}","\r\nexport enum GermanyResponsibleGamingButtonPlacement {\r\n inGame = 0,\r\n inDetailedHistory = 1\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}","export const CASHIER_SESSION_TYPES = {\r\n DEPOSIT: 1,\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","import {OrbitComponent} from \"../base-components/orbit-component/orbit-component\";\r\nimport React from \"react\";\r\nimport {INSIDE_ORBIT_MENU_CONTAINER} from \"./inside-orbit-menu-container.consts\";\r\nimport {isInsideAutomation} from '../../../utils/automation-helpers';\r\n\r\n\r\nexport class InsideOrbitMenuContainerComponent extends OrbitComponent<{}> {\r\n render() {\r\n if(isInsideAutomation()) {\r\n return null;\r\n }\r\n return
\r\n }\r\n}","import React from 'react';\r\nimport {SdkComponent} from \"../sdk/sdk.component\";\r\nimport {ClockComponentBox} from \"./boxes/clock.component.box\";\r\nimport {OrbitComponent} from \"../base-components/orbit-component/orbit-component\";\r\nimport {AnyStyledComponent} from \"styled-components\";\r\nimport classNames from \"classnames\";\r\n\r\ninterface ClockComponentProps {\r\n format?: string\r\n box?: AnyStyledComponent | React.ComponentType;\r\n className?: string;\r\n}\r\n\r\nexport class ClockComponent extends OrbitComponent{\r\n render() {\r\n const sdkProps = {\r\n datetime: this.props.format\r\n };\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {ISdkComponentRenderer} from '../../services/sdk-component-factory/sdk-component-factory.service.interface';\r\nimport {observer} from 'mobx-react';\r\nimport styled, {AnyStyledComponent} from 'styled-components';\r\nimport classNames from 'classnames';\r\n\r\n\r\nexport interface SdkComponentProps {\r\n componentId: string;\r\n className?: string;\r\n sdkProps?: any;\r\n box?: AnyStyledComponent | React.ComponentType;\r\n onClick?: React.MouseEventHandler;\r\n}\r\n\r\n\r\nconst DefaultBox = styled.div``;\r\n\r\n@observer\r\nexport class SdkComponent extends OrbitComponent {\r\n\r\n private _elementRef: HTMLElement | null = null;\r\n private _captureElementRef = (element: HTMLElement | null) => {\r\n this._elementRef = element;\r\n this._renderSdkComponent();\r\n };\r\n\r\n\r\n private _sdkComponentRenderer: ISdkComponentRenderer | null = null;\r\n private get sdkComponentRenderer(): ISdkComponentRenderer {\r\n if(!this._sdkComponentRenderer) {\r\n this._sdkComponentRenderer = this.services.sdkComponentFactory.createComponentRenderer(this.props.componentId);\r\n }\r\n return this._sdkComponentRenderer;\r\n }\r\n\r\n private _disposeSdkComponent() {\r\n this.sdkComponentRenderer.dispose();\r\n }\r\n\r\n private _renderSdkComponent() {\r\n\r\n //first we destroy the old component if there is one.\r\n this._disposeSdkComponent();\r\n\r\n if(!this._elementRef) {\r\n return;\r\n }\r\n\r\n this.sdkComponentRenderer.render(this._elementRef, this.props.sdkProps);\r\n }\r\n\r\n componentDidUpdate(prevProps: SdkComponentProps, prevState: any, snapshot: any) {\r\n if(JSON.stringify(prevProps?.sdkProps) !== JSON.stringify(this.props.sdkProps)) {\r\n this._renderSdkComponent();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n super.componentWillUnmount();\r\n this._disposeSdkComponent();\r\n }\r\n\r\n render() {\r\n let Box: AnyStyledComponent | React.ComponentType = DefaultBox;\r\n if(this.props.box) {\r\n Box = this.props.box;\r\n }\r\n return (\r\n this._passOnClick(e)}>\r\n \r\n );\r\n }\r\n\r\n private _passOnClick(e: React.MouseEvent) {\r\n if(this.props.onClick)\r\n this.props.onClick(e);\r\n }\r\n}\r\n\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../../components/base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\nimport {MAIN_SCREEN} from '../../themes/css-global-classes';\r\nimport {CyClass} from \"../../../common/cy-classes\";\r\n\r\n@observer\r\nexport class MainScreenComponent extends OrbitComponent<{}> {\r\n\r\n render() {\r\n //TODO - main-screen class should be removed once we convert all the components to styled-components\r\n\r\n return (\r\n
\r\n {this.props.children}\r\n
\r\n );\r\n }\r\n}\r\n\r\n","import {grayColors} from \"../../architecture/gray-colors\";\r\n\r\nexport const baseColors = {\r\n base01: \"#d62a8c\",\r\n base01Contrast: \"#ffffff\",\r\n base01Dark: \"#bc257b\",\r\n base01Light: \"#da3f98\",\r\n\r\n base02: \"#310a53\",\r\n base02Contrast: \"#ffffff\",\r\n base02Dark: \"#462365\",\r\n base02Light: \"#6d5c80\",\r\n\r\n base03: \"#ff014f\",\r\n base03Contrast: \"#ffffff\",\r\n base03Dark: \"#e00146\",\r\n base03Light: \"#ff1a61\",\r\n\r\n\r\n base04: \"#d5ec37\",\r\n base04Contrast: \"#180529\",\r\n base04Dark: \"#7aec37\",\r\n base04Light: \"#ffff00\",\r\n\r\n ...grayColors\r\n}","export default {\r\n \"iso3\": \"eng\",\r\n \"iso2\": \"en\",\r\n \"text\": {\r\n \"100200\": \"We're sorry, this game seems to be restricted in your area.\",\r\n \"CURRENT_LANGUAGE\": \"English\",\r\n \"CIP8_TITLE\": \"888CASINO GAMES\",\r\n \"Login\": \"LOG IN\",\r\n \"WITHDRAW\": \"WITHDRAW\",\r\n \"CASHIER\": \"CASHIER\",\r\n \"Search\": \"Search your game...\",\r\n \"REWARDS\": \"Rewards\",\r\n \"HOME\": \"Home\",\r\n \"888_COM\": \"888.com\",\r\n \"888_POKER\": \"poker\",\r\n \"888_CASINO\": \"casino\",\r\n \"888_BINGO\": \"bingo\",\r\n \"888_SPORT\": \"sport\",\r\n \"SIGN_UP\": \"SIGN UP\",\r\n \"GET_APP\": \"GET THE APP\",\r\n \"DEPOSIT_SIDE_MENU\": \"Deposit\",\r\n \"MY_ACCOUNT\": \"MY ACCOUNT\",\r\n \"BALANCE\": \"Your Balance\",\r\n \"MINI_ORBIT_BALANCE\": \"Balance:\",\r\n \"LOGOUT\": \"Log out\",\r\n \"GREETING_MORNING\": \"Good Morning\",\r\n \"GREETING_AFTERNOON\": \"Good Afternoon\",\r\n \"GREETING_EVENING\": \"Good Evening\",\r\n \"GREETING_NIGHT\": \"Good Night\",\r\n \"GREETING_DEFAULT\": \"Hello\",\r\n \"MRS_TITLE\": \"Mrs.\",\r\n \"MR_TITLE\": \"Mr.\",\r\n \"SLOTS\": \"Slots\",\r\n \"LOBBY\": \"Lobby\",\r\n \"SLOTS_JACKPOTS\": \"Slots & Jackpots\",\r\n \"CARD_TABLE_GAMES\": \"Card & Table Games\",\r\n \"ALL_SDM_GAMES\": \"All SDM Games\",\r\n \"CASINO_GAMES\": \"Casino Games\",\r\n \"LIVE_CASINO\": \"Live Casino\",\r\n \"888_EXCLUSIVE_GAMES\": \"888 Exclusive Games\",\r\n \"PROMOTIONS\": \"Promotions\",\r\n \"888SPORT\": \"888sport\",\r\n \"VIP_CLUB\": \"VIP Club\",\r\n \"PWA_INSTALL\": \"Install App\",\r\n \"PWA_ADD_TO_HOME_SCREEN\": \"Add to Home Screen\",\r\n \"PWA_TAP\": \"Tap\",\r\n \"PWA_QUICK_LAUNCH\": \"Quick launch {BRAND}\",\r\n \"GETTING_STARTED\": \"Getting Started\",\r\n \"BANKING\": \"Banking\",\r\n \"VIP\": \"VIP\",\r\n \"BLOG\": \"Blog\",\r\n \"TODAY_WINNERS\": \"Today’s Winners\",\r\n \"SUPPORT_ID_MESSAGE\": \"Support ID\",\r\n \"DEPOSIT\": \"DEPOSIT\",\r\n \"CHOOSE_LANG\": \"Choose your language:\",\r\n \"CHOOSE_COUNTRY\": \"Choose your country:\",\r\n \"SIGN_IN_PLAY\": \"SIGN IN & PLAY\",\r\n \"NEW\": \"New\",\r\n \"JACKPOT\": \"Jackpot\",\r\n \"EXCLUSIVE\": \"888 Exclusive\",\r\n \"1-25_LINES\": \"1-25 Lines\",\r\n \"25+_LINES\": \"25+ Lines\",\r\n \"INFO_TITLE_ARENA_888_EXCLUSIVE_GAMES\": \"Exclusive Games\",\r\n \"INFO_TEXT_ARENA_888_EXCLUSIVE_GAMES\": \"888casino is home to an exclusive selection of online casino games. Play the hottest online slots from Section8, and enjoy fantastic casino games like online Roulette, online Blackjack and Video Poker. Our exclusive casino games also include Baccarat, Keno, and instant win games. Let’s get ready for some casino fun!\",\r\n \"INFO_TITLE_ARENA_SLOTS\": \"Online Slots\",\r\n \"INFO_TITLE_ARENA_VIDEO_SLOTS\": \"Video Slots\",\r\n \"INFO_TEXT_ARENA_SLOTS\": \"Choose from over 1000 of the best quality slot games, anywhere online. Enjoy a wide variety of features such as Bonus Games, Expanding Wilds, Free Spins and Huge Jackpots. Hunt for treasure in ancient Egypt, uncover the Leprechaun’s coveted pot o’ gold or spin for big wins on classic fruit machines. Whatever tickles your fancy, we’ve got it!\",\r\n \"INFO_TITLE_ARENA_CASINO\": \"Casino Games\",\r\n \"INFO_TEXT_ARENA_CASINO\": \"The cards are shuffled, the wheel is spinning and your seat is waiting. Play only the very best card and table games online. Choose from a variety of Roulette games including European, American, Low, High and Super Stakes. Prefer Blackjack? Play multiple hands at the same time. From Texas Hold’em to Caribbean, be sure to find your poker preference!\",\r\n \"INFO_TITLE_ARENA_ROULETTE\": \"Roulette Online\",\r\n \"INFO_TEXT_ARENA_ROULETTE\": \"Try to hit your lucky numbers at one of 888casino’s premier online roulette tables. Choose from our wide variety of top roulette game styles including European, American and French. Whether you’re a High Roller or prefer low stakes, there’s a roulette game for you. There’s nothing like the thrill of waiting for that ball to land when you play roulette!\",\r\n \"INFO_TITLE_ARENA_NEW_GAMES\": \"New Games\",\r\n \"INFO_TEXT_ARENA_NEW_GAMES\": \" \",\r\n \"INFO_TITLE_ARENA_BLACKJACK\": \"Blackjack Online\",\r\n \"INFO_TEXT_ARENA_BLACKJACK\": \"The cards are shuffled and your seat is waiting for some of the best online blackjack games you’ll find! Play blackjack at 888casino on your own terms with Super Stakes, Side Bets and more. One hand of blackjack not enough for you? Play our Multihand Blackjack game for three chances to hit 21, at the same time!\",\r\n \"INFO_TITLE_ARENA_VIDEO_POKER\": \"Video Poker Online\",\r\n \"INFO_TEXT_ARENA_VIDEO_POKER\": \"If you think you’re a real poker pro then you’ve come to the right casino! Go for that elusive Royal Flush in our various types of video poker games. If you’re into 5-card draw or prefer the ever-popular Texas Hold’em then you’re sure to find your new favourite online video poker game at 888casino.\",\r\n \"INFO_TITLE_ARENA_SCRATCH_CARDS\": \"Scratch Cards Online\",\r\n \"INFO_TEXT_ARENA_SCRATCH_CARDS\": \"There’s nothing like a quick win on one of 888casino’s exciting scratch card games. Ideal for some strategy-free fun, pick an online scratch card in the theme of your choice. Reveal your Irish riches or discover pharaoh’s fortune, it’s up to you. Simply choose the amount you want to bet and see if you’re a scratch card winner!\",\r\n \"INFO_TITLE_ARENA_JACKPOTS\": \"Jackpots\",\r\n \"INFO_TEXT_ARENA_JACKPOTS\": \"Jackpot games are bubbling over with unbelievably huge cash prizes. Play with our slots games and you’re in lots of joy and fun. These include daily jackpots, progressive jackpots, and pooled jackpots, you are one click away from the absolute perfect play; enjoy jackpot slots games like Millionaire Genie, Mermaid’s Millions, or Noche De Los Muertos. Click it to pick it. Spin it to try your luck to win it. The fun starts NOW!\",\r\n \"INFO_TITLE_ARENA_ALL_GAMES\": \"All Games\",\r\n \"VIRTUAL_SPORTS\": \"Virtual Sports\",\r\n \"INFO_TITLE_ARENA_VIRTUAL_SPORTS\": \"Virtual Sports\",\r\n \"INFO_TEXT_ARENA_VIRTUAL_SPORTS\": \"Virtual Sports brings you a wide variety of computer-generated sports games that you’ll be able to bet on. So, whether football's your thing, or darts, or anything else, you can be sure to find what you're looking for. Enter the world of virtual betting today.\",\r\n \"PROMO_ELIGIBLE_GAMES\": \"Promo Eligible Games\",\r\n \"NETENT_SLOTS\": \"NETENT SLOTS\",\r\n \"BONUS\": \"Bonus\",\r\n \"FREE_SPINS\": \"Free Spins\",\r\n \"CLEAR_ALL\": \"Clear All\",\r\n \"FILTER\": \"Filter\",\r\n \"APPLY\": \"Apply\",\r\n \"ROULETTE\": \"Roulette\",\r\n \"ELITE_LOUNGE\": \"Elite Lounge\",\r\n \"BLACKJACK\": \"Blackjack\",\r\n \"PROGRESSIVE_SLOTS\": \"Progressive Slots\",\r\n \"BACCARAT\": \"Baccarat\",\r\n \"POKER\": \"Poker\",\r\n \"KENO\": \"Keno\",\r\n \"HIGH_LIMIT\": \"High Limit\",\r\n \"LANGUAGES\": \"Languages\",\r\n \"HELP\": \"Help\",\r\n \"LIVE_CHAT\": \"Live Chat\",\r\n \"DEMO\": \"Demo\",\r\n \"PLAY\": \"Play\",\r\n \"NOT_NOW\": \"Not now\",\r\n \"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 \"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\": \"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 \"HOURLY_CAPTAIN8_JACKPOT\": \"Hourly 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 Ontario\",\r\n \"STATE_POPUP_OUTSIDE_TEXT\": \"I'm located outside of Ontario\",\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\": \"YOU MAY ALSO 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\": \"Can’t decide what to play?\",\r\n \"IDLE_RECOMMENDATIONS_SECOND_TITLE\": \"You may like:\",\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\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-modal-x-button' |\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-confirmation-dialog-main-text' |\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-spain-game-limit-more-options-block' |\r\n 'cy-spain-game-limit-confirmation-value' |\r\n 'cy-spain-game-limit-continue-play-button' |\r\n 'cy-spain-game-limit-duration-validation-error' |\r\n 'cy-spain-game-limit-loss-limit-validation-error' |\r\n 'cy-game-summary-message-dialog' |\r\n 'cy-spain-regulation-strip-total-bets-label' |\r\n 'cy-spain-regulation-strip-total-bets-value' |\r\n 'cy-spain-regulation-strip-total-wins-label' |\r\n 'cy-spain-regulation-strip-total-wins-value' |\r\n 'cy-spain-regulation-strip-player-balance-label' |\r\n 'cy-spain-regulation-strip-player-balance-value' |\r\n 'cy-spain-regulation-strip-session-balance-label' |\r\n 'cy-spain-regulation-strip-session-balance-value' |\r\n 'cy-header-regulation-data'|\r\n 'cy-self-exclusion-link' |\r\n 'cy-safe-to-play' |\r\n 'cy-responsible-gaming-button' |\r\n 'cy-balance-amount-mobile' |\r\n 'cy-balance-amount-pc' |\r\n 'cy-balance-container-mobile' |\r\n 'cy-bonus-and-cash-balance' |\r\n 'cy-cache-balance' |\r\n 'cy-bonus-balance' |\r\n 'cy-login-button-text' |\r\n 'cy-register-button' |\r\n 'cy-get-app-button' |\r\n 'cy-last-login-label' |\r\n 'cy-main-nav' |\r\n 'cy-navbar-mobile-wrapper' |\r\n 'cy-session-timer' |\r\n 'cy-last-login-value' |\r\n 'cy-open-game-intermediate-page' |\r\n 'cy-italy-regulation-stripe-game-session-id' |\r\n 'cy-italy-regulation-stripe-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-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-regulation-strip-net-position-value' |\r\n 'cy-game-session-timer-component-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-ontario-safe-to-play-button' |\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\r\n\r\n\r\nexport function CyClass(className: CyCssClass): string {\r\n return className.toString();\r\n}\r\n\r\nexport function CySelector(className: CyCssClass): string {\r\n return '.' + className.toString();\r\n}\r\n\r\nexport function CySelectors(...classNames: CyCssClass[]): string {\r\n return classNames.map(clsName => '.' + clsName).join(' ');\r\n}\r\n","import 'intersection-observer';\r\nimport 'url-search-params-polyfill'; // Edge 41 and 42 don't have this\r\nimport smoothscroll from 'smoothscroll-polyfill'; // this is for making window.scrollTo work in Edge\r\nsmoothscroll.polyfill();","import {CasinoStartupConfigurations} from '../config-interfaces/casino-startup.configurations';\r\nimport {ApplicationStartupConfigurations} from '../config-interfaces/application-startup.configurations';\r\nimport {B2CStartupConfigurations} from '../config-interfaces/b2c-startup.configurations';\r\nimport {LauncherOverridesReader} from '../launcher-overrides-reader/launcher-overrides-reader';\r\nimport {LauncherOverrides} from '../config-interfaces/launcher-overrides';\r\nimport {IWindowService} from '../../services/window/window.service.interface';\r\nimport {IHttpService} from '../../services/http/http.service.interface';\r\nimport {ILoggerService} from '../../services/logger/logger.service.interface';\r\nimport {isAbsolutUrl, joinUrlParts} from '../../../utils/url-utils';\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\n\r\n\r\n\r\n\r\n\r\nexport class ApplicationStartupConfigurationsReader {\r\n constructor(private _defaultOrbitConfigurations: any,\r\n private _window: IWindowService,\r\n private _launcherOverridesReader: LauncherOverridesReader,\r\n private _http: IHttpService,\r\n private _logger: ILoggerService) {\r\n\r\n\r\n }\r\n\r\n private _launcherOverrides: LauncherOverrides | null;\r\n private _b2cConfigurations: B2CStartupConfigurations;\r\n\r\n async readApplicationConfigurations(): Promise {\r\n this._launcherOverrides = this._launcherOverridesReader.getOverrides();\r\n this._b2cConfigurations = this._getB2CConfigurations();\r\n let casinoConfigurations = await this._getCasinoConfigurations();\r\n\r\n\r\n const configs = {\r\n configurationPath: this._getConfigPath(casinoConfigurations),\r\n orbitServer: casinoConfigurations.orbit.extraProperties.paths.server,\r\n brandName: casinoConfigurations.orbit.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 };\r\n\r\n return mockApplicationStartupConfigs(configs);\r\n }\r\n\r\n private _getConfigPath(casinoConfigurations: CasinoStartupConfigurations): string {\r\n let configurationPathOverride = this._getOrbitConfigPathOverride(casinoConfigurations);\r\n if(configurationPathOverride) {\r\n return configurationPathOverride;\r\n }\r\n\r\n let server = casinoConfigurations.orbit.extraProperties.paths.server;\r\n if(!server.endsWith('/')) {\r\n server += '/';\r\n }\r\n\r\n return server + 'configurations/' + casinoConfigurations.orbit.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 = await this._applyOrbitExternalConfigsOverrides(casinoConfigurations);\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 _getOrbitConfigPathOverride(casinoConfigurations: CasinoStartupConfigurations): string | undefined {\r\n let configsOverrideUrl = casinoConfigurations?.orbit?.extraProperties?.paths?.configurationPath || this._launcherOverrides?.orbit?.configurationPath;\r\n if(!configsOverrideUrl) {\r\n return configsOverrideUrl;\r\n }\r\n\r\n if(isAbsolutUrl(configsOverrideUrl)) {\r\n return configsOverrideUrl;\r\n }\r\n\r\n return joinUrlParts(casinoConfigurations.orbit.extraProperties.paths.server, configsOverrideUrl);\r\n }\r\n\r\n private async _applyOrbitExternalConfigsOverrides(casinoConfigurations: CasinoStartupConfigurations): Promise {\r\n let configurationPathOverride = this._getOrbitConfigPathOverride(casinoConfigurations);\r\n\r\n if(configurationPathOverride) {\r\n let externalConfigsUrl = joinUrlParts(configurationPathOverride,'config/config.json');\r\n\r\n try {\r\n let newConfigs = await this._http.get(externalConfigsUrl);\r\n if(newConfigs) {\r\n casinoConfigurations.orbit.config = newConfigs;\r\n } else {\r\n this._logger.warning(`Request to '${externalConfigsUrl}' returned no configs! No configs replacement was performed!`);\r\n }\r\n\r\n } catch (err) {\r\n this._logger.error(`Failed to load launcher configurations override from: ${externalConfigsUrl}; Error details: ${JSON.stringify(err)}`);\r\n throw err;\r\n }\r\n\r\n let externalLangConfigsUrl = joinUrlParts(configurationPathOverride, `languages/${this._b2cConfigurations.language.iso3}.json`);\r\n\r\n try {\r\n let newLang = await this._http.get(externalLangConfigsUrl);\r\n if(newLang) {\r\n casinoConfigurations.orbit.lang = newLang;\r\n } else {\r\n this._logger.warning(`Request to '${externalLangConfigsUrl}' returned no languages! No language replacement was performed!`);\r\n }\r\n\r\n } catch (err) {\r\n this._logger.error(`Failed to read orbit external language configuration from ${externalLangConfigsUrl}; Error details: ${JSON.stringify(err)}`);\r\n }\r\n\r\n }\r\n return casinoConfigurations;\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\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}","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 };\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.orbit.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}\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.warning(`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","import {ICurrencyService} from './currency.service.interface';\r\nimport {ServiceBase} from '../ServiceBase';\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","import {AIRecommendationsAnalyticsData, ISendElasticEventOptions , IAnalyticsService} from './analytics.service.interface';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IElasticEventData, IStructuredLogger} from '../../../common/interfaces/structured-logging-service-interface';\r\nimport {Check} from \"@sparkware/app-utils\";\r\n\r\nexport class AnalyticsService extends ServiceBase implements IAnalyticsService {\r\n\r\n sendAnalytics(\r\n category: string,\r\n action: string | undefined = undefined,\r\n label: string | undefined = undefined,\r\n value: string | undefined = undefined,\r\n omitStructuredLogger?: boolean\r\n ) {\r\n this.services.sdk.sendAnalytics(category, action, label, value, omitStructuredLogger);\r\n }\r\n\r\n sendAIRecommendations(data: AIRecommendationsAnalyticsData): void {\r\n this.sendAnalytics(data.category, JSON.stringify(data.gameTypes), data.engine);\r\n }\r\n\r\n sendTechnicalEvent(action: string, label?: string, value?: any): void {\r\n this.sendAnalytics('[Technical-event]', action, label, value);\r\n }\r\n\r\n sendElasticInfoEvent(options: ISendElasticEventOptions, sendToDWH?: boolean) {\r\n const logger: IStructuredLogger = this.services.sdk.structuredLoggingService\r\n .getLogger()\r\n .addCategory(options.category)\r\n .addAction(options.action)\r\n .addLabel(options.label)\r\n .addValue(options.value)\r\n .addCustomData(options.customData);\r\n\r\n if (!Check.isNullOrUndefined(options.appID)) {\r\n logger.setAppID(options.appID);\r\n }\r\n\r\n if (sendToDWH) {\r\n logger.setEventType(options.eventType,'Log', 'Analytics');\r\n }\r\n else {\r\n logger.setEventType(options.eventType, 'Log');\r\n }\r\n\r\n logger.info();\r\n }\r\n\r\n getLogger(eventData?: IElasticEventData): IStructuredLogger {\r\n return this.services.sdk.structuredLoggingService.getLogger(eventData);\r\n }\r\n\r\n getGoogleClientID(): string {\r\n return this.services.sdk.getGoogleClientID();\r\n }\r\n}\r\n","import {ILobbyGameInfoPreviewService} from './lobby-game-info-preview.service.interface';\r\nimport {action, observable} from 'mobx';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {GameInfo} from '../games/game-info';\r\n\r\nconst TIME_TO_HANDLE_SET_GAME_PREVIEW = 800;\r\nconst TIME_TO_HANDLE_CLEAR_GAME_PREVIEW = 5000;\r\n\r\n\r\nexport class LobbyGameInfoPreviewService extends ServiceBase implements ILobbyGameInfoPreviewService {\r\n\r\n constructor(serviceFactory: IServiceFactoryExtended) {\r\n super(serviceFactory);\r\n this.reaction(() => this.services.device.isMobile,\r\n () => this._resetGamePreview());\r\n\r\n this.reaction(() => this.services.routing.currentRoute,\r\n () => this._resetGamePreview());\r\n }\r\n\r\n\r\n @observable.ref currentPreviewedGame: GameInfo = null;\r\n\r\n @action.bound\r\n private _setCurrentPreviewedGame(gameType: number | null): void {\r\n if (gameType) {\r\n this.currentPreviewedGame = this.services.games.gamesMap[gameType];\r\n } else {\r\n this.currentPreviewedGame = null;\r\n }\r\n\r\n }\r\n\r\n\r\n private _setGamePreviewTimeout;\r\n private _clearGamePreviewTimeout;\r\n\r\n\r\n enableGamePreview(): void {\r\n this._allowPreview = true;\r\n }\r\n\r\n disableGamePreview(): void {\r\n this._allowPreview = false;\r\n }\r\n\r\n private _allowPreview = false;\r\n get allowGamePreview(): boolean {\r\n return this._allowPreview && !this.services.device.isMobile;\r\n }\r\n\r\n private _currentGamePreviewPinned = false;\r\n\r\n pinCurrentGamePreview() {\r\n this._currentGamePreviewPinned = true;\r\n clearTimeout(this._clearGamePreviewTimeout);\r\n }\r\n\r\n unPinCurrentGamePreview() {\r\n this._currentGamePreviewPinned = false;\r\n // basically when unPinCurrentGamePreview is called it means user mouse leave from the game preview\r\n this.clearGamePreview();\r\n }\r\n\r\n\r\n public setGamePreview(gameType: number): void {\r\n if(!this.allowGamePreview) {\r\n return;\r\n }\r\n clearTimeout(this._clearGamePreviewTimeout);\r\n clearTimeout(this._setGamePreviewTimeout);\r\n this._setGamePreviewTimeout = setTimeout(() => {\r\n this._setCurrentPreviewedGame(gameType);\r\n }, TIME_TO_HANDLE_SET_GAME_PREVIEW);\r\n }\r\n\r\n public clearGamePreview(): void {\r\n if(!this.allowGamePreview) {\r\n return;\r\n }\r\n\r\n clearTimeout(this._setGamePreviewTimeout);\r\n clearTimeout(this._clearGamePreviewTimeout);\r\n this._clearGamePreviewTimeout = setTimeout(() => {\r\n !this._currentGamePreviewPinned && this._setCurrentPreviewedGame(null);\r\n }, TIME_TO_HANDLE_CLEAR_GAME_PREVIEW);\r\n }\r\n\r\n private _resetGamePreview() {\r\n clearTimeout(this._setGamePreviewTimeout);\r\n clearTimeout(this._clearGamePreviewTimeout);\r\n this._setCurrentPreviewedGame(null);\r\n }\r\n\r\n\r\n}\r\n","import { action, observable } from 'mobx';\r\nimport { GameInfo } from '../games/game-info';\r\nimport { OnGameCloseParams, OnGameOpenParams } from '../sdk/sdk-events';\r\nimport { ServiceBase } from '../ServiceBase';\r\nimport { IRunningGameService } from './running-game.service.interface';\r\n\r\nexport class RunningGameService extends ServiceBase implements IRunningGameService {\r\n\r\n get isGameRunning(): boolean {\r\n return this.services.sdk.isGameRunning();\r\n }\r\n\r\n continuePlayingCurrentGame(): void {\r\n return this.services.sdk.continuePlayingCurrentGame();\r\n }\r\n\r\n closeRunningGame(): void {\r\n return this.services.sdk.closeRunningGame();\r\n }\r\n\r\n\r\n @observable.ref\r\n lastPlayedRealGame: GameInfo = null;\r\n\r\n\r\n @observable.ref\r\n correlatedGamesForLastPlayedRealGame: number[] = [];\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(gameTypes: number[]) {\r\n this.correlatedGamesForLastPlayedRealGame = gameTypes;\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.map(gi => gi.gameType));\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 font-family: ${props => props.theme.font.family.body};\r\n line-height: normal;\r\n text-transform: capitalize;\r\n font-size: 1.4em;\r\n letter-spacing: 0.98px;\r\n`;\r\n\r\n\r\nconst PcBox = styled(DefaultBox)`\r\n text-align: center;\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n text-align: left;\r\n`;\r\n\r\nexport const DialogTitleDefaultBox = styledByDevice(PcBox, MobileBox);","import {DialogTitleDefaultBox} from './dialog-title.default.box';\r\n\r\nexport const DialogTitleBox = DialogTitleDefaultBox;","import {DialogCloseButtonDefaultBox} from './dialog-close-button.default.box';\r\n\r\nexport const DialogCloseButtonBox = DialogCloseButtonDefaultBox;","import styled from 'styled-components';\r\nimport {XCloseButtonBox} from \"../../../../basic-ui-components/x-close-button/x-close-button.box\";\r\nexport const DialogCloseButtonDefaultBox = styled(XCloseButtonBox)`\r\n position: absolute;\r\n right: 1.5rem;\r\n width: ${props => props.theme.components.modalDialog.closeButtonSize};\r\n height: ${props => props.theme.components.modalDialog.closeButtonSize};\r\n margin: 0;\r\n\r\n &:hover {\r\n opacity: 0.5;\r\n }\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\r\n &.${MOBILE_CENTERED_HEADER} .dialog-header-title {\r\n text-align: center;\r\n margin: 0;\r\n padding: 0 3rem;\r\n }\r\n`;","import styled from 'styled-components';\r\nimport {DialogHeaderDefaultBox} from './dialog-header.default.box';\r\n\r\nexport const DialogHeaderCipBox = styled(DialogHeaderDefaultBox)`\r\n position: relative;\r\n\r\n &::after {\r\n content: \"\";\r\n position: absolute;\r\n left: 0;\r\n bottom: 0;\r\n width: 100%;\r\n height: 1px;\r\n background: linear-gradient(90deg, transparent, white, transparent);\r\n }\r\n`;","import {styledByTheme} from '../../../../themes/architecture/styled-by-theme';\r\nimport {DialogHeaderDefaultBox} from './dialog-header.default.box';\r\nimport {DialogHeaderCipBox} from './dialog-header.cip.box';\r\n\r\nexport const DialogHeaderBox = styledByTheme(DialogHeaderDefaultBox)\r\n .forCip(DialogHeaderCipBox)\r\n .forWsopCip(DialogHeaderCipBox).apply();","import 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\n\r\nexport interface ModalDialogHeaderComponentProps {\r\n title?: string;\r\n hideCloseButton?: boolean;\r\n onCloseButtonClick?: () => void;\r\n className?: string;\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 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._renderCloseButton()}\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 //for miniOrbit we want total height of header to be headerHeight\r\n //but in ModalDialogComponent we already added top space of headerRegulationDataHeight\r\n //so remaining space should be: headerHeight - headerRegulationDataHeight\r\n height = this.services.header.headerHeight - this.services.header.headerRegulationDataHeight;\r\n }\r\n\r\n return (\r\n \r\n {this._renderContent()}\r\n \r\n )\r\n }\r\n\r\n}","import React from 'react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {GameInfo} from '../../../../services/games/game-info';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {observer} from 'mobx-react';\r\nimport {IModalDialogHandler} from '../../../../services/dialog/dialog.service.interface';\r\nimport {GameInfoButtonBox} from './boxes/game-info-button/game-info-button.box';\r\nimport {DialogTitleBox} from '../../../modal-dialog/boxes/title/dialog-title.box';\r\nimport {DialogCloseButtonBox} from '../../../modal-dialog/boxes/close-button/dialog-close-button.box';\r\nimport {Image} from '../../../raw-components/image/image';\r\nimport {DialogHeaderComponent} from '../../../modal-dialog/parts/header/dialog-header.component';\r\n\r\nexport interface MobileGamePreviewTitleComponentProps {\r\n gameInfo: GameInfo;\r\n arenaName?: string;\r\n dialogHandler: IModalDialogHandler;\r\n}\r\n\r\n@observer\r\nexport class TitleComponent extends OrbitComponent {\r\n\r\n _openGameInfo = () => {\r\n const gameInfo = this.props.gameInfo;\r\n this._closeInfoMobile();\r\n\r\n if (this.props.arenaName) {\r\n //TODO: Do we need it?\r\n this.services.analytics.sendAnalytics(this.props.arenaName, \"Open_Game_Info\", `SEO_${gameInfo.gameType}`);\r\n }\r\n\r\n this.services.location.push(gameInfo.infoPageURL);\r\n };\r\n\r\n _closeInfoMobile = () => {\r\n this.props.dialogHandler?.close();\r\n };\r\n\r\n private _renderOpenInfoButton(gameInfo: GameInfo) {\r\n\r\n if (Check.isEmpty(gameInfo.infoPageURL) || this.services.miniOrbit.isEnabled) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n render() {\r\n let gameInfo = this.props.gameInfo;\r\n return (\r\n \r\n {gameInfo.title}\r\n {this._renderOpenInfoButton(gameInfo)}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n\r\n","import styled from 'styled-components';\r\nimport {styledByDevice} from '../../../../../../../themes/architecture/styled-by-device';\r\nimport { Image } from '../../../../../../raw-components/image/image';\r\n\r\n\r\n//.info-image-wrapper + info-image\r\n\r\nconst DefaultBox = styled(Image)`\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n margin-bottom: 1.1rem;\r\n`;\r\n\r\nconst PcBox = styled(DefaultBox)`\r\n width: 375px;\r\n height: 121px;\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n width: 285px;\r\n height: 92px;\r\n }\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n opacity: 0.7;\r\n`;\r\n\r\nexport const StripeImageDefaultBox = styledByDevice(PcBox, MobileBox);","import {StripeImageDefaultBox} from './stripe-image.default.box';\r\n\r\nexport const StripeImageBox = StripeImageDefaultBox;","import React from 'react';\r\nimport {OrbitComponent} from '../../../../base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\nimport {GameInfo} from '../../../../../services/games/game-info';\r\nimport {StripeImageBox} from './boxes/stripe-image/stripe-image.box';\r\n\r\nexport interface GameImagePreviewComponentProps {\r\n gameInfo: GameInfo;\r\n}\r\n\r\n@observer\r\nexport class GameStripeImageComponent extends OrbitComponent {\r\n\r\n render() {\r\n let gameInfo = this.props.gameInfo;\r\n let imageSrc = gameInfo.stripImage ? gameInfo.stripImage : gameInfo.stripeImageFallback;\r\n // I noticed that sometimes react doesn't re render this component even if a different gameInfo is provided.\r\n // Setting key={gameInfo.gameType} seems to overcome this issue\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\n","import {TrailerDefaultBox} from './trailer.default.box';\r\n\r\nexport const TrailerBox = TrailerDefaultBox;","import styled from 'styled-components';\r\n\r\n//.info-video-wrapper + info-movie\r\nexport const TrailerDefaultBox = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n margin-bottom: 1.1rem;\r\n`;","import React from 'react';\r\nimport {OrbitComponent} from '../../../../base-components/orbit-component/orbit-component';\r\nimport {GameStripeImageComponent} from '../stripe-image/game-stripe-image.component';\r\nimport {observer} from 'mobx-react';\r\nimport {GameInfo} from '../../../../../services/games/game-info';\r\nimport {TrailerBox} from './boxes/trailer/trailer.box';\r\n\r\nexport interface GameTrailerPreviewComponentProps {\r\n gameInfo: GameInfo;\r\n}\r\n@observer\r\nexport class GameTrailerComponent extends OrbitComponent {\r\n\r\n render() {\r\n let gameInfo = this.props.gameInfo;\r\n\r\n //we used here key={gameInfo.gameType} to make react re render the component when a different gameInfo is provided\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import * as React from 'react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {GameStripeImageComponent} from './stripe-image/game-stripe-image.component';\r\nimport {GameTrailerComponent} from './trailer/game-trailer.component';\r\nimport {observer} from 'mobx-react';\r\nimport {GameInfo} from '../../../../services/games/game-info';\r\n\r\nexport interface GameImageContainerComponentProps {\r\n gameInfo: GameInfo;\r\n}\r\n\r\n@observer\r\nexport class TrailerOrStripeImageComponent extends OrbitComponent {\r\n render() {\r\n if (this.props.gameInfo.hasVideoTrailer) {\r\n return (\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n );\r\n }\r\n }\r\n}\r\n","import styled from 'styled-components';\r\n\r\n//check-div\r\nexport const CellValueBoolDefaultBox = styled.div`\r\n width: 13px;\r\n height: 13px;\r\n float: right;\r\n background-image: url(\"${props => props.theme.images.checkMark.toString()}\");\r\n background-repeat: no-repeat;\r\n`;","import {CellValueBoolDefaultBox} from './cell-value-bool.default.box';\r\n\r\nexport const CellValueBoolBox = CellValueBoolDefaultBox;","import styled from 'styled-components';\r\n\r\n//game-info-text\r\nexport const CellValueTextDefaultBox = styled.span`\r\n color: ${props => props.theme.colors.brandSecondary};\r\n font-family: ${props => props.theme.font.family.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 font-family: ${props => props.theme.font.family.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 font-family: ${props => props.theme.font.family.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 font-weight: 600;\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 font-family: ${props => props.theme.font.family.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 font-family: ${props => props.theme.font.family.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 font-family: ${({theme}) => theme.font.family.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 font-family: ${props => props.theme.font.family.bold};\r\n color: ${props => props.theme.colors.textLight};\r\n text-transform: uppercase;\r\n font-size: 1.6rem;\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-position: -155px -861px;\r\n height: 40px;\r\n &:before{\r\n content: none;\r\n }\r\n`;","import {SectionTitleDefaultBox} from './section-title.default.box';\r\nimport {styledByTheme} from '../../../../../themes/architecture/styled-by-theme';\r\nimport {SectionTitleCasino777Box} from './section-title.casino777.box';\r\n\r\nexport const SectionTitleBox = styledByTheme(SectionTitleDefaultBox).forCasino777(SectionTitleCasino777Box).apply();","import React from 'react';\r\nimport {OrbitComponent} from '../../../../base-components/orbit-component/orbit-component';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {GameDescriptionTextBox} from './boxes/game-description-text/game-description-text.box';\r\nimport {SectionTitleBox} from '../../boxes/section-title/section-title.box';\r\n\r\nexport interface GameAboutTextComponentProps {\r\n aboutText: string\r\n}\r\n\r\nexport class GameAboutComponent extends OrbitComponent {\r\n render() {\r\n if(Check.isEmpty(this.props.aboutText)) {\r\n return null;\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {this.services.translation.translate('ABOUT')}\r\n \r\n \r\n {this.props.aboutText}\r\n \r\n \r\n );\r\n }\r\n}\r\n","import {GameJackpotPreviewDefaultBox} from './game-jackpot-preview.default.box';\r\n\r\nexport const GameJackpotPreviewBox = GameJackpotPreviewDefaultBox;","import styled from 'styled-components';\r\n\r\n//game-info-jackpot game-preview\r\nexport const GameJackpotPreviewDefaultBox = styled.div`\r\n width: 100%;\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const GameJackpotDefaultBox = styled.div`\r\n width: 100%;\r\n color: ${props => props.theme.colors.moneyColor};\r\n font-weight: 600;\r\n`","import styled from \"styled-components\";\r\nimport {GameJackpotDefaultBox} from \"./game-jackpot.default.box\";\r\n\r\nexport const GameJackpotSIBox = styled(GameJackpotDefaultBox)`\r\n border-left: solid 5px ${props => props.theme.colors.brandPrimary};\r\n border-top-left-radius: 2px;\r\n border-bottom-left-radius: 2px;\r\n padding-left: 3px;\r\n`","import {GameJackpotDefaultBox} from \"./game-jackpot.default.box\";\r\nimport {styledByTheme} from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {GameJackpotSIBox} from \"./game-jackpot.si.box\";\r\n\r\nexport const GameJackpotBox = styledByTheme(GameJackpotDefaultBox).forSI(GameJackpotSIBox).apply();","import styled from \"styled-components\";\r\n\r\nexport const GameJackpotValueDefaultBox = styled.div`\r\n \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.brandPrimary};\r\n color: ${props => props.theme.colors.brandPrimaryContrast};\r\n padding: 2px 0;\r\n`","import {GameJackpotValueDefaultBox} from \"./game-jackpot-value.default.box\";\r\nimport {styledByTheme} from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {GameJackpotValueSIBox} from \"./game-jackpot-value.si.box\";\r\n\r\nexport const GameJackpotValueBox = styledByTheme(GameJackpotValueDefaultBox).forSI(GameJackpotValueSIBox).apply();","import React from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {GameJackpotBox} from \"./boxes/root/game-jackpot.box\";\r\nimport {GameJackpotValueBox} from \"./boxes/value/game-jackpot-value.box\";\r\nimport {CyClass} from \"../../../common/cy-classes\";\r\nimport {observer} from \"mobx-react\";\r\n\r\n\r\nexport interface GameJackpotComponentProps {\r\n gameType: number;\r\n className?: string;\r\n}\r\n\r\n@observer\r\nexport class GameJackpotComponent extends OrbitComponent {\r\n render() {\r\n\r\n const jackpotValue = this.services.jackpots.getGameJackpot(this.props.gameType);\r\n if(!jackpotValue) {\r\n return null;\r\n }\r\n\r\n return (\r\n\r\n \r\n \r\n {this.services.currency.formatMoney(jackpotValue)}\r\n \r\n \r\n );\r\n }\r\n}\r\n","import styled from 'styled-components';\r\nimport {GameJackpotComponent} from \"../../../../../../game-jackpot/game-jackpot.component\";\r\n\r\n//game-info-amount game-info-text\r\nexport const JackpotAmountPreviewDefaultBox = styled(GameJackpotComponent)`\r\n font-family: ${props => props.theme.font.family.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\n\r\nexport interface OpenGameParameters {\r\n isRealMode: boolean;\r\n pageName?: string;\r\n listTitle?: string;\r\n listPosition?: number;\r\n AdminListID?: number;\r\n marketingParams?: MarketingParams;\r\n gameIndex?: number;\r\n aiEngine?: string;\r\n aiSortingType?: string;\r\n AIListTypeID?: number;\r\n openFromDrawer?:boolean;\r\n showIntermediatePage?: boolean;\r\n isCalledFromIntermediatePage?: boolean;\r\n animatedIconState?: GameIconAnimationState;\r\n freePlayParams?: IOpenFreePlayGameParams;\r\n skipFreePlaySuggestion?: boolean;\r\n}\r\n\r\nexport const GAMES_CATEGORIES = {\r\n SLOTS: 'slots',\r\n CARD_AND_TABLE: 'card-and-table',\r\n LIVE: 'live'\r\n};\r\n\r\n\r\nexport function gameInfoComparerByTitle(game1: GameInfo, game2: GameInfo): number {\r\n if(game1.title < game2.title) {\r\n return -1\r\n } else if(game1.title > game2.title) {\r\n return 1\r\n }\r\n\r\n return 0;\r\n}\r\n\r\n\r\nexport class GameInfo {\r\n constructor(private _rawGameData: any,\r\n private services: IServiceFactoryExtended,\r\n private _aboutText: string) {\r\n\r\n Object.defineProperty(this._rawGameData, 'allowSwitchGameMode', {\r\n get: () => this.allowSwitchGameMode,\r\n configurable: true\r\n });\r\n }\r\n\r\n @computed\r\n private get _isMobile(): boolean {\r\n return this.services.device.isMobile;\r\n }\r\n\r\n @computed\r\n private get _isAuthorized(): boolean {\r\n return this.services.user.isAuthorized;\r\n }\r\n\r\n get gameType(): number {\r\n return this._rawGameData.gameType;\r\n }\r\n\r\n get title(): string {\r\n return this._rawGameData.title;\r\n }\r\n\r\n get numberOfLines(): number {\r\n return this._rawGameData.numberOfLines;\r\n }\r\n\r\n\r\n get hasJackpot(): boolean {\r\n return this._rawGameData.hasJackpot || false;\r\n }\r\n\r\n get isNewGame(): boolean {\r\n return this._hasCustomFilter('new');\r\n }\r\n\r\n get isExclusiveGame(): boolean {\r\n return this._hasCustomFilter('exclusive');\r\n }\r\n\r\n private _hasCustomFilter(filterName: string): boolean {\r\n if (!filterName) {\r\n return false;\r\n }\r\n\r\n if (!Check.isArray(this._rawGameData.filtersList)) {\r\n return false;\r\n }\r\n\r\n filterName = filterName.toLowerCase();\r\n\r\n return 0 <= this._rawGameData.filtersList.findIndex(filter => filter.toLowerCase() === filterName);\r\n\r\n }\r\n\r\n get hasBonusGames(): boolean {\r\n return this._rawGameData.hasBonusGames || false;\r\n }\r\n\r\n get numberOfDecks(): number {\r\n return this._rawGameData.numberOfDecks;\r\n }\r\n\r\n get isMultiHand(): boolean {\r\n return this._rawGameData.isMultiHand || false;\r\n }\r\n\r\n get hasFreeSpins(): boolean {\r\n return this._rawGameData.hasFreeSpins || false;\r\n }\r\n\r\n get subGroupName(): string {\r\n return this._rawGameData.subGroupName;\r\n }\r\n\r\n get isEliteLounge(): boolean {\r\n return this._rawGameData.isEliteLounge || false;\r\n }\r\n\r\n get hasSideBets(): boolean {\r\n return this._rawGameData.hasSideBets || false;\r\n }\r\n\r\n get maxBetPerSpot(): number {\r\n return this._rawGameData.maxBetPerSpot;\r\n }\r\n\r\n get allowWithdrawOnlyFromReal(): boolean {\r\n return this._rawGameData.allowWithdrawOnlyFromReal;\r\n }\r\n\r\n get hasLowStakes(): boolean {\r\n return this._hasCustomFilter('lowStakes');\r\n }\r\n\r\n get ClassicSlots(): boolean {\r\n return this._rawGameData.ClassicSlots;\r\n }\r\n\r\n get HighVolatilityTag(): boolean {\r\n return this._rawGameData.HighVolatilityTag;\r\n }\r\n\r\n get LowVolatilityTag(): boolean {\r\n return this._rawGameData.LowVolatilityTag;\r\n }\r\n\r\n get allowMinMaxBet(): boolean {\r\n let isAllowedCategory = this.gameCategory === GAMES_CATEGORIES.CARD_AND_TABLE || this.gameCategory === GAMES_CATEGORIES.LIVE;\r\n\r\n return !this.hasJackpot && isAllowedCategory;\r\n }\r\n\r\n\r\n @computed\r\n get allowHoverDetails(): boolean {\r\n\r\n if (this.gameGroup === 'Live Casino') {\r\n return false;\r\n }\r\n\r\n return !this._isAuthorized || this._rawGameData.forceDemoButton;\r\n }\r\n\r\n @computed\r\n get allowTap(): boolean {\r\n return this._isMobile;\r\n }\r\n\r\n\r\n get hasInfoPage(): boolean {\r\n if (this.infoPageURL) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n @computed\r\n get allowDemoButtonInSingleGame(): boolean {\r\n\r\n if (!this._rawGameData.isAnonymousSupported) {\r\n return false;\r\n }\r\n\r\n if (this._rawGameData.forceDemoButton) {\r\n return true;\r\n }\r\n\r\n\r\n if (this._isMobile) {\r\n return false;\r\n }\r\n\r\n\r\n return (this._rawGameData.demoSettings\r\n && this._rawGameData.demoSettings.demoCTAAnonymous\r\n && this._rawGameData.demoSettings.demoCTAAnonymous.pc);\r\n }\r\n\r\n\r\n @computed\r\n get allowDemoButtonInIntermediatePage(): boolean {\r\n if (!this._rawGameData.isAnonymousSupported) {\r\n return false;\r\n }\r\n\r\n if (this._rawGameData.forceDemoButton) {\r\n return true;\r\n }\r\n\r\n if (this.services.user.isAuthorized) {\r\n return this._rawGameData.demoSettings && this._rawGameData.demoSettings.demoCTAAuthorized && this._rawGameData.demoSettings.demoCTAAuthorized.mobile;\r\n }\r\n\r\n return this._rawGameData.demoSettings && this._rawGameData.demoSettings.demoCTAAnonymous && this._rawGameData.demoSettings.demoCTAAnonymous.mobile;\r\n }\r\n\r\n get infoPageURL(): string {\r\n\r\n if (!this._rawGameData.infoPageURL) {\r\n return '';\r\n }\r\n\r\n if (!this.services.siteMap.isUrlInSiteMap(this._rawGameData.infoPageURL)) {\r\n this.services.logger.debug(`Page info '${this._rawGameData.infoPageURL}' for game ${this.gameType} - ${this.title} is not in the site map`);\r\n return '';\r\n }\r\n\r\n return this._rawGameData.infoPageURL\r\n }\r\n\r\n //Can be either a live stream URL or a static video URL.\r\n get videoURL(): string {\r\n if (!this._rawGameData.videoURL) {\r\n return '';\r\n }\r\n\r\n return this._rawGameData.videoURL;\r\n }\r\n\r\n get hasVideoURL(): boolean {\r\n return Boolean(this.videoURL);\r\n }\r\n\r\n get gameGroup(): string {\r\n return this._rawGameData.gameGroup;\r\n }\r\n\r\n get gameCategory(): string {\r\n return this.services.configuration.getGameCategory(this.gameGroup);\r\n }\r\n\r\n get gameCategoryClassName(): string {\r\n return 'game-category-' + this.gameCategory;\r\n }\r\n\r\n get companyName(): string {\r\n return this._rawGameData.companyName;\r\n }\r\n\r\n get vendorName(): string {\r\n return this._rawGameData.vendorName;\r\n }\r\n\r\n getGameImage(options?: {squareIcon?: boolean; animatedIcon?: boolean;}): string {\r\n let opts = {\r\n squareIcon: options?.squareIcon || false,\r\n animatedIcon: options?.animatedIcon || false,\r\n }\r\n let images = this._rawGameData && this._rawGameData.images;\r\n if (!images) {\r\n return '';\r\n }\r\n\r\n if (this.services.games.shouldUseSquareIcons(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\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 return this.gameImageInsideIntermediatePage;\r\n }\r\n\r\n get badge(): string | null {\r\n if (this.services.device.hybrid.isEmbedded) {\r\n return null;\r\n }\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 (this.services.games.shouldUseSquareIcons(useSquareIcon)) {\r\n return this.services.theme.currentTheme.images.gameIconPlaceHolderSq.toString();\r\n }\r\n return this.services.theme.currentTheme.images.gameIconPlaceHolder.toString();\r\n }\r\n\r\n getImageSeoAlt() {\r\n\r\n let seoValue = this.services.configuration.data?.seo?.games?.images?.alt;\r\n\r\n return this.services.translation.translate(seoValue, {\r\n gameName: this.title,\r\n categoryName: this.gameCategory\r\n });\r\n };\r\n\r\n private _getResolvedGameImagePath(imagePath: string): string {\r\n return this.services.configuration.resolveGameImagePath(imagePath);\r\n }\r\n\r\n @computed\r\n get stripImage(): string {\r\n let images = this._rawGameData.images;\r\n if (!images) {\r\n return '';\r\n }\r\n\r\n return this._isMobile ? this._getResolvedGameImagePath(images.strip_mobile) :\r\n this._getResolvedGameImagePath(images.strip_pc);\r\n }\r\n\r\n @computed\r\n get stripeImageFallback(): string {\r\n let generalSettings = this.services.configuration.data.generalSettings;\r\n let previewDefaultImage = generalSettings && generalSettings.gamesSettings && generalSettings.gamesSettings.gamesPreviewDefaultImages;\r\n\r\n if (previewDefaultImage && this.gameCategory) {\r\n //Replace the game category dash to under score (like the image name for example card-and-table category name should be default_game_strip_card_and_table)\r\n let gameCategoryWithUnderScores = this.gameCategory.replace(/-/g, '_');\r\n previewDefaultImage = previewDefaultImage.replace(/{arena-category}/g, gameCategoryWithUnderScores);\r\n //Add _mobile if we are in mobile\r\n\r\n if (this.services.device.isMobile) {\r\n return previewDefaultImage.replace('.png', '_mobile.png');\r\n }\r\n\r\n return previewDefaultImage;\r\n }\r\n\r\n return ''\r\n }\r\n\r\n get hasVideoTrailer(): boolean {\r\n return this.gameType === 130136;\r\n }\r\n\r\n get aboutText(): string {\r\n return this._aboutText;\r\n }\r\n\r\n get multiplayer(): number {\r\n return this._rawGameData.multiplayer;\r\n }\r\n\r\n get isClassicSlot(): boolean {\r\n return this._hasCustomFilter('ClassicSlots');\r\n }\r\n\r\n get hasHighVolatility(): boolean {\r\n return this._hasCustomFilter('HighVolatilityTag');\r\n }\r\n\r\n get hasLowVolatility(): boolean {\r\n return this._hasCustomFilter('LowVolatilityTag');\r\n }\r\n\r\n @computed\r\n get shouldShowIntermediatePage(): boolean {\r\n if (!this._isMobile) {\r\n return false;\r\n }\r\n\r\n if (!this._rawGameData.isAnonymousSupported) {\r\n return false;\r\n }\r\n\r\n if (this.gameCategory === GAMES_CATEGORIES.LIVE) {\r\n return false;\r\n }\r\n\r\n if (this._rawGameData.forceDemoButton) {\r\n return true;\r\n }\r\n\r\n let demoSettings = this._rawGameData.demoSettings;\r\n if (this._isAuthorized) {\r\n if ((this._rawGameData?.forceIntermediatePageForAutorizedUsers) || (demoSettings && demoSettings.intermediatePageAuthorized && demoSettings.intermediatePageAuthorized.mobile)) {\r\n return true;\r\n }\r\n } else {\r\n if (demoSettings?.intermediatePageAnonymous?.mobile) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n get isDemoModeSupported(): boolean {\r\n return Boolean(this._rawGameData.isAnonymousSupported);\r\n }\r\n\r\n @computed\r\n get allowSwitchGameMode(): boolean {\r\n\r\n if(!this.isDemoModeSupported) {\r\n return false;\r\n }\r\n\r\n let demoSettings = this._rawGameData.demoSettings;\r\n if (!demoSettings) {\r\n return false;\r\n }\r\n\r\n if (this._isAuthorized) {\r\n return Boolean(demoSettings?.demoCTAAuthorized?.pc);\r\n } else {\r\n return Boolean(demoSettings?.demoCTAAnonymous?.pc);\r\n }\r\n }\r\n\r\n async open(params: OpenGameParameters): Promise {\r\n\r\n if(this.services.gameRunner.shouldUseModernMode(this)) {\r\n return this._openInModernMode(params);\r\n } else {\r\n return await this._openInLegacyMode(params);\r\n }\r\n\r\n }\r\n\r\n private _shouldRedirectToMembership(params: OpenGameParameters): boolean {\r\n return params.isRealMode && params.isCalledFromIntermediatePage\r\n && !this.services.user.isAuthorized\r\n && (this.services.cmsSegmentation.isCstatus === false);\r\n }\r\n private async _openInModernMode(params: OpenGameParameters): Promise {\r\n\r\n if(this._showIntermediatePage(params)) {\r\n return;\r\n }\r\n\r\n if (this._shouldRedirectToMembership(params)) {\r\n this._openMembership();\r\n return {\r\n closeGame: () => {\r\n }\r\n };\r\n }\r\n\r\n this._sendOpenGameAnalytics(params);\r\n this._sendGraphyteOpenGameEvent(params);\r\n\r\n let gameController: IRunningGameControllerViewModel | null = null;\r\n if (params.isRealMode) {\r\n if(params.marketingParams) {\r\n this.services.sdk.eventsTrigger.updateMarketingParams(params.marketingParams);\r\n }\r\n gameController = await this.services.gameRunner.openGame({\r\n gameMode: GameModeEnum.Real,\r\n gameInfo: this,\r\n freePlayParams: params.freePlayParams,\r\n skipFreePlaySuggestion: params.skipFreePlaySuggestion\r\n });\r\n } else {\r\n gameController = await this.services.gameRunner.openGame({\r\n gameMode: GameModeEnum.Demo,\r\n gameInfo: this\r\n });\r\n }\r\n\r\n return {\r\n closeGame: async () => {\r\n await gameController?.closeGame({\r\n shouldSuggestNextGame: false\r\n })\r\n }\r\n }\r\n }\r\n\r\n //TODO - this should return a Promise\r\n private _showIntermediatePage(params: OpenGameParameters): boolean {\r\n if (this.shouldShowIntermediatePage && params.showIntermediatePage) {\r\n const dialogContentRenderer = ((dialogHandler) => );\r\n this.services.dialog.showModal(dialogContentRenderer, {hideCloseButton: true});\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private _sendGraphyteOpenGameEvent(params: OpenGameParameters): void {\r\n this.services.graphyteClickstream.sendGameOpenEvent({\r\n gameType: this.gameType.toString(),\r\n gameTitle: this.title,\r\n gameCategory: this.gameCategory,\r\n isReal: params.isRealMode,\r\n listTitle: params.listTitle,\r\n gameIndex: params.gameIndex\r\n });\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 this._sendGraphyteOpenGameEvent(params);\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 isBlackJack(): boolean {\r\n return this._rawGameData.gameGroupId === GAME_GROUP.BLACKJACK;\r\n }\r\n\r\n get isRoulette(): boolean {\r\n return this._rawGameData.gameGroupId === GAME_GROUP.ROULETTE;\r\n }\r\n\r\n get isLiveCasino(): boolean {\r\n return this._rawGameData.gameGroupId === GAME_GROUP.LIVE_CASINO;\r\n }\r\n}\r\n","import { AdminArenaConfiguration } from \"../../app-bootstrap/config-interfaces/casino-startup.configurations\";\r\nimport { createStatementsDefinition } from './create-statements-definition';\r\nimport {HOME_PAGE_ARENA, LIVE_CASINO_ARENA_NAME, NEW_LIVE_CASINO_ARENA_NAME} from '../arenas/arena-consts';\r\nimport {Check} from \"@sparkware/app-utils\";\r\n\r\nenum List_Type {\r\n Swipers = \"swipers\",\r\n Grids = \"grids\",\r\n PopularTables = \"popularTables\"\r\n}\r\n\r\nexport function injectAdminArenas(\r\n originalConfigData: any,\r\n adminArenaConfigData: { [key: string]: AdminArenaConfiguration }\r\n): void {\r\n\r\n if (originalConfigData.homePage) {\r\n originalConfigData.homePage.gamesLists = getAdminArenaLists(\r\n adminArenaConfigData,\r\n HOME_PAGE_ARENA,\r\n List_Type.Swipers\r\n );\r\n }\r\n\r\n if (originalConfigData.arenas) {\r\n Object.keys(originalConfigData.arenas).forEach(arenaKey => {\r\n if (arenaKey === LIVE_CASINO_ARENA_NAME || arenaKey === NEW_LIVE_CASINO_ARENA_NAME) {\r\n originalConfigData.arenas[arenaKey].popularTables = getAdminArenaLists(\r\n adminArenaConfigData,\r\n arenaKey,\r\n List_Type.PopularTables\r\n );\r\n }\r\n else {\r\n originalConfigData.arenas[arenaKey].swiperGamesList = getAdminArenaLists(\r\n adminArenaConfigData,\r\n arenaKey,\r\n List_Type.Swipers\r\n );\r\n\r\n originalConfigData.arenas[arenaKey].allGamesGrid = getAdminArenaLists(\r\n adminArenaConfigData,\r\n arenaKey,\r\n List_Type.Grids\r\n );\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction getAdminArenaLists(\r\n adminArenaConfigData: { [key: string]: AdminArenaConfiguration },\r\n arenaKey: string,\r\n listType: string\r\n) {\r\n let adminLists: unknown[] = [];\r\n if (adminArenaConfigData[arenaKey] && adminArenaConfigData[arenaKey].lists[listType]) {\r\n adminArenaConfigData[arenaKey].lists[listType].forEach(list => {\r\n let currentList = Object.assign({}, list.Metadata);\r\n\r\n currentList.display = Check.isNullOrUndefined(list.Metadata.display) ? true : list.Metadata.display;\r\n\r\n let segmentation = createStatementsDefinition(list.SubLists);\r\n currentList.gamesId = {};\r\n currentList.gamesId.defaultValue = segmentation.defaultValue;\r\n currentList.gamesId.statements = segmentation.statements;\r\n\r\n adminLists.push(currentList);\r\n });\r\n }\r\n\r\n return adminLists;\r\n}\r\n","import {GamesMap, IGameImageSize, IGamesService, RecentlyPlayedGames} from './games.service.interface';\r\nimport {GameInfo} from './game-info';\r\nimport {action, observable} from 'mobx';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\n\r\nexport class GamesService extends ServiceBase implements IGamesService {\r\n\r\n constructor(serviceFactory: IServiceFactoryExtended) {\r\n super(serviceFactory);\r\n\r\n this.reaction(\r\n () => this.services.user.isAuthorized,\r\n () => this._updateGamesMap(),\r\n {\r\n fireImmediately: true\r\n });\r\n\r\n this.services.sdk.events.onRecentlyPlayedGamesUpdated(this._updateRecentlyPlayedGames);\r\n }\r\n\r\n\r\n\r\n\r\n @observable.ref gamesMap: GamesMap = {};\r\n @action.bound\r\n private _setGamesMap(gamesMap: GamesMap): void {\r\n this.gamesMap = gamesMap;\r\n }\r\n\r\n @observable.ref\r\n recentlyPlayedGames: RecentlyPlayedGames = {\r\n isInitialized: false,\r\n gameTypes: []\r\n };\r\n\r\n @action.bound\r\n private _updateRecentlyPlayedGames(gameTypes: number[]): void {\r\n if(!this.recentlyPlayedGames.isInitialized\r\n || !this.services.sdk.getUtils().arraysAreEqual(this.recentlyPlayedGames.gameTypes, gameTypes)) {\r\n this.recentlyPlayedGames = {\r\n isInitialized: true,\r\n gameTypes: gameTypes\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n private async _buildGamesMap(sdkGamesInfo: any): Promise {\r\n\r\n let aboutTexts = await this._getGamesAboutTexts();\r\n\r\n let gamesMap: GamesMap = {};\r\n\r\n const usedGameTypesBySiteMap = this.services.configuration.usedGameTypesBySite.reduce((accumulator, gt) => {\r\n accumulator[gt] = true;\r\n return accumulator;\r\n }, {});\r\n\r\n Object.keys(sdkGamesInfo).forEach(gameType => {\r\n try {\r\n // filter only in-layout games\r\n if (usedGameTypesBySiteMap[gameType]) {\r\n let sdkInfo = sdkGamesInfo[gameType];\r\n let generalSettings = this.services.configuration.data.generalSettings;\r\n let gameTagInfo = (generalSettings && generalSettings.gamesSettings && generalSettings.gamesSettings.gamesTags && generalSettings.gamesSettings.gamesTags[gameType]) || {};\r\n\r\n // for now, rawGameData will contain also gameTagInfo properties - which are read by adminClient settings\r\n // moreover, we'll add a new property on it regarding allowSwitchToDemo\r\n let rawGameData = Object.assign(sdkInfo, gameTagInfo);\r\n let gameInfo = new GameInfo(rawGameData, this.services, aboutTexts[gameType]);\r\n gamesMap[gameInfo.gameType] = gameInfo;\r\n }\r\n } catch(err) {\r\n this.services.logger.error(`Failed to generate GameInfo for game type ${gameType}`, err);\r\n }\r\n\r\n });\r\n\r\n return gamesMap;\r\n }\r\n\r\n private _gamesAboutTexts: {[key: string]: string} | null = null;\r\n\r\n private async _getGamesAboutTexts(): Promise<{[key: string]: string}> {\r\n if(this._gamesAboutTexts) {\r\n return this._gamesAboutTexts;\r\n }\r\n let gamesAboutTextConfigPath = this.services.configuration.data.generalSettings.gamesSettings.gamesAboutTextPath;\r\n\r\n //if there is no about path (not supported in this regulation) - we prevent the http call\r\n if(!gamesAboutTextConfigPath){\r\n this._gamesAboutTexts = {};\r\n return this._gamesAboutTexts;\r\n }\r\n\r\n let gamesAboutTextUrl = '';\r\n\r\n try {\r\n gamesAboutTextUrl = gamesAboutTextConfigPath.replace('{currentLanguage}', this.services.language.currentLanguage);\r\n let aboutTextsJson = await this.services.http.get(gamesAboutTextUrl);\r\n\r\n if(Check.isNullOrUndefined(aboutTextsJson) || Object.keys(aboutTextsJson).length === 0) {\r\n this.services.logger.warning(`No games about texts returned from ${gamesAboutTextUrl}`);\r\n }\r\n this._gamesAboutTexts = aboutTextsJson || {};\r\n\r\n return this._gamesAboutTexts!;\r\n } catch (err) {\r\n if(err && ('statusCode' in err) && err.statusCode === 404) {\r\n // NB: Ignore 404s, usually for things like spa_about.json that actually shouldn't exist.\r\n return {};\r\n }\r\n this.services.logger.error(`Failed to read games about texts from ${gamesAboutTextUrl}`, err);\r\n return {};\r\n }\r\n\r\n\r\n }\r\n\r\n private async _updateGamesMap(): Promise {\r\n let usedGameTypesBySite = this.services.configuration.usedGameTypesBySite || [];\r\n if(usedGameTypesBySite.length === 0) {\r\n this.services.logger.error(`configuration.usedGameTypesBySite returned empty array`);\r\n return;\r\n }\r\n\r\n const gamesMap = await this._getGamesInfoMap(usedGameTypesBySite);\r\n this._setGamesMap(gamesMap);\r\n }\r\n\r\n async _getGamesInfoMap(gameTypes: number[]): Promise {\r\n try {\r\n let sdkGamesInfo = await this.services.sdk.getGamesInfo(gameTypes);\r\n return await this._buildGamesMap(sdkGamesInfo);\r\n } catch (err) {\r\n this.services.logger.error(`sdk.getGamesInfo failed in GamesService.getGamesInfo`, err);\r\n return {};\r\n }\r\n }\r\n\r\n async getGamesInfoMap(gameTypes: number[]): Promise {\r\n if (!gameTypes || gameTypes.length === 0) {\r\n return {};\r\n }\r\n\r\n // fill data from cache (if cache found)\r\n if (Object.keys(this.gamesMap).length > 0) {\r\n const inCacheGames = gameTypes.filter((gt) => this.gamesMap[gt]);\r\n const result = inCacheGames.reduce((acc, gt) => {acc[gt] = this.gamesMap[gt]; return acc;}, {});\r\n return result;\r\n } else {\r\n // otherwise fill it from SDK\r\n return this._getGamesInfoMap(gameTypes);\r\n }\r\n }\r\n\r\n async getGamesInfoForHistory(gameTypes: number[]): Promise {\r\n let sdkGamesInfo = await this.services.sdk.getGamesInfoForHistory(gameTypes);\r\n\r\n let gamesMap: GamesMap = {};\r\n Object.keys(sdkGamesInfo).forEach(gameType => {\r\n let rawGameData = Object.assign(sdkGamesInfo[gameType], this.gamesMap[gameType]);\r\n gamesMap[gameType] = new GameInfo(rawGameData, this.services, '')\r\n });\r\n return gamesMap;\r\n }\r\n\r\n async getGamesInfoArray(gameTypes: number[]): Promise {\r\n let gamesMap = await this.getGamesInfoMap(gameTypes);\r\n\r\n const result: GameInfo[] = [];\r\n for(let i = 0; i < gameTypes.length; i++) {\r\n const gameType = gameTypes[i];\r\n if (gamesMap[gameType]) {\r\n result.push(gamesMap[gameType]);\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n async getGameInfo(gameType: number) {\r\n const gamesMap = await this.getGamesInfoMap([gameType]);\r\n if(gamesMap) {\r\n return gamesMap[gameType];\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n async getCorrelatedGames(gameType: number, numberOfGames: number): Promise {\r\n try {\r\n return await this.services.sdk.getCorrelatedGames(gameType, numberOfGames);\r\n } catch (err) {\r\n this.services.logger.error(`Failed to get from SDK the correlated games for game type ${gameType}`, err);\r\n return [];\r\n }\r\n }\r\n\r\n shouldUseSquareIcons(forceSquareIcons?: boolean) {\r\n return this.services.device.hybrid.isEmbedded || this.services.theme.shouldUseSquareIcons || forceSquareIcons;\r\n }\r\n\r\n getGameImageExpectedSizes(forceSquareIcons?: boolean, animated?: boolean): IGameImageSize {\r\n\r\n if (this.shouldUseSquareIcons(forceSquareIcons)) {\r\n if (animated) {\r\n return {\r\n width: 210,\r\n height: 292\r\n };\r\n }\r\n return {\r\n width: 400,\r\n height: 555\r\n };\r\n }\r\n\r\n return {\r\n width: 210,\r\n height: 210\r\n };\r\n }\r\n}\r\n","import {ConfigurationEvaluationContext} from './evaluation/configuration-evaluation-context/configuration-evaluation-context';\r\nimport {PropertiesEvaluator} from './evaluation/properties-evaluator/properties-evaluator';\r\nimport {IConfigurationData} from './configuration-data.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IConfigurationService} from './configuration.service.interface';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {LIVE_CASINO_ARENA_NAME, NEW_GAMES_ARENA_NAME, NEW_LIVE_CASINO_ARENA_NAME} from '../arenas/arena-consts';\r\nimport {GAMES_CATEGORIES} from '../games/game-info';\r\nimport {observable, runInAction} from 'mobx';\r\nimport {ApplicationStartupConfigurations} from '../../app-bootstrap/config-interfaces/application-startup.configurations';\r\nimport {IConfigurationEvaluationDataProvider} from './evaluation/configuration-evaluation-context/configuration-evaluation-data-provider';\r\nimport { injectAdminArenas } from './inject-admin-arenas';\r\nimport {HomePageHeaderArena} from \"./config-data-sections/home-page.configuration\";\r\nimport {IServicesConfigurations} from './config-data-sections/services-configurations';\r\nimport { SideMenuLinkConfiguration } from './config-data-sections/side-menu.configuration';\r\nimport {ListConfiguration, SwiperGamesListConfiguration} from \"./config-data-sections/arenas.configuration\";\r\n\r\n\r\ntype GameTypesMap = {[key: number]: number};\r\n\r\n\r\nexport class ConfigurationsService extends ServiceBase implements IConfigurationService {\r\n\r\n startupConfiguration: ApplicationStartupConfigurations;\r\n\r\n constructor(services: IServiceFactoryExtended, startupConfigs: ApplicationStartupConfigurations) {\r\n super(services);\r\n this.startupConfiguration = startupConfigs;\r\n\r\n this._createConfigData();\r\n }\r\n\r\n private _getConfigEvaluationContextServices(): IConfigurationEvaluationDataProvider {\r\n return {\r\n admin: this.startupConfiguration.admin,\r\n configurationPath: this.startupConfiguration.configurationPath,\r\n getLauncherGames: () => this.services.launcher.getTestedGames(),\r\n getSegmentValue: (segmentName) => this.services.segmentation.getSegmentValue(segmentName),\r\n logger: this.services.logger\r\n };\r\n }\r\n\r\n private _createConfigData(): void {\r\n let originalConfigData = this.startupConfiguration.orbit.config;\r\n if (this.startupConfiguration.admin && this.startupConfiguration.admin.arenas) {\r\n injectAdminArenas(originalConfigData, this.startupConfiguration.admin.arenas);\r\n }\r\n\r\n let context = new ConfigurationEvaluationContext(this._getConfigEvaluationContextServices());\r\n let configEvaluator = PropertiesEvaluator.fromRoot(originalConfigData, context);\r\n let data = configEvaluator.evaluate(context);\r\n this._defineCustomConfigProperty(data,\r\n 'allGamesTypes',\r\n () => {\r\n let gameTypes: number[] = [];\r\n let gamesTags = (data.generalSettings && data.generalSettings.gamesSettings && data.generalSettings.gamesSettings.gamesTags) || {};\r\n Object.getOwnPropertyNames(gamesTags).forEach(gt => {\r\n let gameType = parseInt(gt);\r\n if(!isNaN(gameType)) {\r\n gameTypes.push(gameType);\r\n }\r\n });\r\n return gameTypes;\r\n });\r\n\r\n\r\n runInAction(() => {\r\n this.data = data as IConfigurationData;\r\n });\r\n }\r\n\r\n\r\n private _defineCustomConfigProperty(configData: unknown, propertyName: string, evaluator: () => unknown) {\r\n Object.defineProperty(configData, propertyName, {\r\n get: evaluator,\r\n configurable: false\r\n });\r\n\r\n }\r\n\r\n @observable.ref\r\n data: IConfigurationData;\r\n\r\n\r\n get cmsPublicationId(): number {\r\n return this.startupConfiguration.b2c.publicationId;\r\n }\r\n\r\n private _mapGameCategoryToEnum(category: string): string {\r\n switch(category) {\r\n case 'slots': {\r\n return GAMES_CATEGORIES.SLOTS;\r\n }\r\n case 'cardAndTable': {\r\n return GAMES_CATEGORIES.CARD_AND_TABLE;\r\n }\r\n case 'live': {\r\n return GAMES_CATEGORIES.LIVE;\r\n }\r\n default: {\r\n return '';\r\n }\r\n }\r\n }\r\n\r\n private _gameGroupToCategoryMapping: {[key: string]: string} | null = null;\r\n getGameCategory(gameGroup: string): string {\r\n if(!this._gameGroupToCategoryMapping) {\r\n this._gameGroupToCategoryMapping = {};\r\n let gamesCategories = this.data.generalSettings.gamesSettings.gamesCategories;\r\n Object.keys(gamesCategories).forEach(category => {\r\n let mappedCategory = this._mapGameCategoryToEnum(category);\r\n (gamesCategories[category] || []).forEach(gameGroup => {\r\n this._gameGroupToCategoryMapping![gameGroup] = mappedCategory;\r\n });\r\n });\r\n }\r\n\r\n return this._gameGroupToCategoryMapping[gameGroup];\r\n }\r\n\r\n\r\n get usedGameTypesBySite(): number[] {\r\n\r\n let gameTypesMap = {...this._getUsedGamesByHomePage(), ...this._getUsedGamesByArenas(), ...this._getUsedGameTypesByLiveGamesArena(), ...this._getUsedGameTypesByNewLiveGamesArena()};\r\n\r\n return Object.values(gameTypesMap);\r\n }\r\n\r\n private _getUsedGamesByHomePage(): GameTypesMap {\r\n let result: GameTypesMap = {};\r\n (this.data.homePage.gamesLists || []).forEach(gamesList => {\r\n if(gamesList.display) {\r\n let gamesIds = gamesList.gamesId || [];\r\n if(Check.isArray(gamesIds)) {\r\n gamesIds.forEach(gameType => {\r\n result[gameType] = gameType;\r\n })\r\n }\r\n\r\n }\r\n });\r\n\r\n return result;\r\n }\r\n\r\n private _getUsedGamesByArenas(): GameTypesMap {\r\n let result: GameTypesMap = {};\r\n Object.keys(this.data.arenas).forEach(arenaName => {\r\n let arenaConfig = this.data.arenas[arenaName];\r\n // game types from swipers\r\n (arenaConfig.swiperGamesList || []).forEach(swiperConfig => {\r\n if(swiperConfig.display) {\r\n let gamesIds = swiperConfig.gamesId || [];\r\n if(Check.isArray(gamesIds)) {\r\n gamesIds.forEach(gameType => {\r\n result[gameType] = gameType;\r\n });\r\n }\r\n\r\n }\r\n });\r\n\r\n // game types from all games grid\r\n (arenaConfig.allGamesGrid || []).forEach(gamesGridConfig => {\r\n if(gamesGridConfig.display) {\r\n let gamesIds = gamesGridConfig.gamesId || [];\r\n if(Check.isArray(gamesIds)) {\r\n gamesIds.forEach(gameType => {\r\n result[gameType] = gameType;\r\n });\r\n }\r\n }\r\n });\r\n });\r\n\r\n return result;\r\n }\r\n\r\n private _getUsedGameTypesByLiveGamesArena() : GameTypesMap {\r\n let result: GameTypesMap = {};\r\n\r\n let liveCasinoArenaConfig = this.data.arenas[LIVE_CASINO_ARENA_NAME];\r\n if(!liveCasinoArenaConfig) {\r\n return result;\r\n }\r\n\r\n let gamesIds = liveCasinoArenaConfig.arenas && liveCasinoArenaConfig.arenas.gamesId;\r\n\r\n if(Check.isArray(gamesIds)) {\r\n gamesIds.forEach(gameTypeConfig => {\r\n if(gameTypeConfig.display) {\r\n result[gameTypeConfig.gameId] = gameTypeConfig.gameId;\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n let popularTablesConfig = liveCasinoArenaConfig.popularTables;\r\n if(Check.isArray(popularTablesConfig)) {\r\n popularTablesConfig.forEach(tableConfig => {\r\n let tableGamesIds = tableConfig.gamesId || [];\r\n if(Check.isArray(tableGamesIds)) {\r\n tableGamesIds.forEach(gameType => result[gameType] = gameType);\r\n }\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private _getUsedGameTypesByNewLiveGamesArena() : GameTypesMap {\r\n let result: GameTypesMap = {};\r\n\r\n let liveCasinoArenaConfig = this.data.arenas[NEW_LIVE_CASINO_ARENA_NAME];\r\n if(!liveCasinoArenaConfig) {\r\n return result;\r\n }\r\n\r\n let gamesIds = liveCasinoArenaConfig.arenas && liveCasinoArenaConfig.arenas.gamesId;\r\n\r\n if(Check.isArray(gamesIds)) {\r\n gamesIds.forEach(gameTypeConfig => {\r\n if(gameTypeConfig.display) {\r\n result[gameTypeConfig.gameId] = gameTypeConfig.gameId;\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n let popularTablesConfig = liveCasinoArenaConfig.popularTables;\r\n if(Check.isArray(popularTablesConfig)) {\r\n popularTablesConfig.forEach(tableConfig => {\r\n let tableGamesIds = tableConfig.gamesId || [];\r\n if(Check.isArray(tableGamesIds)) {\r\n tableGamesIds.forEach(gameType => result[gameType] = gameType);\r\n }\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n\r\n resolveConfigurationValue(fullPath: string): string {\r\n let objectValue: any = this.data;\r\n let fullPathArray = fullPath.split('.');\r\n\r\n for (let objectKey of fullPathArray) {\r\n objectValue = objectValue[objectKey];\r\n }\r\n\r\n return (objectValue as string) || '';\r\n }\r\n\r\n\r\n buildConfigUrl(fileName: string): string {\r\n let configurationPath = this.startupConfiguration.configurationPath;\r\n if(!configurationPath.endsWith('/')) {\r\n configurationPath += '/';\r\n }\r\n return configurationPath + fileName;\r\n }\r\n\r\n resolveGameImagePath(imageFileName: string): string {\r\n if(Check.isEmpty(imageFileName)) {\r\n return '';\r\n }\r\n\r\n let imagesBasePath = this.startupConfiguration.orbit.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.orbit.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.orbit.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.orbit.extraProperties.paths.server + \"/assets/fonts/\").href;\r\n }\r\n\r\n getGamesListByJackpotId(id: string): SwiperGamesListConfiguration {\r\n\r\n const homePageGamesLists = this.data.homePage.gamesLists || [];\r\n for(let i = 0; i < homePageGamesLists.length; i++) {\r\n let gamesList = homePageGamesLists[i];\r\n if(gamesList.jackpotWidget?.jackpotId) {\r\n let gamesIds = gamesList.gamesId || [];\r\n if(Check.isArray(gamesIds) && gamesList.jackpotWidget.jackpotId.toString() === id) {\r\n return gamesList;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n getSelfUpdatedByNewestGamesList(): ListConfiguration {\r\n const newGameArenaConfig = this.data.arenas[NEW_GAMES_ARENA_NAME];\r\n if (!newGameArenaConfig) {\r\n return null;\r\n }\r\n\r\n const gamesLists: ListConfiguration[] = (newGameArenaConfig.swiperGamesList || []).concat(newGameArenaConfig.allGamesGrid || []);\r\n const firstSelfUpdatedByNewest = gamesLists.find(listConfig => listConfig.display && listConfig.isSelfUpdatedByNewest);\r\n return firstSelfUpdatedByNewest;\r\n }\r\n\r\n private _getCurrentArenaLists() {\r\n const arenaType = this.services.routing.currentRoute.data?.arenaType;\r\n const lists = Check.isNullOrUndefined(arenaType) || arenaType === \"homePage\" ?\r\n this.data.homePage.gamesLists :\r\n this.services.configuration.data.arenas[arenaType].swiperGamesList;\r\n return lists;\r\n }\r\n\r\n getGamesListByTitle(title: string): SwiperGamesListConfiguration {\r\n const lists = this._getCurrentArenaLists();\r\n return lists?.find(list => list.title.toUpperCase() === title.toUpperCase());\r\n }\r\n\r\n getGamesListById(id: number): SwiperGamesListConfiguration {\r\n const lists = this._getCurrentArenaLists();\r\n return lists?.find(list => list.listId === id);\r\n }\r\n\r\n getHomePageHeaderArenas(): HomePageHeaderArena[] {\r\n let homePageHeaderArenas:HomePageHeaderArena[] = [];\r\n this.data.homePage.headerArenasOrder.forEach( name => {\r\n const arenaHeader = this.data.arenas[name].homepageHeader;\r\n if(arenaHeader){\r\n homePageHeaderArenas.push(arenaHeader);\r\n }\r\n });\r\n return homePageHeaderArenas;\r\n }\r\n\r\n getHomePageHeaderArenasByUserOrientation(arenaNames: string[]): HomePageHeaderArena[] {\r\n let orderedArenas:HomePageHeaderArena[] = [];\r\n arenaNames.forEach( arenaName => {\r\n const arenaConfig:HomePageHeaderArena = this.data.arenas[arenaName] && this.data.arenas[arenaName].homepageHeader;\r\n if(arenaConfig) {\r\n orderedArenas.push(arenaConfig);\r\n }\r\n });\r\n return orderedArenas;\r\n }\r\n\r\n get servicesConfigs(): IServicesConfigurations {\r\n return this.services.sdk.getConfigs();\r\n }\r\n\r\n pickSideMenuItems(keys: string[]) {\r\n const allLinks = this.services.configuration.data.sideMenu.menu_links;\r\n\r\n const reducer = function (accumulator: Array<{key: string, config: SideMenuLinkConfiguration}>, key: string) {\r\n if(key in allLinks) {\r\n accumulator.push({key, config: allLinks[key]});\r\n }\r\n return accumulator;\r\n };\r\n\r\n return keys.reduce(reducer, []);\r\n }\r\n}\r\n","import {IUserService, OpenLoginViewOptions} from './user.service.interface';\r\nimport {action, observable} from 'mobx';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {UserData} from '../sdk/sdk.service.interface';\r\nimport {Check, TimeSpan} from '@sparkware/app-utils';\r\nimport {OnOauthStateChangedParams} from '../sdk/sdk-events';\r\nimport {GetPlatformTokenResponse} from \"../sdk/cgp-sdk.interface\";\r\nimport {IAutoLoginParams} from '../../../common/interfaces/autologin-params.interface';\r\nimport {MarketingParams} from \"../../../common/interfaces/marketing-params.interface\";\r\nimport {\r\n createDefaultCashierWidgetEligibility,\r\n ICashierWidgetsEligibilityDetails\r\n} from \"../../../common/interfaces/cashier-widgets-eligibility-details.interface\";\r\n\r\nconst AUTOLOGIN_QUERY_PARAM = 'UserInfo';\r\n\r\nexport class UserService extends ServiceBase implements IUserService {\r\n\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n this.waitForAutoLogin();\r\n this._updateUserData({});\r\n this.services.sdk.events.onOAuthStateChanged(this._updateUserData);\r\n\r\n }\r\n\r\n @observable.ref isAuthorized: boolean = false;\r\n @observable.ref logoutReason: number = null;\r\n\r\n @observable.ref\r\n private _userData: UserData = {};\r\n\r\n @action.bound\r\n private _updateUserData(params: OnOauthStateChangedParams) {\r\n\r\n params = params || {};\r\n\r\n this.isAuthorized = this.services.sdk.isAuthorized;\r\n\r\n if (Check.isNullOrUndefined(params.logoutReason)) {\r\n this.logoutReason = null;\r\n } else {\r\n this.logoutReason = params.logoutReason;\r\n }\r\n\r\n const userData = (this.services.sdk.userData || {}) as UserData;\r\n\r\n if (!this.isAuthorized) {\r\n const playerStatus = this.services.localStorage.getItem('playerStatus');\r\n this.services.window.scrollTo(0,0);\r\n this._userData = {...userData, statusGroupId: (playerStatus ? parseInt(playerStatus): undefined)};\r\n } else {\r\n this._userData = userData;\r\n this.services.localStorage.setItem('playerStatus', userData.statusGroupId);\r\n\r\n this._checkForFaultyCStatus();\r\n }\r\n\r\n this._updateSegments();\r\n }\r\n\r\n // REQUIREMENT 1627624 - check if cStatus if false but user is logged in or FTD\r\n private _checkForFaultyCStatus() {\r\n const cStatus = this.services.cmsSegmentation.isCstatus;\r\n\r\n //cStatus is CMS segmentation indicates if the user is registered or FDL\r\n if (this.isAuthorized && cStatus === false) {\r\n //this.services.analytics.sendAnalytics(\"ERROR\", \"LOGGED_IN_CSTATUS_FALSE\", this.userData.cid);\r\n console.log('_checkForFaultyCStatus: ' + cStatus);\r\n }\r\n }\r\n\r\n @action.bound\r\n private _updateSegments() {\r\n this.segments = {\r\n IsAuthorized: this.isAuthorized,\r\n statusGroupId: this._userData.statusGroupId || 0,\r\n IsVIP: this._userData.IsVIP || false,\r\n GenderId: this._userData.GenderId || null,\r\n DaysSinceRegistration: this.daysSinceRegistration\r\n }\r\n }\r\n\r\n @observable.ref segments = {};\r\n\r\n\r\n get hasActiveChallenges(): boolean {\r\n return this.services.sdk.activeChallengeCount > 0;\r\n }\r\n\r\n\r\n get name(): string {\r\n return this._userData.userName || '';\r\n }\r\n\r\n\r\n get cid(): string {\r\n return this._userData.cid || '';\r\n }\r\n\r\n get registrationCountry(): string {\r\n return this._userData.registrationCountry;\r\n }\r\n\r\n get joinDate(): string {\r\n return this._userData.joinDate;\r\n }\r\n\r\n get userData() {\r\n return this._userData;\r\n }\r\n\r\n get isVip(): boolean {\r\n return (this._userData.statusGroupId > 0 && this._userData.statusGroupId !== 4);\r\n }\r\n\r\n get timeSinceRegistration(): TimeSpan {\r\n if (!this._userData)\r\n return null;\r\n if (!this._userData.timeSinceRegistration)\r\n return null;\r\n return TimeSpan.parse(this._userData.timeSinceRegistration);\r\n }\r\n\r\n get daysSinceRegistration(): number {\r\n if (this.timeSinceRegistration)\r\n return this.timeSinceRegistration.totalDays;\r\n\r\n return Infinity;\r\n }\r\n\r\n get playerRMSStatus(): number {\r\n return this._userData.playerRMStatus;\r\n }\r\n\r\n get depositWidgetEligibility(): ICashierWidgetsEligibilityDetails {\r\n return this._userData.depositWidgetEligibility || createDefaultCashierWidgetEligibility();\r\n }\r\n\r\n get cashOutWidgetEligibility(): ICashierWidgetsEligibilityDetails {\r\n return this._userData.cashOutWidgetEligibility || createDefaultCashierWidgetEligibility();\r\n }\r\n\r\n\r\n get countryName(): string {\r\n return this.services.sdk.getCountryName();\r\n }\r\n\r\n getAutoLoginToken(): Promise {\r\n return this.services.sdk.getAutoLoginToken().then(data => data.token);\r\n }\r\n\r\n getPlatformToken(): Promise {\r\n return this.services.sdk.getPlatformToken();\r\n }\r\n\r\n async openLogin(viewOptions: OpenLoginViewOptions = {}, marketing: MarketingParams = {}): Promise {\r\n await this.services.sdk.openLoginForm(viewOptions, marketing,);\r\n }\r\n\r\n logout(): Promise {\r\n return this.services.sdk.logout();\r\n }\r\n\r\n get genderTitle(): string {\r\n switch (this._userData.GenderId) {\r\n case 1:\r\n return 'MR_TITLE';\r\n case 2:\r\n return 'MRS_TITLE';\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n\r\n private _isInAutoLogin(): boolean {\r\n return this.services.sdk.isInAutologin();\r\n }\r\n\r\n waitForAutoLogin(): Promise {\r\n\r\n if (!this._isInAutoLogin()) {\r\n return Promise.resolve();\r\n }\r\n\r\n\r\n return this.services.sdk.waitForAutologin()\r\n .then(() => {\r\n return this._removeAutoLoginTokenFromUrl()\r\n .catch((err) => {\r\n this.services.logger.error('Remove auto login token from URL failed!', err);\r\n });\r\n\r\n });\r\n\r\n }\r\n\r\n private _removeAutoLoginTokenFromUrl(): Promise {\r\n const urlWithoutToken = this.services.location.currentUri.removeSearchParam(AUTOLOGIN_QUERY_PARAM).toString()\r\n return this.services.location.replace(urlWithoutToken);\r\n }\r\n\r\n\r\n runAutoLogin(autoLoginParams: IAutoLoginParams) {\r\n this.services.sdk.runAutoLogin(autoLoginParams);\r\n }\r\n\r\n panicRestrictUser(): Promise {\r\n const offset = this.services.time.getTimezoneOffset();\r\n\r\n return this.services.api.userController.selfExclusionPanic({\r\n timezoneOffset: offset,\r\n productPackage: this.services.sdk.getProductPackageId()\r\n }).then(() => {\r\n this.logout();\r\n }).catch((err) => {\r\n this.services.sdk.structuredLoggingService\r\n .getLogger()\r\n .addCategory(\"PANIC SELF EXCLUSION\")\r\n .addAction(\"SelfExclusion fails\")\r\n .addValue(JSON.stringify(err))\r\n .error();\r\n this.logout();\r\n this.services.logger.error('Self Exclusion Panic Failed.', err);\r\n });\r\n }\r\n\r\n get loginIP(): string | null {\r\n return this.services.sdk.tokenInfo?.loginIP;\r\n }\r\n}\r\n","export enum LIST_TYPE_ID {\r\n STICKINESS = 0,\r\n BETS = 2,\r\n ACTIVE_USERS = 1\r\n}","export interface ICashierWidgetsEligibilityDetails {\r\n isABEligible: boolean;\r\n isNtsEligible: boolean;\r\n ineligibleReason: string;\r\n errorCode: number;\r\n errorMessage: string;\r\n featureName?: string;\r\n testID?: number\r\n testGroup?: string;\r\n}\r\n\r\nexport function createDefaultCashierWidgetEligibility(): ICashierWidgetsEligibilityDetails {\r\n return {\r\n isABEligible: false,\r\n isNtsEligible: false,\r\n errorCode: 0,\r\n errorMessage: \"\",\r\n ineligibleReason: \"\"\r\n };\r\n}","import {ServiceBase} from \"../ServiceBase\";\r\nimport {IBrowserButtonsHandlerService} from \"./broswer-buttons-handler.service.interface\";\r\nimport {IServiceFactoryExtended} from \"../service-factory-extended.interface\";\r\nimport Device from \"../../../sdk/src/utils/device/device\";\r\n\r\nexport class BrowserButtonsHandlerService extends ServiceBase implements IBrowserButtonsHandlerService {\r\n\r\n private pushedFakeHistoryState: boolean = false;\r\n\r\n constructor(serviceFactory: IServiceFactoryExtended) {\r\n super(serviceFactory);\r\n this._subscribe();\r\n }\r\n\r\n private _subscribe() {\r\n // this._handleSideMenusCloseOnBackButtonClick();\r\n }\r\n\r\n private _handleSideMenusCloseOnBackButtonClick() {\r\n\r\n this.reaction(() => ({\r\n isMobileSideMenuOpen: this.services.sideMenu.isMobileMenuOpen,\r\n isUserAreaMenuOpen: this.services.userMenu.isOpen,\r\n }),\r\n ({isMobileSideMenuOpen, isUserAreaMenuOpen}) => {\r\n if(!this.pushedFakeHistoryState && (isMobileSideMenuOpen || isUserAreaMenuOpen)){\r\n this.services.location.pushWithoutValidation(this.services.window.pathname);\r\n this.pushedFakeHistoryState = true;\r\n }else if(this.pushedFakeHistoryState && !isMobileSideMenuOpen && !isUserAreaMenuOpen){\r\n this.services.location.goBack();\r\n }\r\n });\r\n\r\n this._onBackButtonClicked(() => {\r\n this.services.sideMenu.closeMobileMenu();\r\n this.services.userMenu.closeMenu();\r\n });\r\n }\r\n\r\n private _onBackButtonClicked(callback){\r\n const _callback = (e) => {\r\n this.pushedFakeHistoryState = false;\r\n callback(e);\r\n }\r\n\r\n if(Device.hybrid.inCasino){\r\n return this.services.window.subscribeTo.hardwareBackButton(_callback);\r\n }\r\n\r\n return this.services.window.subscribeTo.popstate(_callback);\r\n }\r\n}","import {ISegmentationAggregatorService} from './segmentation-aggregator.service.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {action, observable} from 'mobx';\r\n\r\nexport class SegmentationAggregatorService extends ServiceBase implements ISegmentationAggregatorService {\r\n constructor(serviceFactory: IServiceFactoryExtended) {\r\n super(serviceFactory);\r\n this.reaction(\r\n () => {\r\n return {\r\n userSegments: this.services.user.segments,\r\n cmsSegments: this.services.cmsSegmentation.segments,\r\n deviceSegments: this.services.device.segments,\r\n isMobile: this.services.device.isMobile,\r\n isMiniOrbit: this.services.miniOrbit.isEnabled,\r\n isPWAInstallable: this.services.progressiveWebApp.isPWAInstallable\r\n }\r\n },\r\n () => {\r\n this._updateSegments();\r\n },\r\n {\r\n fireImmediately: true\r\n });\r\n }\r\n\r\n private _updateSegments() {\r\n this._setAllSegments({\r\n ...this.services.cmsSegmentation.segments,\r\n ...this.services.user.segments,\r\n ...this.services.device.segments,\r\n ...this._extraSegments});\r\n }\r\n\r\n @observable.ref private _allSegments: Record = {};\r\n @observable.ref segmentsLastUpdate: number = null;\r\n\r\n\r\n @action.bound\r\n private _setAllSegments(allSegments) {\r\n this._allSegments = allSegments;\r\n this.segmentsLastUpdate = Date.now();\r\n }\r\n\r\n getSegmentValue(name: string): any {\r\n let segmentValue = this._allSegments[name];\r\n\r\n if(Check.isUndefined(segmentValue)) {\r\n this.services.logger.debug(`Segment ${name} doesn't exists in the segments list!`);\r\n }\r\n\r\n return segmentValue;\r\n }\r\n\r\n private get _extraSegments() {\r\n return {\r\n env: this.services.configuration.startupConfiguration.orbit.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\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: this._sdkDevice.model.isIpad ? \"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","import {HOME_PAGE_ARENA} from \"../services/arenas/arena-consts\";\r\n\r\nexport const SEO_CATEGORIES = {\r\n HOME: HOME_PAGE_ARENA,\r\n AI_GAMES_RECOMMENDATIONS: 'AI_GamesDisplayed',\r\n AI_NEW_GAMES_RECOMMENDATIONS: 'AI_NewGamesDisplayed'\r\n};\r\n\r\n","import {ServiceBase} from '../ServiceBase';\r\nimport {AiRecommendedGames, IAiEngineService, IAiSortOptions} from './ai-engine.service.interface';\r\nimport {action, observable} from 'mobx';\r\nimport {SEO_CATEGORIES} from '../../consts/seo-categories';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {LIST_TYPE_ID} from \"../../../common/const/ai-trending-list-ids-map\";\r\n\r\nexport const NO_AI_GAMES_RECOMMENDATIONS: AiRecommendedGames = {\r\n isInitialized: false,\r\n gameTypes: [],\r\n gameTypesMap: {},\r\n engine: undefined\r\n};\r\n\r\ninterface ITrendingGamesRecommendations {\r\n gamesByBets: number[];\r\n gamesByActiveUsers: number[];\r\n}\r\n\r\nexport class AiEngineService extends ServiceBase implements IAiEngineService {\r\n constructor(services: IServiceFactoryExtended){\r\n super(services);\r\n\r\n this.reaction(() => this.services.user.isAuthorized,\r\n () => this._onOauthChange(),\r\n {\r\n fireImmediately: true\r\n });\r\n\r\n this.services.sdk.events.onGamesQuestionnaireCompleted(async () => {\r\n await this._updateAiRecommendedGames();\r\n });\r\n }\r\n\r\n @observable.ref aiRecommendedGames: AiRecommendedGames = NO_AI_GAMES_RECOMMENDATIONS;\r\n\r\n @observable.ref _trendingGamesRecommendations: ITrendingGamesRecommendations | null = null;\r\n get trendingRecommendedGamesForPlayerByBets(): number[] | null {\r\n this._loadTrendingRecommendedGamesForPlayer();\r\n return this._trendingGamesRecommendations?.gamesByBets || null;\r\n }\r\n get trendingRecommendedGamesForPlayerByActiveUsers(): number[] | null {\r\n this._loadTrendingRecommendedGamesForPlayer();\r\n return this._trendingGamesRecommendations?.gamesByActiveUsers || null;\r\n }\r\n\r\n /**\r\n * @description: A map where the key is the game type and the value is then game position in the AI recommendation\r\n */\r\n @observable.ref private _allAiRecommendedGameTypes: Record;\r\n\r\n\r\n @action.bound\r\n private _setAiRecommendedGames(value: AiRecommendedGames) {\r\n\r\n let tempGameTypesMap = {};\r\n\r\n if (value.gameTypes) {\r\n value.gameTypes.forEach((gameType, i) => tempGameTypesMap[gameType] = i);\r\n }\r\n\r\n this.aiRecommendedGames = {\r\n ...value,\r\n gameTypes: (value.gameTypes || []),\r\n gameTypesMap: tempGameTypesMap\r\n };\r\n }\r\n\r\n @action.bound\r\n private _setTrendingRecommendedGamesForPlayer(trendingRecommendedGamesForPlayer: {[key: number]: number[]}) {\r\n this._trendingGamesRecommendations = {\r\n gamesByBets: (trendingRecommendedGamesForPlayer && trendingRecommendedGamesForPlayer[LIST_TYPE_ID.BETS]) || [],\r\n gamesByActiveUsers: (trendingRecommendedGamesForPlayer && trendingRecommendedGamesForPlayer[LIST_TYPE_ID.ACTIVE_USERS]) || []\r\n }\r\n }\r\n\r\n @action.bound\r\n private _setAllAiRecommendedGameTypes(gameTypes: number[]) {\r\n gameTypes = gameTypes || [];\r\n // creates a map where the key is the game type and the value is the index of that game type in the array\r\n this._allAiRecommendedGameTypes = gameTypes.reduce((acc, curr, index) => {\r\n acc[curr] = index;\r\n return acc;\r\n }, {});\r\n }\r\n\r\n private _onOauthChange() {\r\n this._initalizeTrendingRecommendations();\r\n this._updateAiRecommendedGames();\r\n }\r\n\r\n _initalizeTrendingRecommendations() {\r\n if(this.services.user.isAuthorized) {\r\n this._trendingGamesRecommendations = null;\r\n }\r\n }\r\n\r\n private async _updateAiRecommendedGames(): Promise {\r\n let aiRecommendationsData = await this.services.sdk.getAIRecommendations({filterOutRecentlyPlayedGames: true});\r\n\r\n this._setAiRecommendedGames({\r\n gameTypes: aiRecommendationsData.gameTypes,\r\n engine: aiRecommendationsData.engine,\r\n gameTypesMap: {},\r\n isInitialized: true\r\n });\r\n\r\n aiRecommendationsData = await this.services.sdk.getAIRecommendations({maxGames: 500, filterOutRecentlyPlayedGames: false});\r\n this._setAllAiRecommendedGameTypes(aiRecommendationsData.gameTypes || []);\r\n\r\n this._sendAIRecommendationAnalytics();\r\n }\r\n\r\n private _sendAIRecommendationAnalytics(): void {\r\n\r\n let analyticsObject = this.aiRecommendedGames.gameTypes.reduce((result, gameType, index) => {\r\n result[gameType] = index;\r\n return result;\r\n }, {});\r\n\r\n this.services.analytics.sendAIRecommendations({\r\n category: SEO_CATEGORIES.AI_GAMES_RECOMMENDATIONS,\r\n gameTypes: analyticsObject,\r\n engine: this.aiRecommendedGames.engine\r\n });\r\n }\r\n\r\n async getCasinoRecommendedDynamicListsForPlayer(listIDs: string[]): Promise> {\r\n return await this.services.api.insightController.getCasinoRecommendedDynamicListsForPlayer({\r\n listsIDs: listIDs\r\n });\r\n }\r\n\r\n sortGames(gameTypes: number[], options?: IAiSortOptions): number[] {\r\n const allAiRecommendedGameTypes = Check.isEmpty(options?.gamesMapOverride) ? this._allAiRecommendedGameTypes : options?.gamesMapOverride;\r\n if(!allAiRecommendedGameTypes || Object.keys(allAiRecommendedGameTypes).length === 0) {\r\n return gameTypes;\r\n }\r\n\r\n const ignoreNumberOfGames = Check.isNumber(options?.ignoreNumberOfGames) ? options.ignoreNumberOfGames : 0;\r\n let fixedGameTypes = ignoreNumberOfGames > 0 ? gameTypes.slice(0, ignoreNumberOfGames) : [];\r\n const aiGameTypes = ignoreNumberOfGames > 0 ? gameTypes.slice(ignoreNumberOfGames) : gameTypes;\r\n\r\n const originalIndexes = {};\r\n aiGameTypes.forEach((gt, index) => {\r\n originalIndexes[gt] = index;\r\n });\r\n\r\n aiGameTypes.sort((gt1, gt2) => {\r\n let index1 = allAiRecommendedGameTypes[gt1];\r\n let index2 = allAiRecommendedGameTypes[gt2];\r\n\r\n if(Check.isUndefined(index1) && Check.isUndefined(index2)) {\r\n return (originalIndexes[gt1] < originalIndexes[gt2]) ? -1 : 1;\r\n }\r\n\r\n if(Check.isUndefined(index1)) { //if gt1 is not in the AI recommendations\r\n return 1;\r\n } else if(Check.isUndefined(index2)) {\r\n return -1;\r\n }\r\n\r\n return (index1 < index2) ? -1 : 1; //gt1 goes before gt2 if index1 < index2\r\n });\r\n\r\n // concatenate fixed game types (not sorted) with ai sorted ones\r\n return fixedGameTypes.concat(aiGameTypes);\r\n }\r\n\r\n getAiEngine(): string | undefined {\r\n return this.aiRecommendedGames.engine;\r\n }\r\n\r\n getAiEngineForGame(gameType: number): string | undefined {\r\n return this.aiRecommendedGames.gameTypesMap[gameType] === undefined ? undefined : this.aiRecommendedGames.engine;\r\n }\r\n\r\n private _isLoadTrendingRecommendedGamesForPlayerInProgress = false;\r\n private async _loadTrendingRecommendedGamesForPlayer(): Promise {\r\n if(this._isLoadTrendingRecommendedGamesForPlayerInProgress) {\r\n return;\r\n }\r\n\r\n if(!Check.isNullOrUndefined(this._trendingGamesRecommendations)) {\r\n return;\r\n }\r\n\r\n this._isLoadTrendingRecommendedGamesForPlayerInProgress = true;\r\n try {\r\n const trendingRecommendedGames: { [key: number]: number[] } = await this.services.sdk.getTrendingRecommendedGamesForPlayer(LIST_TYPE_ID.BETS, LIST_TYPE_ID.ACTIVE_USERS);\r\n this._setTrendingRecommendedGamesForPlayer(trendingRecommendedGames);\r\n } finally {\r\n this._isLoadTrendingRecommendedGamesForPlayerInProgress = false;\r\n }\r\n\r\n }\r\n\r\n // List Type can be either 1 or 2, when 1 is sorted by bets and 2 is sorted by active_users\r\n private _getGamesTypesByListTypeID(listTypeId?: LIST_TYPE_ID): number[] {\r\n\r\n if(!Check.isNullOrUndefined(listTypeId)) {\r\n if (listTypeId === LIST_TYPE_ID.BETS) {\r\n return this.trendingRecommendedGamesForPlayerByBets;\r\n } else if(listTypeId === LIST_TYPE_ID.ACTIVE_USERS) {\r\n return this.trendingRecommendedGamesForPlayerByActiveUsers;\r\n } else {\r\n this.services.logger.error(`Fail to get ai games order from api. wrong listTypeId: ${listTypeId}`);\r\n }\r\n }\r\n\r\n return [];\r\n }\r\n\r\n sortGamesByAI(gamesTypesArray: number[], listTypeId: LIST_TYPE_ID) {\r\n const aiGamesByScore = this._getGamesTypesByListTypeID(listTypeId);\r\n if(!aiGamesByScore) {\r\n return gamesTypesArray;\r\n }\r\n \r\n return gamesTypesArray.sort((first,second) => {\r\n const firstGamePlace = aiGamesByScore.indexOf(first);\r\n const secondGamePlace = aiGamesByScore.indexOf(second);\r\n if(firstGamePlace === -1 || secondGamePlace === -1) {\r\n if(firstGamePlace === -1) {\r\n return secondGamePlace === -1 ? 0 : 1;\r\n } else {\r\n return -1;\r\n }\r\n }\r\n\r\n return firstGamePlace - secondGamePlace;\r\n });\r\n\r\n }\r\n}\r\n\r\n\r\n","import {GameInfo} from '../../games/game-info';\r\nimport {ActiveFilter} from '../games-filter.service.interface';\r\n\r\nexport enum FilterType {\r\n categoryFilter = 1,\r\n featureFilter = 2\r\n}\r\n\r\nexport interface IGameFilter {\r\n filterType: FilterType\r\n applyFilter(gameInfo: GameInfo, currentActiveFilters: ActiveFilter[]): boolean\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 {ICompanyViewModel} from \"../companies/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\n\r\ninterface OnEventParams {\r\n eventName: string;\r\n callback: Function;\r\n context: any;\r\n}\r\n\r\ninterface SendAnalyticsParams {\r\n category: string;\r\n action: string;\r\n label: string;\r\n value: string;\r\n omitStructuredLogger?: boolean\r\n}\r\n\r\ninterface GetAIListResponse {\r\n aiGameTypesArray: number[];\r\n aiEngine: string;\r\n}\r\n\r\n\r\n\r\n\r\nexport const CGP_EVENTS_NAMES = {\r\n ON_BEFORE_OAUTH_STATE_CHANGE: 'ON_BEFORE_OAUTH_STATE_CHANGE',\r\n OAUTH_STATE_CHANGE: 'OAUTH_STATE_CHANGE',\r\n RECENTLY_PLAYED_GAMES_UPDATED: 'RECENTLY_PLAYED_GAMES_UPDATED',\r\n AUTOLOGIN_SUCCESS: 'AUTOLOGIN_SUCCESS',\r\n AUTOLOGIN_FAILED: 'AUTOLOGIN_FAILED',\r\n DEEPLINK_RECEIVED: 'DEEPLINK_RECEIVED',\r\n GAME_OPEN: 'GAME_OPEN',\r\n CLOSE_GAME: 'CLOSE_GAME',\r\n PLAYER_ACTION: 'PLAYER_ACTION',\r\n LOGIN_FORM_OPEN: 'LOGIN_FORM_OPEN',\r\n LOGIN_FORM_CLOSE: 'LOGIN_FORM_CLOSE',\r\n TOKEN_LIFETIME_EXPIRED: 'TOKEN_LIFETIME_EXPIRED',\r\n LIVE_TABLES_UPDATE: 'LIVE_TABLES_UPDATE',\r\n GAMES_QUESTIONNAIRE_COMPLETED: 'GAMES_QUESTIONNAIRE_COMPLETED',\r\n FREE_PLAY_UPDATED: 'FREE_PLAY_UPDATED',\r\n LIVE_FEEDS_JACKPOT_AMOUNTS_UPDATED: 'LIVE_FEEDS_JACKPOT_AMOUNTS_UPDATED',\r\n LIVE_FEEDS_STATE_JACKPOTS_UPDATED: 'LIVE_FEEDS_STATE_JACKPOTS_UPDATED',\r\n GAME_POPUP_SHOW: 'GAME_POPUP_SHOW',\r\n BALANCE_UPDATED: 'BALANCE_UPDATED',\r\n BLUE_RIBBON_PARTY_JP_STATE_CHANGED: 'BLUE_RIBBON_PARTY_JP_STATE_CHANGED',\r\n BLUE_RIBBON_PARTY_JACKPOT_WIN: 'BLUE_RIBBON_PARTY_JACKPOT_WIN',\r\n BLUE_RIBBON_PARTY_JACKPOT_INSUFFICIENT_MONEY: 'BLUE_RIBBON_PARTY_JACKPOT_INSUFFICIENT_MONEY',\r\n BLUE_RIBBON_CONNECTION_COMPLETE: 'BLUE_RIBBON_CONNECTION_COMPLETE',\r\n BLUE_RIBBON_IS_ENABLED_CHANGED: 'BLUE_RIBBON_IS_ENABLED_CHANGED',\r\n SESSION_TIMER_UPDATE: 'SESSION_TIMER_UPDATE',\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 };\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\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 shouldReplaceLoginWithDownloadAppForMobileWebApp(): boolean;\r\n shouldPreventOpenGameForMobileWebApp(): boolean;\r\n getMinimumAge(): number;\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 getBrandID(): number;\r\n getCorrelatedGames(gameType: number, numberOfGames: number): Promise;\r\n getExternalBrandCallbackURL(): string;\r\n getExternalBrandCallbackURLMethod(): string;\r\n getGamesInfo(gameTypes: number[]): Promise;\r\n getGamesInfoForHistory(gameTypes: number[]): Promise;\r\n getGRSEnvironments(): Promise;\r\n getDepositWidgetEligibilityDetails(): ICashierWidgetsEligibilityDetails;\r\n getCashoutWidgetEligibilityDetails(): ICashierWidgetsEligibilityDetails;\r\n getSourceSubBrandName(): string;\r\n getSubBrandID(): number;\r\n dateAndTimeFormat(): DateAndTimeFormat;\r\n getUserData(): any;\r\n getUsername(): string;\r\n getSessionId(): string;\r\n getUserSegments(): CmsUserSignature;\r\n isAuthorized(): boolean;\r\n isLoginFromRegistration():boolean;\r\n getCGPMaxOverlayZIndex(): number;\r\n structuredLoggingService():IStructuredLoggingService;\r\n isVIP(): boolean;\r\n logout(): Promise;\r\n menuActionExecute(key: string): void;\r\n menuJSON(): Promise;\r\n onEvent(params: OnEventParams): CGPEventSubscription;\r\n routeChanged(): void;\r\n openExternalLink(params: any): Promise;\r\n openResponsibleGamingLink(view?:number):void;\r\n isGameRunning(): boolean;\r\n openGame(options: any): Promise;\r\n openInNewWindow(url: string, features?: string): void;\r\n openLoginForm(options: any): Promise;\r\n sendAnalytics(params: SendAnalyticsParams);\r\n setAutoLoginToken(autologinToken: any): void;\r\n startLiveTableFeeds(): void;\r\n stopLiveTableFeeds(): void;\r\n refreshThirdPartyVouchers(): void;\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 getTrendingRecommendedGamesForPlayer(listTypeId: number[]):Promise<{[key:number] : number[]}>;\r\n\r\n showToaster(toasterData: {}): unknown;\r\n getRegulationService(): ISdkRegulationService;\r\n\r\n waitForAutologin(): Promise;\r\n httpPost(url: string, requestData: unknown): Promise;\r\n httpGet(url: string, requestData: unknown): Promise;\r\n getConfigs(): any;\r\n loadScript(url: string, tagId?: string): Promise;\r\n getRefreshToken(): string;\r\n getCurrencyIso3(): string;\r\n readonly overlayZIndex: SdkOverlayZIndex;\r\n getGoogleClientID(): string;\r\n isInAutologin(): boolean;\r\n fireDepositWidgetClosed(): void;\r\n getToken(): ITokenInfo | null;\r\n\r\n continuePlayingCurrentGame(): void;\r\n openHistoryLink(): void;\r\n isDepositWidgetSupportedByHybrid(): boolean;\r\n getGeoLocationInfo(): Promise;\r\n getDownloadAppLink(): string;\r\n promptPushNotificationPermissionRequest(): void;\r\n openPopUpOnSecondWebView(content : string, timeout : number) : void;\r\n closePopUpOnSecondWebView() : void;\r\n bringOmgToFront(): void;\r\n getBurnoutAnimationZIndex(): number;\r\n getCompanyByName(name: string): Promise;\r\n openHistoryGame(request: IOpenHistoryGameRequest): Promise\r\n readonly hybrid: IHybridService;\r\n readonly currentRegulation: ILegacyRegulation;\r\n getCurrentBrowserTabId(): string;\r\n readonly hasOpenOverlays: boolean;\r\n}\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 {IBlueRibbonPartyJackpot} from '../../../common/interfaces/blue-ribbon-party-jackpot.interface';\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\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 interface OnBlueRibbonIsEnabledChangedParams {\r\n isEnabled: boolean;\r\n isAllLiveGamesPromotion: boolean;\r\n}\r\n\r\nexport class SdkEvents {\r\n constructor(private CGP: ICgpSdk) {\r\n\r\n }\r\n\r\n onOAuthStateChanged(callback: (params: OnOauthStateChangedParams) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.OAUTH_STATE_CHANGE,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onBeforeOAuthStateChanged(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.ON_BEFORE_OAUTH_STATE_CHANGE,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onDeepLinkReceived(callback: (deepLinkObject: any) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.DEEPLINK_RECEIVED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onShowGamePopup(callback: (args: OnShowGamePopupCallbackParams) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.GAME_POPUP_SHOW,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onGameOpen(callback: (params: OnGameOpenParams) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.GAME_OPEN,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onGameClose(callback: (params?: OnGameCloseParams) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.CLOSE_GAME,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n\r\n onPlayerAction(callback: (eventData: OnPlayerActionParams) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.PLAYER_ACTION,\r\n callback: (data) => callback(data || {} as OnPlayerActionParams),\r\n context: this\r\n });\r\n }\r\n\r\n onRecentlyPlayedGamesUpdated(callback: (gameTypes: number[]) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.RECENTLY_PLAYED_GAMES_UPDATED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onLoginFormOpen(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.LOGIN_FORM_OPEN,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onLoginFormClosed(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.LOGIN_FORM_CLOSE,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onTokenLifetimeExpired(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.TOKEN_LIFETIME_EXPIRED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onLiveTableFeedsUpdate(callback: (tablesData: LiveTables) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.LIVE_TABLES_UPDATE,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onGamesQuestionnaireCompleted(callback: () => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.GAMES_QUESTIONNAIRE_COMPLETED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onFreeplayVouchersUpdated(callback: (vouchers: []) => void):CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.FREE_PLAY_UPDATED,\r\n callback: callback,\r\n context: this\r\n })\r\n }\r\n\r\n onJackpotsWithStateUpdate(callback: (jackpots: unknown) => void) {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.LIVE_FEEDS_STATE_JACKPOTS_UPDATED,\r\n callback,\r\n context: this\r\n });\r\n }\r\n\r\n onJackpotsAmountsUpdate(callback: (jackpots: Record) => void) {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.LIVE_FEEDS_JACKPOT_AMOUNTS_UPDATED,\r\n callback,\r\n context: this\r\n });\r\n }\r\n\r\n onBlueRibbonPartyJackpotStateChanged(callback: (partyJackpot: IBlueRibbonPartyJackpot) => void) {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.BLUE_RIBBON_PARTY_JP_STATE_CHANGED,\r\n callback,\r\n context: this\r\n });\r\n }\r\n\r\n onBlueRibbonPartyJackpotWin(callback: (partyJackpot: IBlueRibbonPartyJackpot) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.BLUE_RIBBON_PARTY_JACKPOT_WIN,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onBlueRibbonPartyJackpotInsufficientMoney(callback: (partyJackpot: IBlueRibbonPartyJackpot) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.BLUE_RIBBON_PARTY_JACKPOT_INSUFFICIENT_MONEY,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onBlueRibbonConnectionComplete(callback: (partyJackpot: IBlueRibbonPartyJackpot) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.BLUE_RIBBON_CONNECTION_COMPLETE,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onBlueRibbonIsEnabledChanged(callback: (params: OnBlueRibbonIsEnabledChangedParams) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: CGP_EVENTS_NAMES.BLUE_RIBBON_IS_ENABLED_CHANGED,\r\n callback: 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: CGP_EVENTS_NAMES.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: CGP_EVENTS_NAMES.PROMOTIONS_CHANGED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onPostMessage(callback: (message: any) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.POST_MESSAGE_ARRIVE,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onHybridPostMessage(callback: (message: any) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.HYBRID_POST_MESSAGE_ARRIVE,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onFreePlayBatchAdded(callback: (data: IFreePlayVoucherData[]) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.SESSION_EVENT_FREE_PLAY_BATCH_ADDED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onFreePlayBatchUpdated(callback: (data: IFreePlayVoucherDelta[]) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.SESSION_EVENT_FREE_PLAY_BATCH_UPDATED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onFreePlayBatchRemoved(callback: (voucherIds: string[]) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.SESSION_EVENT_FREE_PLAY_BATCH_REMOVED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onThirdPartyVouchersReceived(callback: (vouchers: IFreePlayVoucherData[]) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.SESSION_EVENT_THIRD_PARTY_FREE_PLAY_UPDATED,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onHybridEmbeddedGameLoadingIndicatorUpdateV1(callback: (percentage: number | string) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.LOADING_INDICATOR_EMBEDDED_UPDATE,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n onHybridEmbeddedGameLoadingIndicatorUpdateV2(callback: (eventData: {statusBar: number | string; numberOfPackages: string}) => void): CGPEventSubscription {\r\n return this.CGP.onEvent({\r\n eventName: SYSTEM_EVENTS.LOADING_INDICATOR_EMBEDDED_UPDATE_V2,\r\n callback: callback,\r\n context: this\r\n });\r\n }\r\n\r\n}\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}","import {\r\n AIRecommendations,\r\n CmsUserSignature,\r\n ISdkService,\r\n SdkOpenExternalLinkParams,\r\n OpenGameOptions,\r\n UserData, GameRawData, ExternalBrandCallbackInfo, DateAndTimeFormat, ITokenInfo, IToasterParams\r\n} from './sdk.service.interface';\r\nimport {action, computed, observable} from 'mobx';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {\r\n DeviceInfo,\r\n GetAutoLoginTokenResponse,\r\n ICgpSdk,\r\n CgpSkinInfo,\r\n GetPlatformTokenResponse,\r\n ISdkUtils,\r\n ISdkRegulationService,\r\n IOpenHistoryGameRequest\r\n} from './cgp-sdk.interface';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IRunningGameHandler} from '../games/running-game-handler.interface';\r\nimport {OpenLoginViewOptions} from '../user/user.service.interface';\r\nimport {SdkEvents} from './sdk-events';\r\nimport {ISdkComponentRenderer} from '../sdk-component-factory/sdk-component-factory.service.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {IUsefulLinkSdkData} from \"../user-menu/useful-links/useful-link-data.interface\";\r\nimport {CGP_OBJECT_NAME} from '../../app-bootstrap/constants';\r\nimport {IAutoLoginParams} from '../../../common/interfaces/autologin-params.interface';\r\nimport { BalanceType } from '../../../common/const/wallet_balance_type';\r\nimport IStructuredLoggingService from \"../../../common/interfaces/structured-logging-service-interface\";\r\nimport {MarketingParams} from \"../../../common/interfaces/marketing-params.interface\";\r\nimport {IGeoLocationInfo} from \"../../../common/interfaces/geo-location-info.interface\";\r\nimport {createDefaultCashierWidgetEligibility} from \"../../../common/interfaces/cashier-widgets-eligibility-details.interface\";\r\nimport {ICompanyViewModel} from \"../companies/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\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\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 @action.bound\r\n private _setIsSdkReady(value: boolean) {\r\n this.isSdkReady = value;\r\n }\r\n\r\n getAIRecommendations(options?: IGetAiRecommendationsOptions): Promise {\r\n return this.CGP.getAIList(options?.maxGames, options?.filterOutRecentlyPlayedGames, options?.numberOfRecentlyPlayedGameToFilterOut).then(data => {\r\n return {\r\n gameTypes: data.aiGameTypesArray || [],\r\n engine: data.aiEngine\r\n };\r\n });\r\n }\r\n\r\n getTrendingRecommendedGamesForPlayer(...listTypeIds: number[]):Promise<{[key:number] : number[]}> {\r\n return this.CGP.getTrendingRecommendedGamesForPlayer(listTypeIds);\r\n }\r\n\r\n getAINewRecommendations(options?: IGetAiRecommendationsOptions): Promise {\r\n return this.CGP.getAINewGamesList(options?.maxGames, options?.filterOutRecentlyPlayedGames, options?.numberOfRecentlyPlayedGameToFilterOut).then(data => {\r\n return {\r\n gameTypes: data.aiGameTypesArray || [],\r\n engine: data.aiEngine\r\n };\r\n });\r\n }\r\n\r\n getCurrentServerDate(): Date {\r\n return this.CGP.getCurrentServerDate();\r\n }\r\n\r\n getAbTestingData(): { [key: string]: IAbTestingFeatureProperties } {\r\n return this.CGP.getAbTestingData();\r\n }\r\n\r\n getAbTestingDataForFeature(featureName: string): IAbTestingFeatureProperties {\r\n return this.CGP.getAbTestingDataForFeature(featureName);\r\n }\r\n\r\n waitForAnonymousAbTestingData(): Promise {\r\n return this.CGP.waitForAnonymousAbTestingData();\r\n }\r\n\r\n sendAnalytics(category: string, action: string = null, label: string = null, value: string = null, omitStructuredLogger: boolean = null) {\r\n try {\r\n this.CGP.sendAnalytics({\r\n category: category,\r\n action: action,\r\n label: label,\r\n value: value,\r\n omitStructuredLogger: omitStructuredLogger\r\n });\r\n } catch (ex) {\r\n this.services.logger.error(`SdkService failed to sendAnalytics: ${ex}`);\r\n }\r\n }\r\n\r\n getCmsUserSignature(): CmsUserSignature {\r\n return this.CGP.getUserSegments();\r\n }\r\n\r\n formatMoney(value: number, withDecimal: boolean = false): string {\r\n return this.CGP.format$$$(value, withDecimal);\r\n }\r\n\r\n get device(): DeviceInfo {\r\n return this.CGP.device();\r\n }\r\n\r\n waitForAutologin(): Promise {\r\n return this.CGP.waitForAutologin();\r\n }\r\n\r\n openExternalLink(linkParams: SdkOpenExternalLinkParams, useCallbackURL = false): Promise {\r\n\r\n let params: any = {...linkParams};\r\n\r\n //F TO DO - this if statement should be in SDK\r\n if(useCallbackURL && params.source === this.CGP.getSourceSubBrandName()) {\r\n params.callbackUrl = this.CGP.getExternalBrandCallbackURL();\r\n }\r\n\r\n return this.CGP.openExternalLink(params);\r\n }\r\n\r\n openResponsibleGamingLink(view?:number):void{\r\n this.CGP.openResponsibleGamingLink(view);\r\n }\r\n\r\n isGameRunning(): boolean{\r\n return this.CGP.isGameRunning();\r\n }\r\n\r\n async openGame(options: OpenGameOptions): Promise {\r\n\r\n let openGameOptions: any = {...options};\r\n if(!options.showRegister) {\r\n openGameOptions.navbar = { //F TO DO - do we realy need this navbar option ?\r\n login: {\r\n showRegister: false\r\n }\r\n }\r\n }\r\n\r\n return await this.CGP.openGame(openGameOptions);\r\n\r\n }\r\n\r\n async openLoginForm(viewOptions: OpenLoginViewOptions = {}, marketing: MarketingParams = {}): Promise {\r\n if (!viewOptions['marketingDataFn']) {\r\n marketing = marketing || {};\r\n viewOptions['marketingDataFn'] = 'getMarketingData(' + JSON.stringify(marketing) + ')';\r\n }\r\n\r\n await this.CGP.openLoginForm(viewOptions);\r\n }\r\n\r\n createComponentRenderer(componentId: string): ISdkComponentRenderer {\r\n return this.CGP.createComponentRenderer(componentId) as ISdkComponentRenderer;\r\n }\r\n\r\n getGamesInfoForHistory(gameTypes: number[]): Promise {\r\n return this.CGP.getGamesInfoForHistory(gameTypes);\r\n }\r\n\r\n getGamesInfo(gameTypes: number[]): Promise {\r\n return this.CGP.getGamesInfo(gameTypes);\r\n }\r\n\r\n getAutoLoginToken(): Promise {\r\n return this.CGP.getAutoLoginToken();\r\n }\r\n\r\n getPlatformToken(): Promise {\r\n return this.CGP.getPlatformToken();\r\n }\r\n\r\n 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(): void {\r\n 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 shouldReplaceLoginWithDownloadAppForMobileWebApp: () => this.CGP.getSkin().shouldReplaceLoginWithDownloadAppForMobileWebApp(),\r\n shouldPreventOpenGameForMobileWebApp: () => this.CGP.getSkin().shouldPreventOpenGameForMobileWebApp(),\r\n getBrandName: () => this.CGP.getSkin().getBrandName(),\r\n getMinimumAge: () => this.CGP.getSkin().getMinimumAge()\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\r\n httpPost(url: string, requestData: unknown): Promise {\r\n return this.CGP.httpPost(url, requestData);\r\n }\r\n httpGet(url: string, requestData: unknown): Promise {\r\n return this.CGP.httpGet(url, requestData);\r\n }\r\n getConfigs(): any {\r\n return this.CGP.getConfigs();\r\n }\r\n\r\n loadScript(url: string, tagId?: string): Promise {\r\n return this.CGP.loadScript(url, tagId);\r\n }\r\n\r\n getRefreshToken(): string {\r\n return this.CGP.getRefreshToken();\r\n }\r\n\r\n getCurrencyIso3(): string {\r\n return this.CGP.getCurrencyIso3();\r\n }\r\n\r\n get overlayZIndex() {\r\n return this.CGP.overlayZIndex;\r\n }\r\n\r\n getGoogleClientID(): string {\r\n return this.CGP.getGoogleClientID();\r\n }\r\n\r\n isInAutologin(): boolean {\r\n return this.CGP.isInAutologin();\r\n }\r\n\r\n fireDepositWidgetClosed(): void {\r\n this.CGP.fireDepositWidgetClosed();\r\n }\r\n\r\n get tokenInfo(): ITokenInfo | null {\r\n return this.CGP.getToken() || null;\r\n }\r\n\r\n redirectToHistory(): void {\r\n return this.CGP.openHistoryLink();\r\n }\r\n\r\n continuePlayingCurrentGame(): void {\r\n return this.CGP.continuePlayingCurrentGame();\r\n }\r\n\r\n getGeoLocationInfo(): Promise {\r\n return this.CGP.getGeoLocationInfo();\r\n }\r\n\r\n getDownloadAppLink(): string {\r\n return this.CGP.getDownloadAppLink();\r\n }\r\n\r\n isDepositWidgetSupportedByHybrid(): boolean {\r\n return this.CGP.isDepositWidgetSupportedByHybrid();\r\n }\r\n\r\n promptPushNotificationPermissionRequest(){\r\n return this.CGP.promptPushNotificationPermissionRequest();\r\n }\r\n\r\n openPopUpOnSecondWebView(content: string, timeout : number) : void {\r\n this.CGP.openPopUpOnSecondWebView(content, timeout);\r\n }\r\n\r\n closePopUpOnSecondWebView() : void {\r\n this.CGP.closePopUpOnSecondWebView();\r\n }\r\n\r\n bringOmgToFront(): void {\r\n this.CGP.bringOmgToFront();\r\n }\r\n\r\n getBurnoutAnimationZIndex() {\r\n return this.CGP.getBurnoutAnimationZIndex();\r\n }\r\n\r\n getCompanyByName(name: string): Promise {\r\n return this.CGP.getCompanyByName(name);\r\n }\r\n\r\n openHistoryGame(request: IOpenHistoryGameRequest): Promise {\r\n return this.CGP.openHistoryGame(request);\r\n }\r\n\r\n get hybrid(): IHybridService {\r\n return this.CGP.hybrid;\r\n }\r\n\r\n get currentRegulation(): ILegacyRegulation {\r\n return this.CGP.currentRegulation;\r\n }\r\n\r\n eventsTrigger: SdkEventsTrigger = new SdkEventsTrigger();\r\n\r\n getCurrentBrowserTabId(): string {\r\n return this.CGP.getCurrentBrowserTabId();\r\n }\r\n\r\n get hasOpenOverlays(): boolean {\r\n return this.CGP.hasOpenOverlays;\r\n }\r\n}","import {FilterType, IGameFilter} from './game-filter.interface';\r\nimport {GameInfo} from '../../games/game-info';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {ActiveFilter} from '../games-filter.service.interface';\r\n\r\nexport class OtherFilter implements IGameFilter {\r\n constructor(allAvailableFilters: {[key: string]: IGameFilter}) {\r\n\r\n Object.keys(allAvailableFilters).forEach(key => {\r\n let availableFilter = allAvailableFilters[key];\r\n if(availableFilter instanceof OtherFilter) {\r\n return;\r\n }\r\n\r\n if(availableFilter.filterType !== FilterType.categoryFilter) {\r\n return;\r\n }\r\n\r\n this._allOtherCategoryFilters[key] = availableFilter;\r\n\r\n });\r\n }\r\n\r\n private _allOtherCategoryFilters: {[key: string]: IGameFilter} = {};\r\n\r\n get filterType(): FilterType {\r\n return FilterType.categoryFilter;\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo, currentActiveFilters: ActiveFilter[]): boolean {\r\n\r\n let activeCategoryFiltes = currentActiveFilters.map(activeFilter => this._allOtherCategoryFilters[activeFilter.id])\r\n .filter(filter => !Check.isNullOrUndefined(filter));\r\n\r\n for(let i = 0, len = activeCategoryFiltes.length; i < len; i++) {\r\n // if any of the other filters apply to this game then it means this game doesn't fall in to the \"others\" category\r\n if(activeCategoryFiltes[i].applyFilter(gameInfo, currentActiveFilters)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\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\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 {FilterType, IGameFilter} from './game-filter.interface';\r\nimport {GameInfo} from '../../games/game-info';\r\nimport {ActiveFilter} from '../games-filter.service.interface';\r\nimport {removeSpaces} from \"../../../../utils/string-helpers\";\r\n\r\nexport class VendorFilter implements IGameFilter {\r\n constructor(private _vendorName: string) {\r\n\r\n }\r\n\r\n get filterType(): FilterType {\r\n return FilterType.featureFilter;\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo, currentActiveFilters: ActiveFilter[]): boolean {\r\n return removeSpaces(gameInfo.vendorName.toLowerCase()) === removeSpaces(this._vendorName.toLowerCase());\r\n }\r\n\r\n}\r\n","import {FilterType, IGameFilter} from './game-filter.interface';\r\nimport {GameInfo} from '../../games/game-info';\r\nimport {ActiveFilter} from '../games-filter.service.interface';\r\n\r\nexport class CustomFilter implements IGameFilter {\r\n constructor(private _filterType: FilterType, private _evaluate: (gameInfo: GameInfo) => boolean) {\r\n }\r\n\r\n get filterType(): FilterType {\r\n return this._filterType;\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo, currentActiveFilters: ActiveFilter[]): boolean {\r\n return this._evaluate(gameInfo);\r\n }\r\n}\r\n","import {FilterType, IGameFilter} from './game-filter.interface';\r\nimport {GameInfo} from '../../games/game-info';\r\nimport {ActiveFilter} from '../games-filter.service.interface';\r\nimport {Check} from \"@sparkware/app-utils\";\r\n\r\nexport class GameGroupFilter implements IGameFilter {\r\n constructor(private _gameGroupName: string | string[] ) {\r\n }\r\n\r\n get filterType(): FilterType {\r\n return FilterType.categoryFilter\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo, currentActiveFilters: ActiveFilter[]): boolean {\r\n if(Check.isArray(this._gameGroupName)) {\r\n for(let i = 0; i < this._gameGroupName.length;i++){\r\n if (this._gameGroupName[i] === gameInfo.gameGroup){\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n return gameInfo.gameGroup === this._gameGroupName;\r\n }\r\n}\r\n","import {FilterType, IGameFilter} from './game-filter.interface';\r\nimport {GameInfo} from '../../games/game-info';\r\nimport {ActiveFilter} from '../games-filter.service.interface';\r\nimport { Check } from '@sparkware/app-utils';\r\n\r\nexport class SubgroupNameFilter implements IGameFilter {\r\n constructor(private _subGroupName: string) {\r\n\r\n }\r\n get filterType(): FilterType {\r\n return FilterType.categoryFilter;\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo, currentActiveFilters: ActiveFilter[]): boolean {\r\n if(Check.isNullOrUndefined(gameInfo.subGroupName)){\r\n return false;\r\n }\r\n\r\n return gameInfo.subGroupName.toLowerCase().indexOf(this._subGroupName) !== -1;\r\n }\r\n}\r\n","import {FilterType, IGameFilter} from './game-filter.interface';\r\nimport {GameInfo} from '../../games/game-info';\r\nimport {ActiveFilter} from '../games-filter.service.interface';\r\nimport {GameGroupFilter} from \"./game-group.filter\";\r\nimport {SubgroupNameFilter} from \"./subgroup-name.filter\";\r\n\r\nexport class AllRouletteFilter implements IGameFilter {\r\n\r\n get filterType(): FilterType {\r\n return FilterType.categoryFilter\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo, currentActiveFilters: ActiveFilter[]): boolean {\r\n return new GameGroupFilter('Roulette').applyFilter(gameInfo, currentActiveFilters)\r\n || new SubgroupNameFilter('roulette').applyFilter(gameInfo, currentActiveFilters)\r\n }\r\n}\r\n","import {FilterType, IGameFilter} from './game-filter.interface';\r\nimport {GameInfo} from '../../games/game-info';\r\nimport {ActiveFilter} from '../games-filter.service.interface';\r\nimport {GameGroupFilter} from \"./game-group.filter\";\r\nimport {SubgroupNameFilter} from \"./subgroup-name.filter\";\r\n\r\nexport class AllBlackjackFilter implements IGameFilter {\r\n\r\n get filterType(): FilterType {\r\n return FilterType.categoryFilter\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo, currentActiveFilters: ActiveFilter[]): boolean {\r\n return new GameGroupFilter('Blackjack').applyFilter(gameInfo, currentActiveFilters)\r\n || new SubgroupNameFilter('blackjack').applyFilter(gameInfo, currentActiveFilters)\r\n }\r\n}\r\n","import {FilterType, IGameFilter} from './game-filter.interface';\r\nimport {GameInfo} from '../../games/game-info';\r\nimport {ActiveFilter} from '../games-filter.service.interface';\r\nimport {SubgroupNameFilter} from \"./subgroup-name.filter\";\r\n\r\nexport class AllPokerFilter implements IGameFilter {\r\n\r\n get filterType(): FilterType {\r\n return FilterType.categoryFilter\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo, currentActiveFilters: ActiveFilter[]): boolean {\r\n return gameInfo.gameGroup.toLowerCase().indexOf('poker') !== -1\r\n || new SubgroupNameFilter('poker').applyFilter(gameInfo, currentActiveFilters)\r\n }\r\n}\r\n","import {FilterType, IGameFilter} from './game-filter.interface';\r\nimport {GameInfo} from '../../games/game-info';\r\nimport {ActiveFilter} from '../games-filter.service.interface';\r\nimport {GameGroupFilter} from \"./game-group.filter\";\r\nimport {SubgroupNameFilter} from \"./subgroup-name.filter\";\r\n\r\nexport class AllBaccaratFilter implements IGameFilter {\r\n\r\n get filterType(): FilterType {\r\n return FilterType.categoryFilter\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo, currentActiveFilters: ActiveFilter[]): boolean {\r\n return new GameGroupFilter('Baccarat').applyFilter(gameInfo, currentActiveFilters)\r\n || new SubgroupNameFilter('baccarat').applyFilter(gameInfo, currentActiveFilters)\r\n }\r\n}","import {Check} from '@sparkware/app-utils';\r\nimport {VendorFilter} from './filters/vendor.filter';\r\nimport {CustomFilter} from './filters/custom.filter';\r\nimport {GameGroupFilter} from './filters/game-group.filter';\r\nimport {FilterType} from './filters/game-filter.interface';\r\nimport {AllRouletteFilter} from \"./filters/all-roulette.filter\";\r\nimport {AllBlackjackFilter} from \"./filters/all-blackjack.filter\";\r\nimport {SubgroupNameFilter} from \"./filters/subgroup-name.filter\";\r\nimport {AllPokerFilter} from \"./filters/all-poker.filter\";\r\nimport {AllBaccaratFilter} from \"./filters/all-baccarat.filter\";\r\n\r\nconst FILTERS = {\r\n 'one-to-twenty-five': new CustomFilter(FilterType.categoryFilter, (gameInfo) => Check.isNumber(gameInfo.numberOfLines) && gameInfo.numberOfLines >= 1 && gameInfo.numberOfLines <= 24),\r\n 'twenty-five-plus': new CustomFilter(FilterType.categoryFilter, (gameInfo) => Check.isNumber(gameInfo.numberOfLines) && gameInfo.numberOfLines >= 25),\r\n 'roulette': new GameGroupFilter('Roulette'),\r\n 'blackjack': new GameGroupFilter('Blackjack'),\r\n 'baccarat': new GameGroupFilter('Baccarat'),\r\n 'videoPoker': new GameGroupFilter('VideoPoker'),\r\n 'keno': new GameGroupFilter('Keno'),\r\n 'craps': new GameGroupFilter('Craps'),\r\n 'slots': new GameGroupFilter(['Slot','VideoSlot']),\r\n 'poker': new CustomFilter( FilterType.categoryFilter, (game) => game.gameGroup.toLowerCase().indexOf('poker') !== -1),\r\n 'live-poker': new SubgroupNameFilter('poker'),\r\n 'live-blackjack': new SubgroupNameFilter('blackjack'),\r\n 'live-roulette': new SubgroupNameFilter('roulette'),\r\n 'live-baccarat': new SubgroupNameFilter('baccarat'),\r\n 'live-game-shows': new SubgroupNameFilter('shows'),\r\n 'live-elite-lounge': new CustomFilter( FilterType.categoryFilter, (game) => game.isEliteLounge),\r\n 'live-elite-lounge-or-exclusive': new CustomFilter(FilterType.categoryFilter, (game) => game.isEliteLounge || game.isExclusiveGame),\r\n 'all-roulette': new AllRouletteFilter(),\r\n 'all-blackjack': new AllBlackjackFilter(),\r\n 'all-baccarat': new AllBaccaratFilter(),\r\n 'all-poker': new AllPokerFilter(),\r\n 'scratchCards': new GameGroupFilter('Scratch Card'),\r\n 'jackpot': new CustomFilter( FilterType.featureFilter, (game) => game.hasJackpot),\r\n 'new': new CustomFilter( FilterType.featureFilter, (game) => game.isNewGame),\r\n 'lowStakes': new CustomFilter( FilterType.featureFilter, (game) => game.hasLowStakes),\r\n 'classicSlots': new CustomFilter( FilterType.featureFilter, (game) => game.isClassicSlot),\r\n 'bonus': new CustomFilter( FilterType.featureFilter, (game) => game.hasBonusGames),\r\n 'freeSpins': new CustomFilter( FilterType.featureFilter, (game) => game.hasFreeSpins),\r\n 'highVolatility': new CustomFilter( FilterType.featureFilter, (game) => game.hasHighVolatility),\r\n 'lowVolatility': new CustomFilter( FilterType.featureFilter, (game) => game.hasLowVolatility),\r\n 'vendor_888': new VendorFilter('888'),\r\n 'vendor_netent': new VendorFilter('NetEnt'),\r\n 'vendor_playngo': new VendorFilter('play n go'),\r\n 'vendor_redtiger': new VendorFilter('Red Tiger'),\r\n 'vendor_quickspin': new VendorFilter('Quickspin'),\r\n 'vendor_yggdrasil': new VendorFilter('yggdrasil'),\r\n 'vendor_merkur': new VendorFilter('merkur'),\r\n 'vendor_gamomat': new VendorFilter('gamomat'),\r\n 'vendor_EGT': new VendorFilter('EGT'),\r\n 'vendor_MGA': new VendorFilter('MGA'),\r\n 'vendor_playtech': new VendorFilter('PlayTech'),\r\n 'vendor_pragmatic': new VendorFilter('Pragmatic'),\r\n 'vendor_blueprint': new VendorFilter('Blueprint'),\r\n};\r\n\r\nexport {FILTERS};\r\n","import {FilterType, IGameFilter} from './game-filter.interface';\r\nimport {GameInfo} from '../../games/game-info';\r\nimport {ActiveFilter} from '../games-filter.service.interface';\r\nimport {removeSpaces} from \"../../../../utils/string-helpers\";\r\n\r\nexport class CompanyFilter implements IGameFilter {\r\n constructor(private _companyName: string) {\r\n\r\n }\r\n get filterType(): FilterType {\r\n return FilterType.featureFilter;\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo, currentActiveFilters: ActiveFilter[]): boolean {\r\n return removeSpaces(gameInfo.companyName.toLowerCase()) === removeSpaces(this._companyName.toLowerCase());\r\n }\r\n\r\n}\r\n","import {FilterType, IGameFilter} from './game-filter.interface';\r\nimport {GameInfo} from '../../games/game-info';\r\nimport {ActiveFilter} from '../games-filter.service.interface';\r\n\r\nexport class GameTypesFilter implements IGameFilter {\r\n constructor(private _gameTypes: number[]) {\r\n\r\n }\r\n get filterType(): FilterType {\r\n return FilterType.featureFilter;\r\n }\r\n\r\n applyFilter(gameInfo: GameInfo, currentActiveFilters: ActiveFilter[]): boolean {\r\n return (this._gameTypes.indexOf(gameInfo.gameType) >= 0);\r\n }\r\n\r\n}\r\n","import {FilterType, IGameFilter} from './filters/game-filter.interface';\r\nimport {GamesMap} from '../games/games.service.interface';\r\nimport {OtherFilter} from './filters/other.filter';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {action, computed, observable} from 'mobx';\r\nimport {ActiveFilter, IGamesFilterService} from './games-filter.service.interface';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {FILTERS} from './filters-definitions';\r\nimport {VendorFilter} from './filters/vendor.filter';\r\nimport {CompanyFilter} from './filters/company.filter';\r\nimport {GameGroupFilter} from './filters/game-group.filter';\r\nimport {GameTypesFilter} from './filters/game-types.filter';\r\nimport {Check} from \"@sparkware/app-utils\";\r\n\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._availableGamesFilters = {...FILTERS, other: new OtherFilter( FILTERS)};\r\n\r\n this.reaction(() => {\r\n return {\r\n filters: this._currentFilters,\r\n searchText: this._searchText,\r\n gamesMap: this.services.games.gamesMap\r\n }\r\n },\r\n (data) => {\r\n this.filteredGamesMap = this._applyFiltering(data.gamesMap, data.filters, data.searchText);\r\n if(!Check.isEmpty(data.gamesMap)) {\r\n this.isFilteredGamesMapInitialized = true;\r\n }\r\n });\r\n\r\n this.reaction(() => {\r\n return {\r\n arenaName: this.services.routing.currentRoute.data && this.services.routing.currentRoute.data.arenaType,\r\n fragment: this.services.location.currentUri.hash.value\r\n }\r\n\r\n }, (routeData) => {\r\n this._setCurrentFilters(routeData.arenaName, routeData.fragment);\r\n }, {\r\n fireImmediately: true\r\n });\r\n }\r\n\r\n @observable.ref isFilteredGamesMapInitialized = false;\r\n\r\n @observable.ref private _searchText: string = '';\r\n\r\n _filterByTextDebounceTimeout: number | null = null;\r\n\r\n filterByText(text: string): void {\r\n if (this._filterByTextDebounceTimeout) {\r\n clearTimeout(this._filterByTextDebounceTimeout);\r\n }\r\n\r\n this._filterByTextDebounceTimeout = setTimeout(() => {\r\n this._setSearchText(text);\r\n }, 50);\r\n }\r\n\r\n @action.bound\r\n private _setSearchText(text: string): void {\r\n text = text || '';\r\n text = text.trim().replace(/^\\s+/g, '').replace(/\\s\\s+/g, ' ');\r\n this._searchText = text; // removeSpecialCharacters(text); // TODO check if we really need this\r\n }\r\n\r\n private _availableGamesFilters:{[key: string]: IGameFilter};\r\n\r\n @observable.ref private _currentFilters: ActiveFilter[] = [];\r\n @computed public get currentFilters(): ActiveFilter[] {\r\n return this._currentFilters.filter(f => !f.isDynamic);\r\n }\r\n\r\n @action.bound\r\n private _setCurrentFilters(arenaName: string, fragment: string) {\r\n let arenaFilters = this._getArenaFilters(arenaName);\r\n let filtersFromFragment = this._extractFiltersFromFragment(fragment);\r\n\r\n let newFilters = arenaFilters.map(filter => {\r\n let filterFromFragmentIndex = filtersFromFragment.findIndex(filterId => filterId === filter.id);\r\n if(0 <= filterFromFragmentIndex) {\r\n return this._cloneFilter(filter, true);\r\n } else {\r\n return this._cloneFilter(filter, false);\r\n }\r\n });\r\n\r\n // Load dynamic filters\r\n filtersFromFragment.forEach(filterFromFragment => {\r\n if(arenaFilters.filter(f => f.id === filterFromFragment).length === 0) {\r\n const dynamicFilter = this.services.dynamicFilterFactory.createDynamicFilter(filterFromFragment);\r\n\r\n if(dynamicFilter) {\r\n this._availableGamesFilters[dynamicFilter.filterID] = dynamicFilter.gameFilter;\r\n newFilters.push(dynamicFilter.activeFilter);\r\n }\r\n }\r\n });\r\n\r\n this._currentFilters = newFilters;\r\n }\r\n\r\n @computed\r\n get isFilterOn(): boolean {\r\n return this._currentFilters.filter(f => f.on).length > 0;\r\n }\r\n\r\n\r\n @observable.ref filteredGamesMap: GamesMap = {};\r\n\r\n private _applyFiltering(gamesMap: GamesMap, currentActiveFilters: ActiveFilter[], searchText: string): GamesMap {\r\n return this._applyTextFiltering(this._applyGamesFilters(currentActiveFilters, gamesMap), searchText);\r\n }\r\n\r\n private _applyGamesFilters(currentActiveFilters: ActiveFilter[], gamesMap: GamesMap): GamesMap {\r\n if(!currentActiveFilters) {\r\n return gamesMap;\r\n }\r\n\r\n let onFilters = currentActiveFilters.filter(f => f.on);\r\n\r\n if(onFilters.length === 0) {\r\n return gamesMap;\r\n }\r\n\r\n let onFiltersGroupedByType = {\r\n [FilterType.categoryFilter]: [] as IGameFilter[],\r\n [FilterType.featureFilter]: [] as IGameFilter[]\r\n };\r\n\r\n onFilters.forEach(filter => {\r\n let filterDefinition = this._availableGamesFilters[filter.id];\r\n if(filterDefinition) {\r\n onFiltersGroupedByType[filterDefinition.filterType].push(filterDefinition);\r\n } else {\r\n this.services.logger.error(`There is no defined filter with ID ${filter.id}`);\r\n }\r\n });\r\n\r\n let result: GamesMap = {};\r\n\r\n Object.values(gamesMap).forEach(gameInfo => {\r\n let categoriesFilters = onFiltersGroupedByType[FilterType.categoryFilter];\r\n if((categoriesFilters.length === 0 || this._checkCategories(gameInfo, categoriesFilters, currentActiveFilters))\r\n && this._checkFeatures(gameInfo, onFiltersGroupedByType[FilterType.featureFilter], currentActiveFilters)) {\r\n result[gameInfo.gameType] = gameInfo\r\n }\r\n });\r\n\r\n\r\n return result;\r\n }\r\n\r\n private _applyTextFiltering(gamesMap: GamesMap, searchText: string): GamesMap {\r\n if(!searchText) {\r\n return gamesMap\r\n }\r\n\r\n let result: GamesMap = {};\r\n\r\n let searchWordsRegExp = searchText.split(' ').map(word => new RegExp(word, 'gi'));\r\n\r\n Object.values(gamesMap).forEach(gameInfo => {\r\n if(gameInfo.isAllWordsMatch(searchWordsRegExp)) {\r\n result[gameInfo.gameType] = gameInfo;\r\n }\r\n });\r\n\r\n return result;\r\n\r\n }\r\n\r\n\r\n\r\n private _checkCategories(game, filters, currentActiveFilters: ActiveFilter[]){\r\n for(let filter of filters){\r\n if(filter.applyFilter(game, currentActiveFilters)){\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private _checkFeatures(game, filters, currentActiveFilters: ActiveFilter[]){\r\n for(let filter of filters){\r\n if(!filter.applyFilter(game, currentActiveFilters)){\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n private _getArenaFilters(arenaName: string): ActiveFilter[] {\r\n let arena = this.services.configuration.data.arenas[arenaName];\r\n if(!arena) {\r\n return [];\r\n }\r\n\r\n let filters = arena.filters || [];\r\n\r\n return filters.filter(({display}) => display !== false).map(filter => {\r\n return {\r\n id: filter.id,\r\n on: false,\r\n text: filter.text ? this.services.translation.translate(filter.text) : \"\",\r\n isDynamic: false\r\n };\r\n });\r\n }\r\n\r\n private _extractFiltersFromFragment(fragment): string[] {\r\n\r\n if(fragment) {\r\n let params = fragment.split('=');\r\n if(params[0] === 'filters') {\r\n return params[1].split(',');\r\n }\r\n }\r\n\r\n return [];\r\n }\r\n\r\n /**\r\n * change filter to on and if already on - not change him.\r\n * only one filter can be on.\r\n * @param filterId\r\n */\r\n runFilter(filterId: string) {\r\n // we should use _getAllFiltersDisabled and not _disableAllFilters because we don't want to refresh the dom yet.\r\n let disabledFilters = this._getAllFiltersDisabled()\r\n\r\n let newFilters = disabledFilters.map(filter => {\r\n if(filter.id === filterId && !filter.on) {\r\n return this._cloneFilter(filter, !filter.on);\r\n } else {\r\n return filter;\r\n }\r\n });\r\n this._doFilterNavigation(newFilters);\r\n }\r\n\r\n clearFilters(shouldRedirect: boolean = true): void {\r\n this._disableAllFilters();\r\n if(shouldRedirect) {\r\n this._doFilterNavigation(this._currentFilters);\r\n }\r\n }\r\n\r\n @action.bound\r\n _disableAllFilters() {\r\n this._currentFilters = this._getAllFiltersDisabled();\r\n }\r\n\r\n _getAllFiltersDisabled() {\r\n return this._currentFilters.map(filter => {\r\n if(filter.on) {\r\n return this._cloneFilter(filter, !filter.on);\r\n } else {\r\n return filter;\r\n }\r\n });\r\n }\r\n\r\n toggleFilter(filterId: string) {\r\n let newFilters = this._currentFilters.map(filter => {\r\n if(filter.id === filterId) {\r\n return this._cloneFilter(filter, !filter.on);\r\n } else {\r\n return filter;\r\n }\r\n });\r\n this._doFilterNavigation(newFilters);\r\n }\r\n\r\n applyMultipleFilters(filterIds: string[]) {\r\n let newFilters = this._currentFilters.map(filter => {\r\n if(0 <= filterIds.findIndex(filterId => filter.id === filterId)) {\r\n return this._cloneFilter(filter,true)\r\n } else {\r\n return this._cloneFilter(filter,false);\r\n }\r\n });\r\n\r\n this._doFilterNavigation(newFilters);\r\n }\r\n\r\n private _doFilterNavigation(newFilters: ActiveFilter[]): void {\r\n let onFilters = newFilters.filter(filter => filter.on)\r\n .map(filter => filter.id);\r\n\r\n this.services.window.scrollTo(0, 0);\r\n\r\n if(onFilters.length > 0) {\r\n this.services.location.push('#filters=' + onFilters.join(','));\r\n } else {\r\n this.services.location.push(this.services.location.currentUri.pathName.toString());\r\n }\r\n }\r\n\r\n private _cloneFilter(originalFilter: ActiveFilter, checked: boolean): ActiveFilter {\r\n return {...originalFilter, on: checked };\r\n }\r\n\r\n public tryCreateFilter(filterType: string, filterValue: any): IGameFilter | null {\r\n switch (filterType) {\r\n\r\n case \"gameCompany\":\r\n return new CompanyFilter(filterValue);\r\n\r\n case \"gameVendor\":\r\n return new VendorFilter(filterValue);\r\n\r\n case \"gameGroup\":\r\n return new GameGroupFilter(filterValue);\r\n\r\n case \"gameTypes\":\r\n return new GameTypesFilter(filterValue);\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n public supportFiltersV2(): boolean {\r\n if(this.services.routing.currentRoute.data && this.services.routing.currentRoute.data.arenaType){\r\n const arena = this.services.configuration.data.arenas[this.services.routing.currentRoute.data.arenaType];\r\n\r\n if(!arena) {\r\n return false;\r\n }\r\n\r\n return !!arena.filters_v2;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n\r\n}\r\n","import {RedTigerJackpotWidgetConfiguration} from './red-tiger-jackpot-widget.configuration';\r\nimport { JackpotWidgetConfiguration } from './jackpot-widget.configuration';\r\nimport {HomePageHeaderArena} from \"./home-page.configuration\";\r\nimport {LinkToOfferConfiguration} from \"./link-to-offer.configuration\";\r\n\r\nexport interface InfoSideBarConfiguration {\r\n readonly infoImage: string;\r\n readonly infoTitle: string;\r\n readonly infoText: string;\r\n}\r\n\r\nexport interface FilterConfiguration {\r\n readonly id: string;\r\n readonly text?: string;\r\n readonly display?: boolean;\r\n}\r\n\r\nexport enum ApiListType {\r\n TOP_PICKS = \"TOP_PICKS\",\r\n NEW_GAMES = \"NEW_GAMES\",\r\n PLAYERS_LIKE_YOU = \"PLAYERS_LIKE_YOU\",\r\n RECENTLY_PLAYED = \"RECENTLY_PLAYED\",\r\n STATIC_VIDEO = \"STATIC_VIDEO\",\r\n LIVE_CASINO_VIDEO = \"LIVE_CASINO_VIDEO\",\r\n BECAUSE_YOU_PLAYED = \"BECAUSE_YOU_PLAYED\",\r\n}\r\n\r\nexport interface ListConfiguration {\r\n readonly title: string;\r\n readonly display: boolean;\r\n readonly gamesId: number[];\r\n readonly isSelfUpdatedByNewest?: boolean;\r\n}\r\n\r\nexport interface SwiperGamesListConfiguration extends ListConfiguration {\r\n readonly title: string;\r\n readonly display: boolean;\r\n readonly gamesId: number[];\r\n readonly gamesAdminRefKey?: string;\r\n readonly templateType?: string;\r\n readonly redTigerWidget?: RedTigerJackpotWidgetConfiguration;\r\n readonly jackpotWidget?: JackpotWidgetConfiguration;\r\n readonly titleIconClassName?: string;\r\n readonly useSquareIcons?: boolean;\r\n readonly showNumberBadge?: boolean;\r\n readonly useAISortedList?: boolean;\r\n readonly ignoreNumberOfGamesInAISorting?: number;\r\n readonly forceListInLayout?: boolean;\r\n readonly seeAll?: string;\r\n readonly listId?: number; // should be mandatory??\r\n readonly shouldInjectUsernameInTitle?: boolean;\r\n readonly apiListType?: ApiListType;\r\n}\r\n\r\nexport interface ArenaGamesGridConfiguration extends ListConfiguration {\r\n readonly listId: number;\r\n readonly title: string;\r\n readonly display: boolean;\r\n readonly useAISortedList: boolean;\r\n readonly gamesId: number[];\r\n readonly templateType?: string;\r\n readonly gamesAdminRefKey?: string;\r\n readonly useSquareIcons?: boolean;\r\n}\r\n\r\nexport interface SeoSectionConfiguration {\r\n display: boolean;\r\n componentID: number;\r\n templateID: number;\r\n fallbackComponent: string;\r\n}\r\n\r\nexport interface HeaderArenaConfiguration {\r\n display: boolean;\r\n title: string;\r\n image: string;\r\n link: string;\r\n}\r\n\r\nexport interface HeaderFilterConfiguration {\r\n display: boolean;\r\n title: string;\r\n image: string;\r\n filter: string;\r\n seoPage: string;\r\n isActiveTabDefault?: boolean;\r\n clearFilter: boolean;\r\n maxGamesToShow?: number;\r\n banners?: {\r\n promotionalBanner: {\r\n templateID: number,\r\n componentID: number\r\n }\r\n }\r\n}\r\n\r\nexport interface ArenaCommonConfiguration {\r\n topImage: string;\r\n title: string;\r\n seoSection: SeoSectionConfiguration;\r\n}\r\n\r\nexport interface CasinoArenaPromotionalBannerConfiguration {\r\n templateID: number;\r\n componentID: number;\r\n displayRowPlace?: number;\r\n displayTablePlace?: number;\r\n fallbackComponent: string;\r\n}\r\n\r\nexport interface CasinoArenaConfiguration extends ArenaCommonConfiguration {\r\n promotionalBanner?: CasinoArenaPromotionalBannerConfiguration\r\n linkToOffer?: LinkToOfferConfiguration;\r\n filters: FilterConfiguration[];\r\n filters_v2: [];\r\n infoSideBar: InfoSideBarConfiguration;\r\n swiperGamesList: SwiperGamesListConfiguration[];\r\n allGamesGrid: ArenaGamesGridConfiguration[];\r\n orderListsByAI?: boolean;\r\n arenaType?: string;\r\n homepageHeader?: HomePageHeaderArena;\r\n}\r\n\r\nexport interface LiveCasinoHeaderConfiguration {\r\n display: boolean;\r\n gameId: number;\r\n image: string;\r\n}\r\n\r\nexport interface LiveCasinoPopularTableConfiguration {\r\n title: string;\r\n gamesId: number[];\r\n useAISortedList?: boolean;\r\n ignoreNumberOfGamesInAISorting?: number;\r\n}\r\n\r\nexport interface LiveCasinoPromotionalBannerConfiguration {\r\n displayTablePlace: number;\r\n displayRowPlace: number;\r\n componentID: number;\r\n templateID: number;\r\n}\r\n\r\nexport interface LiveCasinoConfiguration extends ArenaCommonConfiguration {\r\n promotionalBanner: LiveCasinoPromotionalBannerConfiguration;\r\n linkToOffer?: LinkToOfferConfiguration\r\n arenas: {\r\n gamesId: LiveCasinoHeaderConfiguration[];\r\n },\r\n popularTables: LiveCasinoPopularTableConfiguration[];\r\n customLayout: string;\r\n}\r\n\r\nexport interface NewLiveCasinoConfiguration extends ArenaCommonConfiguration {\r\n promotionalBanner: LiveCasinoPromotionalBannerConfiguration;\r\n arenas: HeaderFilterConfiguration[],\r\n popularTables: LiveCasinoPopularTableConfiguration[];\r\n customLayout: string;\r\n useAISortedList: boolean;\r\n linkToOffer?: LinkToOfferConfiguration;\r\n}\r\n\r\nexport type ArenaConfiguration = CasinoArenaConfiguration & LiveCasinoConfiguration & NewLiveCasinoConfiguration;\r\n\r\nexport type ArenasConfiguration = {[key: string]: ArenaConfiguration};\r\n\r\n","import {IUsefulLinkConfiguration} from \"../configurations/config-data-sections/drawer.configuration\";\r\nimport {IServiceFactoryExtended} from \"../service-factory-extended.interface\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {AppIdentifiers, AreaType} from \"@sparkware/uc-sdk-core\";\r\nimport {SafeZoneDeeplink} from \"../safezone/safezone.service.interface\";\r\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.openOldCashier({sessionType: 2});\r\n }\r\n\r\n onReverseWithdrawal() {\r\n this.services.cashier.openOldCashier({sessionType: 6});\r\n }\r\n\r\n onUploadDocuments() {\r\n this.services.cashier.openOldCashier({sessionType: 20});\r\n }\r\n\r\n onCompPoints() {\r\n this.services.externalLinks.openMyAccount({tabId: 13});\r\n }\r\n\r\n onContactUs(link: IUsefulLinkConfiguration) {\r\n this.services.externalLinks.openContactUs({view: link.target});\r\n }\r\n\r\n onHelpCenter(link: IUsefulLinkConfiguration) {\r\n // If not enabled, we shouldn't show the link, but how do I do that?\r\n if (this.services.configuration.servicesConfigs.AppLauncher.apps.CR_HELP_CENTER.enabled) {\r\n this._openHelpWidget();\r\n } else {\r\n this.onContactUs(link);\r\n }\r\n }\r\n\r\n on888club(link: IUsefulLinkConfiguration) {\r\n this._openLinkAction(link);\r\n }\r\n\r\n onBeGambleAware(link: IUsefulLinkConfiguration) {\r\n this._openLinkAction(link);\r\n }\r\n\r\n onGameCare(link: IUsefulLinkConfiguration) {\r\n this._openLinkAction(link);\r\n }\r\n\r\n onSafeZone(link: IUsefulLinkConfiguration) {\r\n this.services.safezone.openFullSafezone();\r\n }\r\n\r\n onTimeSpentReminder(link: IUsefulLinkConfiguration) {\r\n this.services.safezone.openFullSafezone(SafeZoneDeeplink.TimeSpentReminderPage);\r\n }\r\n\r\n onHelp() {\r\n this.services.externalLinks.openHelpPage();\r\n }\r\n\r\n private _openHelpWidget() {\r\n this.services.appLauncher.openHelpWidget({\r\n businessCorrelationID: this.services.tools.getGuid(),\r\n channel: {\r\n area: AreaType.NavigationMenu,\r\n element: AppIdentifiers.CRHelpCenter,\r\n source: AppIdentifiers.CasinoClient\r\n }\r\n });\r\n }\r\n\r\n private _openLinkAction({local:shouldOpenLocal, link}: IUsefulLinkConfiguration){\r\n if(shouldOpenLocal) {\r\n this.services.location.push(link);\r\n } else {\r\n this.services.externalLinks.openLink({\r\n sourceLink: link,\r\n view: 'window'\r\n })\r\n }\r\n }\r\n}\r\n","import styled, {css} from 'styled-components';\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\nimport {CssRule} from '../../../../themes/architecture/css-helpers/css-rule';\r\n\r\ninterface IUsefulLinksItemBoxProps {\r\n hideArrow?: boolean;\r\n icon?: string,\r\n}\r\n\r\nconst DefaultBox = styled.li`\r\n position: relative;\r\n width: 100%;\r\n /*\r\n The border-bottom is intentionally set to theme.colors.itemTopBorder and also border-top set to theme.colors.itemBottomBorder\r\n The reason is that the bottom border of the useful link item is actually the top border of the divider \r\n and top border of the useful link item is actually the bottom border of the divider\r\n \r\n */\r\n border-bottom: 1px solid ${props => props.theme.colors.boxBorder};\r\n border-top: 1px solid ${props => props.theme.colors.boxBorderDark};\r\n padding-left: 1rem;\r\n white-space: nowrap;\r\n cursor: pointer;\r\n color: ${props => props.theme.colors.text};\r\n background-color: ${props => props.theme.colors.background};\r\n\r\n &:hover {\r\n color: ${props => props.theme.colors.textHover};\r\n background-color: ${props => props.theme.colors.backgroundHover};\r\n }\r\n \r\n &:last-child {\r\n border-bottom: 0;\r\n }\r\n \r\n &:after {\r\n content: \"\";\r\n position: absolute;\r\n right: 5px;\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-repeat: no-repeat; \r\n ${CssRule.For.RTL.build()} & {\r\n transform: scaleX(-1);\r\n }\r\n }\r\n \r\n &:before {\r\n display: inline-block;\r\n margin-right: 5px;\r\n background-repeat: no-repeat; \r\n background-size: cover;\r\n }\r\n`;\r\n\r\n\r\nexport const PcBox = styled(DefaultBox)`\r\n height: 3.75rem;\r\n font-weight: 500;\r\n font-size: 1.3rem;\r\n line-height: 3.5rem;\r\n \r\n &:first-child {\r\n margin-top: 3px;\r\n }\r\n \r\n \r\n \r\n ${({hideArrow}) => !hideArrow && css`\r\n &:after {\r\n top: 1.5rem;\r\n width: 5px;\r\n height: 9px;\r\n background-position: -785px -657px;\r\n }\r\n `}\r\n \r\n ${({icon}) => icon && css`\r\n &:before { \r\n content: \"\";\r\n position:relative;\r\n top: 3px; \r\n width: 21px;\r\n height: 21px;\r\n background-image: url(\"${icon.toString()}\");\r\n }\r\n `}\r\n`;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\r\n display: flex;\r\n align-items: center;\r\n height: 5rem;\r\n font-weight: 300;\r\n font-size: 1.7rem;\r\n line-height: 5rem;\r\n color: ${props => props.theme.colors.textLight};\r\n font-family: ${props => props.theme.font.family.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 font-family: ${props => props.theme.font.family.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 font-family: ${props => props.theme.font.family.medium};\r\n &:after {\r\n content: none; \r\n }\r\n \r\n &:first-child {\r\n margin-top: 0;\r\n border-top: 0;\r\n }\r\n`;\r\n\r\nexport const UsefulLinksItemCipBox = styledByDevice(PcBox, MobileBox);","import {UsefulLinksItemDefaultBox} from './useful-links-item.default.box';\r\nimport {styledByTheme} from '../../../../themes/architecture/styled-by-theme';\r\nimport {UsefulLinksItemCasino777Box} from './useful-links-item.casino777.box';\r\nimport {UsefulLinksItemCipBox} from './useful-links-item.cip.box';\r\n\r\nexport const UsefulLinksItemBox = styledByTheme(UsefulLinksItemDefaultBox)\r\n .forCasino777(UsefulLinksItemCasino777Box)\r\n .forCip(UsefulLinksItemCipBox)\r\n .forWsopCip(UsefulLinksItemCipBox)\r\n .forCis(UsefulLinksItemCipBox) // TODO: see here!!!!!!\r\n .apply();","import React, {ReactNode} from \"react\";\r\nimport {get} from 'lodash';\r\nimport {IUsefulLink, UsefulLinkRenderOptions} from \"./useful-link.interface\";\r\nimport {IUsefulLinkConfiguration} from \"../../configurations/config-data-sections/drawer.configuration\";\r\nimport {IServiceFactory} from \"../../service-factory.interface\";\r\nimport {UsefulLinksItemBox} from '../../../components/useful-links/boxes/useful-links-item/useful-links-item.box';\r\nimport {Image} from \"../../../components/raw-components/image/image\";\r\n\r\ntype LinkActionType = (config: IUsefulLinkConfiguration) => void;\r\n\r\nexport class ConfigUsefulLink implements IUsefulLink {\r\n private readonly linkConfig: IUsefulLinkConfiguration;\r\n private readonly linkAction: LinkActionType;\r\n private readonly services: IServiceFactory;\r\n\r\n constructor(linkConfig: IUsefulLinkConfiguration, linkAction: LinkActionType, services: IServiceFactory){\r\n this.linkConfig = linkConfig;\r\n this.linkAction = linkAction;\r\n this.services = services;\r\n }\r\n\r\n private renderTextItem(options: UsefulLinkRenderOptions): ReactNode {\r\n const {id, text, iconAsset} = this.linkConfig;\r\n const iconURI = get(this.services.theme.currentTheme.images, iconAsset, null);\r\n\r\n return (\r\n {\r\n if(options.onClick) {\r\n options.onClick();\r\n }\r\n this.linkAction(this.linkConfig);\r\n }}>\r\n {this.services.translation.translate(text)}\r\n \r\n );\r\n }\r\n\r\n private renderImageItem(options: UsefulLinkRenderOptions): ReactNode {\r\n const {id, imageAsset, imageAlt} = this.linkConfig;\r\n const imageURI = get(this.services.theme.currentTheme.images, imageAsset, '');\r\n\r\n return (\r\n {\r\n if(options.onClick) {\r\n options.onClick();\r\n }\r\n this.linkAction(this.linkConfig);\r\n }}>\r\n {imageAlt\r\n \r\n );\r\n }\r\n\r\n render(options: UsefulLinkRenderOptions): ReactNode {\r\n if(!this.linkConfig.display) return null;\r\n\r\n return this.linkConfig.imageAsset ? this.renderImageItem(options) : this.renderTextItem(options);\r\n }\r\n}\r\n","import styled from \"styled-components\";\r\n\r\nexport const UsefulLinksItemSideTextBox = styled.div`\r\n display: inline-block;\r\n margin-left: auto;\r\n margin-right: 25px;\r\n`;","import {IUsefulLink, UsefulLinkRenderOptions} from \"./useful-link.interface\";\r\nimport React, {ReactNode} from \"react\";\r\nimport {IUsefulLinkSdkData} from \"./useful-link-data.interface\";\r\nimport {UsefulLinksItemBox} from '../../../components/useful-links/boxes/useful-links-item/useful-links-item.box';\r\nimport {UsefulLinksItemSideTextBox} from \"../../../components/useful-links/boxes/useful-links-item/useful-links-item-side-text.box\";\r\n\r\ntype ActivatorType = (IUsefulLinkSdkData) => void;\r\n\r\nexport class SdkUsefulLink implements IUsefulLink {\r\n private readonly activator: ActivatorType;\r\n private readonly linkConfig: IUsefulLinkSdkData;\r\n\r\n constructor(activator: ActivatorType, link: IUsefulLinkSdkData) {\r\n this.activator = activator;\r\n this.linkConfig = link;\r\n }\r\n\r\n render(options: UsefulLinkRenderOptions): ReactNode {\r\n return (\r\n {\r\n if(options.onClick) {\r\n options.onClick();\r\n }\r\n this.activator(this.linkConfig);\r\n }}>\r\n {this.linkConfig.translation}\r\n {this.linkConfig.sideText && {this.linkConfig.sideText}}\r\n \r\n );\r\n }\r\n}\r\n","import {sortBy} from 'lodash';\r\nimport {ServiceBase} from \"../ServiceBase\";\r\nimport {IUserMenuService} from \"./user-menu.service.interface\";\r\nimport {\r\n IDrawerBoxConfiguration,\r\n IUsefulLinkConfiguration\r\n} from \"../configurations/config-data-sections/drawer.configuration\";\r\nimport {IServiceFactoryExtended} from \"../service-factory-extended.interface\";\r\nimport {action, observable} from \"mobx\";\r\nimport UsefulLinkActions from \"./useful-link-actions\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {IUsefulLink} from \"./useful-links/useful-link.interface\";\r\nimport {ConfigUsefulLink} from \"./useful-links/config-useful-link\";\r\nimport {SdkUsefulLink} from \"./useful-links/sdk-useful-link\";\r\nimport {IUsefulLinkSdkData} from \"./useful-links/useful-link-data.interface\";\r\nimport {CHANNEL_ELEMENTS, CHANNEL_SOURCE} from \"../../../common/const/casinofied-analytics-consts\";\r\nimport {AreaType} from \"@sparkware/uc-sdk-core/lib/apps/app-enums\";\r\nimport {IOverlayConsumer} from \"../overlay/overlay-consumer.interface\";\r\n\r\nconst ANALYTICS_CATEGORY = 'My_Area';\r\nconst USEFUL_LINKS_ACTION = 'Useful Links';\r\n\r\n// Logout button is not implemented by SdkUsefulLink; we can filter it out by this ID:\r\nconst LOGOUT_BUTTON_ID = 'logout_button';\r\n\r\nexport class UserMenuService extends ServiceBase implements IUserMenuService, IOverlayConsumer {\r\n private linkActions: UsefulLinkActions;\r\n /*\r\n The user menu is sort of modal:\r\n - you can open the base user menu (openMenu())\r\n - you can open the rewards panel (openRewards()), which replaces the\r\n user menu contents (but is still the same DOM element)\r\n\r\n You can check what's currently open by the properties:\r\n - isOpen: either the base user menu or a secondary panel is open\r\n - isRewardsInfo: the rewards secondary panel is open\r\n\r\n When closing things, you can either close just the secondary panel or close\r\n the whole menu (closeMenu()), which will also close the secondary.\r\n */\r\n\r\n @observable.ref isOpen: boolean = false;\r\n @observable.ref isRewardsInfo: boolean = false;\r\n\r\n @observable.ref usefulLinks: IUsefulLink[] = [];\r\n\r\n constructor(serviceFactory: IServiceFactoryExtended) {\r\n super(serviceFactory);\r\n this.services.overlay.registerConsumer(this);\r\n this.linkActions = new UsefulLinkActions(serviceFactory);\r\n\r\n this.reaction(() => this.services.user.isAuthorized,\r\n () => {\r\n this.reFetchLinks();\r\n }, {\r\n fireImmediately: true,\r\n });\r\n\r\n this.services.sdk.events.onGameOpen(() => this.services.userMenu.closeMenu());\r\n\r\n this.services.sdk.events.onTouchIDActiveStateChanged(() => this.reFetchLinks())\r\n }\r\n\r\n private reFetchLinks(){\r\n this._fetchLinks().then(links => {\r\n this._setUsefulLinks(links)\r\n });\r\n }\r\n\r\n get needsOverlay(): boolean {\r\n return this.isOpen;\r\n }\r\n\r\n getOverlayZIndex(): number | undefined {\r\n return this.zIndex - 1;\r\n }\r\n\r\n get zIndex(): number {\r\n return this.services.sideMenu.zIndex - 1;\r\n }\r\n\r\n onOverlayClicked(): void {\r\n this.closeMenu();\r\n }\r\n\r\n @action.bound\r\n private _setIsOpen(shouldOpen: boolean) {\r\n this.isOpen = shouldOpen;\r\n }\r\n\r\n @action.bound\r\n private _setIsRewardsInfo(shouldBeRewards: boolean) {\r\n this.isRewardsInfo = shouldBeRewards;\r\n }\r\n\r\n @action.bound\r\n private _setUsefulLinks(newLinks: IUsefulLink[]) {\r\n this.usefulLinks = newLinks;\r\n }\r\n\r\n private async _fetchLinks() {\r\n const fetchSteps = [this._fetchConfigLinks(), this._fetchSdkLinks()];\r\n const stepLinks = await Promise.all(fetchSteps);\r\n\r\n const combinedLinks = stepLinks.reduce((acc, n) => acc.concat(n), []);\r\n\r\n return this.orderLinksByPosition(combinedLinks);\r\n }\r\n\r\n private orderLinksByPosition(links: IUsefulLink[]): IUsefulLink[]{\r\n const sortingOrder = {\r\n \"top\": 0,\r\n \"bottom\": 1\r\n }\r\n\r\n return sortBy(links, (link) => sortingOrder[link.linkConfig.position] || 0);\r\n }\r\n\r\n private async _fetchConfigLinks(): Promise {\r\n const configData = this.services.configuration.data.drawer.usefulLinks;\r\n\r\n return configData.map(\r\n l => new ConfigUsefulLink(l, this._doConfigMenuAction.bind(this), this.services));\r\n }\r\n\r\n private async _fetchSdkLinks(): Promise {\r\n const sdkLinks = await this.services.sdk.getUsefulLinks();\r\n // NB: Logout button has special (separate) handling, therefore we don't want it from SDK:\r\n const filteredOutIds = this._getSdkFilteredOutUsefulLinksIds();\r\n const pickedLinks = sdkLinks.filter(l => filteredOutIds.indexOf(l.id) < 0);\r\n\r\n return pickedLinks.map(\r\n l => new SdkUsefulLink(this._doSdkMenuAction.bind(this), l));\r\n }\r\n\r\n private _getSdkFilteredOutUsefulLinksIds():string[] {\r\n let ids = [LOGOUT_BUTTON_ID];\r\n\r\n return ids;\r\n }\r\n\r\n private _doConfigMenuAction(link: IUsefulLinkConfiguration) {\r\n if (link.analytics && link.analytics.label) {\r\n this.services.analytics.sendAnalytics(ANALYTICS_CATEGORY, USEFUL_LINKS_ACTION, link.analytics.label);\r\n }\r\n this.linkActions.executeAction(link);\r\n this.closeMenu();\r\n }\r\n\r\n private _doSdkMenuAction({id, translation}: IUsefulLinkSdkData) {\r\n this.services.sdk.menuActionExecute(id);\r\n this.services.analytics.sendAnalytics(ANALYTICS_CATEGORY, USEFUL_LINKS_ACTION, translation);\r\n this.closeMenu();\r\n }\r\n\r\n doLogout() {\r\n this.services.analytics.sendAnalytics(ANALYTICS_CATEGORY, USEFUL_LINKS_ACTION, 'Logout');\r\n this.services.user.logout();\r\n this.closeMenu();\r\n }\r\n\r\n get greeting() {\r\n const now = new Date();\r\n const hour = now.getHours();\r\n const minute = now.getMinutes();\r\n\r\n const {defaultMessage, conditions} = this.services.configuration.data.drawer.welcomeMessage;\r\n let result = defaultMessage;\r\n for (const rule of conditions) {\r\n const [ruleHour, ruleMinute] = rule.time.split(':').map(parseInt);\r\n\r\n if (hour > ruleHour) {\r\n result = rule.text;\r\n } else if (hour === ruleHour) {\r\n // NB: only if the current hour is strictly equal to the rule hour do we need to check the minutes\r\n if (minute >= ruleMinute) {\r\n result = rule.text;\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n launchMyAccount(): void {\r\n this.services.analytics.sendAnalytics(ANALYTICS_CATEGORY, 'My Account', 'Open_my_Account');\r\n this.services.externalLinks.openMyAccount();\r\n this.closeMenu();\r\n }\r\n\r\n launchDeposit(): void {\r\n this.services.analytics.sendAnalytics(ANALYTICS_CATEGORY, 'Deposit', 'Open_deposit');\r\n this.services.cashier.openDeposit({\r\n channel: {\r\n source: CHANNEL_SOURCE.casinoClient,\r\n area: AreaType.UserArea,\r\n element: CHANNEL_ELEMENTS.depositButton\r\n }\r\n });\r\n this.closeMenu();\r\n }\r\n\r\n launchWithdraw(): void {\r\n this.services.analytics.sendAnalytics(ANALYTICS_CATEGORY, 'Withdraw', 'Open_withdraw');\r\n this.services.cashier.openWithdraw({\r\n channel: {\r\n source: CHANNEL_SOURCE.casinoClient,\r\n area: AreaType.UserArea,\r\n element: CHANNEL_ELEMENTS.withdrawButton\r\n }\r\n });\r\n this.closeMenu();\r\n }\r\n\r\n sendLoyaltyAnalytics(): void {\r\n const {category, action, label} = this.services.configuration.data.drawer.showLoyalty.analytics;\r\n this.services.analytics.sendAnalytics(category, action, label);\r\n }\r\n\r\n launchDrawerLink(config: IDrawerBoxConfiguration): void {\r\n if (Check.isObject(config.seo)) {\r\n this.services.analytics.sendAnalytics(config.seo.category, config.seo.action, config.seo.label);\r\n }\r\n\r\n if (this.services.menuFlow.hasCustomFlow(config)) {\r\n const flowResult = this.services.menuFlow.executeCustomFlow(config);\r\n if (!flowResult.continue)\r\n return;\r\n }\r\n\r\n const source = config.externalLinkSource || config.link;\r\n const options = config.options || {};\r\n this.services.externalLinks.openLink({source, options});\r\n this.closeMenu();\r\n }\r\n\r\n openRewards(): void {\r\n this.openMenu();\r\n this._setIsRewardsInfo(true);\r\n }\r\n\r\n closeMenu(): void {\r\n if (this.isOpen) {\r\n this._setIsOpen(false);\r\n this._setIsRewardsInfo(false);\r\n }\r\n }\r\n\r\n openMenu(): void {\r\n if (!this.isOpen) {\r\n this.services.analytics.sendAnalytics('Navigator', 'Navbar', 'Open_UserMenu');\r\n this._setIsOpen(true);\r\n this.services.sideMenu.closeMobileMenu();\r\n this.services.drawer.right.closeDrawer();\r\n }\r\n }\r\n}\r\n","import styled from 'styled-components';\r\nimport { Image } from '../../../../raw-components/image/image';\r\n\r\nexport const GameBadgeDefaultBox = styled(Image)`\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n height: 24%;\r\n width: 23%;\r\n`;\r\n","import styled from 'styled-components';\r\nimport {GameBadgeDefaultBox} from './game-badge.default.box';\r\n\r\nexport const GameBadgeCasino777Box = styled(GameBadgeDefaultBox)`\r\n height: 28%;\r\n width: 28%;\r\n`;","import {GameBadgeDefaultBox} from './game-badge.default.box';\r\nimport {styledByTheme} from '../../../../../themes/architecture/styled-by-theme';\r\nimport {GameBadgeCasino777Box} from './game-badge.casino777.box';\r\n\r\nexport const GameBadgeBox = styledByTheme(GameBadgeDefaultBox).forCasino777(GameBadgeCasino777Box).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 squareIcon?: boolean;\r\n}\r\n\r\n\r\nexport class GameBadgeComponent extends OrbitComponent {\r\n\r\n render() {\r\n if(this.services.games.shouldUseSquareIcons(this.props.squareIcon)) {\r\n return null;\r\n }\r\n if(this.props.badgeUrl) {\r\n return (\r\n \r\n );\r\n }\r\n return null;\r\n }\r\n}\r\n","export const GAME_BOX = 'game-box';\r\nexport const GAME_BOX_JACKPOT_TEMPLATE = 'game-box-jackpot-template';\r\nexport const TWO_LINES_TITLE = 'two-lines-title';\r\nexport const GAME_GROUP_LIVE_CASINO = 'game-group-live-casino';\r\nexport const ENABLE_HOVER_ANIMATION = 'enable-hover-animation';\r\nexport const SWIPER_MODE = 'swiper-mode'; //.orbit-slider-slide\r\nexport const GAME_IMAGE_CONTAINER = 'game-image-container';\r\nexport const GRID_GAMES_LIST = 'grid-games-list'; //TODO - I should do something with this when I will refactor games grid list\r\nexport const SINGLE_GAME_IMAGE = 'single-game-image';\r\n","import styled, { css } from 'styled-components';\r\nimport { GAME_BOX_JACKPOT_TEMPLATE } from '../../../css-constants';\r\nimport { Image } from '../../../../raw-components/image/image';\r\n\r\nexport const commonGameImageCssMixin = css`\r\n position: absolute;\r\n width: 100%;\r\n\r\n .${GAME_BOX_JACKPOT_TEMPLATE} & {\r\n max-width: 20rem;\r\n }\r\n`;\r\n\r\nexport const GameImageDefaultBox = styled(Image)<{hide?: boolean; squareIcon?: boolean;}>`\r\n opacity: ${({hide}) => hide ? 0: 1};\r\n ${commonGameImageCssMixin}\r\n /**\r\n * BUGFIX-1896215 https://dev.azure.com/888holdings/GamingNDL/_workitems/edit/1896215\r\n * In a scrolling container (in this case orbit swiper), the first animated icon loaded is above all elements (in this case the static image and the number badge)\r\n * When swiping, if the first animated icon gets out of the viewport and unloads, the problem is transfered to the second animation.\r\n * Yes, I know, the solution doesn't have any logic. But I tried this long shot and it worked:\r\n * https://css-tricks.com/forums/topic/safari-for-ios-z-index-ordering-bug-while-scrolling-a-page-with-a-fixed-element/\r\n * https://stackoverflow.com/questions/16033416/while-scrolling-on-an-ios-device-the-z-index-of-elements-isnt-working\r\n * https://stackoverflow.com/questions/9807620/ipad-safari-scrolling-causes-html-elements-to-disappear-and-reappear-with-a-dela\r\n */\r\n -webkit-transform: translate3d(0,0,0);\r\n /**\r\n * Normally, the radius is taken care in game-image-container.default.box, but for Safari, where we encountered the bug solved above\r\n * the image is rendered in a separate layer and ignores the border radius of the parent\r\n */\r\n ${props => props.squareIcon && css`\r\n border-radius: 15px;\r\n @media ${props.theme.mediaQuery.lAndBelow} {\r\n border-radius: 8px;\r\n }\r\n `};\r\n /**\r\n * Because YES, Safari is the new Internet Explorer!!!\r\n */\r\n`;\r\n","import {GameImageDefaultBox} from './game-image.default.box';\r\n\r\nexport const GameImageBox = GameImageDefaultBox;","import {GameImageAnimatedDefaultBox} from './game-image-animated.default.box';\r\n\r\nexport const GameImageAnimatedBox = GameImageAnimatedDefaultBox;","import styled from 'styled-components';\r\nimport { commonGameImageCssMixin } from '../game-image/game-image.default.box';\r\n\r\nconst DefaultBox = styled.div`\r\n ${commonGameImageCssMixin};\r\n height: 100%;\r\n`;\r\n\r\nexport const GameImageAnimatedDefaultBox = DefaultBox;","import React from 'react';\r\nimport { OrbitComponent } from '../../../../base-components/orbit-component/orbit-component';\r\nimport { GameImageAnimatedBox } from '../../boxes/game-image/game-image-animated.box';\r\nimport { IGameAnimatedIconRegistrationResult } from '../../../../../services/game-animated-icons-manager/game-animated-icons-manager.service.interface';\r\n\r\ninterface IGameImageComponentProps {\r\n animationJsonUrl: string;\r\n animationTiming: {\r\n delay: number;\r\n interval: number;\r\n }\r\n width: number;\r\n height: number;\r\n useSquareIcons?: boolean;\r\n onAnimationLoad?(): void;\r\n onAnimationBeforeUnload?(): void;\r\n onAnimationUnload?(): void;\r\n}\r\n\r\nexport class GameImageAnimatedComponent extends OrbitComponent {\r\n private animatedImageWrapper: HTMLElement | null = null;\r\n private pixiAnimationRegistration: IGameAnimatedIconRegistrationResult | null = null;\r\n\r\n private _captureAnimatedImageElementRef = (element: HTMLElement) => {\r\n this.animatedImageWrapper = element;\r\n // cancelAnimationRequest\r\n if (this.pixiAnimationRegistration) {\r\n this.pixiAnimationRegistration.unregister();\r\n this.pixiAnimationRegistration = null;\r\n }\r\n if (element) {\r\n // requestAnimation\r\n this.loadPixiAnimatedIcon();\r\n }\r\n this.animatedImageWrapper = element;\r\n };\r\n\r\n private async loadPixiAnimatedIcon() {\r\n this.pixiAnimationRegistration = this.services.gameAnimatedIconsManager.register({\r\n jsonUrl: this.props.animationJsonUrl,\r\n size: {\r\n width: this.props.width, height: this.props.height\r\n },\r\n wrapper: this.animatedImageWrapper,\r\n timings: this.props.animationTiming,\r\n onAnimationLoad: () => {\r\n if (this.props.onAnimationLoad) {\r\n this.props.onAnimationLoad();\r\n }\r\n },\r\n onAnimationBeforeUnload: () => {\r\n if (this.props.onAnimationBeforeUnload) {\r\n this.props.onAnimationBeforeUnload();\r\n }\r\n },\r\n onAnimationUnload: () => {\r\n if (this.props.onAnimationUnload) {\r\n this.props.onAnimationUnload();\r\n }\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return \r\n }\r\n}\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport {OrbitComponent} from \"../../base-components/orbit-component/orbit-component\";\r\n\r\ninterface IAspectRatioBoxProps {\r\n expectedWidth: number;\r\n expectedHeight: number;\r\n}\r\n\r\nconst AspectRatioBox = styled.div`\r\n position: relative;\r\n width: 100%;\r\n height: 0;\r\n padding-top: calc(${({expectedWidth, expectedHeight}) => `${expectedHeight} / ${expectedWidth} * 100%`});\r\n`;\r\n\r\ninterface IAspectRatioContentBoxProps {\r\n isLoading?: boolean;\r\n useBGColorDuringLoadAnimation?: boolean;\r\n}\r\n\r\nconst AspectRatioContentBox = styled.div`\r\n position: absolute;\r\n display: flex;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n align-items: center;\r\n justify-content: center;\r\n opacity: 0;\r\n\r\n ${(props) => props.useBGColorDuringLoadAnimation && props.isLoading && `background-color: ${props.theme.colors.backgroundDark}`};\r\n\r\n animation: ${({isLoading}) => isLoading ? \"LoadingAnimation 1.5s linear 3 forwards\" : \"RevealAnimation 0.5s ease-out forwards\"};\r\n\r\n @keyframes LoadingAnimation {\r\n 0% {\r\n opacity: 0;\r\n }\r\n 50% {\r\n opacity: 1\r\n }\r\n 100% {\r\n opacity: 0;\r\n }\r\n }\r\n\r\n @keyframes RevealAnimation {\r\n to {\r\n opacity: 1;\r\n }\r\n }\r\n`;\r\n\r\ninterface IAspectRatioContainerComponentProp {\r\n width: number;\r\n height: number;\r\n isLoading?: boolean;\r\n useBGColorDuringLoadAnimation?: boolean;\r\n}\r\n\r\nexport class AspectRatioContainerComponent extends OrbitComponent {\r\n render() {\r\n return (\r\n \r\n \r\n {this.props.children}\r\n \r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {observer} from 'mobx-react';\r\nimport {GameInfo} from '../../../../../services/games/game-info';\r\nimport {GameImageBox} from '../../boxes/game-image/game-image.box';\r\nimport {GameImageAnimatedComponent} from './game-image-animated.component';\r\nimport { OrbitComponentWithState } from '../../../../base-components/orbit-component-with-state/orbit-component-with-state';\r\nimport {SINGLE_GAME_IMAGE} from '../../../css-constants';\r\nimport { AspectRatioContainerComponent } from '../../../../raw-components/aspect-ratio-container/aspect-ratio-container.component';\r\n\r\nexport type GameIconAnimationState = \"ab-disabled\" | \"unavailable\" | \"static\" | \"animated\";\r\n\r\nexport interface GameIconComponentProps {\r\n gameInfo: GameInfo;\r\n useSquareIcons?: boolean;\r\n useLazyLoading?: boolean;\r\n onLoad?(): void;\r\n onLoadStart?(): void;\r\n onSettled?(): void;\r\n onAnimationIconStateChange?(state: GameIconAnimationState): void;\r\n}\r\n\r\nexport interface GameIconComponentState {\r\n loadingAnimation?: boolean;\r\n animationJsonUrl?: string;\r\n hideStaticImage?: boolean;\r\n}\r\n\r\n@observer\r\nexport class GameImageComponent extends OrbitComponentWithState {\r\n constructor(props: GameIconComponentProps) {\r\n super(props);\r\n this.state = {};\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.onAnimationIconStateChange) {\r\n this.props.onAnimationIconStateChange(\r\n this.services.abTestingFeatureDataProvider.animatedGameIconsDisabled ? \"ab-disabled\" : (!this.state.animationJsonUrl ? \"unavailable\" : \"static\")\r\n );\r\n }\r\n }\r\n\r\n private _loadAnimatedIconTimeout = null;\r\n\r\n componentWillUnmount() {\r\n super.componentWillUnmount();\r\n if(this._loadAnimatedIconTimeout) {\r\n clearTimeout(this._loadAnimatedIconTimeout);\r\n this._loadAnimatedIconTimeout = null;\r\n }\r\n }\r\n private onSettled = () => {\r\n this.setState({loadingAnimation: false});\r\n if (this.props.onSettled) {\r\n this.props.onSettled();\r\n }\r\n this.attemptLoadAnimatedIcon();\r\n };\r\n\r\n private attemptLoadAnimatedIcon = () => {\r\n this._loadAnimatedIconTimeout = setTimeout(() => {\r\n let data = this.props.gameInfo.getGameImage({squareIcon: this.props.useSquareIcons, animatedIcon: true});\r\n if (data) {\r\n this.setState({animationJsonUrl: data});\r\n }\r\n this._loadAnimatedIconTimeout = null;\r\n }, this.props.gameInfo.getAnimatedImageTimings().delay || 0);\r\n };\r\n\r\n private onAnimationLoad = () => {\r\n this.setState({hideStaticImage: true});\r\n if (this.props.onAnimationIconStateChange) {\r\n this.props.onAnimationIconStateChange(\"animated\");\r\n }\r\n };\r\n\r\n private onAnimationBeforeUnload = () => {\r\n this.setState({hideStaticImage: false});\r\n if (this.props.onAnimationIconStateChange) {\r\n this.props.onAnimationIconStateChange(\"static\");\r\n }\r\n };\r\n\r\n render() {\r\n const seoAlt = this.props.gameInfo.getImageSeoAlt();\r\n const imgUrl = this.props.gameInfo.getGameImage({squareIcon: this.props.useSquareIcons});\r\n const useLazyLoad = Check.isNullOrUndefined(this.props.useLazyLoading) ? true : this.props.useLazyLoading;\r\n\r\n return \r\n { this.state.animationJsonUrl && !this.services.abTestingFeatureDataProvider.animatedGameIconsDisabled ? : null }\r\n {\r\n this.setState({loadingAnimation: true});\r\n }}\r\n onLoad={this.props.onLoad}\r\n onSettled={this.onSettled}\r\n />\r\n ;\r\n }\r\n}\r\n","import React from 'react';\r\nimport {GameBadgeComponent} from '../game-badge/game-badge.component';\r\nimport {GameImageComponent, GameIconAnimationState} from '../game-image/game-image.component';\r\nimport {observer} from 'mobx-react';\r\nimport {TapHandler} from '../../../../tap-handler/tap-handler.component';\r\nimport {AnyStyledComponent} from 'styled-components';\r\nimport {GameInfo} from '../../../../../services/games/game-info';\r\nimport {GAME_IMAGE_CONTAINER} from '../../../css-constants';\r\nimport {OrbitComponentWithState} from '../../../../base-components/orbit-component-with-state/orbit-component-with-state';\r\n\r\ninterface GameImageContainerComponentState {\r\n isLoading: boolean;\r\n}\r\n\r\nexport interface GameGameImageContainerComponentProps {\r\n gameInfo: GameInfo;\r\n box: AnyStyledComponent;\r\n playRealGameButton: React.ReactNode | null;\r\n onOpenRealGame: () => void;\r\n useSquareIcons?: boolean;\r\n onAnimationIconStateChange?(state: GameIconAnimationState): void;\r\n}\r\n\r\n\r\n@observer\r\nexport class GameImageContainerComponent extends OrbitComponentWithState {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: true\r\n };\r\n }\r\n\r\n private _handleImageDoneLoading = () => {\r\n this.setState({ isLoading: false });\r\n }\r\n\r\n render() {\r\n //className=\"game-item-image\"\r\n const gameItemImageRef: any = React.createRef();\r\n const Box = this.props.box;\r\n\r\n return (\r\n \r\n \r\n \r\n {this.props.playRealGameButton}\r\n \r\n \r\n );\r\n }\r\n}\r\n","import styled, { css } 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 font-weight: 300;\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 ${props => props.hasTwoLinesTitle ? css`\r\n width: 100%;\r\n `\r\n : css`\r\n max-width: 90%;\r\n `};\r\n \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\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 font-family: ${({theme}) => theme.font.family.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 font-family: ${props => props.theme.font.family.regular};\r\n }\r\n`","import styled from 'styled-components';\r\nimport {GameTitleDefaultBox} from './game-title.default.box';\r\n\r\nexport const GameTitleSIBox = styled(GameTitleDefaultBox)`\r\n font-weight: bold;\r\n`\r\n","import {GameTitleDefaultBox} from './game-title.default.box';\r\nimport {styledByTheme} from '../../../../../themes/architecture/styled-by-theme';\r\nimport {GameTitleCasino777Box} from './game-title.casino777.box';\r\nimport {GameTitleCipBox} from \"./game-title.cip.box\";\r\nimport {GameTitleSIBox} from \"./game-title.si.box\";\r\n\r\nexport const GameTitleBox = styledByTheme(GameTitleDefaultBox)\r\n .forCip(GameTitleCipBox)\r\n .forWsopCip(GameTitleCipBox)\r\n .forSI(GameTitleSIBox)\r\n .forCasino777(GameTitleCasino777Box).apply();","import styled from 'styled-components';\r\nimport {GAME_GROUP_LIVE_CASINO} from '../../../css-constants';\r\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\n\r\nconst DefaultBox = styled.div`\r\n text-align: center;\r\n opacity: 1;\r\n color: ${props => props.theme.colors.brandSecondary};\r\n\r\n .${GAME_GROUP_LIVE_CASINO} & {\r\n color: ${props => props.theme.colors.brandPrimary};\r\n }\r\n`;\r\n\r\nexport const PcBox = styled(DefaultBox)`\r\n font-size: 1.4rem;\r\n font-weight: 600;\r\n`;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\r\n font-size: 1.3rem;\r\n font-weight: 400;\r\n \r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n font-size: 0.9rem;\r\n }\r\n`;\r\n\r\nexport const MinMaxBetAmountDefaultBox = styledByDevice(PcBox, MobileBox);\r\n","import styled, { css } from 'styled-components';\r\nimport {PcBox as BasePcBox, MobileBox as BaseMobileBox} from './min-max-bet-amount.default.box';\r\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\n\r\nconst common = css`\r\n color: ${props => props.theme.colors.dangerLight};\r\n font-weight: 600;\r\n font-family: ${({theme}) => theme.font.family.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 {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\n\r\nexport const MinMaxBetAmountBox = styledByTheme(MinMaxBetAmountDefaultBox).forCasino777(MinMaxBetAmountCasino777Box).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 justify-content: center;\r\n align-content: center;\r\n overflow: hidden;\r\n top: ${props => props.squareGameIcon? '10px' : '0'};\r\n min-height: 5rem;\r\n padding: 0 1rem 1rem;\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n min-height: 4rem;\r\n padding: 0 0.4rem 1rem;\r\n justify-content: space-between;\r\n top: ${props => props.squareGameIcon? '5px' : '0'};\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n min-height: 3.5rem;\r\n padding-bottom: 0;\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: 75%;\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 font-family: ${({theme}) => theme.font.family.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<{hasTwoLinesTitle: boolean}>`\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 padding-bottom: ${props => props.hasTwoLinesTitle? '0.6rem' : '0'};\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`;\r\n","import styled from 'styled-components';\r\n\r\nexport const TwoRowsGameTitleContainerBox = styled.div`\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-end;\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 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, WIDE_GRID} 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: 20%;\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-left: 1%;\r\n padding-right: 1%;\r\n width: 25%;\r\n }\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n margin-right: ${props => props.squareGameIcon ? '15px' : '0'};\r\n .${WIDE_GRID} & {\r\n width: calc(100% / 6);\r\n }\r\n }\r\n\r\n .${WIDE_GRID} & {\r\n width: calc(100% / 7);\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 font-family: ${props => props.theme.font.family.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 padding: 0 0 2rem 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\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) return null;\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}\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 _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 }\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 }\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 font-family: ${props => props.theme.font.family.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\nimport { WIDE_GRID } from '../../../../../themes/css-global-classes';\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 ${WIDE_GRID} & {\r\n width: 40px;\r\n }\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 font-family: ${props => props.theme.font.family.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 font-family: ${props => props.theme.font.family.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 font-family: ${({theme}) => theme.font.family.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 font-family: ${({theme}) => theme.font.family.regular};\r\n color: ${({theme}) => theme.colors.textLight};\r\n background: rgba(0,0,0,0.5);\r\n`;\r\n","import {VideoTileStaticImageOverlayDefaultBox} from \"./video-tile-static-image-overlay-default.box\";\r\n\r\nexport const VideoTileStaticImageOverlayBox = VideoTileStaticImageOverlayDefaultBox;\r\n","import styled from \"styled-components\";\r\nimport { hexToRgba } from \"../../../../themes/hex-to-rgba\";\r\n\r\nexport const VideoTileStaticImageOverlayDefaultBox = styled.div`\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n bottom: 0px;\r\n right: 0;\r\n background-color: ${props => hexToRgba(props.theme.colors.background, 0.85)};;\r\n`;\r\n","import {VideoTileSkeletonContainerDefaultBox} from \"./video-tile-skeleton-container-default.box\";\r\n\r\nexport const VideoTileSkeletonContainerBox = VideoTileSkeletonContainerDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoTileSkeletonContainerDefaultBox = styled.div`\r\n position: absolute;\r\n top: 0px;\r\n left: 0px;\r\n width: 100%;\r\n`;\r\n","import styled from \"styled-components\";\r\n\r\nconst DefaultBox = styled.video`\r\n width: 100%;\r\n height: 100%;\r\n`;\r\n\r\nexport const VideoDefaultBox = DefaultBox;\r\n","import { VideoDefaultBox } from './video-default.box';\r\nimport { styledByTheme } from '../../../../../themes/architecture/styled-by-theme';\r\n\r\nexport const VideoBox = styledByTheme(VideoDefaultBox).apply();\r\n","import { VideoPlayButtonDefaultBox } from './video-play-button.default.box';\r\n\r\n\r\nexport const VideoPlayButtonBox = VideoPlayButtonDefaultBox;\r\n","import styled from 'styled-components';\r\n\r\n\r\nexport const VideoPlayButtonDefaultBox = styled.button`\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-position: -544px -409px;\r\n background-size: 1200px;\r\n background-repeat: no-repeat;\r\n position: absolute;\r\n cursor: pointer;\r\n right: 0;\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n margin: auto;\r\n width: 6rem;\r\n height: 6rem;\r\n opacity: 0.9;\r\n transform: scale(1.5);\r\n transform: translateY(0);\r\n transition: all 0.35s ease-in-out;\r\n`;\r\n","import styled from 'styled-components';\r\n\r\ninterface LiveStreamingVideoContainerBoxProps {\r\n videoIsLoading: boolean;\r\n videoWatchTimeLimitReached: boolean;\r\n displayVideo: boolean;\r\n}\r\n\r\nconst DefaultBox = styled.div`\r\n display: ${props => props.displayVideo ? 'block' : 'none'};\r\n width: 100%;\r\n height: 100%;\r\n ${props => props.videoIsLoading || props.videoWatchTimeLimitReached ? 'filter: blur(2px)' : null};\r\n`;\r\n\r\nexport const VideoContainerDefaultBox = DefaultBox;\r\n","import { styledByTheme } from '../../../../themes/architecture/styled-by-theme';\r\nimport { VideoContainerDefaultBox } from './video-container-default.box';\r\n\r\nexport const VideoContainerBox = styledByTheme(VideoContainerDefaultBox).apply();\r\n","import React from 'react';\r\nimport { observer } from 'mobx-react';\r\nimport { CyClass } from '../../../../../common/cy-classes';\r\nimport { OrbitComponent } from '../../../base-components/orbit-component/orbit-component';\r\nimport { IVideoPlayer } from '../../../../services/video-live-stream/video-players/video-player.interface';\r\nimport { action, observable } from 'mobx';\r\nimport { VideoBox } from './boxes/video.box';\r\nimport { VideoPlayButtonBox } from \"../video-play-button/video-play-button.box\";\r\nimport {GameInfo} from \"../../../../services/games/game-info\";\r\nimport {VideoContainerBox} from '../video-container/video-container.box';\r\nimport {IVideoPlayingService} from \"../../../../services/video-live-stream/video-playing.service.interface\";\r\n\r\ninterface VideoComponentProps {\r\n gameInfo: GameInfo;\r\n muted: boolean;\r\n onError?: (hasError: boolean, retryFn?: (() => void) | undefined) => void;\r\n onLoading?: (isLoading: boolean) => void;\r\n onWatchTimeLimitReached?: (watchTimeLimitReached: boolean) => void;\r\n isInCenterStage: boolean;\r\n inViewport: boolean;\r\n display: boolean;\r\n videoPlayingService: IVideoPlayingService;\r\n isLastGametype?: boolean;\r\n}\r\n\r\n@observer\r\nexport class VideoComponent extends OrbitComponent {\r\n\r\n @observable\r\n private _videoPlayer: IVideoPlayer = null;\r\n @action.bound\r\n setLiveStreamPlayer(player: IVideoPlayer) {\r\n this._videoPlayer = player;\r\n }\r\n\r\n private _videoElement: HTMLVideoElement | null = null;\r\n private _isAppVisible = true;\r\n\r\n private _captureVideoRef = (mediaElement: HTMLVideoElement | null) => {\r\n if (mediaElement) {\r\n this._videoElement = mediaElement;\r\n }\r\n }\r\n\r\n private async _createVideoPlayer() {\r\n const liveStreamPlayer = await this.props.videoPlayingService.getVideoPlayer(this.props.gameInfo, this._videoElement, this.props.isLastGametype);\r\n this.setLiveStreamPlayer(liveStreamPlayer);\r\n }\r\n\r\n private _playVideo = async () => {\r\n if (!this._videoPlayer) {\r\n await this._createVideoPlayer();\r\n }\r\n\r\n this._videoPlayer.play();\r\n }\r\n\r\n private _pauseVideo = () => {\r\n if (this._videoPlayer) {\r\n this._videoPlayer.pause();\r\n }\r\n }\r\n\r\n private _detectIfVideoIsInFocus = () => {\r\n if (this._isAppVisible && this.props.isInCenterStage && this.props.inViewport) {\r\n this._playVideo();\r\n } else {\r\n this._pauseVideo();\r\n }\r\n }\r\n\r\n private _handlePlayVideoClick = () => {\r\n if (this._isAppVisible && this.props.isInCenterStage && this.props.inViewport) {\r\n this._playVideo();\r\n this._videoPlayer.logUIAction('info', 'VideoPlayClick');\r\n const gaCategory = this.props.videoPlayingService.gaCategory;\r\n this.services.analytics.sendAnalytics(gaCategory, \"AUTOPLAY\", \"VIDEO_PLAY_CLICK\", this.props.gameInfo.gameType, true);\r\n }\r\n }\r\n\r\n private _renderPlayerControls = () => {\r\n return this._videoPlayer?.autoplayAllowed ? null : (\r\n \r\n );\r\n }\r\n\r\n @action\r\n private _destroyPlayer = () => {\r\n if (this._videoPlayer) {\r\n this._videoPlayer.destroy();\r\n this._videoPlayer = null;\r\n }\r\n };\r\n\r\n private _retryPlay = () => {\r\n this._destroyPlayer();\r\n this._detectIfVideoIsInFocus();\r\n };\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n\r\n this._detectIfVideoIsInFocus();\r\n\r\n this.reaction(() => this._videoPlayer?.hasError, (hasError) => {\r\n this.props.onError(hasError, hasError ? this._retryPlay : undefined);\r\n });\r\n this.reaction(() => this._videoPlayer?.isLoading, (isLoading) => {\r\n this.props.onLoading(isLoading);\r\n });\r\n this.reaction(() => this._videoPlayer?.watchTimeLimitReached, (watchTimeLimitReached) => {\r\n this.props.onWatchTimeLimitReached(watchTimeLimitReached);\r\n });\r\n this.reaction(() => this.props.videoPlayingService.isAppVisible, (isAppVisible) => {\r\n this._isAppVisible = isAppVisible;\r\n this._detectIfVideoIsInFocus();\r\n });\r\n }\r\n\r\n componentDidUpdate(prevProps: VideoComponentProps) {\r\n if (this.props.isInCenterStage !== prevProps.isInCenterStage || this.props.inViewport !== prevProps.inViewport) {\r\n this._detectIfVideoIsInFocus();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n super.componentWillUnmount();\r\n\r\n this._destroyPlayer();\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n {this._renderPlayerControls()}\r\n \r\n )\r\n }\r\n};\r\n","import styled from \"styled-components\";\r\n\r\ninterface SkeletonAnimatedButtonProps {\r\n width: string;\r\n height: string;\r\n borderRadius?: string;\r\n}\r\n\r\nexport const SkeletonAnimatedButton = styled.div`\r\n\r\n width: ${({width}) => width};\r\n height: ${({height}) => height};\r\n margin-left: auto;\r\n\r\n background: rgba(255, 255, 255, 0.25);\r\n\r\n border-radius: ${({borderRadius}) => borderRadius || \"5px\"};\r\n animation: PulsatingAnimation 2.5s alternate infinite;\r\n\r\n @keyframes PulsatingAnimation {\r\n 0% {\r\n opacity: 1;\r\n }\r\n 100% {\r\n opacity: 0.25;\r\n }\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\n\r\ninterface SkeletonAnimatedRectangleProps {\r\n top?: boolean;\r\n left?: boolean;\r\n right?: boolean;\r\n bottom?: boolean;\r\n width: string;\r\n height: string;\r\n borderRadius?: string;\r\n}\r\n\r\nexport const SkeletonAnimatedRectangle = styled.div`\r\n\r\n position: absolute;\r\n\r\n top: ${({top}) => top ? \"1rem\" : \"initial\"};\r\n left: ${({left}) => left ? \"1rem\" : \"initial\"};\r\n right: ${({right}) => right ? \"1rem\" : \"initial\"};\r\n bottom: ${({bottom}) => bottom ? \"1rem\" : \"initial\"};\r\n\r\n width: ${({width}) => width};\r\n height: ${({height}) => height};\r\n\r\n background: rgba(0, 0, 0, 0.25);\r\n\r\n border-radius: ${({borderRadius}) => borderRadius || \"5px\"};\r\n animation: PulsatingAnimation 2s alternate infinite;\r\n\r\n @keyframes PulsatingAnimation {\r\n 0% {\r\n opacity: 1;\r\n }\r\n 100% {\r\n opacity: 0.5;\r\n }\r\n }\r\n`;\r\n","import {VideoTileFooterDefaultBox} from \"./video-tile-footer-default.box\";\r\n\r\nexport const VideoTileFooterBox = VideoTileFooterDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoTileFooterDefaultBox = styled.div`\r\n display: flex;\r\n position: relative;\r\n padding: 2rem 1rem;\r\n align-items: center;\r\n justify-content: space-between;\r\n background: ${({theme}) => theme.colors.backgroundLight.toString()};\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove } {\r\n padding: 3rem 2.5rem;\r\n }\r\n\r\n &::after {\r\n content: \"\";\r\n position: absolute;\r\n width: 100%;\r\n height: 1px;\r\n left: 0;\r\n bottom: 0;\r\n background: linear-gradient(90deg, transparent 10%, rgba(255, 255, 255, 0.85), transparent 90%);\r\n }\r\n`;\r\n","import {VideoTileSkeletonDefaultbox} from \"./video-tile-skeleton.defaultbox\";\r\n\r\nexport const VideoTileSkeletonbox = VideoTileSkeletonDefaultbox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoTileSkeletonDefaultbox = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n height: 100%;\r\n background: ${({theme}) => theme.colors.backgroundLight.toString()};\r\n`;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport {Image} from \"../raw-components/image/image\";\r\nimport {GameBox} from \"../single-game/regular-template/boxes/game/game.box\";\r\nimport {GameBox as JackpotGameBox} from \"../single-game/jackpot-template/boxes/game/game.box\";\r\nimport {GameTitleBox} from \"../single-game/regular-template/boxes/game-title/game-title.box\";\r\nimport {OrbitComponent} from \"../base-components/orbit-component/orbit-component\";\r\nimport {GameImageContainerBox} from \"../single-game/regular-template/boxes/game-image-container/game-image-container.box\";\r\nimport {GameImageContainerBox as JackpotGameImageContainerBox} from \"../single-game/jackpot-template/boxes/game-image-container/game-image-container.box\";\r\nimport {GameDetailsContainerBox} from \"../single-game/regular-template/boxes/game-details-container/game-details-container.box\";\r\nimport {GameDetailsContainerBox as JackpotGameDetailsContainerBox} from \"../single-game/jackpot-template/boxes/game-details-container/game-details-container.box\";\r\nimport {AspectRatioContainerComponent} from \"../raw-components/aspect-ratio-container/aspect-ratio-container.component\";\r\nimport {JACKPOTS_ITEM, LIVE_STREAMING_ITEM, STATIC_VIDEO_ITEM} from \"../../themes/css-global-classes\";\r\nimport {VideoTileBox} from \"../live-streaming-tile/video-common-components/video-tile/boxes/video-tile.box\";\r\nimport {SkeletonAnimatedButton} from \"../live-streaming-tile/video-common-components/video-tile-skeleton/skeleton-animated-button.box\";\r\nimport {SkeletonAnimatedRectangle} from \"../live-streaming-tile/video-common-components/video-tile-skeleton/skeleton-animated-rectangle.box\";\r\nimport {VideoTileFooterBox} from \"../live-streaming-tile/video-common-components/video-tile-footer/boxes/video-tile-footer.box\";\r\nimport {VideoTileSkeletonbox} from \"../live-streaming-tile/video-common-components/video-tile-skeleton/video-tile.skeletonbox\";\r\nimport { CyClass } from \"../../../common/cy-classes\";\r\nimport { AmountContainerBox } from \"./regular-template/boxes/amount-container/amount-container.box\";\r\n\r\nconst DummyTextBox = styled.div`\r\n background: linear-gradient(90deg, rgba(255, 255, 255, 0.25), rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.25));\r\n background-size: 400px 100%;\r\n border-radius: 5px;\r\n animation: TextLoadingAnimation 1s linear infinite;\r\n\r\n @keyframes TextLoadingAnimation {\r\n 0% {\r\n background-position-x: -200px;\r\n }\r\n 100% {\r\n background-position-x: 200px;\r\n }\r\n }\r\n`;\r\n\r\nconst DummyTextBoxAbsolute = styled(DummyTextBox)`\r\n position: absolute;\r\n top: 0;\r\n left: 25%;\r\n right: 25%;\r\n bottom: 0;\r\n`;\r\n\r\ninterface IDummyTextBoxRelativeProps {\r\n small?: boolean;\r\n}\r\n\r\nconst DummyTextBoxRelative = styled(DummyTextBox)`\r\n position: relative;\r\n width: ${({small}) => small ? \"50%\" : \"80%\"};\r\n height: 2rem;\r\n margin-bottom: 1rem;\r\n`;\r\n\r\nexport interface ISingleGameSkeletonComponentProps {\r\n templateType: string;\r\n useSquareIcons: boolean;\r\n placeholderImageSrc: string;\r\n}\r\n\r\nexport class SingleGameSkeletonComponent extends OrbitComponent {\r\n\r\n private _renderRegularGameSkeleton() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n  \r\n \r\n \r\n  \r\n \r\n \r\n );\r\n }\r\n\r\n private _renderJackpotGameSkeleton() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private _renderVideoSkeleton() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.services.mediaQuery.xlAndAbove ?\r\n :\r\n }\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n render () {\r\n\r\n if (this.props.templateType === JACKPOTS_ITEM) {\r\n return this._renderJackpotGameSkeleton();\r\n }\r\n\r\n if ([LIVE_STREAMING_ITEM, STATIC_VIDEO_ITEM].includes(this.props.templateType)) {\r\n return this._renderVideoSkeleton();\r\n }\r\n\r\n return this._renderRegularGameSkeleton();\r\n }\r\n}\r\n","import {VideoRetryScreenTileDefaultBox} from \"./video-retry-screen-tile-default.box\";\r\n\r\nexport const VideoRetryScreenTileBox = VideoRetryScreenTileDefaultBox;\r\n","import styled from \"styled-components\";\r\nimport { hexToRgba } from \"../../../../../themes/hex-to-rgba\";\r\n\r\nexport const VideoRetryScreenTileDefaultBox = styled.div`\r\n position: absolute;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n height: 100%;\r\n background: ${({theme}) => hexToRgba(theme.colors.background.toString(), 0.6)};\r\n`;\r\n","import {VideoRetryScreenIconDefaultBox} from \"./video-retry-screen-icon-default.box\";\r\n\r\nexport const VideoRetryScreenIconBox = VideoRetryScreenIconDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoRetryScreenIconDefaultBox = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 5rem;\r\n height: 5rem;\r\n background: ${({theme}) => theme.colors.background.toString()};\r\n border-radius: 50%;\r\n`;\r\n","import {VideoRetryScreenTitleDefaultBox} from \"./video-retry-screen-title-default.box\";\r\n\r\nexport const VideoRetryScreenTitleBox = VideoRetryScreenTitleDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoRetryScreenTitleDefaultBox = styled.div`\r\n margin: 1rem 0;\r\n font-size: 2rem;\r\n color: ${({theme}) => theme.colors.textLight.toString()};\r\n`;\r\n","import {VideoRetryScreenTextDefaultBox} from \"./video-retry-screen-text-default.box\";\r\n\r\nexport const VideoRetryScreenTextBox = VideoRetryScreenTextDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoRetryScreenTextDefaultBox = styled.div`\r\n margin-bottom: 1rem;\r\n font-size: 1.6rem;\r\n line-height: 1.5;\r\n color: ${({theme}) => theme.colors.textLight.toString()};\r\n`;\r\n","import {OrbitComponent} from \"../../../base-components/orbit-component/orbit-component\";\r\nimport React from 'react';\r\nimport {VideoRetryScreenTileBox} from \"./video-retry-screen-boxes/video-retry-screen-tile.box\";\r\nimport {VideoRetryScreenIconBox} from \"./video-retry-screen-boxes/video-retry-screen-icon.box\";\r\nimport {SvgSizeUnit} from \"../../../../basic-ui-components/icon/svg-icon/svg.icon\";\r\nimport {VideoRetryScreenTitleBox} from \"./video-retry-screen-boxes/video-retry-screen-title.box\";\r\nimport {VideoRetryScreenTextBox} from \"./video-retry-screen-boxes/video-retry-screen-text.box\";\r\nimport {Button} from \"../../../../basic-ui-components/button/base/button.component\";\r\n\r\nexport interface VideoRetryScreenComponentProps {\r\n retryFn: () => void;\r\n setHasError: (value: boolean, retryFn?: (() => void) | undefined) => void;\r\n}\r\n\r\nexport default class VideoRetryScreenComponent extends OrbitComponent {\r\n\r\n private _retryAndSetError = () => {\r\n if (this.props.retryFn) {\r\n this.props.retryFn();\r\n }\r\n this.props.setHasError(false);\r\n };\r\n\r\n render(): React.ReactNode {\r\n const BrokenLinkIcon = this.services.theme.currentTheme.icons.brokenLinkIcon;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {this.services.translation.translate('CANT_CONNECT_ERROR_TITLE')}\r\n \r\n \r\n {this.services.translation.translate('CANT_CONNECT_ERROR_MESSAGE')}\r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n","import {OrbitComponent} from \"../../../base-components/orbit-component/orbit-component\";\r\nimport {GameInfo} from \"../../../../services/games/game-info\";\r\nimport React from 'react';\r\nimport {LiveCasinoGridItemThumbnailImageBox} from \"../../../arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/thumbnail/live-casino-grid-item-thumbnail-image.box\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {addQueryParam} from \"../../../../../utils/url-utils\";\r\n\r\nexport interface VideoThumbnailImageComponentProps {\r\n onLoad: () => void;\r\n onSettled: () => void;\r\n gameInfo: GameInfo;\r\n filterBlur: boolean;\r\n}\r\n\r\nexport default class VideoThumbnailImageComponent extends OrbitComponent {\r\n\r\n //Priority for game video thumbnail image(takes the 1st that exists):\r\n // gameinfo.videoThumbnailUrl\r\n // tableinfo.TableImage\r\n // gameinfo.gameArenaIcon\r\n\r\n private _getImageSource = (): string => {\r\n const gameInfo: GameInfo = this.props.gameInfo;\r\n\r\n if (gameInfo?.videoThumbnailUrl) {\r\n return gameInfo?.videoThumbnailUrl;\r\n }\r\n\r\n const tableInfo = this.services.liveTableFeeds.getTableInfo(gameInfo.gameType);\r\n\r\n if (Check.isEmpty(tableInfo) || !tableInfo.TableImage) {\r\n return gameInfo?.gameArenaIcon;\r\n } else {\r\n // We need this random because we want to force react to reload the image because the url of the image is identical but the image changed.\r\n let imageRandom = Math.random();\r\n\r\n return addQueryParam(tableInfo.TableImage, imageRandom.toString());\r\n }\r\n };\r\n\r\n render(): React.ReactNode {\r\n return ();\r\n }\r\n}\r\n","import {VideoTileBettingRangeDefaultBox} from \"./video-tile-betting-range-default.box\";\r\n\r\nexport const VideoTileBettingRangeBox = VideoTileBettingRangeDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\n\r\nexport const VideoTileBettingRangeDefaultBox = styled.div`\r\n font-size: 1.2rem;\r\n color: ${({theme}) => theme.colors.brandPrimary.toString()};\r\n line-height: 1;\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove } {\r\n margin: 12px 0 0 0rem;\r\n font-size: 1.3rem;\r\n }\r\n`;\r\n","import {VideoTileGameTitleDefaultBox} from \"./video-tile-game-title-default.box\";\r\n\r\nexport const VideoTileGameTitleBox = VideoTileGameTitleDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoTileGameTitleDefaultBox = styled.div`\r\n text-overflow: ellipsis;\r\n font-size: 1rem;\r\n color: ${({theme}) => theme.colors.textLight.toString()};\r\n line-height: 1.1;\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove } {\r\n font-size: 1.3rem;\r\n }\r\n`;\r\n","import {VideoTileFooterSectionDefaultBox} from \"./video-tile-footer-section-default.box\";\r\n\r\nexport const VideoTileFooterSectionBox = VideoTileFooterSectionDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const VideoTileFooterSectionDefaultBox = styled.div<{width?: string;}>`\r\n width: ${({width}) => width ? width : \"auto\"};\r\n margin-right: 1rem;\r\n`;\r\n","import styled from \"styled-components\";\r\n\r\nconst VideoListJackpotValueDefaultBox = styled.span`\r\n color: ${({theme}) => theme.colors.brandPrimary.toString()};\r\n margin-left: 0.5rem;\r\n`;\r\n\r\nexport const VideoListJackpotValueBox = VideoListJackpotValueDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nconst VideoListJackpotContainerDefaultBox = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n font-size: 1.2rem;\r\n margin-top: 5px;\r\n`;\r\n\r\nexport const VideoListJackpotContainerBox = VideoListJackpotContainerDefaultBox;","import {OrbitComponent} from \"../../../base-components/orbit-component/orbit-component\";\r\nimport React, {ReactNode} from 'react';\r\nimport {GameInfo} from \"../../../../services/games/game-info\";\r\nimport {ILiveTableInfo} from \"../../../../services/live-table-feeds-service/live-table-feeds.service.interface\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {VideoTileBettingRangeBox} from \"../video-tile-betting-range/video-tile-betting-range.box\";\r\nimport {VideoTileGameTitleBox} from \"../video-tile-game-title/video-tile-game-title.box\";\r\nimport {VideoTileFooterBox} from \"./boxes/video-tile-footer.box\";\r\nimport {CyClass} from \"../../../../../common/cy-classes\";\r\nimport {VideoTileFooterSectionBox} from \"./boxes/video-tile-footer-section.box\";\r\nimport {Button} from \"../../../../basic-ui-components/button/base/button.component\";\r\nimport {GameJackpotComponent} from \"../../../game-jackpot/game-jackpot.component\";\r\nimport {\r\n VideoListJackpotValueBox\r\n} from \"../../static-video-specific-components/video-list-jackpot-value/video-list-jackpot-value.box\";\r\nimport {\r\n VideoListJackpotContainerBox\r\n} from \"../../static-video-specific-components/video-list-jackpot-container/video-list-jackpot-container.box\";\r\n\r\nexport type VideoTileFooterType = \"jackpot\" | \"bets\";\r\n\r\nexport interface VideoTileFooterComponentProps {\r\n onClickPlay: () => void;\r\n gameInfo: GameInfo;\r\n type: VideoTileFooterType;\r\n}\r\n\r\nexport default class VideoTileFooterComponent extends OrbitComponent {\r\n\r\n //Information from GetLiveTables request feed, for live casino games only.\r\n private get _tableInfo(): ILiveTableInfo | null {\r\n return this.services.liveTableFeeds.getTableInfo(this.props.gameInfo.gameType);\r\n }\r\n\r\n private _renderMinMaxBet(): ReactNode {\r\n\r\n let minBet: number;\r\n let maxBet: number;\r\n\r\n if(Check.isNullOrUndefined(this._tableInfo?.MinBet) || Check.isNullOrUndefined(this._tableInfo?.MaxBet)){\r\n minBet = this.props.gameInfo.minBet;\r\n maxBet = this.props.gameInfo.maxBet;\r\n } else {\r\n minBet = this._tableInfo.MinBet;\r\n maxBet = this._tableInfo.MaxBet;\r\n }\r\n\r\n return (\r\n \r\n {this.services.currency.formatMinMaxBet(minBet, maxBet)}\r\n \r\n );\r\n }\r\n\r\n private _renderGameTitle(): ReactNode {\r\n\r\n let title = this.props.gameInfo?.title || \"\\xa0\";\r\n\r\n if (this._tableInfo?.Name?.length > 0) {\r\n title = this._tableInfo.Name;\r\n }\r\n\r\n return (\r\n \r\n {title}\r\n \r\n );\r\n }\r\n\r\n private _renderJackpot() {\r\n if(!this.props.gameInfo.hasJackpot) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n {this.services.translation.translate(\"JACKPOT\")}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private _renderSecondaryText() {\r\n switch (this.props.type) {\r\n case \"bets\":\r\n return this._renderMinMaxBet();\r\n case \"jackpot\":\r\n return this._renderJackpot();\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n render(): React.ReactNode {\r\n return (\r\n \r\n \r\n {this._renderGameTitle()}\r\n {this._renderSecondaryText()}\r\n \r\n \r\n \r\n {this.services.translation.translate(\"PLAY_NOW\")}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { imagePreload, ImagePreloadPromiseResponse } from \"../../../../../common/utils/image-preload\";\r\nimport {CyClass} from \"../../../../../common/cy-classes\";\r\nimport {OrbitComponent} from \"../../../base-components/orbit-component/orbit-component\";\r\nimport {VideoTileBox} from \"./boxes/video-tile.box\";\r\nimport {AspectRatioContainerComponent} from \"../../../raw-components/aspect-ratio-container/aspect-ratio-container.component\";\r\nimport {VideoTileOverlayComponent} from \"../video-tile-overlay/video-tile-overlay.component\";\r\nimport {VideoTileOverlayBox} from \"../video-tile-overlay/boxes/video-tile-overlay.box\";\r\nimport {VideoTileStaticImageOverlayBox} from \"../video-tile-static-image-overlay/video-tile-static-image-overlay.box\";\r\nimport {VideoTileSkeletonContainerBox} from \"../video-tile-skeleton-container/video-tile-skeleton-container.box\";\r\nimport {VideoComponent} from \"../video-component/video.component\";\r\nimport {action, observable} from \"mobx\";\r\nimport {observer} from \"mobx-react\";\r\nimport {GameInfo} from \"../../../../services/games/game-info\";\r\nimport {SingleGameSkeletonComponent} from \"../../../single-game/single-game-skeleton.component\";\r\nimport {LIVE_STREAMING_ITEM} from \"../../../../themes/css-global-classes\";\r\nimport {TableSeatsComponent} from \"../../../arena-host/new-live-casino-arena/live-casino-arena-grid/shared-components/table-seats.component\";\r\nimport {RouletteDrawsComponent} from \"../../../arena-host/new-live-casino-arena/live-casino-arena-grid/shared-components/roulette-draws.component\";\r\nimport {IVideoPlayingService} from \"../../../../services/video-live-stream/video-playing.service.interface\";\r\nimport VideoRetryScreenComponent from \"../video-retry-screen/video-retry-screen.component\";\r\nimport {VIDEO_ITEM_TYPE} from \"../../../single-game/video-template/single-game-video-template.component\";\r\nimport VideoThumbnailImageComponent from \"../video-thumbnail-image/video-thumbnail-image.component\";\r\nimport VideoTileFooterComponent from \"../video-tile-footer/video-tile-footer.component\";\r\n\r\nexport interface VideoTileComponentProps {\r\n gameInfo: GameInfo;\r\n isInCenterStage: boolean;\r\n inViewport: boolean;\r\n onOpenRealGame: () => void;\r\n videoPlayingService: IVideoPlayingService;\r\n videoItemType: VIDEO_ITEM_TYPE;\r\n isLastGametype?: boolean;\r\n}\r\n\r\n@observer\r\nexport class VideoTileComponent extends OrbitComponent {\r\n private _posterImageLoadPromise: Promise | undefined = undefined;\r\n\r\n @observable\r\n private _hasError: boolean = false;\r\n\r\n private _retryFn: (() => void) | undefined;\r\n\r\n @action.bound\r\n setHasError(value: boolean, retryFn?: (() => void) | undefined) {\r\n this._hasError = value;\r\n this._retryFn = retryFn;\r\n }\r\n\r\n @observable\r\n private _posterImageLoaded = false;\r\n\r\n @action\r\n private setPosterImageLoaded(value: boolean) {\r\n this._posterImageLoaded = value;\r\n }\r\n private onPosterImageLoaded = () => {\r\n this.setPosterImageLoaded(true);\r\n }\r\n\r\n @observable\r\n private _isVideoLoading: boolean = true;\r\n\r\n @observable\r\n private _isFirstTimeLoading: boolean = true;\r\n\r\n @action.bound\r\n setIsVideoLoading(value: boolean) {\r\n this._isVideoLoading = value;\r\n if (value === false) {\r\n this.firstTimeLoadingDone();\r\n }\r\n }\r\n @action.bound\r\n firstTimeLoadingDone() {\r\n if (this._isFirstTimeLoading === true) {\r\n this._isFirstTimeLoading = false;\r\n }\r\n }\r\n\r\n @observable\r\n private _isWatchTimeLimitReached: boolean = false;\r\n\r\n @action.bound\r\n setIsWatchTimeLimitReached(value: boolean) {\r\n this._isWatchTimeLimitReached = value;\r\n }\r\n\r\n private _onPlayClickHandler = () => {\r\n this.props.onOpenRealGame();\r\n const gaCategory = this.props.videoPlayingService.gaCategory;\r\n this.services.analytics.sendAnalytics(gaCategory, \"PLAY_GAME\", \"CLICK\", this.props.gameInfo.gameType, true);\r\n };\r\n\r\n componentDidMount() {\r\n if (this.props.gameInfo.videoThumbnailUrl) {\r\n this._posterImageLoadPromise = imagePreload(this.props.gameInfo.videoThumbnailUrl);\r\n this._posterImageLoadPromise.then(this.onPosterImageLoaded);\r\n }\r\n }\r\n componentWillUnmount() {\r\n if (this._posterImageLoadPromise) {\r\n this._posterImageLoadPromise = undefined;\r\n }\r\n }\r\n\r\n private _renderPlayerOverlay() {\r\n if (!this._isWatchTimeLimitReached && !this._isVideoLoading) {\r\n return null;\r\n }\r\n\r\n let statusText = '';\r\n if (this._isWatchTimeLimitReached) {\r\n statusText = this.services.translation.translate('LIVE_STREAM_WATCH_TIME_REACHED');\r\n } else if (this._isVideoLoading) {\r\n statusText = this.services.translation.translate('LIVE_STREAM_VIDEO_LOADING');\r\n }\r\n\r\n return {statusText};\r\n }\r\n\r\n private _renderRetryScreen() {\r\n return (\r\n \r\n )\r\n }\r\n\r\n private _renderPlayer() {\r\n return (\r\n \r\n {/* For the video element I cannot conditionally render it for this.props.isInCenterStage because when the video reaches end and the user\r\n swipes right/left it renders again and starts again */}\r\n \r\n {((this.services.mediaQuery.xlAndAbove && !this.props.isInCenterStage) || this._hasError || (this.props.isInCenterStage && this._isFirstTimeLoading && this._posterImageLoaded)) ? this._renderVideoThumbnailImage(this._hasError && this.props.isInCenterStage) : this._renderPlayerOverlay()}\r\n {this._renderTileOverlayComponent()}\r\n {(this._hasError && this.props.isInCenterStage) ? this._renderRetryScreen() : null}\r\n \r\n );\r\n }\r\n\r\n private _renderTileOverlayComponent(): React.ReactNode {\r\n if (this.props.videoItemType === VIDEO_ITEM_TYPE.STATIC) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n const tableInfo = this.services.liveTableFeeds.getTableInfo(this.props.gameInfo.gameType);\r\n\r\n return (\r\n }\r\n bottomRightComponent={}\r\n videoPlaying={this.props.isInCenterStage && !this._hasError}\r\n />\r\n )\r\n\r\n }\r\n\r\n private _renderVideoThumbnailImage(filterBlur: boolean) {\r\n return \r\n }\r\n\r\n private _renderFooter() {\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _renderSkeleton() {\r\n if (this._isFirstTimeLoading && !this._posterImageLoaded) {\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n }\r\n\r\n private _renderStaticImageOverlay() {\r\n if (this.props.isInCenterStage || this.services.mediaQuery.lAndBelow) {\r\n return null;\r\n }\r\n return ;\r\n }\r\n\r\n\r\n render() {\r\n\r\n return (\r\n \r\n {this._renderPlayer()}\r\n {this._renderFooter()}\r\n {this._renderSkeleton()}\r\n {this._renderStaticImageOverlay()}\r\n \r\n );\r\n }\r\n}\r\n","import {VideoItemContainerDefaultBox} from \"./video-item-container-default.box\";\r\n\r\nexport const VideoItemContainerBox = VideoItemContainerDefaultBox;\r\n","import styled from \"styled-components\";\r\nimport {flexFixedSizeItem} from \"../../../../themes/architecture/css-helpers/flex\";\r\n\r\nexport const VideoItemContainerDefaultBox = styled.div<{stepBackStyle: boolean;}>`\r\n width: 100%;\r\n ${flexFixedSizeItem}\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove} {\r\n width: 33.33%;\r\n transition: transform 0.5s ease-in-out;\r\n transform: ${({stepBackStyle}) => stepBackStyle ? \"scale(0.7)\" : \"scale(1)\"};\r\n }\r\n`;\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {SingleGameRegularTemplateComponent} from './regular-template/single-game-regular-template.component';\r\nimport {GameInfo, OpenGameParameters} from '../../services/games/game-info';\r\nimport {CssClassNameBuilder} from '../../../utils/css-class-name-builder';\r\nimport {observer} from 'mobx-react';\r\nimport {GAME_BOX, SWIPER_MODE} from './css-constants';\r\nimport {SingleGameJackpotTemplateComponent} from './jackpot-template/single-game-jackpot-template.component';\r\nimport {JACKPOTS_ITEM, LIVE_CASINO_ITEM, LIVE_STREAMING_ITEM, STATIC_VIDEO_ITEM} from '../../themes/css-global-classes';\r\nimport {CyClass} from '../../../common/cy-classes';\r\nimport {SingleGameLiveTemplateComponent} from './live-template/single-game-live-template.component';\r\nimport {SingleGameVideoTemplate, VIDEO_ITEM_TYPE} from './video-template/single-game-video-template.component';\r\nimport {GameIconAnimationState} from './common/parts/game-image/game-image.component';\r\n\r\nexport interface SingleGameComponentProps {\r\n gameType: number;\r\n seoCategory: string;\r\n listTitle: string;\r\n listPosition?: number,\r\n AdminListID?: number,\r\n AIListTypeID?: number;\r\n templateType?: any;\r\n gameIndex?: number;\r\n skipIntermediatePage?: boolean;\r\n disableGameInfoHover: boolean;\r\n isInsideSwiper?: boolean;\r\n aiEngine?: string;\r\n useSquareIcons?: boolean;\r\n showNumberBadge?: boolean;\r\n intersectionTarget?: HTMLDivElement;\r\n hasTwoLinesTitle?: boolean;\r\n isLastGametype?: boolean;\r\n}\r\n\r\n@observer\r\nexport class SingleGameComponent extends OrbitComponent {\r\n private animatedIconState: GameIconAnimationState = \"static\";\r\n\r\n get gameInfo(): GameInfo {\r\n return this.services.games.gamesMap[this.props.gameType];\r\n }\r\n\r\n private openRealGame = () => {\r\n this._openGame(true);\r\n };\r\n\r\n private openAnonymousGame = () => {\r\n this._openGame(false);\r\n };\r\n\r\n private openInfoPage = () => {\r\n this.services.location.push(this.gameInfo.infoPageURL);\r\n this.sendAnalytics(`SEO_${this.gameInfo.gameType}`);\r\n };\r\n\r\n private _openGame(openInRealMode: boolean): void {\r\n\r\n\r\n const openGameParams: OpenGameParameters = {\r\n isRealMode: openInRealMode,\r\n pageName: this.props.seoCategory,\r\n listTitle: this.props.listTitle,\r\n listPosition: this.props.listPosition,\r\n AdminListID: this.props.AdminListID,\r\n AIListTypeID: this.props.AIListTypeID,\r\n gameIndex: this.props.gameIndex,\r\n aiEngine: this.props.aiEngine,\r\n showIntermediatePage: !this.props.skipIntermediatePage,\r\n animatedIconState: this.animatedIconState\r\n };\r\n\r\n this.gameInfo.open(openGameParams)\r\n }\r\n\r\n private get _allowPreview(): boolean {\r\n return this.services.lobbyGameInfoPreview.allowGamePreview\r\n && !this.props.disableGameInfoHover;\r\n }\r\n\r\n private sendAnalytics(label: string) {\r\n this.services.analytics.sendAnalytics(this.props.seoCategory, this.props.listTitle, label);\r\n }\r\n\r\n private setAnimatedIconState = (state: GameIconAnimationState) => {\r\n this.animatedIconState = state;\r\n }\r\n\r\n private onMouseEnter = () => {\r\n if (this._allowPreview) {\r\n this.services.lobbyGameInfoPreview.setGamePreview(this.props.gameType);\r\n }\r\n };\r\n\r\n\r\n private onMouseLeave = () => {\r\n if (this._allowPreview) {\r\n this.services.lobbyGameInfoPreview.clearGamePreview();\r\n }\r\n };\r\n\r\n\r\n private _buildComponentClasses(gameInfo: GameInfo): string {\r\n let builder = new CssClassNameBuilder();\r\n\r\n builder.append(GAME_BOX);\r\n\r\n if(this.props.isInsideSwiper) {\r\n builder = builder.append(SWIPER_MODE);\r\n }\r\n\r\n if (gameInfo) {\r\n builder = builder.append(`game-group-${toCssClass(gameInfo.gameGroup)}`)\r\n .append(`game-category-${gameInfo.gameCategory}`)\r\n .append(`game-company-${toCssClass(gameInfo.companyName)}`)\r\n .append(`game-type-${gameInfo.gameType}`);\r\n }\r\n\r\n if(this.props.skipIntermediatePage) {\r\n builder.append(CyClass('cy-skip-intermediate-page'));\r\n }\r\n\r\n return builder.build();\r\n\r\n }\r\n\r\n render() {\r\n\r\n let gameInfo = this.gameInfo;\r\n\r\n if(!gameInfo) {\r\n return null;\r\n }\r\n\r\n try {\r\n\r\n const classes = this._buildComponentClasses(gameInfo);\r\n\r\n switch (this.props.templateType) {\r\n\r\n case JACKPOTS_ITEM:\r\n return (\r\n \r\n );\r\n\r\n case LIVE_CASINO_ITEM:\r\n return (\r\n \r\n );\r\n\r\n case LIVE_STREAMING_ITEM:\r\n return (\r\n \r\n );\r\n\r\n case STATIC_VIDEO_ITEM:\r\n return (\r\n \r\n );\r\n\r\n default:\r\n return (\r\n \r\n );\r\n }\r\n\r\n } catch (err) {\r\n this.services.logger.error(`Failed to render SingleGameComponent for game ${gameInfo.gameType} - ${gameInfo.title} in list ${this.props.listTitle}`, err);\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nfunction toCssClass(str: string){\r\n try{\r\n return str.replace(/\\s+/g, '-').toLowerCase();\r\n }\r\n catch(e){\r\n return '';\r\n }\r\n}\r\n\r\n","import styled from 'styled-components';\r\nimport {GameBox} from '../../../single-game/regular-template/boxes/game/game.box';\r\nimport { CssRule } from '../../../../themes/architecture/css-helpers/css-rule';\r\n\r\n\r\nexport const GamePlaceHolderDefaultBox = styled(GameBox)`\r\n ${CssRule.For.mobile.embededHybrid.build()} & , ${CssRule.For.mobile.miniOrbit.build()} & {\r\n display: none;\r\n }\r\n`;","import { IJackpotHandler } from \"./jackpot-handler/jackpot-handler.interface\";\r\nimport {JACKPOT_STATE, JackpotType} from '../../../common/const/jackpot_map_ids';\r\n\r\nexport enum JackpotThemeType {\r\n Light,\r\n Dark\r\n}\r\n\r\nexport interface IJackpotData {\r\n amountInCents: number;\r\n jackpotId: string;\r\n jackpotState: JACKPOT_STATE;\r\n lastWinAmount: number;\r\n mustHitTime: Date;\r\n}\r\n\r\nexport interface IJackpotsWithStateService {\r\n readonly currentJackpots: Record;\r\n getThemeType(jpType: JackpotType): JackpotThemeType;\r\n}\r\n","import {GamePlaceHolderDefaultBox} from './game-placeholder.default.box';\r\n\r\nexport const GamePlaceHolderBox = GamePlaceHolderDefaultBox;","import {GameImageDefaultBox} from './game-image.default.box';\r\n\r\nexport const GameImageBox = GameImageDefaultBox;","import styled from 'styled-components';\r\nimport {GameImageBox as BaseGameImageBox} from '../../../single-game/common/boxes/game-image/game-image.box';\r\n\r\nexport const GameImageDefaultBox = styled(BaseGameImageBox)`\r\n cursor: default;\r\n`;\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {GamePlaceHolderBox} from './boxes/placeholder/game-placeholder.box';\r\nimport {GameImageBox} from './boxes/game-image/game-image.box';\r\nimport {GameImageContainerBox} from '../single-game/regular-template/boxes/game-image-container/game-image-container.box';\r\nimport {observer} from 'mobx-react';\r\nimport {GAME_IMAGE_CONTAINER, SWIPER_MODE} from '../single-game/css-constants';\r\nimport classNames from 'classnames';\r\n\r\nexport interface SingleGamePlaceholderComponentProps {\r\n isInsideSwiper: boolean\r\n}\r\n\r\n@observer\r\nexport class SingleGamePlaceholderComponent extends OrbitComponent {\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import styled from 'styled-components';\r\nimport {HOME_PAGE, JACKPOTS_ITEM, LIVE_STREAMING_ITEM, STATIC_VIDEO_ITEM} from '../../../../themes/css-global-classes';\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\n\r\n\r\nconst DefaultBox = styled.div`\r\n position: relative;\r\n width: 100%;\r\n padding: 0;\r\n margin: 0 auto;\r\n overflow: hidden;\r\n`;\r\n\r\n//Temporary duplicate style for STATIC_VIDEO_ITEM and LIVE_STREAMING_ITEM\r\nexport const PcBox = styled(DefaultBox)`\r\n .${HOME_PAGE} & {\r\n width: 90%;\r\n &.${JACKPOTS_ITEM} {\r\n width: 100%;\r\n }\r\n }\r\n\r\n &.${LIVE_STREAMING_ITEM},\r\n &.${STATIC_VIDEO_ITEM} {\r\n width: 104%;\r\n padding-bottom: 2.5rem;\r\n padding-top: 1.5rem;\r\n margin-left: -2%;\r\n clip-path: polygon(8% 0, 92% 0%, 92% 100%, 8% 100%);\r\n overflow: unset;\r\n }\r\n`;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\r\n padding: 0;\r\n`;\r\n\r\nexport const SwiperWrapperDefaultBox = styledByDevice(PcBox, MobileBox);\r\n","import styled from 'styled-components';\r\nimport {PcBox as BasePcBox, MobileBox as BaseMobileBox} from './swiper-wrapper.default.box';\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\n\r\nconst PcBox = styled(BasePcBox)`\r\n padding-top: 0.5rem;\r\n`;\r\n\r\nconst MobileBox = styled(BaseMobileBox)`\r\n padding-top: 0;\r\n`;\r\n\r\n\r\nexport const SwiperWrapperCasino777Box = styledByDevice(PcBox, MobileBox);","import {styledByTheme} from '../../../../themes/architecture/styled-by-theme';\r\nimport {SwiperWrapperDefaultBox} from './swiper-wrapper.default.box';\r\nimport {SwiperWrapperCasino777Box} from './swiper-wrapper.casino777.box';\r\n\r\nexport const SwiperWrapperBox = styledByTheme(SwiperWrapperDefaultBox).forCasino777(SwiperWrapperCasino777Box).apply();","import styled, { css } from 'styled-components';\r\nimport {JACKPOTS_ITEM} from '../../../../themes/css-global-classes';\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\n\r\n\r\ninterface SwiperGamesListBoxProp {\r\n isTouchDevice: boolean;\r\n}\r\n\r\nconst DefaultBox = styled.div`\r\n position: relative;\r\n display: flex;\r\n justify-content: flex-start;\r\n transition: transform .5s ease-in-out;\r\n will-change: transform;\r\n width: 100%;\r\n height: 100%;\r\n margin-top: 10px;\r\n\r\n -webkit-overflow-scrolling: touch;\r\n -ms-overflow-style: -ms-autohiding-scrollbar;\r\n overflow: -moz-scrollbars-none;\r\n &::-webkit-scrollbar {\r\n display: none;\r\n }\r\n\r\n ${({isTouchDevice}) => !isTouchDevice? css`\r\n overflow: visible;\r\n ` : css`\r\n overflow-x: scroll;\r\n overflow-y: hidden;\r\n `}\r\n`;\r\n\r\nconst PcBox = styled(DefaultBox)`\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n margin-top: 5px;\r\n margin-bottom: 20px;\r\n\r\n .${JACKPOTS_ITEM} & {\r\n display: flex;\r\n flex-wrap: wrap;\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n flex-direction: column;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndAbove} {\r\n flex-direction: row;\r\n }\r\n }\r\n`;\r\n\r\nexport const SwiperGamesListDefaultBox = styledByDevice(PcBox, MobileBox);\r\n","import {SwiperGamesListDefaultBox} from './swiper-games-list.default.box';\r\n\r\nexport const SwiperGamesListBox = SwiperGamesListDefaultBox;","import {SwiperDefaultBox} from './swiper.default.box';\r\n\r\nexport const SwiperBox = SwiperDefaultBox;","import styled from 'styled-components';\r\n\r\nexport const SwiperDefaultBox = styled.div`\r\n /** This overflow hidden solves a problem with live video streaming on right-to-left languages\r\n Without it, the IntersectionObserver does not work correctly and a weird behavior happens:\r\n The first video flicker like it is intersecting and transforms from scale(0.7) to scale(1) but in that process it loses intersection (ratio>0.99) and transforms back\r\n And again and again, an infinite flicker */\r\n overflow: hidden;\r\n`;","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {SingleGameComponent} from '../single-game/single-game.component';\r\nimport {SingleGamePlaceholderComponent} from '../single-game-placeholder/single-game-placeholder.component';\r\nimport classNames from 'classnames';\r\nimport {SwiperWrapperBox} from './boxes/swiper-wrapper/swiper-wrapper.box';\r\nimport {SwiperGamesListBox} from './boxes/swiper-games-list/swiper-games-list.box';\r\nimport {SwiperBox} from './boxes/swiper/swiper.box';\r\nimport {SingleGameSkeletonComponent} from '../single-game/single-game-skeleton.component';\r\nimport {CyClass} from '../../../common/cy-classes';\r\nimport {TextTranslation} from \"../../services/translation/text-translation\";\r\nimport {OrbitComponent} from \"../base-components/orbit-component/orbit-component\";\r\nimport {ISwiperListViewModel} from \"../../services/arenas/models/lists/swiper-list-view-model.interface\";\r\nimport { observable, action } from 'mobx';\r\n\r\nexport interface OrbitSwiperComponentProps {\r\n viewModel: ISwiperListViewModel;\r\n numberOfPlaceholders?: number;\r\n skipIntermediatePage?: boolean;\r\n useSquareIcons?: boolean;\r\n showNumberBadge?: boolean;\r\n className?: string;\r\n listPosition: number;\r\n lastGameType?: number;\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 _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.props.useSquareIcons) {\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 _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 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\n\r\nexport interface IJackpotWidgetBgBoxProps {\r\n jackpotType: JackpotType;\r\n widgetIsMinimized?: boolean;\r\n shouldRenderSkeleton?: boolean;\r\n}\r\n\r\nexport const JackpotWidgetBgBox = styled.div`\r\n background-image: ${props => !props.shouldRenderSkeleton ? 'url(' +\r\n props.theme.images.jackpotWidget.byType[props.jackpotType].background.toString() + ')' : 'none'\r\n };\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 ${({widgetIsMinimized}) => widgetIsMinimized && 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 @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n ${(props) => props.theme.images.jackpotWidget.byType[props.jackpotType].mobile?.background ? css`\r\n background-image: ${!props.shouldRenderSkeleton ? 'url(' +\r\n props.theme.images.jackpotWidget.byType[props.jackpotType].mobile.background.toString() + ')' : 'none'\r\n };\r\n ` : \"\"}\r\n }\r\n`;\r\n","import styled, {css} from 'styled-components';\r\n\r\nexport interface IJackpotWidgetLogoBoxProps {\r\n forcePCView?: boolean;\r\n widgetIsMinimized?: boolean;\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 ${({forcePCView}) => !forcePCView && css`\r\n\t @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n\t width: 78%;\r\n\t padding-top: 1rem;\r\n\t }\r\n `}\r\n\r\n ${({widgetIsMinimized}) => widgetIsMinimized && 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\n\r\ninterface IJackpotWidgetAmountBox {\r\n forcePCView: boolean;\r\n state: JACKPOT_STATE;\r\n widgetIsMinimized?: boolean;\r\n widgetWidth: number;\r\n themeType: JackpotThemeType;\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-family: ${({state, theme}) => state === JACKPOT_STATE.Cold ? theme.font.family.bold : theme.font.family.black };\r\n ${({state}) => state === JACKPOT_STATE.Cold ? css`\r\n opacity: 0.8;\r\n ` : null };\r\n font-size: ${({widgetWidth, widgetIsMinimized}) => {\r\n if (widgetIsMinimized) {\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 }\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 }};\r\n ${({forcePCView, widgetWidth, theme}) => !forcePCView ? css`\r\n @media ${theme.mediaQuery.mAndBelow} {\r\n /** In mobile view at a widget width of 131px, the amount should be of font-size 16px */\r\n font-size: ${widgetWidth * 16 / 131 + \"px\"};\r\n }\r\n ` : null}\r\n`;\r\n\r\nconst JackpotWidgetAmountCasino777Box = styled(JackpotWidgetAmountDefaultBox)`\r\n color: ${({state, theme, themeType}) => (themeType === JackpotThemeType.Light ? (state === JACKPOT_STATE.Cold ? theme.colors.textContrast : theme.colors.danger) : theme.colors.brandSecondary) };\r\n text-shadow: none;\r\n`;\r\n\r\nexport const JackpotWidgetAmountBox = styledByTheme(JackpotWidgetAmountDefaultBox).forCasino777(JackpotWidgetAmountCasino777Box).apply();\r\n","import styled, { css } from \"styled-components\";\r\n\r\nexport interface IJackpotWidgetFooterBoxProps {\r\n\tforcePCView?: boolean;\r\n\twidgetIsMinimized?: boolean;\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\t${({forcePCView}) => !forcePCView && css`\r\n\t\t@media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n\t flex-direction: column;\r\n\t padding: 0rem 0rem 1rem;\r\n\t }\r\n\t`}\r\n\r\n\t${({widgetIsMinimized}) => widgetIsMinimized && 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`;\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\n\r\ninterface IJackpotWidgetClockLabelBox{\r\n forcePCView: boolean;\r\n state: JACKPOT_STATE;\r\n widgetIsMinimized?: boolean;\r\n widgetWidth: number;\r\n themeType: JackpotThemeType;\r\n}\r\n\r\nconst JackpotWidgetClockLabelDefaultBox = styled.div`\r\n font-family: ${({theme}) => theme.font.family.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: ${({widgetIsMinimized}) => widgetIsMinimized ? \"100%\" : \"74%\" };\r\n text-align: ${({widgetIsMinimized}) => widgetIsMinimized ? \"center\" : \"left\" };\r\n font-size: ${({widgetWidth, widgetIsMinimized}) => {\r\n if (widgetIsMinimized) {\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 }\r\n /** In desktop view at a widget width of 468px, the amount should be of font-size 15px */\r\n return widgetWidth * 14 / 468 + \"px\";\r\n }};\r\n ${({forcePCView, widgetWidth, theme}) => !forcePCView ? css`\r\n @media ${theme.mediaQuery.mAndBelow} {\r\n text-align: center;\r\n width: 100%;\r\n /** In mobile view at a widget width of 131px, the amount should be of font-size 9px */\r\n font-size: ${widgetWidth * 9 / 131 + \"px\"};\r\n }\r\n ` : null}\r\n`;\r\n\r\nconst JackpotWidgetClockLabelCasino777Box = styled(JackpotWidgetClockLabelDefaultBox)`\r\n color: ${({state, theme, themeType}) => themeType === JackpotThemeType.Light ? (state === JACKPOT_STATE.Hot ? theme.colors.danger : theme.colors.textContrast) : theme.colors.brandSecondary};\r\n`;\r\nexport const JackpotWidgetClockLabelBox = styledByTheme(JackpotWidgetClockLabelDefaultBox)\r\n .forCasino777(JackpotWidgetClockLabelCasino777Box).apply();\r\n","import styled, {css} 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\n\r\nexport interface IJackpotWidgetClockBoxProps {\r\n className?: string;\r\n forcePCView?: boolean;\r\n widgetIsMinimized?: boolean;\r\n widgetWidth?: number;\r\n themeType: JackpotThemeType;\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: ${({widgetIsMinimized}) => widgetIsMinimized ? \"100%\" : \"26%\" };\r\n text-align: ${({widgetIsMinimized}) => widgetIsMinimized ? \"center\" : \"right\" };\r\n font-size: ${({widgetWidth, widgetIsMinimized}) => {\r\n /** For the floating clock shown in game, no need to compute relative (fluid) font-size */\r\n if (!widgetWidth) {\r\n return widgetIsMinimized ? \"15px\" : \"30px\";\r\n }\r\n if (widgetIsMinimized) {\r\n /** In minimized view at a widget width of 375px, the amount should be of font-size 9px */\r\n return widgetWidth * 15 / 375 + \"px\";\r\n }\r\n /** In desktop view at a widget width of 468px, the amount should be of font-size 15px */\r\n return widgetWidth * 30 / 468 + \"px\";\r\n }};\r\n ${({forcePCView, widgetWidth, theme}) => !forcePCView ? css`\r\n @media ${theme.mediaQuery.sAndBelow} {\r\n text-align: center;\r\n width: 100%;\r\n /** In mobile view at a widget width of 131px, the amount should be of font-size 9px */\r\n font-size: ${widgetWidth ? (widgetWidth * 15 / 131 + \"px\") : \"15px\"};\r\n }\r\n ` : null}\r\n`;\r\n\r\nconst JackpotWidgetClockCasino777Box = styled(JackpotWidgetClockDefaultBox)`\r\n color: ${({themeType, theme}) => themeType === JackpotThemeType.Light ? theme.colors.brandPrimaryContrast : theme.colors.brandSecondary};\r\n`;\r\n\r\nexport const JackpotWidgetClockBox = styledByTheme(JackpotWidgetClockDefaultBox).forCasino777(JackpotWidgetClockCasino777Box).apply();\r\n","import React from 'react';\r\nimport { observable, action } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport { TimeSpan } from '@sparkware/app-utils';\r\nimport { OrbitComponent } from '../base-components/orbit-component/orbit-component';\r\nimport { JackpotWidgetClockBox } from './boxes/footer/clock/box/jackpot-widget-clock.box';\r\nimport {JACKPOT_STATE, JackpotType} from '../../../common/const/jackpot_map_ids';\r\n\r\ninterface IDailyJackpotWidgetClockComponentProps {\r\n jackpotState: JACKPOT_STATE;\r\n getMustHitTime: () => Date;\r\n forcePCView?: boolean;\r\n widgetIsMinimized?: boolean;\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, { css } 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\n\r\ninterface IJackpotWidgetAmountLabelBox {\r\n forcePCView: boolean;\r\n widgetIsMinimized?: boolean;\r\n widgetWidth: number;\r\n themeType: JackpotThemeType;\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 font-family: ${({theme}) => theme.font.family.ultra};\r\n\r\n font-size: ${({widgetWidth, widgetIsMinimized}) => {\r\n if (widgetIsMinimized) {\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 }\r\n /** In desktop view at a widget width of 468px, the amount should be of font-size 15px */\r\n return widgetWidth * 15 / 468 + \"px\";\r\n }};\r\n ${({forcePCView, widgetWidth, theme}) => !forcePCView ? css`\r\n @media ${theme.mediaQuery.mAndBelow} {\r\n /** In mobile view at a widget width of 131px, the amount should be of font-size 9px */\r\n font-size: ${widgetWidth * 9 / 131 + \"px\"};\r\n }\r\n ` : null}\r\n`;\r\n\r\nconst JackpotWidgetAmountLabelCasino777Box = styled(JackpotWidgetAmountLabelDefaultBox)`\r\n color: ${(props) => props.themeType === JackpotThemeType.Light ? props.theme.colors.brandPrimaryContrast : props.theme.colors.brandSecondary};\r\n`;\r\n\r\nexport const JackpotWidgetAmountLabelBox = styledByTheme(JackpotWidgetAmountLabelDefaultBox).forCasino777(JackpotWidgetAmountLabelCasino777Box).apply();\r\n","import styled, { css } 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\n\r\ninterface IJackpotWidgetCollectingLabelBox {\r\n forcePCView: boolean;\r\n widgetIsMinimized?: boolean;\r\n widgetWidth: number;\r\n themeType: JackpotThemeType;\r\n}\r\n\r\nconst JackpotWidgetCollectingLabelDefaultBox = styled.div`\r\n font-family: ${({theme}) => theme.font.family.body};\r\n color: ${({theme}) => theme.colors.brandSecondary};\r\n letter-spacing: 0.02rem;\r\n\r\n width: ${({widgetIsMinimized}) => widgetIsMinimized ? \"100%\" : \"62%\" };\r\n text-align: ${({widgetIsMinimized}) => widgetIsMinimized ? \"center\" : \"left\" };\r\n font-size: 16px;\r\n font-size: ${({widgetWidth, widgetIsMinimized}) => {\r\n if (widgetIsMinimized) {\r\n /** In minimized view at a widget width of 375px, the amount should be of font-size 9px */\r\n return widgetWidth * 10 / 375 + \"px\";\r\n }\r\n /** In desktop view at a widget width of 468px, the amount should be of font-size 15px */\r\n return widgetWidth * 16 / 468 + \"px\";\r\n }};\r\n ${({forcePCView, widgetWidth, theme}) => !forcePCView ? css`\r\n @media ${theme.mediaQuery.mAndBelow} {\r\n text-align: center;\r\n width: 100%;\r\n /** In mobile view at a widget width of 131px, the amount should be of font-size 9px */\r\n font-size: ${widgetWidth * 10 / 131 + \"px\"};\r\n }\r\n ` : null}\r\n`;\r\n\r\nconst JackpotWidgetCollectingLabelCasino777Box = styled(JackpotWidgetCollectingLabelDefaultBox)`\r\n color: ${({theme, themeType}) => themeType === JackpotThemeType.Light ? theme.colors.danger : theme.colors.brandSecondary};\r\n`;\r\n\r\nexport const JackpotWidgetCollectingLabelBox = styledByTheme(JackpotWidgetCollectingLabelDefaultBox)\r\n .forCasino777(JackpotWidgetCollectingLabelCasino777Box).apply();\r\n","import styled, {css} 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\n\r\ninterface IJackpotWidgetCollectingAmountBox{\r\n forcePCView: boolean;\r\n widgetIsMinimized?: boolean;\r\n widgetWidth: number;\r\n themeType: JackpotThemeType;\r\n}\r\n\r\nconst JackpotWidgetCollectingAmountDefaultBox = styled.div`\r\n font-family: ${({theme}) => theme.font.family.bold};\r\n color: ${({theme}) => theme.colors.brandSecondary};\r\n\r\n width: ${({widgetIsMinimized}) => widgetIsMinimized ? \"100%\" : \"38%\" };\r\n text-align: ${({widgetIsMinimized}) => widgetIsMinimized ? \"center\" : \"right\" };\r\n font-size: ${({widgetWidth, widgetIsMinimized}) => {\r\n if (widgetIsMinimized) {\r\n /** In minimized view at a widget width of 375px, the amount should be of font-size 9px */\r\n return widgetWidth * 12 / 375 + \"px\";\r\n }\r\n /** In desktop view at a widget width of 468px, the amount should be of font-size 15px */\r\n return widgetWidth * 25 / 468 + \"px\";\r\n }};\r\n ${({forcePCView, widgetWidth, theme}) => !forcePCView ? css`\r\n @media ${theme.mediaQuery.mAndBelow} {\r\n text-align: center;\r\n width: 100%;\r\n /** In mobile view at a widget width of 131px, the amount should be of font-size 9px */\r\n font-size: ${widgetWidth * 12 / 131 + \"px\"};\r\n }\r\n ` : null}\r\n`;\r\n\r\nconst JackpotWidgetCollectingAmountCasino777Box = styled(JackpotWidgetCollectingAmountDefaultBox)`\r\n color: ${({theme, themeType}) => themeType === JackpotThemeType.Light ? theme.colors.danger : theme.colors.brandSecondary};\r\n`;\r\n\r\nexport const JackpotWidgetCollectingAmountBox = styledByTheme(JackpotWidgetCollectingAmountDefaultBox)\r\n .forCasino777(JackpotWidgetCollectingAmountCasino777Box).apply();\r\n","import styled, { keyframes, css } from \"styled-components\";\r\n\r\nconst animationProps = \"2s ease-in-out 0s normal infinite none running\";\r\n\r\n/**\r\n * The leftmost position of the sparkle (the center of the sparkle) in percentage\r\n */\r\nconst ShineLeftPosition = 20;\r\n/**\r\n * The rightmost position of the sparkle (the center of the sparkle) in percentage\r\n */\r\nconst ShineRightPosition = 80;\r\n\r\nconst BorderShineHeight = 2;\r\nconst BorderShineWidth = 30;\r\nfunction borderShineKeyframes(rtl?: boolean) {\r\n const startPos = (rtl ? ShineRightPosition : ShineLeftPosition) - (BorderShineWidth / 2);\r\n const endPos = (rtl ? ShineLeftPosition : ShineRightPosition) - (BorderShineWidth / 2);\r\n return keyframes`\r\n 0% {\r\n opacity: 0;\r\n left: ${startPos}%;\r\n }\r\n 20%, 30% {\r\n opacity: 0.5;\r\n left: ${startPos}%;\r\n }\r\n 50%, 60% {\r\n opacity: 1;\r\n left: ${endPos}%;\r\n }\r\n 80% {\r\n opacity: 0;\r\n left: ${endPos}%;\r\n }\r\n 100% {\r\n opacity: 0;\r\n left: ${startPos}%;\r\n }\r\n `;\r\n}\r\nexport const JackpotWidgetBorderShine = styled.div<{bottom?: boolean}>`\r\n position: absolute;\r\n width: ${BorderShineWidth}%;\r\n ${({bottom}) => bottom ? css`\r\n bottom: ${-(BorderShineHeight / 2)}px;\r\n ` : css`\r\n top: ${-(BorderShineHeight / 2)}px;\r\n `}\r\n height: ${BorderShineHeight}px;\r\n z-index: 10;\r\n background-color: transparent;\r\n background-image: linear-gradient(90deg, #00000000 0%, #FFFFFF 50%, #00000000 100%);\r\n\r\n animation: ${({bottom}) => borderShineKeyframes(bottom)} ${animationProps};\r\n`;\r\n\r\nconst RadialShineHeight = 22;\r\nconst RadialShineWidth = 20;\r\nfunction radialShineKeyframes(rtl?: boolean) {\r\n const startPos = (rtl ? ShineRightPosition : ShineLeftPosition) - (RadialShineWidth / 2);\r\n const endPos = (rtl ? ShineLeftPosition : ShineRightPosition) - (RadialShineWidth / 2);\r\n return keyframes`\r\n 0% {\r\n opacity: 0;\r\n left: ${startPos}%;\r\n }\r\n 20%, 30% {\r\n opacity: 0.1;\r\n left: ${startPos}%;\r\n }\r\n 50%, 60% {\r\n opacity: 1;\r\n left: ${endPos}%;\r\n }\r\n 80% {\r\n opacity: 0;\r\n left: ${endPos}%;\r\n }\r\n 100% {\r\n opacity: 0;\r\n left: ${startPos}%;\r\n }\r\n `;\r\n}\r\nexport const JackpotWidgetRadialShine = styled.div<{bottom?: boolean}>`\r\n position: absolute;\r\n width: ${RadialShineWidth}%;\r\n ${({bottom}) => bottom ? css`\r\n bottom: ${-(RadialShineHeight / 2)}px;\r\n ` : css`\r\n top: ${-(RadialShineHeight / 2)}px;\r\n `}\r\n height: ${RadialShineHeight}px;\r\n z-index: 10;\r\n background-color: transparent;\r\n background-image: radial-gradient(closest-side at 50% 50%, #FFFFFF 0%, #FFFFFF61 35%, #00000000 100%);\r\n\r\n animation: ${({bottom}) => radialShineKeyframes(bottom)} ${animationProps};\r\n`;\r\n","import {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: number;\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, { css } from \"styled-components\";\r\n\r\nexport interface IJackpotWidgetAspectRatioBoxProps {\r\n forcePCView?: boolean;\r\n shouldMinimize?: boolean;\r\n};\r\n\r\nexport const JackpotWidgetAspectRatioBox = styled.div`\r\n position: relative;\r\n padding-top: ${({shouldMinimize}) => shouldMinimize ? \"25%\" : \"58%\"};\r\n transition: padding-top 0.5s ease-in-out;\r\n\r\n ${({forcePCView}) => !forcePCView && css`\r\n @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n padding-top: 123%;\r\n }\r\n `}\r\n\r\n`;\r\n","import styled from \"styled-components\";\r\n\r\nexport interface IJackpotWidgetAmountContainerProps {\r\n widgetIsMinimized?: boolean;\r\n}\r\n\r\nexport const JackpotWidgetAmountContainer = styled.div`\r\n width: ${({widgetIsMinimized}) => widgetIsMinimized ? \"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 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 { PartyJackpotJoinStatus } from '../../../common/interfaces/blue-ribbon-party-jackpot.interface';\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\n\r\nexport interface JackpotWidgetComponentProps {\r\n\twidgetConfig?: JackpotWidgetConfiguration;\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 forcePCView?: boolean;\r\n shouldMinimize?: boolean;\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 if (this.props.widgetConfig.jackpotType === JackpotType.Party) {\r\n return this.services.partyJackpot.openJackpotInfoPage( this.props.widgetConfig?.jackpotId);\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 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 if (this.props.widgetConfig.jackpotType === JackpotType.Party) {\r\n const jackpotInfo = this.services.partyJackpot.getPartyJackpot(this.props.widgetConfig.jackpotId);\r\n //Party jackpot list should not be showed if jackpot state is not active or user declined to play\r\n if (!jackpotInfo ||\r\n (jackpotInfo && (jackpotInfo.isExpired || jackpotInfo.joinStatus === PartyJackpotJoinStatus.NotJoined))) {\r\n return null;\r\n }\r\n }\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\t\tconst forcePCView = this.props.forcePCView || false;\r\n\t\tconst shouldMinimize = this.props.shouldMinimize || false;\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 { flexFixedSizeItem } from '../../../../themes/architecture/css-helpers/flex';\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\nimport { HOME_PAGE } from \"../../../../themes/css-global-classes\";\r\n\r\n/** Export this for Casino 777 box */\r\nexport const DefaultBox = styled.div`\r\n ${flexFixedSizeItem}\r\n margin: 1rem 1rem 3rem;\r\n align-self: stretch;\r\n`;\r\n\r\nexport const PcBox = styled(DefaultBox)`\r\n max-width: 48rem;\r\n width: calc((100% / 5) * 2);\r\n\r\n /**\r\n * Make it a little bigger on lobby page (slots and jackpots pages for example) because on stage and production there's a banner to the right\r\n * and because of that the width of the swiper is actually smaller than in localhost or mirage\r\n */\r\n .${HOME_PAGE} & {\r\n width: calc((100% / 6) * 2);\r\n }\r\n\r\n /**\r\n * When the paged is scaled down due to html font-size (rem units), make the widget smaller so it won't look like a Goliath.\r\n * Scale to 90%\r\n */\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow}, ${({theme}) => theme.mediaQuery.lowHeight} {\r\n .${HOME_PAGE} & {\r\n width: calc((100% / 6) * 2 * 0.9);\r\n }\r\n }\r\n`;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n width: calc((100% / 6) * 2);\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 margin: 1rem 1.5rem 0;\r\n }\r\n`;\r\n\r\nexport const JackpotWidgetDefaultBox = styledByDevice(PcBox, MobileBox);\r\n","import styled from 'styled-components';\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\nimport { HOME_PAGE } from \"../../../../themes/css-global-classes\";\r\nimport { DefaultBox, MobileBox } from \"./jackpot-widget-wrapper.default.box\";\r\n\r\nexport const PcBox = styled(DefaultBox)`\r\n width: calc((100% / 7) * 2);\r\n\r\n /**\r\n * When the paged is scaled down due to html font-size (rem units), make the widget smaller so it won't look like a Goliath.\r\n * Scale to 90%\r\n */\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow}, ${({theme}) => theme.mediaQuery.lowHeight} {\r\n .${HOME_PAGE} & {\r\n width: calc((100% / 6) * 2 * 0.9);\r\n }\r\n }\r\n`;\r\n\r\nexport const JackpotWidgetCasino777Box = styledByDevice(PcBox, MobileBox);\r\n","import {JackpotWidgetDefaultBox} from './jackpot-widget-wrapper.default.box';\r\nimport {styledByTheme} from '../../../../themes/architecture/styled-by-theme';\r\nimport {JackpotWidgetCasino777Box} from './jackpot-widget-wrapper.casino777.box';\r\n\r\nexport const JackpotWidgetWrapperBox = styledByTheme(JackpotWidgetDefaultBox).forCasino777(JackpotWidgetCasino777Box).apply();\r\n","import styled from 'styled-components';\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\nimport {HOME_PAGE} from '../../../../themes/css-global-classes';\r\n\r\nconst DefaultBox = styled.div`\r\n flex: 0 0 auto;\r\n margin: 1rem 1rem 3rem;\r\n align-self: stretch;\r\n`;\r\n\r\nexport const PcBox = styled(DefaultBox)`\r\n width: calc((100% / 5) * 2);\r\n\r\n .${HOME_PAGE} & {\r\n width: calc((100% / 6) * 2);\r\n }\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow}, ${({theme}) => theme.mediaQuery.lowHeight} {\r\n .${HOME_PAGE} & {\r\n width: calc((100% / 6) * 2 * 0.9);\r\n }\r\n }\r\n`;\r\n\r\n/* \r\n @TODO: if and when red tiger will make the widget responsible, lower down \r\n the width on mobile portrait to match 888 daily jp widget\r\n*/\r\nexport const MobileBox = styled(DefaultBox)`\r\n @media ${({theme}) => theme.mediaQuery.mAndAbove} {\r\n width: calc((100% / 6) * 2);\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\r\nexport const RedTigerWidgetDefaultBox = styledByDevice(PcBox, MobileBox);","import styled from 'styled-components';\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\nimport {PcBox, MobileBox} from './red-tiger-widget.default.box';\r\n\r\nexport const Pc777Box = styled(PcBox)`\r\n width: calc((100% / 7) * 2); // 777 doesn't have the right game info sidebar inside arenas\r\n`;\r\n\r\nexport const RedTigerWidget777Box = styledByDevice(Pc777Box, MobileBox);\r\n","import {styledByTheme} from '../../../../themes/architecture/styled-by-theme';\r\nimport {RedTigerWidget777Box} from './red-tiger-widget.777.box';\r\nimport {RedTigerWidgetDefaultBox} from './red-tiger-widget.default.box';\r\n\r\nexport const RedTigerWidgetBox = styledByTheme(RedTigerWidgetDefaultBox).forCasino777(RedTigerWidget777Box).apply();\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 {GeneralTitleDefaultBox} from './general-title.default.box';\r\nimport {GeneralTitleCasino777Box} from './general-title.casino777.box';\r\nimport {styledByTheme} from '../../themes/architecture/styled-by-theme';\r\n\r\nexport const GeneralTitleBox = styledByTheme(GeneralTitleDefaultBox).forCasino777(GeneralTitleCasino777Box).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 font-family: ${props => props.theme.font.family.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 font-family: ${props => props.theme.font.family.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 {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\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 .apply();","import styled from 'styled-components';\r\n\r\n\r\nexport const ListTitleDefaultBox = styled.div`\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-start;\r\n padding: 0.3rem 1.5rem;\r\n &:before {\r\n content: \"\";\r\n background-image: radial-gradient(50% 80% at top, rgba(0,0,0,0.5), transparent);\r\n opacity:0.5;\r\n background-repeat: no-repeat;\r\n background-position: 50% 0;\r\n background-size: contain;\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n height: 35rem;\r\n width: 100%;\r\n z-index: -1;\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n height: 25rem;\r\n }\r\n }\r\n`;","import styled from 'styled-components';\r\nimport {ListTitleDefaultBox} from './list-title.default.box';\r\n\r\nexport const ListTitleCasino777Box = styled(ListTitleDefaultBox)`\r\n &:before {\r\n content: none\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\nimport {ListTitleDefaultBox} from \"./list-title.default.box\";\r\n\r\nexport const ListTitleCipBox = styled(ListTitleDefaultBox)`\r\n &:before {\r\n display: none;\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\nimport {ListTitleDefaultBox} from \"./list-title.default.box\";\r\n\r\nexport const ListTitleCisBox = styled(ListTitleDefaultBox)`\r\n &:before {\r\n display: none;\r\n }\r\n \r\n border-top: 1.5px solid ${props => props.theme.colors.brandPrimary};\r\n background-color: ${props => props.theme.colors.background};\r\n`;\r\n","import {styledByTheme} from '../../../../themes/architecture/styled-by-theme';\r\nimport {ListTitleDefaultBox} from './list-title.default.box';\r\nimport {ListTitleCasino777Box} from './list-title.casino777.box';\r\nimport {ListTitleCipBox} from './list-title.cip.box';\r\nimport {ListTitleCisBox} from \"./list-title.cis.box\";\r\n\r\nexport const ListTitleBox = styledByTheme(ListTitleDefaultBox)\r\n .forCasino777(ListTitleCasino777Box)\r\n .forCip(ListTitleCipBox)\r\n .forWsopCip(ListTitleCipBox)\r\n .forCis(ListTitleCisBox)\r\n .apply();","import React from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {FlexGrowItemBox} from '../../themes/architecture/css-helpers/flex';\r\nimport {observer} from 'mobx-react';\r\nimport classNames from \"classnames\";\r\nimport {ListTitleBox} from './boxes/list-title/list-title.box';\r\n\r\nexport interface GameListTitleComponentProps {\r\n className?: string;\r\n title: React.ReactElement;\r\n}\r\n\r\n@observer\r\nexport class GameListTitleComponent extends OrbitComponent {\r\n\r\n render() {\r\n\r\n const cssClasses = classNames('cy-games-list-title', this.props.className);\r\n\r\n return (\r\n \r\n {this.props.title}\r\n {this.services.mediaQuery.mAndAbove ? : null}\r\n {this.props.children}\r\n \r\n );\r\n }\r\n}\r\n","import styled from 'styled-components';\r\n\r\nexport const SwiperButtonsDefaultBox = styled.div`\r\n display: flex;\r\n align-items: center;\r\n @media ${({theme}) => theme.mediaQuery.mAndAbove} {\r\n margin: 0 1rem;\r\n }\r\n`;\r\n\r\n\r\n\r\n","import styled from 'styled-components';\r\nimport {SwiperButtonsDefaultBox} from './swiper-buttons.default.box';\r\n\r\nexport const SwiperButtonsCasino777Box = styled(SwiperButtonsDefaultBox)`\r\n right:.8rem;\r\n`;","import {styledByTheme} from '../../../../../themes/architecture/styled-by-theme';\r\nimport {SwiperButtonsDefaultBox} from './swiper-buttons.default.box';\r\nimport {SwiperButtonsCasino777Box} from './swiper-buttons.casino777.box';\r\n\r\nexport const SwiperButtonsBox = styledByTheme(SwiperButtonsDefaultBox).forCasino777(SwiperButtonsCasino777Box).apply();","import styled, { css } from \"styled-components\";\r\n\r\nexport const SwiperButtonBox = styled.div<{isTouchDevice?: boolean}>`\r\n margin: 0 0.5rem;\r\n\r\n ${({isTouchDevice}) => isTouchDevice ? css`\r\n display: none;\r\n ` : null}\r\n`;\r\n","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {OrbitComponent} from '../../base-components/orbit-component/orbit-component';\r\nimport {SwiperButtonsBox} from './boxes/wrapper/swiper-buttons.box';\r\nimport {SwiperButtonBox} from './boxes/button/swiper-button.box';\r\nimport { Button } from '../../../basic-ui-components/button/base/button.component';\r\nimport {ISwipeLogicHandler} from \"../../../services/arenas/models/swiper-logic-handler/swiper-logic-handler.interface\";\r\nimport {CyClass} from \"../../../../common/cy-classes\";\r\n\r\n\r\nexport interface OrbitSwiperButtonsProps {\r\n analyticsAction: string;\r\n swiper: ISwipeLogicHandler;\r\n seeAllButtonUrl: string;\r\n seoCategory: string;\r\n}\r\n\r\n\r\n\r\n@observer\r\nexport class OrbitSwiperButtons extends OrbitComponent {\r\n\r\n\r\n private onSwiperButtonPrevClick = () => {\r\n this.props.swiper.movePrevious();\r\n };\r\n\r\n private onSwiperButtonNextClick = () => {\r\n this.props.swiper.moveNext();\r\n };\r\n\r\n private _renderMoveNextAndPreviousButtons() {\r\n\r\n if (!this.props.swiper.allowNext && !this.props.swiper.allowPrevious) {\r\n return null;\r\n }\r\n\r\n const isTouchDevice = this.services.device.feature.isTouch; // device has touch\r\n\r\n return (<>\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n );\r\n\r\n }\r\n\r\n private seeAllClickHandler = () => {\r\n this.services.analytics.sendAnalytics(this.props.seoCategory, this.props.analyticsAction, 'See_All');\r\n\r\n const url = this.props.seeAllButtonUrl;\r\n this.services.location.push(url);\r\n };\r\n\r\n private _renderSeeAllButton() {\r\n if(this.props.seeAllButtonUrl.length === 0 || this.services.miniOrbit.isEnabled) {\r\n return null;\r\n }\r\n\r\n return \r\n \r\n {this.services.translation.translate('SEE_ALL')}\r\n \r\n ;\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n \r\n {this._renderMoveNextAndPreviousButtons()}\r\n {this._renderSeeAllButton()}\r\n \r\n );\r\n }\r\n}\r\n\r\n\r\n","import {action, computed, observable} from 'mobx';\r\nimport { DomEventSubscription } from '../../../../../utils/event-listener-registration';\r\nimport {IServiceFactory} from '../../../service-factory.interface';\r\nimport {IGamesListViewModel} from \"../lists/games-list-view-model.interface\";\r\nimport {ISwipeLogicHandler} from \"./swiper-logic-handler.interface\";\r\n\r\nexport class SwipeLogicHandler implements ISwipeLogicHandler {\r\n private _resizeEventHandler: DomEventSubscription;\r\n\r\n constructor(private services: IServiceFactory,\r\n private readonly _gamesListViewModel: IGamesListViewModel) {\r\n this._isRTLLanguage = this.services.language.isRTLLanguage;\r\n }\r\n\r\n @observable.ref\r\n private _element: HTMLElement = null;\r\n\r\n @observable\r\n private _currentTranslateAmount: number = 0;\r\n\r\n @action.bound\r\n setElement(element: HTMLElement) {\r\n this._unsubscribe();\r\n if(element) {\r\n this._element = element;\r\n this._setScrollWidth(element.scrollWidth);\r\n this._currentTranslateAmount = this.services.window.getElementHorizontalTranslationAmount(this._element as Element);\r\n this._subscribe();\r\n } else {\r\n this.resetScrollPosition();\r\n this._element = null;\r\n }\r\n }\r\n\r\n @action.bound\r\n resetScrollPosition() {\r\n this._currentTranslateAmount = 0;\r\n if (this._element) {\r\n this._element['style'].transform = `translate3d(0px, 0, 0)`;\r\n }\r\n }\r\n\r\n updateScrollWidth() {\r\n if (this._element) {\r\n this._setScrollWidth(this._element.scrollWidth);\r\n }\r\n }\r\n\r\n private _subscribe() {\r\n this._resizeEventHandler = this.services.window.subscribeTo.resize(() => {\r\n this.updateScrollWidth();\r\n });\r\n\r\n if(this.services.device.isMobile && this._element) {\r\n this._element.addEventListener(\"scroll\", this._onMobileSwipe);\r\n }\r\n }\r\n\r\n private _unsubscribe() {\r\n if (this._resizeEventHandler) {\r\n this._resizeEventHandler.dispose();\r\n }\r\n\r\n if(this.services.device.isMobile && this._element) {\r\n this._element.removeEventListener(\"scroll\", this._onMobileSwipe);\r\n }\r\n }\r\n\r\n private readonly _isRTLLanguage : boolean;\r\n\r\n\r\n @computed\r\n get allowPrevious(): boolean {\r\n if (this._element) {\r\n return Math.abs(this._currentTranslateAmount) >= 1;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n @computed\r\n get allowNext(): boolean {\r\n if (this._element) {\r\n return Math.abs(this._currentTranslateAmount) < this._maximumTranslationAmount - 1;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n private get _width(): number {\r\n return this.services.window.getElementWidth(this._element);\r\n }\r\n\r\n\r\n @action.bound\r\n private _setScrollWidth(value: number): void {\r\n this._scrollWidth = value;\r\n }\r\n\r\n @observable\r\n private _scrollWidth = 0;\r\n\r\n\r\n @computed\r\n private get _maximumTranslationAmount(): number {\r\n if(this._element) {\r\n return this._scrollWidth - this._width;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n private _isSwiperOnTheMove = false;\r\n\r\n @action.bound\r\n private _slide(computeIncrement: (absoluteCurrentTranslationAmount: number) => number) {\r\n if(this._isSwiperOnTheMove) {\r\n return;\r\n }\r\n\r\n this._isSwiperOnTheMove = true;\r\n\r\n try {\r\n let currentTranslateAmount = this.services.window.getElementHorizontalTranslationAmount(this._element);\r\n let increment = computeIncrement(Math.abs(currentTranslateAmount));\r\n\r\n if(this._isRTLLanguage) {\r\n increment = -1 * increment;\r\n }\r\n\r\n let translateAmount = currentTranslateAmount + increment;\r\n\r\n this._element['style'].transform = `translate3d(${translateAmount}px, 0, 0)`;\r\n this._currentTranslateAmount = translateAmount;\r\n\r\n this._sendAnalytics();\r\n } finally {\r\n this._isSwiperOnTheMove = false;\r\n }\r\n }\r\n\r\n private _sendAnalytics() {\r\n this.services.analytics.sendAnalytics(this._gamesListViewModel.arenaName, this._gamesListViewModel.title.translationKey, 'Swipe');\r\n }\r\n\r\n\r\n moveNext(): void {\r\n if(this.allowNext) {\r\n this._slide((absoluteCurrentTranslationAmount) => -1 * Math.min(this._width, this._maximumTranslationAmount - absoluteCurrentTranslationAmount));\r\n }\r\n\r\n }\r\n\r\n movePrevious(): void {\r\n if(this.allowPrevious) {\r\n this._slide((absoluteCurrentTranslationAmount) => Math.min(this._width, absoluteCurrentTranslationAmount));\r\n }\r\n }\r\n\r\n private _mobileScrollingTimeout: any;\r\n private _onMobileSwipe = () => {\r\n //Clear the timeout on every scroll to prevent form the scroll(swipe) event to fire multiple times. (debounce)\r\n clearTimeout(this._mobileScrollingTimeout);\r\n // Set a timeout to fire after the scrolling as end\r\n this._mobileScrollingTimeout = setTimeout(() => {\r\n this._sendAnalytics();\r\n }, 100);\r\n };\r\n}\r\n","import React from 'react';\r\nimport {GamesListBaseModel} from \"./games-list-base.model\";\r\nimport {SwiperGamesListConfiguration} 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 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 this.services.abFiltering.filterGamesByAbTesting(this.listConfiguration.gamesAdminRefKey, 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 _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}\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 private _computeGameTypes(): number[] | null {\r\n if(this.listTypeId === LIST_TYPE_ID.ACTIVE_USERS) {\r\n return this.services.aiEngine.trendingRecommendedGamesForPlayerByActiveUsers;\r\n } else {\r\n return this.services.aiEngine.trendingRecommendedGamesForPlayerByBets\r\n }\r\n }\r\n\r\n get maxGamesToShowInList(): number {\r\n return NUMBER_OF_TRENDING_RECOMMENDATIONS;\r\n }\r\n\r\n _renderList(listPosition: number): React.ReactElement | null {\r\n return (\r\n \r\n );\r\n }\r\n}","import React from \"react\";\r\nimport {OrbitSwiperComponent} from \"../../../../../components/orbit-swiper/orbit-swiper.component\";\r\nimport {SwiperListBaseModel} from \"../swiper-list-base.model\";\r\n\r\nexport class StaticSwiperListModel extends SwiperListBaseModel {\r\n\r\n protected _shouldBeDisplayed(): boolean {\r\n return super._shouldBeDisplayed() && this.gameTypes.length > 0;\r\n }\r\n\r\n _renderList(listPosition: number): React.ReactElement | null {\r\n const listConfig = this.listConfiguration;\r\n\r\n\r\n return (\r\n \r\n );\r\n }\r\n}","import React from 'react';\r\nimport {SingleGameComponent} from '../../single-game/single-game.component';\r\nimport {observer} from 'mobx-react';\r\nimport {OrbitComponentWithState} from '../../base-components/orbit-component-with-state/orbit-component-with-state';\r\n\r\nexport interface GamesGridBatchComponentProps {\r\n batchIndex: number;\r\n gameTypes: number[];\r\n aiEngine: string;\r\n seoCategory: string;\r\n skipIntermediatePage: boolean;\r\n disableGameInfoHover: boolean;\r\n listTitleTranslationKey: string;\r\n templateType?: string;\r\n useSquareIcons?: boolean;\r\n}\r\n\r\nexport interface GamesGridBatchComponentState {\r\n isResolved: boolean;\r\n}\r\n\r\nconst NUMBER_OF_GAMES_IN_BATCH = 20;\r\n\r\n@observer\r\nexport class GamesGridBatchComponent extends OrbitComponentWithState {\r\n\r\n state = {\r\n isResolved: false\r\n };\r\n\r\n private _renderOneGame(gameType: number, gameIndex: number) {\r\n\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _intersectionObserver: IntersectionObserver | null;\r\n\r\n private _intersectionObserverCallback = (entries: IntersectionObserverEntry[]) => {\r\n if (entries[0].intersectionRatio > 0 || entries[0].isIntersecting) {\r\n this._destroyIntersectionObserver();\r\n this.setState({\r\n isResolved: true\r\n });\r\n }\r\n };\r\n\r\n private _createIntersectionObserver(element: HTMLElement) {\r\n\r\n this._destroyIntersectionObserver(); // just in case this is called twice for this component we want to discard the existing intersection observer and create a new one\r\n\r\n this._intersectionObserver = new IntersectionObserver(this._intersectionObserverCallback, {\r\n rootMargin: '400px',\r\n threshold: 0.1\r\n });\r\n\r\n this._intersectionObserver.observe(element);\r\n }\r\n\r\n\r\n componentWillUnmount() {\r\n super.componentWillUnmount();\r\n this._destroyIntersectionObserver();\r\n }\r\n\r\n private _destroyIntersectionObserver() {\r\n if (this._intersectionObserver) {\r\n this._intersectionObserver.disconnect();\r\n this._intersectionObserver = null;\r\n }\r\n }\r\n\r\n private _captureThresholdElement = (element: HTMLElement | null) => {\r\n if (element) {\r\n this._createIntersectionObserver(element)\r\n }\r\n };\r\n\r\n private _renderNextBatch() {\r\n const nextBatchGameTypes = this.props.gameTypes.slice(NUMBER_OF_GAMES_IN_BATCH);\r\n if(nextBatchGameTypes.length === 0) {\r\n return null;\r\n }\r\n\r\n const propsForNextBatch = {\r\n ...this.props,\r\n batchIndex: this.props.batchIndex + 1,\r\n gameTypes: nextBatchGameTypes\r\n };\r\n\r\n return ();\r\n }\r\n\r\n private _renderCurrentBatch() {\r\n const batchIndexOffset = this.props.batchIndex * NUMBER_OF_GAMES_IN_BATCH;\r\n const currentBatchGameTypes = this.props.gameTypes.slice(0, NUMBER_OF_GAMES_IN_BATCH);\r\n return (\r\n <>\r\n {currentBatchGameTypes.map((gameType, index) => this._renderOneGame(gameType, batchIndexOffset + index))}\r\n {this._renderNextBatch()}\r\n \r\n );\r\n }\r\n\r\n render() {\r\n\r\n if(this.props.batchIndex === 0 || this.state.isResolved) {\r\n return this._renderCurrentBatch();\r\n }\r\n\r\n return (\r\n
\r\n )\r\n }\r\n}\r\n","import styled from 'styled-components';\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\nimport {LOBBY_PAGE} from '../../../../themes/css-global-classes';\r\n\r\n\r\n//games-layout static-layout\r\nconst DefaultBox = styled.div`\r\n position: relative;\r\n overflow: hidden;\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: wrap;\r\n`;\r\n\r\nexport const PcBox = DefaultBox;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\r\n .${LOBBY_PAGE} & {\r\n padding: 0 1rem;\r\n }\r\n`;\r\n\r\nexport const GamesGridDefaultBox = styledByDevice(PcBox, MobileBox);","import styled from 'styled-components';\r\nimport {PcBox as BasePcBox, MobileBox as BaseMobileBox} from './games-grid.default.box';\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\n\r\nconst PcBox = styled(BasePcBox)`\r\n margin-top: 1.4rem;\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n margin-top: 1.8rem;\r\n }\r\n`;\r\n\r\n\r\nconst MobileBox = BaseMobileBox;\r\n\r\nexport const GamesGridCasino777Box = styledByDevice(PcBox, MobileBox);","import {GamesGridDefaultBox} from './games-grid.default.box';\r\nimport {GamesGridCasino777Box} from './games-grid.casino777.box';\r\nimport {styledByTheme} from '../../../../themes/architecture/styled-by-theme';\r\n\r\nexport const GamesGridBox = styledByTheme(GamesGridDefaultBox).forCasino777(GamesGridCasino777Box).apply();","import {NoGamesFoundMessageDefaultBox} from './no-games-found-message.default.box';\r\n\r\nexport const NoGamesFoundMessageBox = NoGamesFoundMessageDefaultBox;","import styled from 'styled-components';\r\n\r\nexport const NoGamesFoundMessageDefaultBox = styled.p`\r\n font-size: 1.2rem;\r\n margin: 15px 0;\r\n min-height: 300px;\r\n`;","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 const gameTypes = this.gridConfig.gamesId || [];\r\n\r\n return this.services.abFiltering.filterGamesByAbTesting(this.gridConfig.gamesAdminRefKey, gameTypes);\r\n\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 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 if (this.services.runningGame.lastPlayedRealGame) {\r\n return {\r\n gameName: this.services.runningGame.lastPlayedRealGame.title\r\n }\r\n }\r\n\r\n return super._getTitleTranslationParams();\r\n }\r\n\r\n protected _getGameTypes(): number[] {\r\n let result: number[] = [];\r\n if (this.services.runningGame.lastPlayedRealGame != null &&\r\n this.services.runningGame.correlatedGamesForLastPlayedRealGame.length > 0) {\r\n result = [this.services.runningGame.lastPlayedRealGame.gameType].concat(this.services.runningGame.correlatedGamesForLastPlayedRealGame);\r\n }\r\n return result;\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 {ISwipeLogicHandler} from \"./swiper-logic-handler.interface\";\r\nimport {IGamesListViewModel} from \"../lists/games-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: IGamesListViewModel) {\r\n\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(): void {\r\n\r\n if (!this.allowNext) return;\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._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","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 {ISwiperListViewModel} from \"../../services/arenas/models/lists/swiper-list-view-model.interface\";\r\n\r\n\r\ninterface VideoListComponentProps {\r\n viewModel: ISwiperListViewModel;\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 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 {ISwipeLogicHandler} from \"../../swiper-logic-handler/swiper-logic-handler.interface\";\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\n\r\nexport abstract class DefaultVideoListModel extends SwiperListBaseModel {\r\n protected _swipeLogicHandler: ISwipeLogicHandler = 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","import React from \"react\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {LiveStreamingListTitleBox} from \"../../../../../components/live-streaming-tile/live-streaming-specific-components/live-streaming-list-title/live-streaming-list-title.box\";\r\nimport {LiveStreamingTitleIconBox} from \"../../../../../components/live-streaming-tile/live-streaming-specific-components/live-streaming-title-icon/live-streaming-title-icon.box\";\r\nimport {DefaultVideoListModel} from \"./default-video-list.model\";\r\nimport {LIVE_STREAMING_ITEM} from \"../../../../../themes/css-global-classes\";\r\n\r\nexport class LiveStreamingVideoListModel extends DefaultVideoListModel {\r\n\r\n get templateType(): string {\r\n return LIVE_STREAMING_ITEM;\r\n }\r\n\r\n private _isLiveStreamDisabled = () => {\r\n // live stream should be rendered on mobile only, excepting CIP8, if is enable from AB and\r\n // if user is authorized or if is not authorized only if is not disabled prelogin\r\n return this.services.miniOrbit.isEnabled ||\r\n !this.services.abTestingFeatureDataProvider.isVideoLiveStreamEnabled ||\r\n this.services.liveStreamPlaying.isDisabledPrelogin\r\n };\r\n\r\n protected _shouldBeDisplayed(): boolean {\r\n if(this._isLiveStreamDisabled()) {\r\n return false;\r\n }\r\n\r\n return super._shouldBeDisplayed() && this.gameTypes.length > 0;\r\n }\r\n\r\n get maxGamesToShowInList(): number {\r\n return 9;\r\n }\r\n\r\n protected _getGameTypes(): number[] {\r\n\r\n if(!Check.isNullOrUndefined(this.services.liveStreamPlaying.isSupported)\r\n && !this.services.liveStreamPlaying.isSupported) {\r\n return [];\r\n }\r\n\r\n let baseArray = [...this.listConfiguration.gamesId];\r\n let gameTypes = this._cycleGamesAndIncrementOffset(baseArray);\r\n\r\n gameTypes = gameTypes.filter((gt) => this.services.games.gamesMap[gt]?.hasVideoURL);\r\n\r\n if(this.services.liveTableFeeds.tablesData.length === 0) {\r\n return gameTypes;\r\n } else {\r\n return gameTypes.filter(gType => this.services.liveTableFeeds.openTablesIds.find(tableId => tableId === gType.toString()));\r\n }\r\n }\r\n\r\n get numberOfGamesSkeletons(): number {\r\n return this._getNumberOfGamesSkeletons();\r\n }\r\n\r\n protected _getNumberOfGamesSkeletons(): number {\r\n if(Check.isNullOrUndefined(this.services.liveStreamPlaying.isSupported) || this.services.liveTableFeeds.tablesData.length === 0) {\r\n return 1;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n protected _renderHeaderIcon(): React.ReactElement | null {\r\n return (\r\n LIVE\r\n );\r\n }\r\n\r\n protected _renderHeaderText(): string | React.ReactElement {\r\n return (\r\n \r\n {this.title.translation}\r\n \r\n );\r\n }\r\n\r\n}\r\n","import {DefaultVideoListModel} from \"./default-video-list.model\";\r\nimport {STATIC_VIDEO_ITEM} from \"../../../../../themes/css-global-classes\";\r\nimport {SwiperGamesListConfiguration} from \"../../../../configurations/config-data-sections/arenas.configuration\";\r\nimport {IArenaToGamesListAdapter} from \"../../arenas/arena-to-games-list-adapter.interface\";\r\n\r\nexport class StaticVideoListModel extends DefaultVideoListModel {\r\n\r\n constructor(listConfiguration: SwiperGamesListConfiguration, arena: IArenaToGamesListAdapter) {\r\n super(listConfiguration, arena);\r\n\r\n this.services.staticVideoPlaying.setSwiperHandler(this.swipeLogicHandler);\r\n }\r\n\r\n get templateType(): string {\r\n return STATIC_VIDEO_ITEM;\r\n }\r\n\r\n private _isStaticVideoListDisabled = () => {\r\n return (\r\n this.services.miniOrbit.isEnabled ||\r\n this.services.staticVideoPlaying.isDisabledPrelogin ||\r\n !this.services.abTestingFeatureDataProvider.isStaticVideoListEnabled\r\n );\r\n };\r\n\r\n protected _shouldBeDisplayed(): boolean {\r\n if(this._isStaticVideoListDisabled()) {\r\n return false;\r\n }\r\n\r\n return super._shouldBeDisplayed() && this.gameTypes.length > 0;\r\n }\r\n\r\n get maxGamesToShowInList(): number {\r\n return 4;\r\n }\r\n\r\n protected _getGameTypes(): number[] {\r\n\r\n let baseArray = [...this.listConfiguration.gamesId];\r\n let gameTypes = this._cycleGamesAndIncrementOffset(baseArray);\r\n\r\n gameTypes = gameTypes.filter((gt) => this.services.games.gamesMap[gt]?.hasVideoURL);\r\n\r\n return gameTypes;\r\n }\r\n\r\n get numberOfGamesSkeletons(): number {\r\n return this._getNumberOfGamesSkeletons();\r\n }\r\n\r\n protected _getNumberOfGamesSkeletons(): number {\r\n return 1;\r\n }\r\n}\r\n","import {\r\n ApiListType, ArenaGamesGridConfiguration,\r\n SwiperGamesListConfiguration\r\n} from \"../../../configurations/config-data-sections/arenas.configuration\";\r\nimport {IGamesListModel} from \"./games-list-model.interface\";\r\nimport {RecentlyPlayedListModel} from \"./recently-played/recently-played-list.model\";\r\nimport {TopPicksListModel} from \"./top-picks/top-picks-list.model\";\r\nimport {NewGamesListModel} from \"./new-games/new-games-list.model\";\r\nimport {PlayersLikeYouListModel} from \"./players-like-you/players-like-you-list.model\";\r\nimport {StaticSwiperListModel} from \"./static-swiper/static-swiper-list.model\";\r\nimport {IArenaToGamesListAdapter} from \"../arenas/arena-to-games-list-adapter.interface\";\r\nimport {GamesGridListModel} from \"./games-grid/games-grid-list.model\";\r\nimport {LiveCasinoListModel} from \"./live-casino/live-casino-list.model\";\r\nimport {LIVE_CASINO_ITEM} from \"../../../../themes/css-global-classes\";\r\nimport { BecauseYouPlayedPlayedListModel } from \"./because-you-played/because-you-played-list.model\";\r\nimport {LiveStreamingVideoListModel} from \"./video-list/live-streaming-video-list.model\";\r\nimport {StaticVideoListModel} from \"./video-list/static-video-list.model\";\r\n\r\n\r\nexport class ListFactory {\r\n\r\n constructor(private readonly arena: IArenaToGamesListAdapter) {\r\n }\r\n createSwiper(swiperConfig: SwiperGamesListConfiguration): IGamesListModel {\r\n\r\n\r\n if(swiperConfig.templateType === LIVE_CASINO_ITEM) {\r\n return new LiveCasinoListModel(swiperConfig, this.arena);\r\n }\r\n\r\n switch (swiperConfig.apiListType) {\r\n case ApiListType.RECENTLY_PLAYED:\r\n return new RecentlyPlayedListModel(swiperConfig, this.arena);\r\n case ApiListType.TOP_PICKS:\r\n return new TopPicksListModel(swiperConfig, this.arena);\r\n case ApiListType.NEW_GAMES:\r\n return new NewGamesListModel(swiperConfig, this.arena);\r\n case ApiListType.PLAYERS_LIKE_YOU:\r\n return new PlayersLikeYouListModel(swiperConfig, this.arena);\r\n case ApiListType.LIVE_CASINO_VIDEO: // maybe rename this to LIVE_STREAMING_VIDEO,but it'd also need admin updated\r\n return new LiveStreamingVideoListModel(swiperConfig, this.arena);\r\n case ApiListType.STATIC_VIDEO:\r\n return new StaticVideoListModel(swiperConfig, this.arena);\r\n case ApiListType.BECAUSE_YOU_PLAYED:\r\n return new BecauseYouPlayedPlayedListModel(swiperConfig, this.arena);\r\n\r\n default:\r\n return new StaticSwiperListModel(swiperConfig, this.arena);\r\n\r\n }\r\n }\r\n\r\n createGrid(gridConfig: ArenaGamesGridConfiguration) {\r\n return new GamesGridListModel(gridConfig, this.arena);\r\n }\r\n}\r\n","import {IArenaViewModel} from \"./arena-view-model.interface\";\r\nimport {\r\n ArenaGamesGridConfiguration,\r\n SwiperGamesListConfiguration\r\n} from \"../../../configurations/config-data-sections/arenas.configuration\";\r\nimport {action, computed, observable, reaction} from \"mobx\";\r\nimport {IArenaToGamesListAdapter} from \"./arena-to-games-list-adapter.interface\";\r\nimport {IServiceFactoryExtended} from \"../../../service-factory-extended.interface\";\r\nimport {IGamesListModel} from \"../lists/games-list-model.interface\";\r\nimport React from \"react\";\r\nimport {CmsBannerComponent} from \"../../../../components/cms-banner/cms-banner.component\";\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\n\r\nexport type BannerConfig = {position: number; templateID: number; componentID: number; fallbackComponent: 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 protected get _isUsingExternalAIForSwipersSorting(): boolean {\r\n return false;\r\n }\r\n\r\n protected _getSwiperIdToPutOnTop(): number | null {\r\n return null;\r\n }\r\n\r\n get aiEngine(): string {\r\n return \"\";\r\n }\r\n\r\n @observable.ref\r\n private _aiEngineListsSortOrder: Record = null;\r\n @action.bound\r\n private _setAiEngineListsSortOrder(value: Record): void {\r\n this._aiEngineListsSortOrder = value;\r\n }\r\n private async _updateAIEngineSwipersSortOrder(): Promise {\r\n if(this._isUsingExternalAIForSwipersSorting) {\r\n return;\r\n }\r\n if(this._aiEngineListsSortOrder) {\r\n return;\r\n }\r\n\r\n if(!this.services.user.isAuthorized) {\r\n return;\r\n }\r\n\r\n if(this.services.routing.currentRoute.data?.arenaType === this.arenaName) {\r\n const listsIDs = this._getSwipersConfigurations().filter(sw => !Check.isNullOrUndefined(sw.listId))\r\n .map(sw => sw.listId.toString());\r\n //console.log('recomandations for: ' + this.arenaName);\r\n this._setAiEngineListsSortOrder(await this.services.aiEngine.getCasinoRecommendedDynamicListsForPlayer(listsIDs));\r\n }\r\n }\r\n\r\n private _movePreferredSwiperOnTop(swipers: IGamesListModel[]){\r\n const listId = this._getSwiperIdToPutOnTop();\r\n if(Check.isNullOrUndefined(listId)) {\r\n return swipers;\r\n }\r\n const listIndex = swipers.findIndex((list) => list.listId === listId);\r\n if(listIndex > 0){\r\n swipers.splice(0, 0, swipers.splice(listIndex, 1)[0]);\r\n }\r\n return swipers;\r\n }\r\n\r\n\r\n protected _sortSwipersByAI(originalSwipers: IGamesListModel[]): IGamesListModel[] {\r\n const scores = this._aiEngineListsSortOrder;\r\n if(!scores) {\r\n return originalSwipers;\r\n }\r\n\r\n const notForcedInLayoutSortedSwipers = originalSwipers.filter(s => !s.forceInLayout)\r\n .sort((s1, s2) => (scores[s2.listId] || 0) - (scores[s1.listId] || 0));\r\n\r\n let sortedSwipersConfigs: IGamesListModel[] = [];\r\n originalSwipers.forEach(gameList => {\r\n if(gameList.forceInLayout){\r\n sortedSwipersConfigs.push(gameList)\r\n } else{\r\n let mappedGameList = notForcedInLayoutSortedSwipers.shift();\r\n if(mappedGameList) {\r\n sortedSwipersConfigs.push(mappedGameList)\r\n }\r\n }\r\n });\r\n\r\n return sortedSwipersConfigs;\r\n }\r\n\r\n\r\n\r\n @computed\r\n public get allLists(): IGamesListModel[] {\r\n const result = this._createAllLists();\r\n this._sendGameListsAnalytics(result);\r\n return result;\r\n }\r\n\r\n get listsCount(): number {\r\n return this.allLists.length;\r\n }\r\n\r\n protected _createAllLists(): IGamesListModel[] {\r\n return this._appendGrids(\r\n this._limitTheNumberOfSwipers(\r\n this._saveSwipersPostLoginSortOrder(\r\n this._sortSwipersByPostLoginOrder(\r\n this._movePreferredSwiperOnTop(\r\n this._sortSwipersByAI(\r\n this._createSwipers()))))));\r\n }\r\n\r\n private _limitTheNumberOfSwipers(swipers: IGamesListModel[]): IGamesListModel[] {\r\n\r\n if(swipers.length <= this.maxSwipersToShow) {\r\n return swipers;\r\n }\r\n let result: IGamesListModel[] = [];\r\n\r\n let maxNumberOfSwipers = this.maxSwipersToShow;\r\n for(let i = 0; i < swipers.length; i++) {\r\n const list = swipers[i];\r\n if(maxNumberOfSwipers > 0 || list.forceInLayout) {\r\n result.push(list);\r\n }\r\n\r\n if(list.isVisible) {\r\n maxNumberOfSwipers--;\r\n }\r\n\r\n }\r\n\r\n return result;\r\n }\r\n\r\n renderList(listPosition: number): React.ReactElement | null {\r\n let position = listPosition;\r\n\r\n for(let list of this.allLists) {\r\n if(list.isVisible) {\r\n position--;\r\n }\r\n if(position === 0) {\r\n return this._renderListAndBanner(listPosition, list);\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n protected _renderListAndBanner(listPosition: number, list: IGamesListRenderer) {\r\n return (\r\n \r\n {list.render(listPosition)}\r\n {this._renderPromotionalBanner(listPosition)}\r\n \r\n )\r\n }\r\n\r\n getNextBatchSize(currentListPosition: number): number {\r\n if(currentListPosition > this.allLists.length) {\r\n return 0;\r\n }\r\n\r\n return 2;\r\n }\r\n\r\n protected _saveSwipersPostLoginSortOrder(swipers: IGamesListModel[]): IGamesListModel[] {\r\n if(this.services.user.isAuthorized) {\r\n this._postLoginListsSortOrderStorage.saveSortOrder(this.arenaName, swipers);\r\n }\r\n return swipers;\r\n }\r\n\r\n protected _sortSwipersByPostLoginOrder(swipers: IGamesListModel[]): IGamesListModel[] {\r\n if(this.services.user.isAuthorized) {\r\n return swipers;\r\n }\r\n\r\n return this._postLoginListsSortOrderStorage.sortLists(this.arenaName, swipers);\r\n }\r\n\r\n protected _createSwipers(): IGamesListModel[] {\r\n const configs = this._getSwipersConfigurations();\r\n const lists: IGamesListModel[] = [];\r\n\r\n configs.forEach((listConfig) => {\r\n lists.push(this._createSwiper(listConfig));\r\n });\r\n\r\n return lists;\r\n }\r\n\r\n protected _appendGrids(lists: IGamesListModel[]) {\r\n this._getGridsConfigurations().forEach(gridConfig => {\r\n lists.push(this._createGrid(gridConfig));\r\n });\r\n return lists;\r\n }\r\n\r\n protected _createGrid(gridConfig: ArenaGamesGridConfiguration) {\r\n return this._listFactory.createGrid(gridConfig);\r\n }\r\n\r\n protected _createSwiper(swiperConfig: SwiperGamesListConfiguration): IGamesListModel {\r\n return this._listFactory.createSwiper(swiperConfig);\r\n }\r\n\r\n protected _getBannerMinHeightInPixels(listPosition: number, bannerConfig: BannerConfig | null) {\r\n if(!bannerConfig) {\r\n return 0;\r\n }\r\n\r\n const shouldRenderBanner = listPosition === bannerConfig.position\r\n || (this.allLists.length < bannerConfig.position && listPosition === this.allLists.length);\r\n if(!shouldRenderBanner) {\r\n return 0;\r\n }\r\n\r\n if(this.services.mediaQuery.sAndBelow) {\r\n return 142;\r\n }\r\n\r\n return 223;\r\n }\r\n\r\n protected _renderPromotionalBanner(listPosition: number): React.ReactElement | null {\r\n const bannerConfig = this._getPromotionalBannerConfig();\r\n const bannerMinHeight = this._getBannerMinHeightInPixels(listPosition, bannerConfig);\r\n if(bannerMinHeight === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n protected _sendGameListsAnalytics(lists: IGamesListModel[]): IGamesListModel[] {\r\n if(!this.services.user.isAuthorized) {\r\n return lists;\r\n }\r\n\r\n if(!this._isUsingExternalAIForSwipersSorting) {\r\n return lists;\r\n }\r\n\r\n const analyticsObject = {\r\n category: 'AI_ListsDisplayed',\r\n action: lists.map(list => list.title).join(','),\r\n label: \"ML888\"\r\n };\r\n\r\n this.services.analytics.sendAnalytics(analyticsObject.category, analyticsObject.action, analyticsObject.label);\r\n\r\n return lists;\r\n }\r\n\r\n}","import styled, { css } from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../themes/architecture/styled-by-device\";\r\n\r\ninterface HomepageHeaderArenaIconBoxProps {\r\n useSmallHeaderArenas: boolean;\r\n}\r\n\r\nexport const DefaultBox = styled.div`\r\n display: flex;\r\n position: relative;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n width: 20%;\r\n ${props => props.useSmallHeaderArenas ? css`max-width: 290px` : \"\"};\r\n transition: transform 0.4s ease-in-out;\r\n\r\n &:hover {\r\n transform: scale(1.05);\r\n }\r\n\r\n margin-right: auto;\r\n margin-left: auto;\r\n`;\r\n\r\nconst PCBox = styled(DefaultBox)`\r\n &::after {\r\n content: \"\";\r\n position: absolute;\r\n bottom: 5px;\r\n left: 0;\r\n width: 100%;\r\n height: 15px;\r\n background-image: url(${props => props.theme.images.headerArenaIconDropShadow.toString()});\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n transform: translateY(100%);\r\n z-index: 0;\r\n }\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n flex-shrink: 0;\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndBelow} {\r\n width: 20%;\r\n ${props => props.useSmallHeaderArenas ? css`max-width: 210px` : \"\"};\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n width: ${props => !props.useSmallHeaderArenas ? \"45%\" : \"31%\"};\r\n ${props => props.useSmallHeaderArenas ? css`min-width: 100px;`: \"\"};\r\n }\r\n`;\r\n\r\nexport const HomepageHeaderArenaIconDefaultBox = styledByDevice(PCBox, MobileBox);\r\n","import {HomepageHeaderArenaIconDefaultBox} from \"./home-page-header-arena-icon.default.box\";\r\n\r\nexport const HomepageHeaderArenaIconBox = HomepageHeaderArenaIconDefaultBox;\r\n","import {HomepageHeaderArenaTitleDefaultBox} from \"./home-page-header-arena-title.default.box\";\r\n\r\nexport const HomepageHeaderArenaTitleBox = HomepageHeaderArenaTitleDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const HomepageHeaderArenaTitleDefaultBox = styled.div`\r\n position: relative;\r\n font-size: 1.4rem;\r\n font-weight: bold;\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 { HomepageHeaderArenaBadgeDefaultBox } from \"./home-page-header-arena-badge.default.box\";\r\n\r\nexport const HomepageHeaderArenaBadgeBox = HomepageHeaderArenaBadgeDefaultBox;\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 {styledByDevice} from \"../../../themes/architecture/styled-by-device\";\r\n\r\ninterface HomepageHeaderArenaContainerBoxProps {\r\n useSmallHeaderArenas: boolean;\r\n}\r\n\r\nconst DefaultBox = styled.div`\r\n display: flex;\r\n margin-bottom: 4rem;\r\n margin-top: ${(props) => props.useSmallHeaderArenas ? \"0\" : \"1rem\"};\r\n`;\r\n\r\nconst PCBox = styled(DefaultBox)``;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n overflow-x: scroll;\r\n overflow-y: hidden;\r\n\r\n overflow: -moz-scrollbars-none;\r\n -webkit-overflow-scrolling: touch;\r\n -ms-overflow-style: -ms-autohiding-scrollbar;\r\n\r\n &::-webkit-scrollbar {\r\n display: none;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n justify-content: flex-start;\r\n }\r\n`;\r\n\r\nexport const HomePageHeaderArenasContainerDefaultBox = styledByDevice(PCBox, MobileBox);\r\n","import {HomePageHeaderArenasContainerDefaultBox} from \"./home-page-header-arenas-container.default.box\";\r\n\r\nexport const HomePageHeaderArenasContainerBox = HomePageHeaderArenasContainerDefaultBox;\r\n","import {HomepageHeaderArenaLinkDefaultBox} from \"./home-page-header-arena-link.default.box\";\r\n\r\nexport const HomepageHeaderArenaLinkBox = HomepageHeaderArenaLinkDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const HomepageHeaderArenaLinkDefaultBox = styled.a`\r\n width: 100%;\r\n`;\r\n","import {HomepageHeaderArenaSkeletonDefaultBox} from \"./home-page-header-arena-skeleton.default.box\";\r\n\r\nexport const HomepageHeaderArenaSkeletonBox = HomepageHeaderArenaSkeletonDefaultBox;\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 React from \"react\";\r\nimport {Image, ImageProps} from \"../raw-components/image/image\";\r\nimport {OrbitComponentWithState} from \"../base-components/orbit-component-with-state/orbit-component-with-state\";\r\nimport {AspectRatioContainerComponent} from '../raw-components/aspect-ratio-container/aspect-ratio-container.component';\r\nimport {HomepageHeaderArenaSkeletonBox} from './boxes/home-page-header-arena-skeleton/home-page-header-arena-skeleton.box';\r\n\r\ninterface HomePageHeaderArenaIconComponentState {\r\n isLoading: boolean;\r\n}\r\n\r\nexport class HomePageHeaderArenaIconComponent extends OrbitComponentWithState {\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 }\r\n\r\n private _handleDoneLoading() {\r\n this.setState({ isLoading: false });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n this._handleDoneLoading()} />\r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {Link} from '../raw-components/link/link';\r\nimport {CyClass} from \"../../../common/cy-classes\";\r\nimport {observer} from 'mobx-react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {HomePageHeaderArena} from '../../services/configurations/config-data-sections/home-page.configuration';\r\nimport {HomepageHeaderArenaIconBox} from './boxes/home-page-header-arena-icon/home-page-header-arena-icon.box';\r\nimport {HomepageHeaderArenaTitleBox} from './boxes/home-page-header-arena-title/home-page-header-arena-title.box';\r\nimport {HomepageHeaderArenaBadgeBox} from './boxes/home-page-header-arena-badge/home-page-header-arena-badge.box';\r\nimport {HomePageHeaderArenasContainerBox} from './boxes/home-page-header-arenas-container.box';\r\nimport {HomepageHeaderArenaLinkBox} from './boxes/home-page-header-arena-link/home-page-header-arena-link.box';\r\nimport {HomePageHeaderArenaIconComponent} from \"./home-page-header-arena-icon.component\";\r\nimport { SeoConfiguration } from '../../services/configurations/config-data-sections/seo.configuration';\r\n\r\nconst NEW_GAMES_TITLE = \"NEW_GAMES\";\r\n\r\ninterface HomePageHeaderArenasComponentProps {\r\n useSmallHeaderArenas: boolean;\r\n}\r\n\r\n@observer\r\nexport class HomePageHeaderArenasComponent extends OrbitComponent {\r\n\r\n private _getSeo(prop: keyof SeoConfiguration[\"categories\"][\"images\"], placeholder: string, dynamic: string) {\r\n\r\n let seoValue = '';\r\n let seoConfig = this.services.configuration.data.seo;\r\n\r\n if (seoConfig && seoConfig.categories && seoConfig.categories.images && seoConfig.categories.images[prop]) {\r\n seoValue = seoConfig.categories.images[prop];\r\n }\r\n\r\n return this.services.translation.translate(seoValue, {\r\n [placeholder]: this.services.translation.translate(dynamic)\r\n });\r\n }\r\n\r\n private _handleArenaAction = (action: string, index: number) => {\r\n try {\r\n const jsonAction = JSON.parse(action);\r\n\r\n if (jsonAction.action === 'game-real') {\r\n\r\n const gameInfo = this.services.games.gamesMap[jsonAction.id];\r\n\r\n gameInfo.open({\r\n isRealMode: true,\r\n gameIndex: index\r\n });\r\n }\r\n\r\n } catch (error) {\r\n this.services.logger.error(`Error in HomePageHeaderArenasComponent '_handleArenaAction', error: ${error}, value:${action}`)\r\n }\r\n };\r\n\r\n private _handleArenaRedirect = (link: string) => {\r\n /**\r\n * @desc added because of parallel actions [navigation + spinner]\r\n * F TO DO - This setTimeout was added by regev on 09/04/2018 in this commit 962fbdea53e3bc8828a215ed035fc0e9243b7a50. I should check if this really solves a performance issue.\r\n * we should keep this delay so that on mobile the user has time to see the image changing sizes upon touching, as a form of feedback\r\n */\r\n setTimeout(() => {\r\n this.services.location.push(link); // navigation is done this way, so we can have the trailing slash\r\n }, 500);\r\n };\r\n\r\n private _handleArenaClick(event: any, arena: HomePageHeaderArena, index: number): void {\r\n\r\n event.preventDefault();\r\n this.services.analytics.sendAnalytics('Game Grid', 'Home', `${arena.title}_${index}`);\r\n\r\n if (arena.action) {\r\n this._handleArenaAction(arena.action, index);\r\n } else if (arena.link) {\r\n this._handleArenaRedirect(arena.link);\r\n }\r\n }\r\n\r\n private _renderArenaIcon(arena: HomePageHeaderArena): React.ReactNode {\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _renderOneHeaderArena(arena: HomePageHeaderArena, index: number) {\r\n const hasNewGamesIndication = arena.title === NEW_GAMES_TITLE && this.services.homepage.newAddedGames > 0;\r\n const newGamesIndication = hasNewGamesIndication ?\r\n \r\n {this.services.homepage.newAddedGames > 10? '10+' : this.services.homepage.newAddedGames}\r\n \r\n : null;\r\n\r\n return (\r\n this._handleArenaClick(event, arena, index)}\r\n useSmallHeaderArenas={this.props.useSmallHeaderArenas }\r\n >\r\n {/*We need this href only for SEO*/}\r\n \r\n {this._renderArenaIcon(arena)}\r\n \r\n {this.services.translation.translate(arena.title)}\r\n {newGamesIndication}\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n render() {\r\n\r\n const headerArenas = this.services.homepage.headerArenas;\r\n\r\n if(headerArenas.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {headerArenas.map((arena, index) => this._renderOneHeaderArena(arena, index))}\r\n \r\n );\r\n }\r\n}\r\n","import styled, {css} from \"styled-components\";\r\nimport { IBannerContainerBoxProps } from \"../../cms-banner/banner-container/banner-container.default.box\";\r\n\r\nexport const HomepageTopBannerBackgroundBox = styled.div`\r\n width: 100%;\r\n position: absolute;\r\n background-image: url(\"${props => props.theme.images.homepageTopBannerPlaceholder.toString()}\");\r\n ${props => props.minHeight && css`\r\n min-height: calc(${props.minHeight} + 1px);\r\n `};\r\n`;\r\n","import styled from \"styled-components\";\r\n\r\nexport const HomepageTopBannerDividerBox = styled.div`\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n box-sizing: border-box;\r\n display: block;\r\n width: calc(100% - 14px);\r\n background-color: ${props => props.theme.colors.boxBorderLight};\r\n border-top: 3px solid ${props => props.theme.colors.boxBorder};\r\n margin: 4px 0 7px 7px;\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../themes/architecture/styled-by-device\";\r\n\r\nconst MutualBox = styled.div`\r\n right: 0;\r\n bottom: 0;\r\n position: fixed;\r\n z-index: 9999;\r\n`;\r\n\r\nconst PCBox = styled(MutualBox)`\r\n width: 190px;\r\n`;\r\n\r\nconst MobileBox = styled(MutualBox)`\r\n width: 130px;\r\n`;\r\n\r\n\r\nexport const FreeToPlayAnimatedIcon1Box = styledByDevice(PCBox,MobileBox);","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../themes/architecture/styled-by-device\";\r\n\r\nconst MutualBox = styled.div`\r\n right: 20px;\r\n bottom: 20px;\r\n position: fixed;\r\n z-index: 9999;\r\n`;\r\n\r\nconst PCBox = styled(MutualBox)`\r\n width: 100px;\r\n`;\r\n\r\nconst MobileBox = styled(MutualBox)`\r\n width: 70px;\r\n`;\r\n\r\n\r\nexport const FreeToPlayAnimatedIcon2Box = styledByDevice(PCBox,MobileBox);","\r\nexport interface IUserGameOrientationService {\r\n readonly gameGroup: IUserGameOrientation;\r\n}\r\n\r\nexport enum GAME_ORIENTATION_IDS{\r\n SLOTS = 5003,\r\n BLACKJACK = 5001,\r\n ROULETTE = 5002,\r\n LIVE_BLACKJACK = 5009,\r\n LIVE_ROULETTE = 5010,\r\n LIVE_CASINO = 6003,\r\n CASINO_SKILL = 6001,\r\n CASINO_SOFT = 6002,\r\n CASINO_MIXT = 8001\r\n}\r\n\r\nexport interface IUserGameOrientation{\r\n groupId?: number;\r\n groupName: string;\r\n}","import {OrbitComponent} from \"../base-components/orbit-component/orbit-component\";\r\nimport * as React from \"react\";\r\nimport {FreeToPlayAnimatedIcon1Box} from \"./boxes/free-to-play-animated-icon1.box\";\r\nimport {FreeToPlayAnimatedIcon2Box} from \"./boxes/free-to-play-animated-icon2.box\";\r\nimport { AnimatedIconObservableTarget, AnimatedIconUnloadReason, IAnimatedIconRequestOptions } from \"../../services/pixi-app/animated-icon-base-service.service\";\r\nimport { CHANNEL_ELEMENTS, CHANNEL_SOURCE } from \"../../../common/const/casinofied-analytics-consts\";\r\nimport { AreaType } from \"@sparkware/uc-sdk-core\";\r\nimport { observer } from \"mobx-react\";\r\n\r\n@observer\r\nexport class FreeToPlayAnimatedIconComponent extends OrbitComponent {\r\n private icon1RequestOptions = {\r\n jsonUrl: this.services.theme.currentTheme.images.f2p.freeToPlay1.toString(),\r\n size: {\r\n width: 445,\r\n height: 364\r\n },\r\n timings: {\r\n delay: 2000,\r\n interval: 3000\r\n }\r\n };\r\n private icon2RequestOptions = {\r\n jsonUrl: this.services.theme.currentTheme.images.f2p.freeToPlay2.toString(),\r\n size: {\r\n width: 234,\r\n height: 259\r\n },\r\n timings: {\r\n delay: 2000,\r\n interval: 3000\r\n }\r\n };\r\n private iconObservableTarget: AnimatedIconObservableTarget | undefined;\r\n\r\n private _captureElementRefForIcon(element: HTMLElement | null) {\r\n // if element is null (the component was unmounted) or the element changed, then check if we have a currently running/loading animation and remove it\r\n if (!element || (this.iconObservableTarget && this.iconObservableTarget.wrapper !== element)) {\r\n // if the current animation is loading, cancel it\r\n if (this.iconObservableTarget && this.iconObservableTarget.loadingInProgress) {\r\n this.iconObservableTarget.abortLoading = true;\r\n }\r\n // if the current animation is already running, stop and dispose it\r\n if (this.iconObservableTarget && this.iconObservableTarget.animationDisposer) {\r\n this.iconObservableTarget.animationDisposer(AnimatedIconUnloadReason.REQUESTED);\r\n }\r\n }\r\n // if the element exists and is different from the previous one, then the animation must be started\r\n if (element && (!this.iconObservableTarget || this.iconObservableTarget.wrapper !== element)) {\r\n let requestOptions: Omit = (this.services.freeToPlay.iconIndex === 1) ? this.icon1RequestOptions : this.icon2RequestOptions;\r\n // update the reference\r\n this.iconObservableTarget = {\r\n ...requestOptions,\r\n wrapper: element\r\n };\r\n this.services.freeToPlay.loadFreeToPlayAnimation(this.iconObservableTarget);\r\n }\r\n // if element is null just update the reference so we know next time the capture is ran\r\n if (!element) {\r\n this.iconObservableTarget = undefined;\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n if (this.services.configuration.servicesConfigs.AppLauncher.apps.CASINO_BONUS_GAME_WIDGET.enabled) {\r\n this._sendAnalytics(\"show_floating_icon\");\r\n }\r\n }\r\n render() {\r\n if (!this.services.configuration.servicesConfigs.AppLauncher.apps.CASINO_BONUS_GAME_WIDGET.enabled) {\r\n return null;\r\n }\r\n\r\n const StyledBox = (this.services.freeToPlay.iconIndex === 1)? FreeToPlayAnimatedIcon1Box : FreeToPlayAnimatedIcon2Box;\r\n\r\n return (\r\n this._openBonusWheel()} ref={this._captureElementRefForIcon.bind(this)}/>\r\n );\r\n }\r\n\r\n private _openBonusWheel = async () => {\r\n this._sendAnalytics(\"click_floating_icon\");\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 this.services.analytics.sendAnalytics('F2P', action, this.services.location.isHomePage? 'homepage' : this.services.location.currentUri.pathName.toString());\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\n\r\n@observer\r\nexport class HomePageComponent extends RoutedComponent<{}> {\r\n\r\n private _renderTopBanner() {\r\n const topBannerProps = this.services.homepage.getCmsTopBannerProps();\r\n\r\n return (\r\n <>\r\n \r\n \r\n {this.services.homepage.useMiniTopBanner? : 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 //TODO - this should be removed once we have the floating icon\r\n private _renderBonusWheelButton() {\r\n return (\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.useMiniTopBanner\r\n });\r\n\r\n return (\r\n <>\r\n {this._renderTopBanner()}\r\n \r\n {this._renderHomePageArenaHeaders()}\r\n {this._renderBonusWheelButton()}\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 ApiListType, 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\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 if(this.services.graphyte.homepageLists) {\r\n return \"GRAPHYTE\";\r\n }\r\n return \"\";\r\n }\r\n\r\n renderArena(): React.ReactElement | null {\r\n return ();\r\n }\r\n\r\n protected get _isUsingExternalAIForSwipersSorting(): boolean {\r\n return Boolean(this.services.graphyte.homepageLists);\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\r\n if(!this.services.graphyte.homepageLists) {\r\n return this.services.configuration.data.homePage.gamesLists || [];\r\n }\r\n\r\n const graphyteLists = [...this.services.graphyte.homepageLists];\r\n\r\n const recentlyPlayedListConfig = this.services.configuration.data.homePage.gamesLists.find(config => config.apiListType === ApiListType.RECENTLY_PLAYED);\r\n if(recentlyPlayedListConfig) {\r\n graphyteLists.splice(0, 0, recentlyPlayedListConfig);\r\n }\r\n return graphyteLists;\r\n\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 };\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 font-family: ${props => props.theme.font.family.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","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 {ActiveFilter} from '../../../services/games-filter/games-filter.service.interface';\r\nimport {FilterLinkListComponent} from '../filter-link-list/filter-link-list.component';\r\nimport {FiltersGameListPcBox} from \"./boxes/filters-game-list-pc.box\";\r\n\r\n@observer\r\nexport class FiltersGamesListPcComponent extends OrbitComponent<{}> {\r\n\r\n private _toggleFilter = (filter: ActiveFilter) => {\r\n let selectedFilter = this.services.gamesFilter.currentFilters.filter(currentFilter=> currentFilter.id === filter.id);\r\n this.services.gamesFilter.toggleFilter(filter.id);\r\n\r\n if(selectedFilter?.length === 1 && selectedFilter[0].on === false) {\r\n this.services.analytics.sendAnalytics(\"Navigation\", this.services.routing.currentRoute.data.arenaType, filter.id);\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 currentFilters = this.services.gamesFilter.currentFilters;\r\n if(currentFilters.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport 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 {FiltersGamesListPcComponent} from '../../filters/filters-games-list-pc/filters-games-list-pc.component';\r\nimport {IStickyHandler} from \"../../sticky-handler/sticky-handler.interface\";\r\nimport {ARENA_TYPES} from \"./casino-arena.template-types\";\r\nimport {LOBBY_PAGE, WIDE_GRID} 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\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 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 {\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}\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\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 }\r\n }\r\n}\r\n","import React from \"react\";\r\nimport {IArenaViewModel} from \"../arena-view-model.interface\";\r\n\r\nexport class VoidArenaModel implements IArenaViewModel {\r\n get arenaName(): string {\r\n return 'voidArena';\r\n }\r\n\r\n get listsCount(): number {\r\n return 0;\r\n }\r\n\r\n renderArena(): React.ReactElement | null {\r\n return null;\r\n }\r\n\r\n renderList(listPosition: number): React.ReactElement | null {\r\n return null;\r\n }\r\n\r\n getNextBatchSize(currentListPosition: number): number {\r\n return 0;\r\n }\r\n}","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 {LiveCasinoFilterButtonIconDefaultBox} from \"./live-casino-filter-button-icon.default.box\";\r\n\r\nexport const LiveCasinoFilterButtonIconBox = LiveCasinoFilterButtonIconDefaultBox;","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 {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 font-family: ${({theme}) => theme.font.family.bold};\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\n\r\nexport const LiveCasinoFilterButtonLabelBox = styledByTheme(LiveCasinoFilterButtonLabelDefaultBox).forCasino777(LiveCasinoFilterButtonLabelCasino777Box).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 { 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\n\r\nexport const LiveCasinoArenaNavbarButtonBox = styledByTheme(LiveCasinoArenaNavbarButtonDefaultBox).forCasino777(LiveCasinoArenaNavbarButtonCasino777Box).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 styled from 'styled-components';\r\n\r\nexport const LiveArenaWidgetCrownBox = styled.div`\r\n background: url(${props => props.theme.images.liveArena.liveArenaWidget.crown.toString()}) no-repeat;\r\n background-size: 60% 60%;\r\n background-position: center;\r\n height: 100%;\r\n width: 70px;\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n width: 35px;\r\n height: 35px;\r\n flex-shrink: 0;\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\n\r\nexport const LiveArenaWidgetLogoBox = styled.div`\r\n background: url(${props => props.theme.images.liveArena.liveArenaWidget.logo.toString()});\r\n background-position: center;\r\n background-size: contain;\r\n background-repeat: no-repeat;\r\n height: 100%;\r\n margin-left: 5px;\r\n width: 196px;\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n margin-left: 0px;\r\n width: 101px;\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\n\r\nexport const LiveArenaWidgetMainContainerBox = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: center;\r\n flex: 0 0 auto;\r\n /* border: 1px solid ${props => props.theme.components.newLiveCasino.colors.gridItem.wrapperBorder};\r\n border-radius: 3px;\r\n box-sizing: content-box; */\r\n margin: 30px 25px 0 25px;\r\n cursor: pointer;\r\n\r\n background: url(${props => props.theme.images.liveArena.liveArenaWidget.background.toString()});\r\n background-position: center;\r\n\r\n height: 70px;\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n height: 50px;\r\n margin: 6px 4px 0 4px;\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\n\r\nexport const LiveArenaWidgetCapsuleContainerBox = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n justify-items: center;\r\n justify-content: center;\r\n\r\n height: 100%;\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n height: 90%;\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\nimport { CssRule } from '../../../../themes/architecture/css-helpers/css-rule';\r\n\r\nexport const LiveArenaWidgetCapsuleStartBox = styled.div`\r\n background: url(${props => props.theme.images.liveArena.liveArenaWidget.infoCapsule.backgroundStart.toString()});\r\n background-size: 100% 100%;\r\n height: 100%;\r\n width: 50px;\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n width: 32px;\r\n }\r\n ${CssRule.For.RTL.build()} & {\r\n transform: translateX(0.5px) scaleX(-1);\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\nexport const LiveArenaWidgetCapsuleMidContainerBox = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n background: url(${props => props.theme.images.liveArena.liveArenaWidget.infoCapsule.backgroundMiddle.toString()});\r\n background-size: 100% 100%;\r\n background-repeat: repeat-x;\r\n height: 100%;\r\n`;\r\n","import styled from 'styled-components';\r\nimport { CssRule } from '../../../../themes/architecture/css-helpers/css-rule';\r\n\r\nexport const LiveArenaWidgetCapsuleEndBox = styled.div`\r\n background: url(${props => props.theme.images.liveArena.liveArenaWidget.infoCapsule.backgroundEnd.toString()});\r\n background-size: 100% 100%;\r\n height: 100%;\r\n width: 55px;\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n width: 40px;\r\n }\r\n ${CssRule.For.RTL.build()} & {\r\n transform: translateX(-0.5px) scaleX(-1);\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\n\r\nexport const LiveArenaWidgetSeparatorBox = styled.div`\r\n background: url(${props => props.theme.images.liveArena.liveArenaWidget.infoCapsule.separator.toString()});\r\n background-size: 100% 100%;\r\n height: 100%;\r\n width: 8px;\r\n margin: 0 15px;\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n margin: 0 5px;\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\n\r\nexport const LiveArenaWidgetDescriptionBox = styled.div<{smallFont: boolean}>`\r\n color: ${props => props.theme.colors.moneyColor};\r\n font-family: ${props => props.theme.font.family.ultra};\r\n font-size: ${props => props.smallFont? \"9px\": \"20px\"};\r\n text-align: center;\r\n margin-left: 1px;\r\n flex-shrink: 0;\r\n`;\r\n","import styled from 'styled-components';\r\n\r\nexport const LiveArenaWidgetAmountBox = styled.div`\r\n color: ${props => props.theme.colors.moneyColor};\r\n font-family: ${props => props.theme.font.family.ultra};\r\n font-size: 20px;\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n font-size: 14px;\r\n }\r\n`;","import styled from 'styled-components';\r\n\r\nexport const LiveArenaWidgetClockBox = styled.div`\r\n display: flex;\r\n height: 100%;\r\n flex-direction: column;\r\n justify-items: center;\r\n justify-content: center;\r\n \r\n div {\r\n font-size: 25px;\r\n color: ${props => props.theme.colors.textLight};\r\n\r\n @media ${props => props.theme.mediaQuery.lAndBelow} {\r\n font-size: 17px;\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 {CyClass} from '../../../common/cy-classes';\r\nimport { IBlueRibbonPartyJackpot } from '../../../common/interfaces/blue-ribbon-party-jackpot.interface';\r\nimport { LiveArenaWidgetCrownBox } from './boxes/crown/live-arena-widget-crown.box';\r\nimport { LiveArenaWidgetLogoBox } from './boxes/logo/live-arena-widget-logo.box';\r\nimport { LiveArenaWidgetMainContainerBox } from './boxes/main-container/live-arena-widget-main-container.box';\r\nimport { LiveArenaWidgetCapsuleContainerBox } from './boxes/capsule/live-arena-widget-capsule-container.box';\r\nimport { LiveArenaWidgetCapsuleStartBox } from './boxes/capsule/live-arena-widget-capsule-start.box';\r\nimport { LiveArenaWidgetCapsuleMidContainerBox } from './boxes/capsule/live-arena-widget-capsule-mid-container.box';\r\nimport { LiveArenaWidgetCapsuleEndBox } from './boxes/capsule/live-arena-widget-capsule-end.box';\r\nimport { LiveArenaWidgetSeparatorBox } from './boxes/capsule/separator/live-arena-widget-separator.box';\r\nimport { JackpotWidgetClockComponent } from '../jackpot-widget/jackpot-widget-clock.component';\r\nimport { LiveArenaWidgetDescriptionBox } from './boxes/capsule/description/live-arena-widget-description.box';\r\nimport { LiveArenaWidgetAmountBox } from './boxes/capsule/amount/live-arena-widget-amount.box';\r\nimport { LiveArenaWidgetClockBox } from './boxes/capsule/clock/live-arena-widget-clock.box';\r\nimport { JACKPOT_STATE, JackpotType } from '../../../common/const/jackpot_map_ids';\r\n\r\nexport interface ILiveArenaWidgetProps {\r\n partyJackpot: IBlueRibbonPartyJackpot;\r\n}\r\n\r\n\r\n@observer\r\nexport class LiveArenaWidgetComponent extends OrbitComponent {\r\n\r\n get _isAllPartyJPAvailable() {\r\n return this.props.partyJackpot != null;\r\n }\r\n\r\n render() {\r\n if (this._isAllPartyJPAvailable && this.props.partyJackpot.isExpired) {\r\n return null;\r\n }\r\n\r\n return (\r\n {\r\n if (this._isAllPartyJPAvailable) {\r\n this.services.partyJackpot.openJackpotInfoPage(this.props.partyJackpot.jackpotId);\r\n }\r\n }}\r\n >\r\n \r\n\r\n \r\n\r\n {this._isAllPartyJPAvailable ? (\r\n \r\n\r\n \r\n\r\n \r\n { /* Special case for OFF HOURS (mobile): */\r\n this.services.device.isMobile && this.props.partyJackpot?.getStandardJackpotState() === JACKPOT_STATE.OffHours ? <>\r\n \r\n STARTS SOON{/* Here text is hardcoded since it should fit to small place on mobile portrait */}\r\n \r\n \r\n {this._renderClock()}\r\n : <>\r\n {this._renderAmount()}\r\n \r\n {this._renderClock()}\r\n {this._renderDescription()}\r\n \r\n }\r\n \r\n\r\n \r\n\r\n \r\n ) : null}\r\n\r\n { this.services.mediaQuery.xs ? null : }\r\n\r\n \r\n );\r\n }\r\n\r\n private _renderAmount() {\r\n if (!this._isAllPartyJPAvailable) {\r\n return null;\r\n }\r\n\r\n const amountInCents = this.props.partyJackpot.currentValue;\r\n return \r\n {this.services.currency.formatMoney(amountInCents)}\r\n ;\r\n }\r\n\r\n private _renderClock() {\r\n if (!this._isAllPartyJPAvailable) {\r\n return null;\r\n }\r\n\r\n if (this.props.partyJackpot.mustHitTime) {\r\n const mustHitTimeFn = () => {\r\n return this.props.partyJackpot.mustHitTime;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _getDescriptionTranslationKey(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 = '';\r\n break;\r\n }\r\n\r\n return translationKey;\r\n }\r\n\r\n private _renderDescription() {\r\n if (!this._isAllPartyJPAvailable || this.services.device.isMobile) {\r\n return null;\r\n }\r\n\r\n const trKey = this._getDescriptionTranslationKey(this.props.partyJackpot?.getStandardJackpotState());\r\n if (!trKey) {\r\n return null;\r\n }\r\n\r\n return <>\r\n \r\n \r\n {this.services.translation.translate(trKey)}\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 { LiveArenaWidgetComponent } from '../../live-casino-widget/live-arena-widget.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\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 _renderLiveArenaWidget() {\r\n // this flag tell us if we expect to retrieve all live casino promotion from BR system\r\n // this is a configuration flag used not to harm CLS\r\n const isAllLiveGamesPromotion = this.services.partyJackpot.isAllLiveGamesPromotion;\r\n if (isAllLiveGamesPromotion) {\r\n //might return null if BR data was not retrieved yet\r\n const allLiveGamesPartyJackpot = this.services.partyJackpot.getAllLiveGamesJackpot();\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 render() {\r\n return (\r\n
\r\n\r\n \r\n\r\n {this._renderLiveCasinoArenaNavbar()}\r\n\r\n {this._renderLiveArenaWidget()}\r\n\r\n \r\n\r\n \r\n\r\n {this._renderLinkToOffer()}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import {IArenaViewModel} from \"../arena-view-model.interface\";\r\nimport {IServiceFactoryExtended} from \"../../../../service-factory-extended.interface\";\r\nimport React from \"react\";\r\nimport {OrbitSuspense} from \"../../../../../components/base-components/orbit-suspense/orbit-suspense\";\r\nimport {NewLiveCasinoArenaComponent} from \"../../../../../components/arena-host/new-live-casino-arena/new-live-casino-arena.component\";\r\n\r\nexport class NewLiveCasinoArenaModel implements IArenaViewModel {\r\n constructor(public readonly arenaName: string,\r\n private readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n get listsCount(): number {\r\n return 0;\r\n }\r\n\r\n renderList(listPosition: number): React.ReactElement | null {\r\n return null;\r\n }\r\n\r\n getNextBatchSize(currentListPosition: number): number {\r\n return 0;\r\n }\r\n\r\n renderArena(): React.ReactElement | null {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}","import React from \"react\";\r\nimport {OrbitSuspense} from \"../../../../../components/base-components/orbit-suspense/orbit-suspense\";\r\nimport {IServiceFactoryExtended} from \"../../../../service-factory-extended.interface\";\r\nimport {IArenaViewModel} from \"../arena-view-model.interface\";\r\nconst LiveCasinoArenaComponent = React.lazy(\r\n () => import(\"../../../../../components/arena-host/live-casino-arena/live-casino-arena.component\").then(({LiveCasinoArenaComponent}) => ({default: LiveCasinoArenaComponent}))\r\n);\r\n\r\nexport class LiveCasinoArenaModel implements IArenaViewModel {\r\n constructor(public readonly arenaName: string, private readonly services: IServiceFactoryExtended) {\r\n }\r\n\r\n get listsCount(): number {\r\n return 0;\r\n }\r\n\r\n renderList(listPosition: number): React.ReactElement | null {\r\n return null;\r\n }\r\n\r\n getNextBatchSize(currentListPosition: number): number {\r\n return 0;\r\n }\r\n\r\n renderArena() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}","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\nexport class ArenasService extends ServiceBase implements IArenasService {\r\n\r\n @observable.ref\r\n private _arenasConfigs: ArenasConfiguration = {};\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n this._postLoginListsSortOrderStorage = new ListsSortOrderStorage(services);\r\n this._loadArenas();\r\n }\r\n\r\n private _arenas: Record = {};\r\n private readonly _postLoginListsSortOrderStorage: ListsSortOrderStorage;\r\n\r\n private _loadArenas(): void {\r\n this._arenas[HOME_PAGE_ARENA] = this._createArena(HOME_PAGE_ARENA);\r\n const arenasConfigs = this.services.configuration.data.arenas;\r\n for(let arenaName in arenasConfigs) {\r\n this._arenas[arenaName] = this._createArena(arenaName);\r\n }\r\n }\r\n\r\n getArena(arenaName: string): IArenaViewModel {\r\n return this._arenas[arenaName] || new VoidArenaModel();\r\n }\r\n\r\n private _createArena(arenaName: string): IArenaViewModel | null {\r\n switch (arenaName) {\r\n case HOME_PAGE_ARENA:\r\n return new HomePageArenaModel(this.services, this._postLoginListsSortOrderStorage);\r\n case NEW_LIVE_CASINO_ARENA_NAME:\r\n return new NewLiveCasinoArenaModel(arenaName, this.services);\r\n case LIVE_CASINO_ARENA_NAME:\r\n return new LiveCasinoArenaModel(arenaName, this.services);\r\n default:\r\n return new CasinoLobbyArenaModel(arenaName, this.services, this._postLoginListsSortOrderStorage);\r\n }\r\n }\r\n\r\n getCurrentArena(): IArenaViewModel {\r\n const arenaName = this.services.routing.currentRoute.data?.arenaType;\r\n if(!arenaName) {\r\n return new VoidArenaModel();\r\n }\r\n return this.getArena(arenaName)\r\n\r\n }\r\n\r\n getArenaConfig(arenaType: string): ArenaConfiguration {\r\n return this.services.configuration.data.arenas[arenaType];\r\n }\r\n\r\n shouldHideFiltersButtonMobile(): boolean {\r\n const arenasWithoutFilterButton: string[] = [NEW_LIVE_CASINO_ARENA_NAME];\r\n const currentRoute = this.services.routing.currentRoute;\r\n return arenasWithoutFilterButton.includes(currentRoute?.data?.arenaType);\r\n }\r\n}\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../../base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\nimport {Link} from \"../../raw-components/link/link\";\r\n\r\nexport interface BreadcrumbsItemComponentProps {\r\n readonly title: string;\r\n position: number;\r\n readonly url?: string;\r\n onClick?: () => void;\r\n\r\n}\r\n\r\n@observer\r\nexport class BreadcrumbsItemComponent extends OrbitComponent {\r\n\r\n render() {\r\n let noLinkClass = this.props.onClick ? '' : 'no-link';\r\n return (\r\n <>\r\n \r\n \r\n \r\n {this.props.title}\r\n \r\n \r\n \r\n \r\n {this.props.onClick ? {' > '} : null}\r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {IBreadcrumb} from './breadcrumb.interface';\r\nimport {BreadcrumbsItemComponent} from '../../../components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component';\r\n\r\nexport class NonNavigatableBreadcrumb implements IBreadcrumb {\r\n constructor(private _title: string) {\r\n }\r\n\r\n render(position: number) {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {IBreadcrumb} from './breadcrumb.interface';\r\nimport {IServiceFactoryExtended} from '../../service-factory-extended.interface';\r\nimport {BreadcrumbsItemComponent} from '../../../components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component';\r\n\r\n\r\nexport class NavigatableBreadcrumb implements IBreadcrumb {\r\n constructor(private _title: string, private _url: string, private services: IServiceFactoryExtended) {\r\n\r\n }\r\n\r\n private _navigate = () => {\r\n this.services.location.push(this._url);\r\n };\r\n\r\n render(position: number) {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\n\r\n","import {NonNavigatableBreadcrumb} from './breadcrumbs/non-navigatable-breadcrumb';\r\nimport {NavigatableBreadcrumb} from './breadcrumbs/navigatable-breadcrumb';\r\nimport {IBreadcrumb} from './breadcrumbs/breadcrumb.interface';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {UriPath} from \"../location/uri-path/uri-path\";\r\n\r\nexport class SiteMapNode {\r\n constructor(private _title: string, private _url: string, children: any[]) {\r\n this._loadChildren(children);\r\n this._urlParts = new UriPath(_url).toArray();\r\n }\r\n\r\n private readonly _urlParts: string[];\r\n\r\n private _loadChildren(children: any[]): void {\r\n this._children = (children || []).map(ch => new SiteMapNode(ch.title, ch.url, ch.children));\r\n }\r\n\r\n\r\n private _children: SiteMapNode[] = [];\r\n get children(): SiteMapNode[] {\r\n return this._children;\r\n }\r\n\r\n createBreadcrumbs(requestedUrlParts: string[], services: IServiceFactoryExtended): IBreadcrumb[] {\r\n\r\n for(let i = 0; i < this._urlParts.length; i++) {\r\n if(this._urlParts[i] !== requestedUrlParts[i]) {\r\n return [];\r\n }\r\n }\r\n\r\n if(this._urlParts.length === requestedUrlParts.length) {\r\n return [new NonNavigatableBreadcrumb(this._title)] //it means this is the last breadcrumb\r\n } else {\r\n let breadcrumb = new NavigatableBreadcrumb(this._title, this._url, services);\r\n\r\n return [breadcrumb, ...this._createChildrenBreadcrumbs(requestedUrlParts, services)];\r\n }\r\n }\r\n\r\n private _createChildrenBreadcrumbs(requestedUrlParts: string[], services: IServiceFactoryExtended): IBreadcrumb[] {\r\n for(let i = 0; i < this.children.length; i++) {\r\n let childBreadcrumbs = this.children[i].createBreadcrumbs(requestedUrlParts, services);\r\n if(childBreadcrumbs.length > 0) {\r\n return childBreadcrumbs;\r\n }\r\n }\r\n return [];\r\n }\r\n\r\n toFlatSiteMap(): {[key: string]: SiteMapNode} {\r\n let result = {};\r\n result[this._url] = this;\r\n\r\n this.children.forEach(child => {\r\n result = Object.assign(result, child.toFlatSiteMap());\r\n });\r\n\r\n return result;\r\n\r\n }\r\n}\r\n","import {ISiteMapService} from './sitemap.service.interface';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {SiteMapNode} from './sitemap-node';\r\nimport {action, observable} from 'mobx';\r\nimport {IBreadcrumb} from './breadcrumbs/breadcrumb.interface';\r\nimport {UriPath} from '../location/uri-path/uri-path';\r\n\r\nexport class SiteMapService extends ServiceBase implements ISiteMapService {\r\n\r\n private _root: SiteMapNode;\r\n private _flatSiteMapByUrl: {[key: string]: SiteMapNode};\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n this._initSiteMap();\r\n this.reaction(\r\n () => this.services.location.currentUri,\r\n (uri) => {\r\n this._setBreadcrumbs(this._createBreadCrumbs(uri.pathName));\r\n },\r\n {\r\n fireImmediately: true\r\n });\r\n }\r\n\r\n private _initSiteMap() {\r\n let siteMap = this.services.configuration.startupConfiguration.b2c.sitemap\r\n this._root = new SiteMapNode(siteMap.title, siteMap.url, siteMap.children);\r\n this._flatSiteMapByUrl = this._root.toFlatSiteMap();\r\n }\r\n\r\n @observable.ref\r\n breadcrumbs: IBreadcrumb[] = [];\r\n\r\n @action.bound\r\n private _setBreadcrumbs(breadcrumbs: IBreadcrumb[]) {\r\n this.breadcrumbs = breadcrumbs;\r\n }\r\n\r\n\r\n private _createBreadCrumbs(uriPath: UriPath): IBreadcrumb[] {\r\n if(!uriPath) {\r\n return [];\r\n }\r\n\r\n if(uriPath.isEmpty) {\r\n return [];\r\n }\r\n\r\n let uriParts = uriPath.toArray();\r\n if(uriParts[0] !== '/') {\r\n uriParts = ['/', ...uriParts];\r\n }\r\n\r\n let breadcrumbs = this._root.createBreadcrumbs(uriParts, this.services);\r\n if(breadcrumbs.length < uriParts.length) {\r\n this.services.logger.warning(`URL ${uriPath} was not found in the sitemap`);\r\n return [];\r\n }\r\n\r\n if(breadcrumbs.length <= 1) {\r\n return [];\r\n }\r\n\r\n return breadcrumbs;\r\n }\r\n\r\n isUrlInSiteMap(url: string): boolean {\r\n if(this._flatSiteMapByUrl[url]) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n\r\n\r\n}\r\n","import {ServiceBase} from '../ServiceBase';\r\nimport {IMarketingService} from './marketing.service.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {encodeUriRecursive} from '../../../utils/url-utils';\r\nimport {MarketingParams} from \"../../../common/interfaces/marketing-params.interface\";\r\n\r\n\r\nconst TEST_DATA_KEY = 'testdata';\r\n\r\nexport class MarketingService extends ServiceBase implements IMarketingService {\r\n\r\n private get _sCut(): any {\r\n return this.services.window.getGlobalProperty('sCut');\r\n }\r\n\r\n private get _sCutQueryParams(): string | null {\r\n let sCut = this._sCut;\r\n if(sCut) {\r\n return sCut.toString();\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n appendSCutToUrl(url: string): string {\r\n if(!url) {\r\n return url;\r\n }\r\n\r\n if(!this._sCutQueryParams) {\r\n return url;\r\n }\r\n\r\n let urlParts = url.split('?');\r\n let queryParams = (urlParts[1] || '').trim();\r\n if(queryParams) {\r\n if(queryParams.endsWith('&')) {\r\n return urlParts[0] + '?' + queryParams + this._sCutQueryParams;\r\n } else {\r\n return urlParts[0] + '?' + queryParams + '&' + this._sCutQueryParams;\r\n }\r\n } else {\r\n return urlParts[0] + '?' + this._sCutQueryParams;\r\n }\r\n }\r\n\r\n private _getDlp(): string {\r\n return this.services.location.currentUri.getUrlWithoutSearchAndHash();\r\n }\r\n\r\n private _convertParameterToNumber(parameterName: string, parameterValue): number {\r\n let dlAsNumber = parseInt((parameterValue || '').trim());\r\n if(Check.isNumber(dlAsNumber)) {\r\n return dlAsNumber;\r\n } else {\r\n this.services.logger.error(`Cannot convert marketing parameter ${parameterName} to number because its value is ${parameterValue}`);\r\n return 999999;\r\n }\r\n }\r\n\r\n getMarketingData(marketingParams?: MarketingParams): any {\r\n let sCut = this._sCut;\r\n if(!Check.isObject(sCut)) {\r\n return {};\r\n }\r\n\r\n if(!sCut[\"all\"]) {\r\n this.services.logger.warning(`sCut.all function doesn't exists`);\r\n return {};\r\n }\r\n\r\n let sCutData = sCut[\"all\"]();\r\n\r\n if(!sCutData) {\r\n this.services.logger.warning(`sCut.all() returned ${sCutData}`);\r\n return {};\r\n }\r\n\r\n marketingParams = marketingParams || {};\r\n\r\n let additionalParams: any = {...sCutData};\r\n delete additionalParams[TEST_DATA_KEY];\r\n if(!additionalParams.wtc && marketingParams.wtc) {\r\n additionalParams.wtc = marketingParams.wtc;\r\n }\r\n\r\n\r\n let testData: any = {};\r\n\r\n try {\r\n testData = sCutData[TEST_DATA_KEY] ? JSON.parse(sCutData[TEST_DATA_KEY]) : {}\r\n } catch (err) {\r\n this.services.logger.error('Failed to parse sCut TestData');\r\n return {};\r\n }\r\n\r\n if(!testData.dl && marketingParams.dl) {\r\n testData.dl = marketingParams.dl;\r\n }\r\n\r\n if(testData.dl) {\r\n //We try to convert the dl to number to see if it is a valid number\r\n //but we must send it as a string because membership code will throw error on GetFunnelData if it will be number\r\n testData.dl = (this._convertParameterToNumber('dl', testData.dl)).toString();\r\n }\r\n\r\n testData.dlp = this._getDlp();\r\n\r\n if(additionalParams.dlp) {\r\n additionalParams.dlp = testData.dlp;\r\n }\r\n\r\n return encodeUriRecursive({\r\n sr: sCutData.sr,\r\n TestData: testData,\r\n AdditionalParams: additionalParams\r\n });\r\n }\r\n\r\n\r\n\r\n}\r\n","import {LanguageSwitcherItemConfiguration} from '../../../app-bootstrap/config-interfaces/b2c-startup.configurations';\r\nimport {IServiceFactoryExtended} from '../../service-factory-extended.interface';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {ILanguageSwitcherItem} from './language-switcher-item.interface';\r\n\r\nexport class LanguageSwitcherItem implements ILanguageSwitcherItem {\r\n constructor(private _config: LanguageSwitcherItemConfiguration, private services: IServiceFactoryExtended) {\r\n }\r\n\r\n get title(): string {\r\n return this._config.title;\r\n }\r\n\r\n get url(): string {\r\n return this._config.url;\r\n }\r\n\r\n get isCurrent(): boolean {\r\n return false;\r\n }\r\n\r\n makeCurrent(): void {\r\n this.services.analytics.sendAnalytics('Navigation', 'Language', this.title);\r\n this._executeOnClickJs();\r\n let url = this._config.url;\r\n\r\n if(this.services.device.hybrid.isEmbedded) {\r\n this.services.window.openSelf(url);\r\n } else {\r\n this._createCookie().then(() => {\r\n this.services.user.logout();\r\n setTimeout(() => {\r\n if(this._config.sendFunnelParameters) {\r\n url = this.services.marketing.appendSCutToUrl(url);\r\n }\r\n this.services.window.openSelf(url);\r\n }, 200);\r\n })\r\n }\r\n }\r\n\r\n private _createCookie(): Promise {\r\n if(this.services.user.isAuthorized) {\r\n return this.services.user.getAutoLoginToken()\r\n .then(token => {\r\n this.services.cookies.createDomainCookie('orbit_autologin_token', token);\r\n }).catch(() => {\r\n this.services.logger.error('Failed to get autologin token in order to switch language');\r\n });\r\n } else {\r\n return Promise.resolve();\r\n }\r\n }\r\n\r\n private _executeOnClickJs(): void {\r\n try {\r\n\r\n\r\n if (!this._config.onClickJs) {\r\n return;\r\n }\r\n\r\n if (!Check.isString(this._config.onClickJs)) {\r\n this.services.logger.error(`onClickJs is not a string for language switcher item ${this.title}`);\r\n return;\r\n }\r\n\r\n if (this._config.onClickJs.length > 50) {\r\n this.services.logger.error(`Too long callback method for language switcher item ${this.title} click event: ${this._config.onClickJs.substring(0, 50)} ...`);\r\n return;\r\n }\r\n\r\n // eslint-disable-next-line\r\n let func = new Function(this._config.onClickJs);\r\n func();\r\n }\r\n catch (err) {\r\n this.services.logger.error(`Failed to execute onClickJs for language swithcer item ${this.title}; onClickJs: ${this._config.onClickJs}`, err);\r\n }\r\n }\r\n}\r\n\r\n\r\n","import {IServiceFactoryExtended} from '../../service-factory-extended.interface';\r\nimport {ILanguageSwitcherItem} from './language-switcher-item.interface';\r\n\r\nexport class LanguageSwitcherSection {\r\n constructor(private _services: IServiceFactoryExtended, private _title: string, private _fallbackTitleKey: string, private _items: ILanguageSwitcherItem[]) {\r\n\r\n }\r\n\r\n get title(): string {\r\n if(this._title) {\r\n return this._title;\r\n }\r\n\r\n return this._services.translation.translate(this._fallbackTitleKey);\r\n }\r\n\r\n get items(): ILanguageSwitcherItem[] {\r\n return this._items;\r\n }\r\n}\r\n","import {ILanguageSwitcherItem} from './language-switcher-item.interface';\r\n\r\nexport class SelectedLanguageSwitcherItem implements ILanguageSwitcherItem {\r\n constructor(private _title: string) {\r\n\r\n }\r\n get isCurrent(): boolean {\r\n return true;\r\n }\r\n get title(): string {\r\n return this._title;\r\n }\r\n\r\n get url(): string {\r\n return '';\r\n }\r\n\r\n makeCurrent(): void {\r\n }\r\n\r\n}\r\n","import {ServiceBase} from '../ServiceBase';\r\nimport {ILanguageData, ILanguageService} from './language.service.interface';\r\nimport {action, observable} from 'mobx';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {TranslatedText} from './translated-text';\r\n\r\nimport {LanguageSwitcherStructure} from './language-switcher/language-switcher-structure';\r\nimport {LanguageSwitcherItem} from './language-switcher/language-switcher-item';\r\nimport {LanguageSwitcherSection} from './language-switcher/language-switcher-section';\r\nimport {SelectedLanguageSwitcherItem} from './language-switcher/selected-language-switcher-item';\r\nimport {ILanguageSwitcherItem} from './language-switcher/language-switcher-item.interface';\r\nimport {\r\n LanguageSwitcherConfiguration,\r\n LanguageSwitcherItemConfiguration, LanguageSwitcherSectionConfiguration\r\n} from '../../app-bootstrap/config-interfaces/b2c-startup.configurations';\r\n\r\nexport class LanguageService extends ServiceBase implements ILanguageService {\r\n constructor(private _defaultLanguageData: ILanguageData, services: IServiceFactoryExtended) {\r\n super(services);\r\n\r\n this._loadLanguageData();\r\n\r\n if (this._isLanguageSwitcherEnabled) {\r\n this._setLanguageSwitcher(this.services.configuration.startupConfiguration.b2c.languageSwitcher);\r\n } else {\r\n this._setLanguageSwitcher(null);\r\n }\r\n\r\n\r\n this.reaction(() => this.services.location.currentUri,\r\n (uri) => {\r\n this._updateLanguageSwitcher(uri.pathName.toString());\r\n }, {\r\n fireImmediately: this.languageSwitcher.isEmpty\r\n });\r\n }\r\n\r\n private get _isLanguageSwitcherEnabled(): boolean {\r\n return Boolean(this.services.configuration.data.languageSwitcher?.display)\r\n }\r\n\r\n\r\n private _lastUrlWithoutTheFragmentQueriedForLanguageSwitcher = '';\r\n\r\n public get isRTLLanguage(): boolean {\r\n return this.services.dom.getElementsByTagName('html')[0].classList.contains('cgp-rtl');\r\n }\r\n\r\n get currentLanguage(): string {\r\n return this.services.configuration.startupConfiguration.b2c.language.iso3;\r\n }\r\n\r\n get currentLanguageIso2(): string {\r\n return this.services.configuration.startupConfiguration.b2c.language.iso2;\r\n }\r\n\r\n\r\n private _getDefaultTexts(): TranslatedText {\r\n return this._defaultLanguageData.text || {};\r\n }\r\n\r\n\r\n private _loadLanguageData(): void {\r\n let textOverrides = this.services.configuration.startupConfiguration.orbit.lang?.text;\r\n let translatedTexts = {...this._getDefaultTexts(), ...textOverrides};\r\n\r\n this._setTranslatedTexts(translatedTexts);\r\n }\r\n\r\n\r\n\r\n @observable.ref\r\n translatedTexts: TranslatedText = {};\r\n\r\n @action.bound\r\n private _setTranslatedTexts(data: TranslatedText) : void {\r\n this.translatedTexts = data;\r\n }\r\n\r\n @observable.ref\r\n languageSwitcher: LanguageSwitcherStructure;\r\n\r\n @action.bound\r\n private _setLanguageSwitcher(langSwitcherConfig: LanguageSwitcherConfiguration): void {\r\n let languagesSection = this._extractLangSwitcherSection(langSwitcherConfig && langSwitcherConfig.languages, langSwitcherConfig && langSwitcherConfig.languageSettings, 'CHOOSE_LANG');\r\n\r\n let countriesSection = this._extractLangSwitcherSection(langSwitcherConfig && langSwitcherConfig.countries, langSwitcherConfig && langSwitcherConfig.countrySettings, 'CHOOSE_COUNTRY')\r\n\r\n this.languageSwitcher = {\r\n languagesSection: languagesSection,\r\n countriesSection: countriesSection,\r\n isEmpty: languagesSection.items.length === 0 && countriesSection.items.length === 0\r\n };\r\n }\r\n\r\n private _extractLangSwitcherSection(itemsConfig: LanguageSwitcherItemConfiguration[], sectionConfig: LanguageSwitcherSectionConfiguration, fallbackTitleKey: string): LanguageSwitcherSection {\r\n itemsConfig = itemsConfig || [];\r\n sectionConfig = sectionConfig || {title: '', current: ''};\r\n\r\n let items: ILanguageSwitcherItem[] = [];\r\n\r\n if(sectionConfig.current && itemsConfig.length > 0) {\r\n items.push(new SelectedLanguageSwitcherItem(sectionConfig.current));\r\n }\r\n\r\n itemsConfig.forEach(cfg => {\r\n items.push(new LanguageSwitcherItem(cfg, this.services));\r\n });\r\n\r\n return new LanguageSwitcherSection(this.services,\r\n sectionConfig.title,\r\n fallbackTitleKey,\r\n items);\r\n\r\n }\r\n\r\n _updateLanguageSwitcher(url: string) {\r\n if (this.languageSwitcher.isEmpty) {\r\n return;\r\n }\r\n\r\n if(this._lastUrlWithoutTheFragmentQueriedForLanguageSwitcher !== url && !this.services.device.hybrid.isEmbedded) {\r\n this._lastUrlWithoutTheFragmentQueriedForLanguageSwitcher = url;\r\n\r\n this.services.cmsApi\r\n .getLanguageSwitcherConfiguration(url)\r\n .then(config => {\r\n if (config) { this._setLanguageSwitcher(config); }\r\n });\r\n }\r\n }\r\n}\r\n","import { Check } from \"@sparkware/app-utils\";\r\nimport { SideMenuLinkConfiguration, CustomElementLink, InternalLink, ExternalLink } from \"../config-data-sections/side-menu.configuration\";\r\n\r\nexport function isCustomLink(config: SideMenuLinkConfiguration): config is CustomElementLink {\r\n return (!Check.isNullOrUndefined((config as any).isCustomElement) && (config as any).isCustomElement === true);\r\n}\r\n\r\nexport function isInternalLink(config: SideMenuLinkConfiguration): config is InternalLink {\r\n if (isCustomLink(config)) {\r\n return false;\r\n }\r\n return (Check.isNullOrUndefined(config.isExternalLink) || config.isExternalLink === false);\r\n}\r\n\r\nexport function isExternalLink(config: SideMenuLinkConfiguration): config is ExternalLink {\r\n if (isCustomLink(config)) {\r\n return false;\r\n }\r\n return (!Check.isNullOrUndefined(config.isExternalLink) && config.isExternalLink === true);\r\n}\r\n\r\n","import {ISideMenuService, SideMenuLinkAction} from './side-menu.service.interface';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IServiceFactoryExtended} from \"../service-factory-extended.interface\";\r\nimport {InternalLink, ExternalLink, SideMenuLinkConfiguration} from \"../configurations/config-data-sections/side-menu.configuration\";\r\nimport {action, observable} from \"mobx\";\r\nimport { isExternalLink, isInternalLink } from '../configurations/helpers/side-menu-typeguards.helpers';\r\nimport {IOverlayConsumer} from \"../overlay/overlay-consumer.interface\";\r\n\r\nexport class SideMenuService extends ServiceBase implements ISideMenuService, IOverlayConsumer {\r\n @observable.ref isMobileMenuOpen: boolean = false;\r\n\r\n @action.bound\r\n private _setIsMobileMenuOpen(shouldOpen: boolean) {\r\n this.isMobileMenuOpen = shouldOpen;\r\n }\r\n\r\n constructor(serviceFactory: IServiceFactoryExtended) {\r\n super(serviceFactory);\r\n this.reaction(\r\n () => this.services.overlay.isOpen,\r\n (isOpen) => {\r\n if (!isOpen) {\r\n this.closeMobileMenu();\r\n }\r\n }\r\n );\r\n this.services.overlay.registerConsumer(this);\r\n }\r\n\r\n get needsOverlay(): boolean {\r\n return this.isMobileMenuOpen;\r\n }\r\n\r\n onOverlayClicked() {\r\n this.closeMobileMenu();\r\n }\r\n\r\n getOverlayZIndex(): number | undefined {\r\n return this.zIndex - 1;\r\n }\r\n\r\n get zIndex(): number {\r\n return 120;\r\n }\r\n\r\n getLinkAction(config: SideMenuLinkConfiguration): SideMenuLinkAction {\r\n return this._linkAction(config);\r\n }\r\n\r\n openMobileMenu(): void {\r\n if (!this.isMobileMenuOpen) {\r\n this.services.userMenu.closeMenu();\r\n this.services.sdk.closeRunningGame();\r\n this._setIsMobileMenuOpen(true);\r\n }\r\n }\r\n\r\n closeMobileMenu(): void {\r\n if (this.isMobileMenuOpen) {\r\n this.services.gameSearch.closeSearchResult();\r\n this.closeMobileLanguageSwitcher();\r\n this._setIsMobileMenuOpen(false);\r\n }\r\n }\r\n\r\n openHelp(): void {\r\n this.services.externalLinks.openHelpPage();\r\n this.services.userMenu.closeMenu();\r\n this.services.analytics.sendAnalytics('Navigation', 'Header', 'Help');\r\n }\r\n\r\n private _linkAction(config: SideMenuLinkConfiguration): SideMenuLinkAction {\r\n return event => {\r\n event.preventDefault();\r\n this.services.analytics.sendAnalytics('Navigation', 'NavBar', config.text);\r\n\r\n if (this.services.menuFlow.hasCustomFlow(config)) {\r\n const flowResult = this.services.menuFlow.executeCustomFlow(config);\r\n if (flowResult && !flowResult.continue) {\r\n return;\r\n }\r\n }\r\n\r\n this.closeMobileMenu();\r\n this.services.userMenu.closeMenu();\r\n this.services.overlay.closeOverlay();\r\n\r\n if (isExternalLink(config)) {\r\n this._externalLink(config);\r\n } else if (isInternalLink(config)) {\r\n this._internalLink(config);\r\n }\r\n };\r\n }\r\n\r\n private _internalLink(config: InternalLink) {\r\n const link = this.proceedLink(config.link);\r\n switch (config.tabState) {\r\n case '_blank':\r\n this.services.sdk.openInNewWindow(this.services.marketing.appendSCutToUrl(link));\r\n break;\r\n case '_self':\r\n default:\r\n this.services.location.push(link.toLowerCase());\r\n break;\r\n }\r\n }\r\n\r\n private _externalLink(config: ExternalLink) {\r\n const link = this.proceedLink(config.link);\r\n const linkParams = {\r\n source: ('externalLinkSource' in config) ? config.externalLinkSource : link,\r\n view: config.target,\r\n options: config.options,\r\n sourceLink: null,\r\n };\r\n if (config.useDirectLink) {\r\n if (config.noConcatScut) {\r\n linkParams.sourceLink = link;\r\n } else {\r\n linkParams.sourceLink = this.services.marketing.appendSCutToUrl(link);\r\n }\r\n }\r\n\r\n this.services.externalLinks.openLink(linkParams, {dl: config.dl}, config.useCallbackURL);\r\n }\r\n\r\n private proceedLink(link:string): string {\r\n //add all replaces for the link here\r\n return link?.replace('{cid}', this.services.user.cid);\r\n }\r\n\r\n @observable.ref\r\n isMobileLanguageSwitcher: boolean = false;\r\n\r\n @action.bound\r\n openMobileLanguageSwitcher(): void {\r\n this.isMobileLanguageSwitcher = true;\r\n }\r\n\r\n @action.bound\r\n closeMobileLanguageSwitcher(): void {\r\n this.isMobileLanguageSwitcher = false;\r\n }\r\n}\r\n","import {GameInfo, OpenGameParameters} from '../games/game-info';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {SuggestedLinkConfiguration} from '../configurations/config-data-sections/game-search-box.configuration';\r\n\r\nexport interface ISearchSuggestion {\r\n readonly key: string;\r\n readonly text: string;\r\n readonly linkIconClass: string;\r\n readonly type: string;\r\n readonly gameInfo: GameInfo;\r\n executeAction(): void;\r\n}\r\n\r\nexport const SUGGESTED_CATEGORIES = \"Suggested_Categories\";\r\n\r\nexport function isSuggestedCategory(searchSuggestion: ISearchSuggestion): boolean {\r\n return searchSuggestion?.type === SUGGESTED_CATEGORIES;\r\n}\r\n\r\nexport class GameSuggestion implements ISearchSuggestion {\r\n constructor(private services: IServiceFactoryExtended, private _gameInfo: GameInfo, private _analyticsLabel: string, private _index?: number, private _aiSortingType?: string) {\r\n\r\n }\r\n\r\n get gameInfo(): GameInfo {\r\n return this._gameInfo;\r\n }\r\n\r\n get type(): string {\r\n return this._analyticsLabel;\r\n }\r\n\r\n get key(): string {\r\n return this._gameInfo.gameType + '_' + this._gameInfo.title;\r\n }\r\n\r\n get text(): string {\r\n return this._gameInfo.title;\r\n }\r\n\r\n get linkIconClass(): string {\r\n return this._gameInfo.gameCategory;\r\n }\r\n\r\n executeAction(): void {\r\n\r\n const openGameParams: OpenGameParameters = {\r\n isRealMode: true,\r\n pageName: 'Search',\r\n gameIndex: this._index,\r\n listTitle: this.type,\r\n aiSortingType: this._aiSortingType,\r\n showIntermediatePage: this.services.cmsSegmentation.isCstatus === false //Show intermediate page only for user with cStatus == false, TASK 1832892\r\n };\r\n\r\n this._gameInfo.open(openGameParams);\r\n }\r\n\r\n}\r\n\r\n\r\nexport class SearchLinkSuggestion implements ISearchSuggestion {\r\n constructor(private _linkConfig: SuggestedLinkConfiguration, private services: IServiceFactoryExtended, private _analyticsAction: string) {\r\n\r\n }\r\n\r\n get gameInfo(): GameInfo {\r\n return null;\r\n }\r\n\r\n get type(): string {\r\n return this._analyticsAction;\r\n }\r\n\r\n get key(): string {\r\n return this._linkConfig.text;\r\n }\r\n\r\n get text(): string {\r\n return this.services.translation.translate(this._linkConfig.text);\r\n }\r\n\r\n get linkIconClass(): string {\r\n return 'link';\r\n }\r\n\r\n executeAction() {\r\n this.services.analytics.sendAnalytics('Search', this.type, this.text);\r\n if(this._linkConfig.link) {\r\n this.services.location.push(this._linkConfig.link);\r\n } else {\r\n this.services.externalLinks.openLink({\r\n source: this._linkConfig.externalLinkSource\r\n });\r\n }\r\n }\r\n}\r\n\r\n\r\nexport class GameSearchResult {\r\n constructor(private _games: ISearchSuggestion[], private _suggestedCategories: ISearchSuggestion[], private _suggestedGames: ISearchSuggestion[]) {}\r\n\r\n get suggestedGames(): ISearchSuggestion[] {\r\n return this._suggestedGames;\r\n }\r\n\r\n get games(): ISearchSuggestion[] {\r\n return this._games;\r\n }\r\n\r\n get suggestedCategories(): ISearchSuggestion[] {\r\n return this._suggestedCategories;\r\n }\r\n}\r\n","import {MarketingParams} from \"../../../common/interfaces/marketing-params.interface\";\r\n\r\nexport type ExternalLinkViewMode = 'window' | 'iframe' | 'redirect';\r\n\r\nexport interface OpenLinkParams {\r\n source?: string;\r\n sourceLink?: string;\r\n options?: any;\r\n view?: ExternalLinkViewMode;\r\n resolveByCallback?: boolean;\r\n}\r\n\r\n\r\n\r\nexport interface OpenMyAccountOptions {\r\n tabId: number;\r\n}\r\n\r\nexport interface OpenContactUsOptions{\r\n view: ExternalLinkViewMode;\r\n}\r\n\r\nexport enum OpenMembershipResponse {\r\n unknown = 0,\r\n play = 1,\r\n deposit = 2,\r\n close = 3\r\n}\r\n\r\n\r\n\r\nexport interface IExternalLinksService {\r\n openLink(params: OpenLinkParams, marketingParams?: MarketingParams, useCallbackURL?: boolean): Promise;\r\n openMyAccount(options?: OpenMyAccountOptions, marketingParams?: MarketingParams, resolveByCallback?: boolean): Promise;\r\n openMembership(marketingParams?: MarketingParams, resolveByCallback?: boolean): Promise;\r\n openUploadDocument(marketingParams?: MarketingParams, resolveByCallback?: boolean): Promise;\r\n openContactUs(options?: OpenContactUsOptions, marketingParams?: MarketingParams, resolveByCallback?: boolean): Promise;\r\n openHelpPage(): Promise;\r\n openDownloadApp(): Promise;\r\n openResponsibleGamblingLink(view?:number):void;\r\n openOldChat(): Promise;\r\n}\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 font-family: ${props => props.theme.font.family.regular};\r\n font-weight: 400;\r\n font-size: 1.5rem;\r\n white-space: pre;\r\n color: ${props => props.theme.colors.text};\r\n \r\n &:hover {\r\n color: ${props => props.theme.colors.textHover};\r\n background-color: ${props => props.theme.colors.backgroundHover};\r\n }\r\n\r\n &:before {\r\n content: \"\";\r\n width: 25px;\r\n height: 25px;\r\n margin: 0 0.5rem 0 0;\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n transform: scale(0.8);\r\n }\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {SearchLinkBox} from \"../../../search-result-item/boxes/search-links/search-link.box\";\r\n\r\nexport const SearchNoGamesFoundDefaultBox = styled(SearchLinkBox)`\r\n font-size: 1.4rem;\r\n cursor: default;\r\n &:before {\r\n content: \"\";\r\n width: 0;\r\n height: 0;\r\n margin: 0 \r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {SearchNoGamesFoundDefaultBox} from \"./search-no-games-found.default.box\";\r\n\r\nexport const SearchNoGamesFoundCasino777Box = styled(SearchNoGamesFoundDefaultBox)`\r\n font-size: 1.6rem;\r\n`;","import {SearchNoGamesFoundDefaultBox} from \"./search-no-games-found.default.box\";\r\nimport {styledByTheme} from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport {SearchNoGamesFoundCasino777Box} from \"./search-no-games-found.casino777.box\";\r\n\r\nexport const SearchNoGamesFoundBox = styledByTheme(SearchNoGamesFoundDefaultBox)\r\n .forCasino777(SearchNoGamesFoundCasino777Box)\r\n .apply();","import styled from \"styled-components\";\r\n\r\nexport const SearchGameItemBox = styled.div`\r\n width: calc(100% / 3);\r\n padding-right: 3px;\r\n display: flex;\r\n flex-direction: column;\r\n cursor: pointer;\r\n`;\r\n","import {SearchMatchBoxDefault} from \"./search-match.default.box\";\r\n\r\nexport const SearchMatchBox = SearchMatchBoxDefault;","import styled from \"styled-components\";\r\n\r\nexport const SearchMatchBoxDefault = styled.span`\r\n font-weight: bold;\r\n color: ${props => props.theme.colors.brandPrimary}\r\n`;","import React from 'react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\nimport {SearchMatchBox} from \"./boxes/search-match.box\";\r\nimport {removeSpecialCharacters} from \"../../../../../utils/string-helpers\";\r\n\r\nexport interface SearchListItemComponentProps {\r\n gameName : string;\r\n}\r\n\r\n@observer\r\nexport class HighlightSearchListItemComponent extends OrbitComponent {\r\n render() {\r\n let searchText = removeSpecialCharacters(this.services.gameSearch.currentSearchText).toLowerCase();\r\n const gameName = this.props.gameName\r\n if(!searchText) {\r\n return gameName;\r\n }\r\n\r\n let index = removeSpecialCharacters(gameName).toLowerCase().indexOf(searchText);\r\n if(index < 0) {\r\n return gameName ;\r\n }\r\n\r\n const beforeHighlightText = gameName.substring(0, index);\r\n let highlightText = gameName.substring(index, index + searchText.length);\r\n // Found how many special characters we have in this string\r\n const numberOfSpecialCharacters = highlightText.length - removeSpecialCharacters(highlightText).length;\r\n highlightText = gameName.substring(index, index + searchText.length + numberOfSpecialCharacters);\r\n\r\n const afterHighlightText = gameName.substring(index + searchText.length + numberOfSpecialCharacters);\r\n\r\n return (\r\n <>\r\n {beforeHighlightText}{highlightText}{afterHighlightText}\r\n \r\n )\r\n }\r\n}\r\n","import styled from \"styled-components\";\r\n\r\nexport const SearchTextWrapperBox = styled.div`\r\n text-align: center;\r\n margin-bottom: 0.5rem;\r\n`;\r\n","import React from 'react';\r\nimport { OrbitComponent } from '../../../base-components/orbit-component/orbit-component';\r\nimport { observer } from 'mobx-react';\r\nimport { SearchGameItemBox } from './boxes/search-game-item/search-game-item.box';\r\nimport { ISearchSuggestion } from '../../../../services/game-search/game-search-result';\r\nimport { GameImageComponent } from '../../../single-game/common/parts/game-image/game-image.component';\r\nimport { HighlightSearchListItemComponent } from '../highlight-search-list-item/highlight-search-list-item.component';\r\nimport { SearchTextWrapperBox } from './boxes/search-text-wrapper/search-text-wrapper.box';\r\n\r\n\r\nexport interface SearchGameItemComponentProps {\r\n searchSuggestion: ISearchSuggestion;\r\n}\r\n \r\n\r\n@observer\r\nexport class SearchGameItemComponent extends OrbitComponent {\r\n\r\n private _onClickHandler = () => {\r\n this.services.gameSearch.closeSearchResult();\r\n this.services.userMenu.closeMenu();\r\n this.services.sideMenu.closeMobileMenu();\r\n this.props.searchSuggestion.executeAction();\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport { OrbitComponent } from '../../../base-components/orbit-component/orbit-component';\r\nimport { SearchBoxTitleComponent } from '../search-box-title/search-box-title.component';\r\nimport { ISearchSuggestion } from '../../../../services/game-search/game-search-result';\r\nimport { observer } from 'mobx-react';\r\nimport { CyClass } from '../../../../../common/cy-classes';\r\nimport { SearchGameItemComponent } from '../search-game-item/search-game-item.component';\r\nimport { SearchGamesListBox } from '../found-games/boxes/search-games-list/search-games-list.box';\r\n\r\nexport interface SuggestedGamesComponentProps {\r\n items: ISearchSuggestion[];\r\n}\r\n\r\n@observer\r\nexport class SuggestedGamesComponent extends OrbitComponent {\r\n\r\n private _renderGame(suggestedCategory: ISearchSuggestion) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n private _renderGames() {\r\n return (\r\n \r\n { this.props.items.map(suggestedCategory => this._renderGame(suggestedCategory)) }\r\n \r\n );\r\n }\r\n\r\n render() {\r\n if (this.props.items.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n {this._renderGames()}\r\n \r\n )\r\n }\r\n}\r\n","import styled from \"styled-components\";\r\n\r\nexport const MoreGamesBox = styled.div<{shouldDisplay: boolean}>`\r\n display: ${props => props.shouldDisplay ? \"block\" : \"none\"};\r\n width: 100%;\r\n padding: 3px 1rem;\r\n`;\r\n","import React from 'react';\r\nimport { OrbitComponent } from '../../../base-components/orbit-component/orbit-component';\r\nimport { SearchBoxTitleComponent } from '../search-box-title/search-box-title.component';\r\nimport { ISearchSuggestion } from '../../../../services/game-search/game-search-result';\r\nimport { observer } from 'mobx-react';\r\nimport { SearchGamesListBox } from \"./boxes/search-games-list/search-games-list.box\";\r\nimport { SearchNoGamesFoundBox } from \"./boxes/search-no-game-found/search-no-games-found.box\";\r\nimport { CyClass } from \"../../../../../common/cy-classes\";\r\nimport { SearchGameItemComponent } from '../search-game-item/search-game-item.component';\r\nimport { SuggestedGamesComponent } from '../suggested-games/suggested-games.component';\r\nimport { Button } from '../../../../basic-ui-components/button/base/button.component';\r\nimport { MoreGamesBox } from './boxes/more-games/more-games.box';\r\n\r\nexport interface IFoundGamesComponentProps {\r\n loadedGamesCount: number;\r\n onLoadMore: () => void;\r\n}\r\n\r\n@observer\r\nexport class FoundGamesComponent extends OrbitComponent {\r\n\r\n private _renderGame(suggestedGame: ISearchSuggestion) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _hasMoreItems = () => this.props.loadedGamesCount < this.services.gameSearch.searchResult.games.length;\r\n\r\n private _renderMoreGames() {\r\n if (this.services.device.os.isPC) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n {this.services.translation.translate(\"MORE\")}\r\n \r\n \r\n );\r\n }\r\n\r\n private _renderFoundGames() {\r\n const gamesToRender = Math.min(this.props.loadedGamesCount, this.services.gameSearch.searchResult.games.length);\r\n return (\r\n \r\n {this.services.gameSearch.searchResult.games.slice(0, gamesToRender).map(suggestedGame => this._renderGame(suggestedGame))}\r\n {this._renderMoreGames()}\r\n \r\n );\r\n }\r\n\r\n private _renderNoSearchResultMessage() {\r\n return (\r\n <>\r\n \r\n {this.services.translation.translate('NO_SEARCH_RESULTS')}\r\n \r\n\r\n \r\n \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n { this.services.gameSearch.searchResult?.games?.length > 0 ?\r\n this._renderFoundGames() :\r\n this._renderNoSearchResultMessage()\r\n }\r\n
\r\n );\r\n }\r\n}\r\n","import {SearchResultItemDefaultBox} from \"./search-result-item.default.box\";\r\n\r\nexport const SearchResultItemBox = SearchResultItemDefaultBox;","import styled from \"styled-components\";\r\n\r\nexport const SearchResultItemDefaultBox = styled.li`\r\n list-style-type: none;\r\n \r\n &:hover {\r\n background-color: ${props => props.theme.colors.background};\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {SearchLinkBox} from \"../search-link.box\";\r\n\r\nexport const SlotsSearchLinkDefaultBox = styled(SearchLinkBox)`\r\n &:before {\r\n background-position: -96px -447px;\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {SearchLinkBox} from \"../search-link.box\";\r\n\r\nexport const SlotsSearchLinkCasino777Box = styled(SearchLinkBox)`\r\n &:before {\r\n background-position: -200px -525px;\r\n }\r\n`;","import {SlotsSearchLinkDefaultBox} from \"./slots-search-link.default.box\";\r\nimport {styledByTheme} from \"../../../../../../../themes/architecture/styled-by-theme\";\r\nimport {SlotsSearchLinkCasino777Box} from \"./slots-search-link.casino777.box\";\r\n\r\nexport const SlotsSearchLinkBox = styledByTheme(SlotsSearchLinkDefaultBox)\r\n .forCasino777(SlotsSearchLinkCasino777Box)\r\n .apply();","import {SearchLinkBox} from \"../search-link.box\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const LiveSearchLinkDefaultBox = styled(SearchLinkBox)`\r\n &:before {\r\n background-position: -290px -448px;\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {SearchLinkBox} from \"../search-link.box\";\r\n\r\nexport const LiveSearchLinkCasino777Box = styled(SearchLinkBox)`\r\n &:before {\r\n background-position: -268px -523px;\r\n }\r\n`;","import {LiveSearchLinkDefaultBox} from \"./live-search-link.default.box\";\r\nimport {styledByTheme} from \"../../../../../../../themes/architecture/styled-by-theme\";\r\nimport {LiveSearchLinkCasino777Box} from \"./live-search-link.casino777.box\";\r\n\r\nexport const LiveSearchLinkBox = styledByTheme(LiveSearchLinkDefaultBox)\r\n .forCasino777(LiveSearchLinkCasino777Box)\r\n .apply();","import {SearchLinkBox} from \"../search-link.box\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const CardAndTableSearchLinkDefaultBox = styled(SearchLinkBox)`\r\n &:before {\r\n background-position: -241px -447px;\r\n }\r\n`;","import {SearchLinkBox} from \"../search-link.box\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const CardAndTableSearchLinkCasino777Box = styled(SearchLinkBox)`\r\n &:before {\r\n background-position: -233px -523px;\r\n }\r\n`;","import {CardAndTableSearchLinkDefaultBox} from \"./card-and-table-search.default.box\";\r\nimport {styledByTheme} from \"../../../../../../../themes/architecture/styled-by-theme\";\r\nimport {CardAndTableSearchLinkCasino777Box} from \"./card-and-table-search-link.casino777.box\";\r\n\r\nexport const CardAndTableSearchLinkBox = styledByTheme(CardAndTableSearchLinkDefaultBox)\r\n .forCasino777(CardAndTableSearchLinkCasino777Box)\r\n .apply();","import {SearchLinkBox} from \"../search-link.box\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const RegularSearchLinkDefaultBox = styled(SearchLinkBox)`\r\n &:before {\r\n background-position: -112px -630px;\r\n }\r\n`;","import {SearchLinkBox} from \"../search-link.box\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const RegularSearchLinkCasino777Box = styled(SearchLinkBox)`\r\n &:before {\r\n background-position: -460px -434px;\r\n }\r\n`;","import {RegularSearchLinkDefaultBox} from \"./regular-search-link.default.box\";\r\nimport {styledByTheme} from \"../../../../../../../themes/architecture/styled-by-theme\";\r\nimport {RegularSearchLinkCasino777Box} from \"./regular-search-link.casino777.box\";\r\n\r\nexport const RegularSearchLinkBox = styledByTheme(RegularSearchLinkDefaultBox)\r\n .forCasino777(RegularSearchLinkCasino777Box)\r\n .apply();","import React from 'react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {ISearchSuggestion} from '../../../../services/game-search/game-search-result';\r\nimport {HighlightSearchListItemComponent} from '../highlight-search-list-item/highlight-search-list-item.component';\r\nimport {observer} from 'mobx-react';\r\nimport {SearchResultItemBox} from \"./boxes/search-result-item-box/search-result-item.box\";\r\nimport {SlotsSearchLinkBox} from \"./boxes/search-links/slots-search-link/slots-search-link.box\";\r\nimport {LiveSearchLinkBox} from \"./boxes/search-links/live-search-link/live-search-link.box\";\r\nimport {CardAndTableSearchLinkBox} from \"./boxes/search-links/card-and-table-search-link/card-and-table-search-link.box\";\r\nimport {RegularSearchLinkBox} from \"./boxes/search-links/regular-search-link/regular-search-link.box\";\r\n\r\nexport interface SearchResultItemComponentProps {\r\n searchSuggestion: ISearchSuggestion\r\n}\r\n\r\n@observer\r\nexport class SearchResultItemComponent extends OrbitComponent {\r\n\r\n private _onClickHandler = () => {\r\n this.services.gameSearch.closeSearchResult();\r\n this.services.userMenu.closeMenu();\r\n this.services.sideMenu.closeMobileMenu();\r\n this.props.searchSuggestion.executeAction();\r\n this.services.analytics.sendAnalytics('Search', this.props.searchSuggestion.type, this.props.searchSuggestion.text);\r\n };\r\n\r\n _renderSearchLinkBox(iconStyle: string) {\r\n switch(iconStyle) {\r\n case 'slots':\r\n return (\r\n \r\n \r\n \r\n );\r\n case 'live':\r\n return (\r\n \r\n \r\n \r\n );\r\n case 'card-and-table':\r\n return (\r\n \r\n \r\n \r\n );\r\n\r\n default:\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this._renderSearchLinkBox(this.props.searchSuggestion.linkIconClass)}\r\n \r\n );\r\n }\r\n}\r\n","import {SearchLinksListDefaultBox} from \"./search-links-list.default.box\";\r\n\r\nexport const SearchLinksListBox = SearchLinksListDefaultBox;","import styled from \"styled-components\";\r\n\r\nexport const SearchLinksListDefaultBox = styled.ul`\r\n margin: 0 0 2rem 0;\r\n padding: 0;\r\n border-left: 2px solid ${props => props.theme.colors.boxBorderLight};\r\n`;","import React from 'react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {SearchBoxTitleComponent} from '../search-box-title/search-box-title.component';\r\nimport {ISearchSuggestion} from '../../../../services/game-search/game-search-result';\r\nimport {observer} from 'mobx-react';\r\nimport {SearchResultItemComponent} from '../search-result-item/search-result-item.component';\r\nimport {SearchLinksListBox} from \"./boxes/search-links-list/search-links-list.box\";\r\n\r\nexport interface SuggestedCategoriesComponentProps {\r\n title: string;\r\n className: string;\r\n items: ISearchSuggestion[];\r\n}\r\n\r\n@observer\r\nexport class SuggestedLinksComponent extends OrbitComponent{\r\n\r\n private _renderSuggestedCategory(suggestedCategory: ISearchSuggestion) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n private _renderSuggestedCategories() {\r\n return this.props.items.map(suggestedCategory => this._renderSuggestedCategory(suggestedCategory))\r\n\r\n}\r\n\r\n render() {\r\n if(this.props.items.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {this._renderSuggestedCategories()}\r\n \r\n \r\n )\r\n }\r\n\r\n}\r\n","import { ISearchFormResultsProps } from './search-form-results.box.props';\r\nimport styled, { css } from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../themes/architecture/styled-by-device\";\r\n\r\nconst DefaultBox = styled.div`\r\n flex: 1;\r\n margin-left: 2rem;\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n position: relative;\r\n margin-right: 1rem;\r\n ${props => props.isHybridAndroid ? css`padding-bottom: 500px;` : \"\"}\r\n`;\r\n\r\nconst PCBox = styled(DefaultBox)`\r\n position: absolute;\r\n width: 45rem;\r\n margin: 5rem 0 0 0;\r\n padding: 1rem 1rem 1rem 5rem;\r\n background: ${props => props.theme.colors.backgroundMiddleDark};\r\n border: 1px solid ${props => props.theme.colors.boxBorderLight};\r\n border-radius: 2rem;\r\n max-height: calc(100vh - 55px);\r\n overflow-y: auto;\r\n\r\n &::-webkit-scrollbar {\r\n width: 5px;\r\n }\r\n\r\n &::-webkit-scrollbar-track {\r\n background: rgba(255, 255, 255, 0.1);\r\n }\r\n\r\n &::-webkit-scrollbar-thumb {\r\n background: rgba(255, 255, 255, 0.5);\r\n }\r\n\r\n &::-webkit-scrollbar-thumb:hover {\r\n background: rgba(255, 255, 255, 0.8);\r\n }\r\n`;\r\n\r\nexport const SearchFormResultsDefaultBox = styledByDevice(PCBox, MobileBox);","import styled, { css } from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../themes/architecture/styled-by-device\";\r\nimport { ISearchFormResultsProps } from \"./search-form-results.box.props\";\r\n\r\nconst DefaultBox = styled.div`\r\n flex: 1;\r\n background-size: 4px 4px;\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n padding: 1rem;\r\n margin: 1rem 0;\r\n background: linear-gradient(-45deg,rgba(252,246,213,0.8) 33.33%,rgba(25,50,47,0.1) 33.33%,rgba(25,50,47,0.2) 50%,rgba(252,246,213,0.8) 50%,rgba(252,246,213,0.8) 83.33%,rgba(25,50,47,0.1) 83.33%,rgba(25,50,47,0.1) 100%);\r\n ${props => props.isHybridAndroid ? css`padding-bottom: 500px;` : \"\"}\r\n`;\r\n\r\nconst PCBox = styled(DefaultBox)`\r\n position: absolute;\r\n width: 45rem;\r\n margin: 5rem 0 0 0;\r\n padding: 1rem 1rem 1rem 5rem;\r\n border-radius: 5px;\r\n background: ${props => props.theme.colors.background};\r\n border: 1px solid ${props => props.theme.colors.boxBorderLight};\r\n`;\r\n\r\nexport const SearchFormResultsCasino777Box = styledByDevice(PCBox, MobileBox);","import {SearchFormResultsDefaultBox} from \"./search-form-results.default.box\";\r\nimport {styledByTheme} from \"../../../../../themes/architecture/styled-by-theme\";\r\nimport {SearchFormResultsCasino777Box} from \"./search-form-results.casino777.box\";\r\n\r\nexport const SearchFormResultsBox = styledByTheme(SearchFormResultsDefaultBox)\r\n .forCasino777(SearchFormResultsCasino777Box)\r\n .apply();","import styled from \"styled-components\";\r\n\r\nexport const SearchFormResultsWrapperDefaultBox = styled.div`\r\n\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const SearchFormResultsWrapperCasino777Box = styled.div`\r\n background: ${props => props.theme.colors.brandSecondary};\r\n padding: 1rem;\r\n`;","import {styledByTheme} from \"../../../../../themes/architecture/styled-by-theme\";\r\nimport {SearchFormResultsWrapperDefaultBox} from \"./search-form-results-wrapper.default.box\";\r\nimport {SearchFormResultsWrapperCasino777Box} from \"./search-form-results-wrapper.casino777.box\";\r\n\r\nexport const SearchFormResultsWrapperBox = styledByTheme(SearchFormResultsWrapperDefaultBox)\r\n.forCasino777(SearchFormResultsWrapperCasino777Box)\r\n.apply();","import React from 'react';\r\nimport { OrbitComponentWithState } from '../../base-components/orbit-component-with-state/orbit-component-with-state';\r\nimport { observer } from 'mobx-react';\r\nimport { FoundGamesComponent } from \"./found-games/found-games.component\";\r\nimport { SuggestedLinksComponent } from \"./suggested-links/suggested-links.component\";\r\nimport { SearchFormResultsBox } from \"./boxes/search-form-results-box/search-form-results.box\";\r\nimport { SearchFormResultsWrapperBox } from \"./boxes/search-form-results-wrapper-box/search-form-results-wrapper.box\";\r\nimport { SuggestedGamesComponent } from './suggested-games/suggested-games.component';\r\n\r\n\r\nexport interface ISearchResultComponentState {\r\n loadedGames: number;\r\n}\r\n\r\nconst LOAD_BATCH_SIZE = 12;\r\n\r\nconst defaultState: ISearchResultComponentState = {\r\n loadedGames: LOAD_BATCH_SIZE\r\n}\r\n\r\n@observer\r\nexport class SearchResultComponent extends OrbitComponentWithState<{}, ISearchResultComponentState> {\r\n\r\n state = {...defaultState};\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n this.reaction(() => this.services.gameSearch.currentSearchText, () => {\r\n this._resetState();\r\n })\r\n }\r\n\r\n private _onLoadMore = () => {\r\n this.services.analytics.sendAnalytics('Search', 'Entry', 'Show_More');\r\n const moreItems = Math.min(this.state.loadedGames + LOAD_BATCH_SIZE, this.services.gameSearch.searchResult.games.length);\r\n this.setState({\r\n loadedGames: moreItems\r\n });\r\n }\r\n\r\n private _resetState() {\r\n this.setState({...defaultState});\r\n }\r\n\r\n _renderSearchResults() {\r\n if (this.services.gameSearch.isSearchInProgress) {\r\n return (\r\n <>\r\n \r\n {this.services.miniOrbit.isEnabled ? null : }\r\n \r\n );\r\n } else {\r\n return (\r\n <>\r\n \r\n {this.services.miniOrbit.isEnabled ? null : }\r\n \r\n );\r\n }\r\n }\r\n\r\n render() {\r\n if (!this.services.gameSearch.isSearchBoxOpened) {\r\n return null;\r\n }\r\n\r\n const isHybridAndroid = this.services.device.hybrid.isHybrid && !this.services.device.os.isIOS;\r\n\r\n return (\r\n \r\n \r\n {this._renderSearchResults()}\r\n \r\n \r\n );\r\n }\r\n}\r\n","import styled, {css} from \"styled-components\";\r\nimport {ISearchClearIconBoxProps} from \"./search-clear-icon.box\";\r\n\r\nexport const SearchClearIconDefaultBox = styled.i`\r\n position: absolute;\r\n right: 2rem;\r\n width: 3rem;\r\n height: 3rem;\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-repeat: no-repeat;\r\n background-position: -857px -643px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n z-index: 2;\r\n \r\n ${props => !props.visible && css`\r\n display: none;\r\n `}\r\n`;","import styled from \"styled-components\";\r\nimport {SearchClearIconDefaultBox} from \"./search-clear-icon.default.box\";\r\n\r\nexport const SearchClearIconCasino777Box = styled(SearchClearIconDefaultBox)`\r\n background-position: -585px -519px;\r\n`;","import {SearchClearIconDefaultBox} from \"./search-clear-icon.default.box\";\r\nimport {styledByTheme} from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport {SearchClearIconCasino777Box} from \"./search-clear-icon.casino777.box\";\r\n\r\nexport interface ISearchClearIconBoxProps {\r\n visible: boolean;\r\n}\r\n\r\nexport const SearchClearIconBox = styledByTheme(SearchClearIconDefaultBox)\r\n .forCasino777(SearchClearIconCasino777Box)\r\n .apply();","import styled from \"styled-components\";\r\n\r\nexport const SearchInputMobileDefaultBox = styled.ul`\r\n position: relative;\r\n margin: 1rem 0 0 0;\r\n`;","import styled from \"styled-components\";\r\nimport {SearchInputMobileDefaultBox} from \"./search-input-mobile.default.box\";\r\n\r\nexport const SearchInputMobileCasino777Box = styled(SearchInputMobileDefaultBox)`\r\n padding: 1rem;\r\n background: linear-gradient(-45deg, rgba(252,246,213,0.8) 33.33%, rgba(25,50,47,0.1) 33.33%, rgba(25,50,47,0.2) 50%, rgba(252,246,213,0.8) 50%, rgba(252,246,213,0.8) 83.33%, rgba(25,50,47,0.1) 83.33%, rgba(25,50,47,0.1) 100%);\r\n background-size: 4px 4px;\r\n border-radius: 5px;\r\n box-shadow: 2px 3px 1rem rgba(25,50,48,0.2);\r\n`;","import {SearchInputMobileDefaultBox} from \"./search-input-mobile.default.box\";\r\nimport {styledByTheme} from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport {SearchInputMobileCasino777Box} from \"./search-input-mobile.casino777.box\";\r\n\r\nexport const SearchInputMobileBox = styledByTheme(SearchInputMobileDefaultBox)\r\n .forCasino777(SearchInputMobileCasino777Box)\r\n .apply();","import styled from \"styled-components\";\r\n\r\nexport const SearchBoxMobileIconDefaultBox = styled.i`\r\n display: block;\r\n position: absolute;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n left: 1rem;\r\n width: 3rem;\r\n height: 3rem;\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-repeat: no-repeat;\r\n background-position: -138px -626px;\r\n z-index: 2;\r\n`;","import styled from \"styled-components\";\r\nimport {SearchBoxMobileIconDefaultBox} from \"./search-box-mobile-icon.default.box\";\r\n\r\nexport const SearchBoxMobileIconCasino777Box= styled(SearchBoxMobileIconDefaultBox)`\r\n left: 2rem;\r\n background-position: -488px -581px;\r\n`;\r\n","import {SearchBoxMobileIconDefaultBox} from \"./search-box-mobile-icon.default.box\";\r\nimport {styledByTheme} from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport {SearchBoxMobileIconCasino777Box} from \"./search-box-mobile-icon.casino777.box\";\r\n\r\nexport const SearchBoxMobileIconBox = styledByTheme(SearchBoxMobileIconDefaultBox)\r\n .forCasino777(SearchBoxMobileIconCasino777Box)\r\n .apply();","import styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../../../themes/architecture/styled-by-device\";\r\n\r\nconst SearchInputArenaMutual = styled.input`\r\n height: initial;\r\n margin: auto 0;\r\n color: ${props => props.theme.colors.textLight};\r\n background: ${props => props.theme.colors.backgroundLight};\r\n\r\n &:focus {\r\n background: ${props => props.theme.colors.backgroundLight};\r\n }\r\n`;\r\n\r\nexport const SearchInputArenaDefaultPCBox = styled(SearchInputArenaMutual)`\r\n position: relative;\r\n width: 32rem;\r\n padding: 1rem 2rem 1rem 5rem;\r\n font-size: 1.4rem;\r\n font-weight: 700;\r\n line-height: 1;\r\n border-radius: 2rem;\r\n border: 2px solid transparent;\r\n transition: width 0.2s ease;\r\n\r\n &:focus {\r\n width: 45rem;\r\n transition: width 0.2s ease;\r\n }\r\n &::placeholder {\r\n color: ${props => props.theme.colors.textMiddleDark};\r\n }\r\n`;\r\nexport const SearchInputArenaDefaultMobileBox = styled(SearchInputArenaMutual)`\r\n display: flex;\r\n width: 100%;\r\n padding: 1.5rem 5.5rem;\r\n font-family: ${props => props.theme.font.family.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 font-family: ${props => props.theme.font.family.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 font-family: ${props => props.theme.font.family.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 {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\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 .apply();\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\nimport {SearchInputAreaBox} from \"./boxes/search-input-area-box/search-input-area.box\";\r\nimport {CyClass} from '../../../../../common/cy-classes';\r\n\r\n@observer\r\nexport class SearchInputArea extends OrbitComponent<{}> {\r\n\r\n private _onChangeHandlder = (event: React.ChangeEvent) => {\r\n this.services.gameSearch.search(event.target.value);\r\n };\r\n\r\n private _onClickHandler = () => {\r\n this.services.gameSearch.openSearchResult();\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {OrbitComponent} from '../../../base-components/orbit-component/orbit-component';\r\nimport {SearchClearIconBox} from \"./boxes/search-clear-icon/search-clear-icon.box\";\r\nimport {SearchInputMobileBox} from \"./boxes/search-input-mobile/search-input-mobile.box\";\r\nimport {SearchBoxMobileIconBox} from \"./boxes/search-box-mobile-icon/search-box-mobile-icon.box\";\r\nimport {SearchInputArea} from \"../search-input-area/search-input-area\";\r\nimport {CyClass} from \"../../../../../common/cy-classes\";\r\n\r\ninterface SearchInputMobileComponentProps {\r\n isSearchOpenAlways?: boolean;\r\n}\r\n\r\n@observer\r\nexport class SearchInputMobileComponent extends OrbitComponent {\r\n private _onResetSearchTextHandler = () => {\r\n this.services.gameSearch.search('');\r\n this.services.gameSearch.searchInputRef?.current?.focus();\r\n };\r\n\r\n private get _showResetSearchIcon(): boolean {\r\n return (this.services.gameSearch.currentSearchText || '').length > 0;\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import {SearchInputFormDefaultBox} from \"./search-input-form.default.box\";\r\n\r\nexport const SearchInputFormBox = SearchInputFormDefaultBox;","import styled from \"styled-components\";\r\n\r\nexport const SearchInputFormDefaultBox = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n`;","import styled from \"styled-components\";\r\n\r\nexport const SearchPCIconBoxDefault = styled.i`\r\n display: block;\r\n position: absolute;\r\n top: 50%;\r\n left: 0.35rem;\r\n transform: translateY(-50%);\r\n width: 30px;\r\n height: 30px;\r\n background-image: url(\"${props => props.theme.images.spriteSheet.toString()}\");\r\n background-position: -138px -626px;\r\n z-index: 2;\r\n pointer-events: none;\r\n\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow}, ${({theme}) => theme.mediaQuery.lowHeight} {\r\n left: 0.15rem;\r\n transform: scale(0.9) translateY(-55%);\r\n }\r\n\r\n`;","import styled from \"styled-components\";\r\nimport {SearchPCIconBoxDefault} from \"./search-pc-icon.default.box\";\r\nimport {SearchInputFormBox} from \"../search-input-form/search-input-form.box\";\r\n\r\nexport const SearchPCIconCasino777Box = styled(SearchPCIconBoxDefault)`\r\n background-position: -453px -581px;\r\n\r\n ${SearchInputFormBox}:hover & {\r\n background-position: -488px -581px;\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {SearchPCIconBoxDefault} from \"./search-pc-icon.default.box\";\r\nimport {SearchInputFormBox} from \"../search-input-form/search-input-form.box\";\r\n\r\nexport const SearchPCIconHarrahsBox = styled(SearchPCIconBoxDefault)`\r\n opacity: 0.5;\r\n \r\n ${SearchInputFormBox}:hover & {\r\n opacity: 1\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {SearchPCIconBoxDefault} from \"./search-pc-icon.default.box\";\r\nimport {SearchInputFormBox} from \"../search-input-form/search-input-form.box\";\r\n\r\nexport const SearchPCIconWSOPBox = styled(SearchPCIconBoxDefault)`\r\n opacity: 0.5;\r\n \r\n ${SearchInputFormBox}:hover & {\r\n opacity: 1\r\n }\r\n`;","import {SearchPCIconBoxDefault} from \"./search-pc-icon.default.box\";\r\nimport {styledByTheme} from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport {SearchPCIconCasino777Box} from \"./search-pc-icon.casino777.box\";\r\nimport {SearchPCIconHarrahsBox} from \"./search-pc-icon.harrahs.box\";\r\nimport {SearchPCIconWSOPBox} from \"./search-pc-icon.wsop.box\";\r\n\r\nexport const SearchPCIconBox = styledByTheme(SearchPCIconBoxDefault)\r\n .forCasino777(SearchPCIconCasino777Box)\r\n .forHarrahs(SearchPCIconHarrahsBox)\r\n .forWsop(SearchPCIconWSOPBox)\r\n .apply();","import {OrbitComponent} from \"../../../base-components/orbit-component/orbit-component\";\r\nimport React from \"react\";\r\nimport {SearchInputArea} from \"../search-input-area/search-input-area\";\r\nimport {SearchInputFormBox} from \"./boxes/search-input-form/search-input-form.box\";\r\nimport {SearchPCIconBox} from \"./boxes/search-pc-icon/search-pc-icon.box\";\r\nimport {observer} from \"mobx-react\";\r\n\r\n@observer\r\nexport class SearchInputPCComponent extends OrbitComponent<{}> {\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}","import styled, {css} from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../themes/architecture/styled-by-device\";\r\n\r\ninterface GameSearchDefaultBoxProps {\r\n open: boolean;\r\n}\r\n\r\nconst GameSearchMobileDefaultBox = styled.div`\r\n ${({open}) => open && css`\r\n flex: 1;\r\n `}\r\n`;\r\n\r\nconst GameSearchPCDefaultBox = styled.div`\r\n position: relative;\r\n display: flex;\r\n`;\r\n\r\n\r\nexport const GameSearchBox: any = styledByDevice(GameSearchPCDefaultBox, GameSearchMobileDefaultBox);","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {SearchResultComponent} from './search-result/search-result.component';\r\nimport {SearchInputMobileComponent} from \"./search-input/search-input-mobile/search-input-mobile.component\";\r\nimport {SearchInputPCComponent} from \"./search-input/search-input-pc/search-input-pc.component\";\r\nimport {GameSearchBox} from \"./boxes/game-search-box/game-search.box\";\r\nimport {CyClass} from '../../../common/cy-classes';\r\nimport classNames from 'classnames';\r\n\r\nexport interface IGameSearchComponentProps {\r\n className?: string;\r\n}\r\n\r\n@observer\r\nexport class GameSearchComponent extends OrbitComponent {\r\n _renderSearchInput() {\r\n return this.services.device.isMobile ? : ;\r\n }\r\n\r\n private _onUpdate = () => {\r\n this.services.gameSearch.searchResultComponentRef.current?.scrollTo(0, 0);\r\n }\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n this.services.gameSearch.searchInputRef?.current.addEventListener(\"input\", this._onUpdate);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.services.gameSearch.searchInputRef?.current.removeEventListener(\"input\", this._onUpdate);\r\n super.componentWillUnmount();\r\n }\r\n \r\n render() {\r\n return (\r\n \r\n {this._renderSearchInput()}\r\n \r\n \r\n );\r\n }\r\n\r\n}\r\n","import React, {createRef} from \"react\";\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IGameSearchService} from './game-search.service.interface';\r\nimport {DomEventSubscription} from '../../../utils/event-listener-registration';\r\nimport {action, computed, observable} from 'mobx';\r\nimport {\r\n SearchLinkSuggestion,\r\n GameSearchResult,\r\n GameSuggestion,\r\n ISearchSuggestion,\r\n SUGGESTED_CATEGORIES\r\n} from './game-search-result';\r\nimport {SuggestedLinkConfiguration} from '../configurations/config-data-sections/game-search-box.configuration';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {GameInfo, gameInfoComparerByTitle} from '../games/game-info';\r\nimport {IModalDialogHandler} from \"../dialog/dialog.service.interface\";\r\nimport {GameSearchComponent} from \"../../components/game-search/game-search.component\";\r\nimport {removeSpecialCharacters} from \"../../../utils/string-helpers\";\r\nimport { LIST_TYPE_ID } from \"../../../common/const/ai-trending-list-ids-map\";\r\nimport {IOverlayConsumer} from \"../overlay/overlay-consumer.interface\";\r\n\r\nexport class GameSearchService extends ServiceBase implements IGameSearchService, IOverlayConsumer {\r\n\r\n private _closeMobileSideMenuOnSearchClose: boolean = false;\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n\r\n this.services.overlay.registerConsumer(this);\r\n\r\n this.reaction(() => this.services.games.gamesMap,\r\n () => {\r\n this._resetGamesSearchListCache();\r\n this.search(this.currentSearchText);\r\n }, {\r\n fireImmediately: true\r\n });\r\n\r\n this.reaction(() => {\r\n return {\r\n trendingRecommendedGamesForPlayerByBets: this.services.aiEngine.trendingRecommendedGamesForPlayerByBets,\r\n aiRecommendedGames: this.services.aiEngine.aiRecommendedGames\r\n }\r\n },\r\n () => {\r\n if(!this.isSearchInProgress) {\r\n this._setDefaultSearchResult();\r\n }\r\n });\r\n }\r\n private _miniOrbitSearchBoxDialogHandler: IModalDialogHandler | null = null;\r\n\r\n private _searchInputRef: React.RefObject = createRef();\r\n private _searchComponentRef: React.RefObject = createRef();\r\n private _searchResultComponentRef: React.RefObject = createRef();\r\n\r\n private _gamesSearchListCache: GameInfo[] | null = null;\r\n private get gamesSearchList(): GameInfo[] {\r\n if(!this._gamesSearchListCache) {\r\n this._gamesSearchListCache = this._buildGamesSearchList()\r\n }\r\n\r\n return this._gamesSearchListCache;\r\n }\r\n\r\n _resetGamesSearchListCache() {\r\n this._gamesSearchListCache = null;\r\n }\r\n\r\n private _buildGamesSearchList(): GameInfo[] {\r\n return Object.values(this.services.games.gamesMap).sort(gameInfoComparerByTitle);\r\n }\r\n\r\n private _openMiniOrbitSearchDialog(): void {\r\n this.services.dialog.showModal((dialogHandler) => {\r\n this._miniOrbitSearchBoxDialogHandler = dialogHandler;\r\n return ();\r\n }, {\r\n title: ' ',\r\n onClosed: () => this.closeSearchResult(),\r\n forceFullscreenTablet: true\r\n });\r\n }\r\n\r\n get needsOverlay(): boolean {\r\n return this.isSearchBoxOpened;\r\n }\r\n\r\n getOverlayZIndex(): number | undefined {\r\n return undefined;\r\n }\r\n\r\n onOverlayClicked() {\r\n this.closeSearchResult();\r\n }\r\n\r\n private _openFullOrbitSearchResult() {\r\n this._disposeDocumentClickSubscription();\r\n /*\r\n * Handle search result close on document click\r\n * Wonder why we use setTimeout? From React 17 the events are bound to react-dom root element instead of window.document\r\n * Read more here: https://github.com/facebook/react/issues/20636\r\n */\r\n setTimeout(() => {\r\n this._documentClickSubscription = this.services.dom.subscribeTo.click(this._handleClickOutsideSearchComponent);\r\n });\r\n\r\n }\r\n\r\n get searchInputRef() {\r\n return this._searchInputRef;\r\n }\r\n\r\n get searchComponentRef() {\r\n return this._searchComponentRef;\r\n }\r\n\r\n get searchResultComponentRef() {\r\n return this._searchResultComponentRef;\r\n }\r\n\r\n openSearchResult(): void {\r\n if(this.isSearchBoxOpened) { //No need to open it if is already opened\r\n return;\r\n }\r\n\r\n if(this.services.miniOrbit.isEnabled) {\r\n this._openMiniOrbitSearchDialog();\r\n } else {\r\n this._openFullOrbitSearchResult();\r\n }\r\n\r\n this._setIsSearchBoxOpened(true);\r\n\r\n this.searchInputRef?.current?.focus();\r\n\r\n if(this.services.device.isMobile){\r\n this._closeMobileSideMenuOnSearchClose = !this.services.sideMenu.isMobileMenuOpen;\r\n if(!this.services.sideMenu.isMobileMenuOpen) {\r\n this.services.sideMenu.openMobileMenu();\r\n }\r\n }\r\n\r\n this.services.analytics.sendAnalytics('Navigation', this.services.routing.currentRoute?.data?.arenaType || 'Header', 'Search_Open');\r\n }\r\n\r\n\r\n private _documentClickSubscription: DomEventSubscription | null = null;\r\n\r\n private _disposeDocumentClickSubscription() {\r\n if(this._documentClickSubscription) {\r\n this._documentClickSubscription.dispose();\r\n this._documentClickSubscription = null;\r\n }\r\n }\r\n\r\n\r\n private _closeMiniOrbitSearchDialog = () => {\r\n if(this._miniOrbitSearchBoxDialogHandler) {\r\n this._miniOrbitSearchBoxDialogHandler.close();\r\n this._miniOrbitSearchBoxDialogHandler = null;\r\n }\r\n };\r\n\r\n\r\n private _closeFullOrbitSearchResult = () => {\r\n this._disposeDocumentClickSubscription();\r\n };\r\n\r\n private _handleClickOutsideSearchComponent = (event) => {\r\n if (this._searchComponentRef.current && !this._searchComponentRef.current.contains(event.target)) {\r\n this.closeSearchResult();\r\n }\r\n }\r\n\r\n closeSearchResult = () => {\r\n if(!this.isSearchBoxOpened) { //if is already closed don't close it again\r\n return;\r\n }\r\n if(this.services.miniOrbit.isEnabled) {\r\n this._closeMiniOrbitSearchDialog();\r\n } else {\r\n this._closeFullOrbitSearchResult();\r\n }\r\n\r\n if(this._closeMobileSideMenuOnSearchClose){\r\n this._closeMobileSideMenuOnSearchClose = false;\r\n this.services.sideMenu.closeMobileMenu();\r\n }\r\n\r\n this._setIsSearchBoxOpened(false);\r\n\r\n //Will called when search box close or when game is selected (And closing the results as well)\r\n if(this.isSearchInProgress)\r\n this.services.analytics.sendAnalytics('Search', 'Entry', this.currentSearchText);\r\n\r\n this._setCurrentSearchText('');\r\n this._setDefaultSearchResult();\r\n };\r\n\r\n private _getGameSuggestion() {\r\n const gamesSuggestions: GameSuggestion[] = [];\r\n let aiSortingTypeForAnalytics:string = \"byactiveusers\";\r\n let aiGames = this.services.aiEngine.trendingRecommendedGamesForPlayerByActiveUsers;\r\n\r\n if(!(aiGames?.length > 0)) {\r\n aiSortingTypeForAnalytics = 'config';\r\n aiGames = this.services.configuration.data.search.suggestedGames;\r\n }\r\n\r\n aiGames.forEach(gameType => {\r\n const gameInfo = this.services.games.gamesMap[gameType];\r\n\r\n if(!Check.isNullOrUndefined(gameInfo)){\r\n gamesSuggestions.push(new GameSuggestion(this.services, gameInfo, `Suggested_Games_${aiSortingTypeForAnalytics}`, gamesSuggestions.length, aiSortingTypeForAnalytics))\r\n }\r\n });\r\n\r\n return gamesSuggestions.slice(0, 6);\r\n }\r\n\r\n private _setDefaultSearchResult() {\r\n const quickLinks = this.services.configuration.data.search.quickLinks\r\n .map(quickLinkConfig => new SearchLinkSuggestion(quickLinkConfig, this.services, 'Quick_Links'));\r\n\r\n this._setSearchResult(new GameSearchResult([], quickLinks, this._getGameSuggestion()));\r\n }\r\n\r\n @computed get isSearchInProgress(): boolean {\r\n return this.currentSearchText.length >= 2;\r\n }\r\n\r\n @observable isSearchBoxOpened: boolean = false;\r\n @action.bound\r\n private _setIsSearchBoxOpened(value: boolean) {\r\n this.isSearchBoxOpened = value;\r\n }\r\n\r\n @observable currentSearchText: string = '';\r\n @action.bound\r\n private _setCurrentSearchText(value: string): void {\r\n this.currentSearchText = value;\r\n }\r\n\r\n search(text: string): void {\r\n text = text || '';\r\n\r\n if(!this.isSearchBoxOpened && text.length > 0) {\r\n this.openSearchResult();\r\n }\r\n\r\n this._setCurrentSearchText(text);\r\n\r\n if(this.isSearchInProgress) { //we only search if there are at least 2 characters typed in the search box\r\n let regEx = new RegExp(removeSpecialCharacters(text), 'gi');\r\n this._setSearchResult(this._getSearchResult(regEx));\r\n } else {\r\n this._setDefaultSearchResult();\r\n }\r\n }\r\n\r\n\r\n private _getSearchResult(regEx: RegExp): GameSearchResult {\r\n let games = this._searchForGames(regEx);\r\n let suggestedCategories: ISearchSuggestion[];\r\n if(games.length === 0) {\r\n suggestedCategories = this._getDefaultSuggestedCategories();\r\n } else {\r\n suggestedCategories = this._searchForSuggestedCategories(regEx);\r\n }\r\n\r\n return new GameSearchResult(games, suggestedCategories, this._getGameSuggestion());\r\n }\r\n\r\n @observable.ref\r\n searchResult: GameSearchResult;\r\n\r\n @action.bound\r\n private _setSearchResult(value: GameSearchResult) {\r\n this.searchResult = value;\r\n }\r\n\r\n private _searchForGames(regEx: RegExp): ISearchSuggestion[] {\r\n\r\n const result: GameInfo[] = [];\r\n const gameTypeToGameInfoObj = {};\r\n\r\n this.gamesSearchList.forEach((gameInfo) => {\r\n if (removeSpecialCharacters(gameInfo.title).match(regEx)) {\r\n result.push(gameInfo);\r\n gameTypeToGameInfoObj[gameInfo.gameType] = gameInfo;\r\n }\r\n });\r\n\r\n const sortedResultGameTypes = this.services.aiEngine.sortGamesByAI(result.map(gameInfo => gameInfo.gameType), LIST_TYPE_ID.ACTIVE_USERS);\r\n return sortedResultGameTypes.map((gameType, index) => new GameSuggestion(this.services, gameTypeToGameInfoObj[gameType], `Search_Results`, index, 'byactiveusers'));\r\n }\r\n\r\n\r\n private _searchForSuggestedCategories(regEx: RegExp): ISearchSuggestion[] {\r\n let suggestedCategoriesOptions = this.services.configuration.data.search.suggestedCategories.suggestedCategoriesOptions;\r\n if(!suggestedCategoriesOptions) {\r\n return this._getDefaultSuggestedCategories();\r\n }\r\n\r\n for(let i = 0; i < suggestedCategoriesOptions.length; i++) {\r\n let option = suggestedCategoriesOptions[i];\r\n let result: ISearchSuggestion[] = [];\r\n if(option.search.match(regEx) && option.categories && option.categories.length > 0) {\r\n result = option.categories.map(categoryConfig => this._createSuggestedCategory(categoryConfig))\r\n // TODO: Remove this after updating the Check signatures. Let type inference do the magic\r\n .filter((categorySuggestion): categorySuggestion is ISearchSuggestion => !Check.isNullOrUndefined(categorySuggestion));\r\n }\r\n\r\n if(result.length > 0) {\r\n return result;\r\n }\r\n }\r\n\r\n return this._getDefaultSuggestedCategories();\r\n }\r\n\r\n private _getDefaultSuggestedCategories(): ISearchSuggestion[] {\r\n return this.services.configuration.data.search.suggestedCategories.defaultSuggestedCategories\r\n .map(suggestedCategory => this._createSuggestedCategory(suggestedCategory))\r\n // TODO: Remove this after updating the Check signatures. Let type inference do the magic\r\n .filter((suggestion): suggestion is ISearchSuggestion => !Check.isNullOrUndefined(suggestion));\r\n }\r\n\r\n _createSuggestedCategory(categoryConfig: SuggestedLinkConfiguration): ISearchSuggestion | null {\r\n if(categoryConfig.gameID) {\r\n let gameInfo = this.services.games.gamesMap[categoryConfig.gameID];\r\n if(!gameInfo) {\r\n this.services.logger.error(`Game type ${categoryConfig.gameID} is in the search suggested categories but this game is not configured to be in this site!`);\r\n return null;\r\n }\r\n return new GameSuggestion(this.services, gameInfo, SUGGESTED_CATEGORIES);\r\n }\r\n return new SearchLinkSuggestion(categoryConfig, this.services, SUGGESTED_CATEGORIES);\r\n }\r\n}\r\n","import {ServiceBase} from '../ServiceBase';\r\nimport {\r\n IExternalLinksService,\r\n OpenContactUsOptions,\r\n OpenLinkParams,\r\n OpenMembershipResponse,\r\n OpenMyAccountOptions\r\n} from './external-links.service.interface';\r\nimport {IServiceFactoryExtended} from '../service-factory-extended.interface';\r\nimport {OnPlayerActionParams} from '../sdk/sdk-events';\r\nimport {SdkOpenExternalLinkParams} from '../sdk/sdk.service.interface';\r\nimport {MarketingParams} from \"../../../common/interfaces/marketing-params.interface\";\r\nimport {CHANNEL_ELEMENTS, CHANNEL_SOURCE} from \"../../../common/const/casinofied-analytics-consts\";\r\nimport {AreaType} from \"@sparkware/uc-sdk-core\";\r\nimport Device from \"../../../sdk/src/utils/device/device\";\r\n\r\nexport class ExternalLinksService extends ServiceBase implements IExternalLinksService {\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n\r\n this.services.sdk.events.onPlayerAction(this._onPlayerActionHandler.bind(this));\r\n }\r\n\r\n\r\n private _onPlayerActionHandler(params: OnPlayerActionParams) {\r\n if(params.actionName === 'deposit') {\r\n this.services.cashier.openCashier({\r\n ...params.options,\r\n channel: {\r\n source: CHANNEL_SOURCE.registration,\r\n area: AreaType.StraightToCashier,\r\n element: CHANNEL_ELEMENTS.depositButton\r\n }\r\n });\r\n }\r\n }\r\n\r\n openLink(params: OpenLinkParams, marketingParams?: MarketingParams, useCallbackURL: boolean = false): Promise {\r\n let marketingData = this.services.marketing.getMarketingData(marketingParams);\r\n const isHybrid = Device.hybrid.isHybrid;\r\n\r\n\r\n const sdkOpenParams: SdkOpenExternalLinkParams = {\r\n view: params.view,\r\n source: params.source,\r\n sourceLink: params.sourceLink,\r\n marketing: marketingData,\r\n options: {...params.options, showRegister: !this.services.cmsSegmentation.isCisOrCip && this.services.configuration.data.generalSettings.showRegisterButton}\r\n };\r\n\r\n if(params.source === 'cashier') {\r\n return this.services.cashier.openCashier({\r\n ...sdkOpenParams.options,\r\n channel: {\r\n source: CHANNEL_SOURCE.casinoClient,\r\n area: AreaType.NavigationMenu,\r\n element: CHANNEL_ELEMENTS.depositButton\r\n }\r\n\r\n }, sdkOpenParams.marketing, useCallbackURL);\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n if(params.resolveByCallback && !isHybrid) {\r\n sdkOpenParams.actionCallback = (result: any) => resolve(result);\r\n }\r\n\r\n this.services.sdk.openExternalLink(sdkOpenParams, useCallbackURL).then(()=> {\r\n // In case there is an actionCallback this promise will be resolved by a call from inside sdk.openExternalLink\r\n if(!sdkOpenParams.actionCallback) {\r\n resolve();\r\n }\r\n }).catch((err)=> {\r\n reject(err);\r\n });\r\n });\r\n }\r\n\r\n openResponsibleGamblingLink(view?:number):void{\r\n this.services.sdk.openResponsibleGamingLink(view);\r\n }\r\n\r\n\r\n async openMyAccount(options?: OpenMyAccountOptions, marketingParams?: MarketingParams, resolveByCallback: boolean = false): Promise {\r\n await this.openLink({\r\n source: 'my_account',\r\n options: options,\r\n resolveByCallback: resolveByCallback\r\n }, marketingParams);\r\n }\r\n\r\n async openContactUs(options?: OpenContactUsOptions, marketingParams?: MarketingParams, resolveByCallback: boolean = false): Promise {\r\n await this.openLink({\r\n source: 'contact_us',\r\n view: options?.view,\r\n resolveByCallback: resolveByCallback\r\n }, marketingParams);\r\n }\r\n\r\n async openOldChat(): Promise {\r\n await this.openLink({\r\n source: 'live_chat',\r\n view: 'window'\r\n });\r\n }\r\n\r\n async openHelpPage(): Promise {\r\n await this.openLink({\r\n source: 'help',\r\n view: 'window',\r\n resolveByCallback: false\r\n });\r\n }\r\n\r\n async openDownloadApp(): Promise {\r\n await this.openLink({\r\n sourceLink: this.services.sdk.getDownloadAppLink(),\r\n view: 'redirect',\r\n resolveByCallback: false\r\n });\r\n }\r\n\r\n async openUploadDocument(marketingParams?: MarketingParams, resolveByCallback: boolean = false): Promise {\r\n await this.openLink({\r\n source: 'upload_document',\r\n resolveByCallback: resolveByCallback\r\n }, marketingParams);\r\n }\r\n\r\n async openMembership(marketingParams?: MarketingParams, resolveByCallback: boolean = false): Promise {\r\n let response = await this.openLink({\r\n source: 'membership',\r\n resolveByCallback: resolveByCallback\r\n }, marketingParams);\r\n\r\n response = (response || {}).actionName;\r\n\r\n\r\n switch(response) {\r\n case 'play':\r\n return OpenMembershipResponse.play;\r\n case 'deposit':\r\n return OpenMembershipResponse.deposit;\r\n case 'close':\r\n return OpenMembershipResponse.close;\r\n default:\r\n this.services.logger.error(`Unknown response '${response}' received from openMembership`);\r\n return OpenMembershipResponse.unknown;\r\n }\r\n }\r\n}\r\n","import {ServiceBase} from '../../ServiceBase';\r\nimport {CmsBannerId} from '../cms-banners/cm-banner-id/cms-banner-id';\r\nimport {BannerData, CmsPageData, CmsSegmentsData, ICmsApiService} from './cms-api.service.interface';\r\nimport {LanguageSwitcherConfiguration} from '../../../app-bootstrap/config-interfaces/b2c-startup.configurations';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {UriParams} from \"../../location/uri-params/uri-params\";\r\n\r\n\r\nexport class CmsApiService extends ServiceBase implements ICmsApiService {\r\n\r\n private get _apiOrigin(): string {\r\n return this.services.launcher.getCMSOrigin() || this.services.location.currentUri.origin\r\n }\r\n\r\n private get _publicationID(): number {\r\n return this.services.configuration.cmsPublicationId;\r\n }\r\n\r\n async getBanners(bannersIds: CmsBannerId[]): Promise {\r\n try {\r\n if(!bannersIds?.length){\r\n return [];\r\n }\r\n\r\n if(!this.services.user.isAuthorized) {\r\n await this.services.sdk.waitForAnonymousAbTestingData();\r\n }\r\n\r\n let data;\r\n const options = {\r\n headers: this._getBannersRequestOptions()\r\n };\r\n\r\n if(this.services.configuration.servicesConfigs.Skin.isSiteInfraAWS) {\r\n data = await this.services.http.get(this._getBannersRequestUrl + this._getBannersRequestParamsGET(bannersIds), options);\r\n } else {\r\n options['body'] = this._getBannersRequestParamsPOST(bannersIds);\r\n data = await this.services.http.post(this._getBannersRequestUrl, options);\r\n }\r\n\r\n\r\n return data || [];\r\n } catch (err) {\r\n let bannersDescriptions = bannersIds.reduce((acc, curr) => acc + '\\n' + curr.toString(), '');\r\n this.services.logger.error('Failed read the following banners from CMS API: ' + bannersDescriptions + 'error message: ' ,err);\r\n return [];\r\n }\r\n }\r\n\r\n async getFallbackBanners(fileNames: string[]): Promise<{[key: string]: string}> {\r\n try {\r\n return await this._readFallbackBanners(fileNames);\r\n } catch (err) {\r\n let files = fileNames.reduce((acc, curr) => acc + '\\n' + curr, '');\r\n this.services.logger.error('Failed to read fallback banners for ' + files);\r\n return {};\r\n }\r\n }\r\n\r\n private _readFallbackBanners(fileNames: string[]): Promise<{[key: string]: string}> {\r\n\r\n\r\n let result = {};\r\n\r\n fileNames = fileNames || [];\r\n if(fileNames.length === 0) {\r\n return Promise.resolve(result);\r\n }\r\n\r\n\r\n let configuredFallbackUrl: string = this._getFallbackUrlFromConfig();\r\n if (!configuredFallbackUrl) {\r\n return Promise.resolve(result);\r\n }\r\n\r\n let promises: Promise[] = [];\r\n for (let i = 0; i < fileNames.length; i++ ) {\r\n let fileName = fileNames[i];\r\n let computedFallbackUrl = configuredFallbackUrl.replace('{fileName}', fileName);\r\n let promise = this.services.http.get(computedFallbackUrl).then(content => {\r\n result[fileName] = content;\r\n\r\n }).catch(err => {\r\n this.services.logger.error(`Failed to load fallback CMS banner! fallbackUrl: ${computedFallbackUrl}`, err);\r\n });\r\n\r\n promises.push(promise);\r\n }\r\n\r\n return Promise.all(promises).then(() => result);\r\n }\r\n\r\n\r\n getPageContent(url: string, customQueryParams?: UriParams): Promise {\r\n let options = {\r\n headers: this._getPagesRequestOptions()\r\n };\r\n\r\n if(this.services.miniOrbit.isEnabled) {\r\n url = url.replace(this.services.miniOrbit.currentMiniOrbitConfig.basePath, '/').replace('//', '/');\r\n }\r\n\r\n let uriParams = new UriParams('');\r\n\r\n uriParams.addParam('publicationid', this._publicationID.toString());\r\n uriParams.addParam('url', this._addSlashesInTheSides(url));\r\n\r\n if(customQueryParams) {\r\n customQueryParams.getAllParams().forEach(p => {\r\n if(!uriParams.hasParam(p.originalName)) {\r\n uriParams.addParam(p.originalName, p.value)\r\n }\r\n });\r\n }\r\n\r\n let cmsPageContentApiUrl = this._apiOrigin + '/api/pagecontent' + uriParams.toString();\r\n\r\n return this.services.http.get(cmsPageContentApiUrl, options);\r\n }\r\n\r\n private _404PageContent: CmsPageData | null = null;\r\n async get404PageContent() {\r\n if(this._404PageContent) {\r\n return this._404PageContent;\r\n }\r\n\r\n try {\r\n let data = await this.services.http.get(this._apiOrigin + '/api/pagecontent?publicationid=' + this._publicationID + '&url=error404.aspx');\r\n this._404PageContent = {\r\n title: null,\r\n location: null,\r\n content: data && data.content\r\n };\r\n\r\n return this._404PageContent;\r\n } catch (err) {\r\n this.services.logger.error(`Failed to get 404 page content!`, err);\r\n return {\r\n title: null,\r\n location: null,\r\n content: '
Something went wrong. Please try again.
'\r\n };\r\n }\r\n }\r\n\r\n private _getFallbackUrlFromConfig(): string {\r\n let configData = this.services.configuration.data;\r\n return configData && configData.generalSettings && configData.generalSettings.fallbackCMSComponentsPath;\r\n\r\n }\r\n\r\n\r\n private get _getBannersRequestUrl() {\r\n return this._apiOrigin + '/api/content/';\r\n }\r\n\r\n private _getBannersRequestParamsPOST(bannersIds: CmsBannerId[]): BodyInit {\r\n\r\n let params = this.services.http.createUrlSearchParams();\r\n params.append('publicationid', this._publicationID.toString());\r\n params.append('PagePlaceHoldersXML', 'PagePlaceholders_ValidKeyPagePlaceholders_ValidValue');\r\n\r\n for(let i = 0; i < bannersIds.length; i++) {\r\n let bannerId = bannersIds[i];\r\n\r\n params.append(`components[${i}][templateId]`, bannerId.templateID);\r\n params.append(`components[${i}][componentId]`, bannerId.componentID);\r\n\r\n\r\n }\r\n\r\n return params;\r\n }\r\n\r\n private _getBannersRequestParamsGET(bannersIds: CmsBannerId[]): string {\r\n\r\n const publicationid = this._publicationID.toString();\r\n const PagePlaceHoldersXML = encodeURIComponent('PagePlaceholders_ValidKeyPagePlaceholders_ValidValue');\r\n\r\n let queryParams = `?publicationId=${publicationid}&PagePlaceHoldersXML=${PagePlaceHoldersXML}&`;\r\n\r\n let componentsParams = [];\r\n for(let i = 0; i < bannersIds.length; i++) {\r\n let bannerId = bannersIds[i];\r\n\r\n componentsParams.push(`templateId=${bannerId.templateID}`);\r\n componentsParams.push(`componentId=${bannerId.componentID}`);\r\n }\r\n\r\n return queryParams + componentsParams.join('&');\r\n }\r\n\r\n private _getBannersRequestOptions(): HeadersInit {\r\n\r\n let headers = this.services.http.createHeaders();\r\n headers.append('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\r\n return this.addXXContext(headers);\r\n }\r\n\r\n private _getPagesRequestOptions(): HeadersInit {\r\n\r\n let headers = this.services.http.createHeaders();\r\n return this.addXXContext(headers);\r\n }\r\n\r\n private _getSegmentesRequestOptions(): HeadersInit {\r\n let headers = this.services.http.createHeaders();\r\n return this.addXXContext(headers);\r\n }\r\n\r\n private addXXContext(headers: Headers): HeadersInit {\r\n let userSignature = this.services.sdk.getCmsUserSignature();\r\n if(!Check.isEmpty(userSignature)) {\r\n headers.append('XX.Context', userSignature && userSignature.message);\r\n headers.append('XX.Context.Signature', userSignature && userSignature.signature);\r\n }\r\n return headers;\r\n }\r\n\r\n async getSegments(): Promise {\r\n try {\r\n let options = {\r\n headers: this._getSegmentesRequestOptions()\r\n };\r\n return await this.services.http.get(`${this._apiOrigin}/api/segments`, options);\r\n }catch (err) {\r\n this.services.logger.error(`Failed to read segments from CMS API!`, err);\r\n return {};\r\n }\r\n }\r\n\r\n async getLanguageSwitcherConfiguration(url: string): Promise {\r\n try {\r\n return await this.services.http.get(`${this._apiOrigin}/api/languageswitcher?publicationid=${this._publicationID}&url=${this._addSlashesInTheSides(url)}`);\r\n } catch (err) {\r\n this.services.logger.error(`Failed to get language switcher configuration for page ${url}`, err);\r\n return null;\r\n }\r\n }\r\n\r\n private _isRouteToHtmlFile(pathName: string): boolean {\r\n return pathName.endsWith('.htm')\r\n || pathName.endsWith('.html');\r\n }\r\n\r\n\r\n private _addSlashesInTheSides(pathName) {\r\n if(pathName && pathName[0] !== '/') {\r\n pathName = '/' + pathName;\r\n }\r\n\r\n //we append the trailing slash if the path doesn't ends with slash and also the path doesn't ends with .html or .htm\r\n //we don't append the trailing slash for paths like /path/file.htm or /path/file.html\r\n if(pathName && !this._isRouteToHtmlFile(pathName) && pathName[pathName.length - 1] !== '/') {\r\n pathName = pathName + '/';\r\n }\r\n\r\n if(pathName) {\r\n return pathName;\r\n }\r\n\r\n return '/';\r\n }\r\n\r\n}\r\n","import React from 'react';\r\nimport {OrbitComponent} from '../../base-components/orbit-component/orbit-component';\r\nimport {CmsContentDecorator} from '../../../services/cms/cms-content-decorator/cms-content-decorator';\r\nimport {observer} from 'mobx-react';\r\nimport {CmsBannerId} from '../../../services/cms/cms-banners/cm-banner-id/cms-banner-id';\r\n\r\nexport interface BannerContentComponentProps {\r\n html: string;\r\n bannerId: CmsBannerId;\r\n}\r\n\r\n@observer\r\nexport class BannerContentComponent extends OrbitComponent {\r\n\r\n componentWillUnmount() {\r\n super.componentWillUnmount();\r\n this._disposeBannerContentDecorator();\r\n }\r\n\r\n componentDidUpdate() {\r\n this._redecorateBannerContent();\r\n }\r\n\r\n private _disposeBannerContentDecorator() {\r\n if(this._bannerContentDecorator) {\r\n this._bannerContentDecorator.dispose();\r\n this._bannerContentDecorator = null;\r\n }\r\n }\r\n\r\n private _redecorateBannerContent() {\r\n this._disposeBannerContentDecorator();\r\n if(this._bannerContentElementRef) {\r\n this._bannerContentElementRef.innerHTML = this.props.html;\r\n this._bannerContentDecorator = new CmsContentDecorator(this._bannerContentElementRef, this.services);\r\n }\r\n }\r\n\r\n private _bannerContentDecorator: CmsContentDecorator | null = null;\r\n\r\n private _bannerContentElementRef: HTMLSpanElement | null = null;\r\n\r\n private _captureBannerContentElementRef = (element: HTMLSpanElement | null) => {\r\n this._bannerContentElementRef = element;\r\n this._redecorateBannerContent();\r\n };\r\n\r\n render() {\r\n return ();\r\n }\r\n}\r\n","import React from 'react';\r\nimport {BannerRenderProps, IBannerDefinition} from './banner-definition.interface';\r\nimport {BannerContentComponent} from '../../../../components/cms-banner/banner-content/banner-content.component';\r\nimport {CmsBannerId} from '../cm-banner-id/cms-banner-id';\r\n\r\n\r\nexport class BannerDefinition implements IBannerDefinition {\r\n constructor(public _html: string, private _bannerId: CmsBannerId) {\r\n }\r\n\r\n render(props: BannerRenderProps): React.ReactNode {\r\n return ();\r\n }\r\n}\r\n","import {ServiceBase} from '../../ServiceBase';\r\nimport {ICmsBannersService} from './cms-banners.service.interface';\r\nimport {action, observable} from 'mobx';\r\nimport {IBannerDefinition} from './banner-definition/banner-definition.interface';\r\nimport {IServiceFactoryExtended} from '../../service-factory-extended.interface';\r\nimport {CmsBannerId} from './cm-banner-id/cms-banner-id';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {BannerDefinition} from './banner-definition/banner-definition';\r\n\r\nimport {EmptyBannerDefinition} from './banner-definition/empty-banner-definition';\r\nimport {BannerData} from '../cms-api/cms-api.service.interface';\r\n\r\ntype ReadBannersResponse = Array<{id: CmsBannerId, definition: IBannerDefinition}>;\r\n\r\nexport class CmsBannersService extends ServiceBase implements ICmsBannersService {\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n\r\n this.reaction(\r\n () => this.services.user.isAuthorized,\r\n (isAuthorized) => {\r\n this._reloadBannersContent();\r\n }\r\n );\r\n }\r\n\r\n\r\n private _currentUsedBannersIds: {[key: string]: CmsBannerId} = {};\r\n\r\n @observable\r\n bannersMap: {[key: string]: IBannerDefinition} = {};\r\n\r\n async loadBanner(bannerId: CmsBannerId): Promise {\r\n if(!this.bannersMap[bannerId.key]) {\r\n let banners = await this._readBanners([bannerId]);\r\n this._setBanners(banners);\r\n }\r\n const hasBannerContent = Check.isObject(this.bannersMap[bannerId.key]);\r\n return hasBannerContent;\r\n }\r\n\r\n private _reloadBannersContent() {\r\n this._readBanners(Object.values(this._currentUsedBannersIds))\r\n .then(banners => {\r\n this._setBanners(banners);\r\n });\r\n }\r\n\r\n @action.bound\r\n private _setBanners(banners: ReadBannersResponse) {\r\n banners.forEach(newBanner => {\r\n this.bannersMap[newBanner.id.key] = newBanner.definition;\r\n this._currentUsedBannersIds[newBanner.id.key] = newBanner.id;\r\n });\r\n }\r\n\r\n private async _readBanners(bannersIds: CmsBannerId[]): Promise {\r\n\r\n let bannersIdsCollection = new BannersIdCollection(bannersIds);\r\n\r\n let cmsResponseData = await this.services.cmsApi.getBanners(bannersIds);\r\n //create definitions for bannersMap that we received some content\r\n let bannersWithContent = this._extractBannersWithContent(bannersIdsCollection, cmsResponseData);\r\n\r\n //for banners that we didn't receive any content try to load a default content and then merge the results\r\n let bannersIdsWithoutContent = bannersIdsCollection.exclude(bannersWithContent.map(bannerInfo => bannerInfo.id));\r\n\r\n let fallbackBanners = await this._readFallbackBanners(bannersIdsWithoutContent);\r\n\r\n return [...bannersWithContent, ...fallbackBanners];\r\n\r\n /*.catch((err) => {\r\n let msg = bannersIds.reduce((acc, curr) => acc + '\\n' + curr.toString(), '');\r\n this.services.logger.error(`Failed to load CMS banners for ${msg}`, err);\r\n return this._readFallbackBanners(bannersIds);\r\n });\r\n */\r\n }\r\n\r\n private _extractBannersWithContent(requestedBannersIdsCollection: BannersIdCollection, cmsResponseData: BannerData[]): ReadBannersResponse {\r\n if(!Check.isArray(cmsResponseData)) {\r\n return [];\r\n }\r\n\r\n return cmsResponseData\r\n .filter(bannerData => !Check.isEmpty(bannerData.Content))\r\n .map(bannerData => {\r\n let bannerId = requestedBannersIdsCollection.getOriginalBannerId(bannerData.ComponentId, bannerData.TemplateId);\r\n return {\r\n id: bannerId,\r\n definition: new BannerDefinition(bannerData.Content, bannerId)\r\n };\r\n });\r\n }\r\n\r\n private async _readFallbackBanners(bannersIds: CmsBannerId[]): Promise {\r\n if(bannersIds.length === 0) {\r\n return Promise.resolve([]);\r\n }\r\n // for bannersMap that have fallback file we try to read the default banner content and then merge with those without fallback file\r\n let bannersIdsWithFallbackFile = bannersIds.filter(id => !Check.isEmpty(id.fallbackFileName));\r\n let bannersIdsGroupedByFallbackFile = this._groupBannersIdsByFallbackFile(bannersIdsWithFallbackFile);\r\n let fileNames = Object.keys(bannersIdsGroupedByFallbackFile);\r\n\r\n\r\n let fallbackData = await this.services.cmsApi.getFallbackBanners(fileNames);\r\n\r\n let result: ReadBannersResponse = [];\r\n fileNames.forEach(file => {\r\n let bannerContent = fallbackData[file];\r\n if(bannerContent) {\r\n result = result.concat(this._createBannersDefinitionsWithContent(bannersIdsGroupedByFallbackFile[file], bannerContent));\r\n }\r\n });\r\n\r\n return result;\r\n }\r\n\r\n\r\n private _groupBannersIdsByFallbackFile(bannersIds: CmsBannerId[]): {[key: string]: CmsBannerId[]} {\r\n let result = {};\r\n bannersIds.forEach(bannerId => {\r\n if(!result[bannerId.fallbackFileName]) {\r\n result[bannerId.fallbackFileName] = [];\r\n }\r\n\r\n result[bannerId.fallbackFileName].push(bannerId);\r\n });\r\n\r\n return result;\r\n }\r\n\r\n private _createBannersDefinitionsWithContent(bannersIds: CmsBannerId[], bannerContent: string): ReadBannersResponse {\r\n return bannersIds.map(id => {\r\n let definition: IBannerDefinition;\r\n if(Check.isEmpty(bannerContent)) {\r\n definition = new EmptyBannerDefinition();\r\n } else {\r\n definition = new BannerDefinition(bannerContent, id);\r\n }\r\n\r\n return {id: id, definition: definition};\r\n });\r\n }\r\n}\r\n\r\n\r\nclass BannersIdCollection {\r\n\r\n private _originalBannersMap = {};\r\n\r\n constructor(private _originalBannersIds: CmsBannerId[]) {\r\n this._originalBannersIds.forEach(bannerId => {\r\n this._originalBannersMap[bannerId.key] = bannerId;\r\n });\r\n }\r\n\r\n getOriginalBannerId(componentId: number, templateId: number): CmsBannerId {\r\n for(let i = 0; i < this._originalBannersIds.length; i++) {\r\n let bannerId = this._originalBannersIds[i];\r\n if(bannerId.isMatch(componentId, templateId)) {\r\n return bannerId;\r\n }\r\n }\r\n \r\n throw new Error(`Cant't find original banner id for componentId=${componentId} and templateId=${templateId}`);\r\n }\r\n\r\n exclude(bannersIdsToExclude: CmsBannerId[]): CmsBannerId[] {\r\n let bannersIdsToExcludeMap = {};\r\n bannersIdsToExclude.forEach(bannerId => bannersIdsToExcludeMap[bannerId.key] = bannerId);\r\n\r\n return this._originalBannersIds.filter(bannerId => !bannersIdsToExcludeMap[bannerId.key]);\r\n }\r\n}\r\n","import {ServiceBase} from '../../ServiceBase';\r\nimport {ICmsPagesService} from './cms-pages.service.interface';\r\nimport {\r\n ICmsPageDefinition,\r\n ICmsPageDefinitionHeadTags,\r\n IInjectedHeadTag\r\n} from './page-definition/cms-page-definition.interface';\r\nimport {action, observable} from 'mobx';\r\nimport {IServiceFactoryExtended} from '../../service-factory-extended.interface';\r\nimport {CmsPageData} from '../cms-api/cms-api.service.interface';\r\nimport {Uri} from '../../location/uri/uri';\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {UriPath} from \"../../location/uri-path/uri-path\";\r\nimport {UriParams} from \"../../location/uri-params/uri-params\";\r\n\r\nexport const LOAD_CONTENT_FROM_DIV_PAGE_DELAY = 250;\r\n\r\nexport class CmsPagesService extends ServiceBase implements ICmsPagesService {\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n\r\n this.reaction(\r\n () => this.services.location.currentUri,\r\n (uri) => this._loadCmsPage(uri),\r\n { fireImmediately: true }\r\n );\r\n\r\n this.reaction(\r\n () => this.services.user.isAuthorized,\r\n () => this._reloadCurrentPageContent(),\r\n { fireImmediately: true }\r\n );\r\n }\r\n\r\n private _currentUri: Uri | null = null;\r\n private _isFirstLoad = true;\r\n\r\n @observable.ref\r\n currentPage: ICmsPageDefinition | null = null;\r\n injectedPageMetaTags: IInjectedHeadTag[] = [];\r\n\r\n @action.bound\r\n private _setCurrentPage(pageDefinition: ICmsPageDefinition | null) {\r\n this.currentPage = pageDefinition;\r\n }\r\n\r\n private setCurrentPageMetaTags(headerTags: ICmsPageDefinitionHeadTags[]){\r\n\r\n const prepareElementSelector = (elementType:string, attributes = {}) => {\r\n const attributesQuery = Object.keys(attributes).reduce((query, attributeName) => {\r\n if(!Check.isString(attributes[attributeName]) || attributeName === 'tag')\r\n return query;\r\n\r\n return query + `[${attributeName}=\"${attributes[attributeName]}\"]`;\r\n }, '');\r\n\r\n return elementType + attributesQuery;\r\n }\r\n\r\n const setElementAttributes = (element, attributes = {}) => {\r\n Object.keys(attributes).forEach(attributeName => {\r\n if(attributeName !== 'tag')\r\n element.setAttribute(attributeName, attributes[attributeName]);\r\n });\r\n }\r\n\r\n const addMetaTags = (headerTags: ICmsPageDefinitionHeadTags[]) => {\r\n headerTags.forEach(headerTag => {\r\n const {tag, content, href, ...rest} = headerTag;\r\n\r\n if(tag){\r\n let metaTag = this.services.dom.querySelector(prepareElementSelector(tag, rest)) as HTMLElement;\r\n const injectedPageMetaTagPreviousElement = metaTag;\r\n\r\n if(!metaTag){\r\n metaTag = this.services.dom.createElement(tag);\r\n this.services.dom.head.appendChild(metaTag);\r\n }\r\n\r\n this.injectedPageMetaTags.push({element: metaTag, previous: injectedPageMetaTagPreviousElement ? (injectedPageMetaTagPreviousElement.cloneNode() as HTMLElement) : undefined});\r\n setElementAttributes(metaTag, headerTag);\r\n }\r\n })\r\n }\r\n\r\n const removeMetaTags = (injectedMetaTags: IInjectedHeadTag[]) => {\r\n (injectedMetaTags || []).forEach(({element, previous}) => {\r\n if(previous){\r\n element.parentNode?.replaceChild(previous, element);\r\n }else{\r\n element.remove();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * To have more meta tags allowed to be injected from pageContent, add an other Regex here\r\n */\r\n const allowedTags = '(link.*(?:\\\\[rel=\"canonical\"]))|' +\r\n '(meta.*(?:\\\\[property=\"og:updated_time\"]))|' +\r\n '(meta.*(?:\\\\[property=\"og:description\"]))|' +\r\n '(meta.*(?:\\\\[property=\"og:url\"]))|' +\r\n '(meta.*(?:\\\\[name=\"og:title\"]))|' +\r\n '(meta.*(?:\\\\[name=\"description\"]))'\r\n ;\r\n\r\n const metaTags = (headerTags || []).filter(({tag,content, ...rest}) => {\r\n const testIfTagAllowedRegex = new RegExp(allowedTags, 'i');\r\n return testIfTagAllowedRegex.test(prepareElementSelector(tag, rest));\r\n });\r\n\r\n if(this.injectedPageMetaTags.length > 0){\r\n removeMetaTags(this.injectedPageMetaTags);\r\n this.injectedPageMetaTags = [];\r\n }\r\n\r\n addMetaTags(metaTags);\r\n }\r\n\r\n\r\n private async _reloadCurrentPageContent(): Promise {\r\n if(this.currentPage) {\r\n this._currentUri = null;\r\n try {\r\n await this._loadCmsPage(this.services.location.currentUri);\r\n } catch (err) {\r\n this.services.logger.error(`Failed to reload CMS page ${this.currentPage.url}`, err);\r\n }\r\n }\r\n }\r\n\r\n\r\n private async _loadCmsPage(uri: Uri): Promise {\r\n\r\n if(this._currentUri && this._currentUri.pathName && uri.pathName.equals(this._currentUri.pathName)) {\r\n return;\r\n }\r\n\r\n this._currentUri = uri;\r\n\r\n try {\r\n let pageElement = this.services.dom.getElementById('page');\r\n if(this._isFirstLoad && pageElement && !this.services.routing.isOrbitRoute(uri.pathName)) {\r\n\r\n if(this.services.user.isAuthorized){\r\n //In case the user is login we must call the API and not use the DOM page since b2c need to get the XX.context to return the right segments,\r\n //But we must clean the #page div content to avoid duplicate b2c content on the page\r\n pageElement.remove();\r\n await this._loadPageContentWithSpinner(uri);\r\n } else{\r\n this._loadPageContentFromDOM(pageElement, uri);\r\n }\r\n\r\n } else {\r\n await this._loadPageContentWithSpinner(uri);\r\n }\r\n } finally {\r\n this._isFirstLoad = false;\r\n }\r\n }\r\n\r\n\r\n private async _loadPageContentWithSpinner(uri: Uri): Promise {\r\n const isB2CRoute = !this.services.routing.isOrbitRoute(uri.pathName);\r\n if(isB2CRoute) {\r\n this.services.spinner.startSpinner();\r\n }\r\n\r\n try {\r\n await this._loadCmsPageFromApi(uri)\r\n } finally {\r\n if(isB2CRoute) {\r\n this.services.spinner.stopSpinner();\r\n }\r\n }\r\n\r\n }\r\n\r\n private _loadPageContentFromDOM(pageElement: HTMLElement, uri: Uri): void {\r\n // we introduced this delay because if some of the scripts in the innerHTML contains a \r\n */\r\nfunction evaluateScriptsWithExternalFile(html: string) {\r\n try {\r\n const fakeDiv = document.createElement('div');\r\n fakeDiv.innerHTML = html.trim();\r\n\r\n const scriptElements = fakeDiv.getElementsByTagName('script');\r\n const elementsLength = scriptElements ? scriptElements.length : 0;\r\n\r\n for (let index = 0; index < elementsLength; index++) {\r\n const script = document.createElement(\"script\");\r\n\r\n if (scriptElements[index]['src']) {\r\n script.src = scriptElements[index]['src'];\r\n } else {\r\n //Add try catch to B2C scripts\r\n const tryStart = \"try{\";\r\n const consoleLogFunc = (isOrbitInQAMode() ? 'warn' : 'error');\r\n const tryEnd = `}catch(e){console.${consoleLogFunc}('B2C ERROR In EXTERNAL SCRIPT, ERROR MESSAGE: ', e)}`;\r\n\r\n script.innerHTML = tryStart + scriptElements[index]['innerHTML'] + tryEnd;\r\n\r\n }\r\n\r\n document.head.appendChild(script).parentNode?.removeChild(script);\r\n }\r\n } catch (err) {\r\n if(!isInsideAutomation()) {\r\n console.log('Error in evaluateScriptsWithExternalFile function, err message:', err);\r\n }\r\n\r\n }\r\n}\r\n","import {IServiceFactory} from '../../service-factory.interface';\r\nimport {CmsLink} from './cms-link';\r\nimport {Check} from '@sparkware/app-utils';\r\nimport {evaluateScripts} from \"./evaluate-scripts\";\r\n\r\nexport class CmsContentDecorator {\r\n constructor(private _element: HTMLElement, private services: IServiceFactory ) {\r\n this._evaluateScripts();\r\n this._loadCmsLinks();\r\n }\r\n\r\n private _cmsLinks: CmsLink[] = [];\r\n\r\n\r\n dispose() {\r\n this._cmsLinks.forEach(a => a.dispose());\r\n }\r\n\r\n\r\n private _evaluateScripts() {\r\n evaluateScripts(this._element.innerHTML);\r\n }\r\n\r\n\r\n private _loadCmsLinks() {\r\n let linkTags = this._element.getElementsByTagName('a');\r\n for(let i = 0; i < linkTags.length; i++) {\r\n let currentLink = linkTags[i] as HTMLAnchorElement;\r\n if (Check.isEmpty(currentLink.href) || currentLink.target === '_blank') {\r\n continue;\r\n }\r\n\r\n let anchorUri = this.services.location.tryParseUrl(currentLink.href);\r\n if(!anchorUri) {\r\n continue;\r\n }\r\n\r\n if(anchorUri.origin === this.services.location.currentUri.origin) {\r\n this._cmsLinks.push(new CmsLink(currentLink, this._element, this.services));\r\n }\r\n\r\n }\r\n }\r\n\r\n scrollIntoView(childElementSelector: string): void {\r\n try {\r\n let el = this._element.querySelector(childElementSelector);\r\n if(el) {\r\n el.scrollIntoView();\r\n }\r\n } catch (err) {\r\n this.services.logger.error(`Failed to scroll into view element with id ${childElementSelector}`, err);\r\n }\r\n\r\n }\r\n}\r\n","import styled from \"styled-components\";\r\nimport {WIDE_GRID} from \"../../themes/css-global-classes\";\r\n\r\n\r\nexport const LobbyGridDefaultBox = styled.div`\r\n overflow: hidden;\r\n &.${WIDE_GRID} {\r\n max-width: 100%;\r\n }\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: 70%;\r\n float: left;\r\n\r\n @media ${({theme}) => theme.mediaQuery.lAndBelow} {\r\n width: 100%;\r\n max-width: 100%;\r\n float: none;\r\n }\r\n`;","import styled from \"styled-components\";\r\nimport {LobbyGridDefaultBox} from \"./lobby-grid.default.box\";\r\n\r\nexport const LobbyGridCasino777Box = styled(LobbyGridDefaultBox)`\r\n max-width: 100%;\r\n float: none;\r\n`;","import {LobbyGridDefaultBox} from \"./lobby-grid.default.box\";\r\nimport {styledByTheme} from \"../../themes/architecture/styled-by-theme\";\r\nimport {LobbyGridCasino777Box} from \"./lobby-grid.casino777.box\";\r\n\r\nexport const LobbyGridBox = styledByTheme(LobbyGridDefaultBox).forCasino777(LobbyGridCasino777Box).apply();","import styled, {keyframes} from \"styled-components\";\r\n\r\nconst Load = keyframes`\r\n 0%,\r\n 80%,\r\n 100% {\r\n box-shadow: 0 1.5em 0 -1.3em;\r\n }\r\n 40% {\r\n box-shadow: 0 1.5em 0 0;\r\n }\r\n`;\r\n\r\nexport const LoadingDotBox = styled.div<{animationDelay: string}>`\r\n border-radius: 50%;\r\n width: 1.6rem;\r\n height: 1.5rem;\r\n margin-left: 25px;\r\n animation: ${Load} 1.7s infinite ease-in-out;\r\n animation-delay: ${props => props.animationDelay};\r\n`","import styled from \"styled-components\";\r\n\r\n\r\nexport const LoadingDotsBox = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: center;\r\n align-items: center;\r\n align-content: center;\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 {LoadingDotBox} from \"./boxes/loading-dot.box\";\r\nimport {LoadingDotsBox} from \"./boxes/loading-dots.box\";\r\n\r\n@observer\r\nexport class LoadingDotsComponent extends OrbitComponent {\r\n render() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n}","import {LiveCasinoGridItemDefaultBox} from \"./live-casino-grid-item.default.box\";\r\n\r\nexport const LiveCasinoGridItemBox = LiveCasinoGridItemDefaultBox;","import styled, {css} from \"styled-components\";\r\n\r\ninterface ILiveCasinoGridItemDefaultBoxProps {\r\n fluidWidth?: boolean; // when true, don't set the width, let it flow within its parent\r\n}\r\n\r\nexport const LiveCasinoGridItemDefaultBox = styled.div`\r\n box-sizing: border-box;\r\n\r\n /* Prevents CSS Transform flicker */\r\n backface-visibility: hidden;\r\n\r\n ${({fluidWidth}) => !fluidWidth && css`\r\n\r\n width: calc(100% / 5);\r\n padding: 1em 0.5em;\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndAbove} {\r\n width: calc(100% / 3);\r\n }\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove} {\r\n width: calc(100% / 4);\r\n }\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n width: calc(100% / 2);\r\n padding: 0.5em 0.25em;\r\n }\r\n `}\r\n`;","import {ClockComponentDefaultBox} from \"./clock.component.default.box\";\r\n\r\nexport const ClockComponentBox = ClockComponentDefaultBox;","import styled from \"styled-components\";\r\n\r\nexport const ClockComponentDefaultBox = styled.div`\r\n color: ${props => props.theme.colors.textMiddleDark};\r\n font-family: ${props => props.theme.font.family.body};\r\n font-size: 1em;\r\n line-height: 1;\r\n`;","import {LiveCasinoGridItemInfobarIconDefaultBox} from \"./live-casino-grid-item-infobar-icon.default.box\";\r\n\r\nexport const LiveCasinoGridItemInfobarIconBox = LiveCasinoGridItemInfobarIconDefaultBox;","import styled from \"styled-components\";\r\nimport { Image } from \"../../../../../../raw-components/image/image\";\r\n\r\nexport const LiveCasinoGridItemInfobarIconDefaultBox = styled(Image)`\r\n margin-right: 0.25em;\r\n`;","import {LiveCasinoGridItemInfoItemDefaultBox} from \"./live-casino-grid-item-info-item.default.box\";\r\n\r\nexport const LiveCasinoGridItemInfoItemBox = LiveCasinoGridItemInfoItemDefaultBox;","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 {LiveCasinoGridItemThumbnailImageDefaultBox} from \"./live-casino-grid-item-thumbnail-image.default.box\";\r\n\r\nexport const LiveCasinoGridItemThumbnailImageBox = LiveCasinoGridItemThumbnailImageDefaultBox;","import styled from \"styled-components\";\r\nimport {ITEM_WRAPPER_BOX} from \"../../css-constants\";\r\nimport { Image } from \"../../../../../raw-components/image/image\";\r\n\r\nexport const LiveCasinoGridItemThumbnailImageDefaultBox = styled(Image)<{filterBlur?: boolean}>`\r\n width: 100%;\r\n transition: transform 0.25s ease;\r\n ${({filterBlur}) => filterBlur ? 'filter: blur(2px)' : null};\r\n .${ITEM_WRAPPER_BOX}:hover &{\r\n transform: scale(1.2);\r\n }\r\n`;","const PRIORITY_LEVEL = {\r\n BASE: 'base',\r\n POP_UP: 'popup',\r\n OPEN_SESSION: 'open-session',\r\n FP: 'fp',\r\n OMG_BEHIND: 'omg-behind',\r\n GAME_FRAME: 'game-frame',\r\n NEXT_GAME: 'next-game',\r\n GAME_LOADING_INDICATOR: 'game-loading-indicator',\r\n GAME_FRAME_LOADER: 'game-frame-loader',\r\n GAME_FRAME_FP: 'game-frame-fp',\r\n MINI_CASHIER: 'mini-cashier',\r\n CASHIER: 'cashier',\r\n LOGIN: 'login',\r\n EXTERNAL_LINK: 'external-link',\r\n INTERNAL_OVER_EXTERNAL_LINK: 'internal-over-external-link',\r\n OMG: 'omg',\r\n GEO_FREEZE_WINDOW: 'geo-freeze-window',\r\n TEMP_ACCOUNT: 'temp-account',\r\n MEMBERSHIP: 'membership',\r\n MESSAGE: 'message',\r\n SECONDARY_MESSAGE: 'secondary-message',\r\n TOUCH_ID: 'touch-id',\r\n TOUCH_ID_POPUP: 'touch-id-popup',\r\n LOCK: 'lock',\r\n SPAIN_SUMMARY_MESSAGE: 'spain-summary-message',\r\n GAMES_QUESTIONNAIRE: 'games-questionnaire'\r\n // MEMBERSHIP: 'membership'\r\n};\r\n\r\n\r\nconst PRIORITY_LEVEL_ZINDEX_MAPPER = {\r\n [PRIORITY_LEVEL.BASE]: 8000,\r\n [PRIORITY_LEVEL.POP_UP]: 8010,\r\n [PRIORITY_LEVEL.OPEN_SESSION]: 8020,\r\n [PRIORITY_LEVEL.FP]: 8030,\r\n [PRIORITY_LEVEL.OMG_BEHIND]: 8035,\r\n [PRIORITY_LEVEL.GAME_LOADING_INDICATOR]: 8037,\r\n [PRIORITY_LEVEL.NEXT_GAME]: 8038,\r\n [PRIORITY_LEVEL.GAME_FRAME]: 8040,\r\n [PRIORITY_LEVEL.GAME_FRAME_FP]: 8041,\r\n [PRIORITY_LEVEL.GAME_FRAME_LOADER]: 8042,\r\n [PRIORITY_LEVEL.MINI_CASHIER]: 8045,\r\n [PRIORITY_LEVEL.LOGIN]: 8050,\r\n [PRIORITY_LEVEL.SPAIN_SUMMARY_MESSAGE]: 8055,\r\n [PRIORITY_LEVEL.EXTERNAL_LINK]: 8060,\r\n [PRIORITY_LEVEL.INTERNAL_OVER_EXTERNAL_LINK]: 8061,\r\n [PRIORITY_LEVEL.OMG]: 8070,\r\n [PRIORITY_LEVEL.CASHIER]: 8072,\r\n [PRIORITY_LEVEL.GAMES_QUESTIONNAIRE]: 8073,\r\n [PRIORITY_LEVEL.GEO_FREEZE_WINDOW]: 8074,\r\n [PRIORITY_LEVEL.TEMP_ACCOUNT]: 8075,\r\n [PRIORITY_LEVEL.MEMBERSHIP]: 8078,\r\n [PRIORITY_LEVEL.MESSAGE]: 8080,\r\n [PRIORITY_LEVEL.SECONDARY_MESSAGE]: 8082,\r\n [PRIORITY_LEVEL.TOUCH_ID]: 8090,\r\n [PRIORITY_LEVEL.TOUCH_ID_POPUP]: 9002,\r\n}\r\n\r\nconst WRAPPER_DEFAULT_INDEX = 7999;\r\n\r\nexport { PRIORITY_LEVEL, PRIORITY_LEVEL_ZINDEX_MAPPER, WRAPPER_DEFAULT_INDEX };\r\n","import styled, { css } from \"styled-components\";\r\nimport { IButtonCommonProps, IButtonColorSet, IButtonPreset } from \"../button-props.interface\";\r\n\r\ninterface IButtonBoxProps extends IButtonCommonProps {\r\n colorSet: IButtonColorSet;\r\n\r\n height: number;\r\n strokeWidth: number;\r\n iconSize: number;\r\n lateralPadding: number;\r\n\r\n hasLabel: boolean;\r\n hasIcon: boolean;\r\n}\r\nexport const ButtonBox = styled.button`\r\n cursor: ${props => props.disabled ? \"default\" : \"pointer\"};\r\n user-select: none;\r\n\r\n border-radius: ${props => props.rounded ? \"100px\" : props.theme.layout.border.radius};\r\n ${props => props.margin ? css`\r\n margin: ${props.margin};\r\n ` : null};\r\n\r\n /* Override user-agent styles */\r\n background: none;\r\n outline: none;\r\n\r\n font-family: ${props => props.theme.font.family.ultra};\r\n /**\r\n * This is not the actual text size.\r\n * The text size is set in the span wrapping the text, here i'm just creating a context for the em units to compute relative to this\r\n */\r\n font-size: ${props => props.fixedSize ? \"10px\" : \"1rem\"};\r\n /**\r\n * If we have only an icon and no label, we want a square (or circle) button\r\n * that means the width = height =>\r\n * border x 2 + lateral-padding x 2 + icon_size = height =>\r\n * lateral_padding = (height - icon_size - 2 x border)/2 =>\r\n * lateral_padding = (height - icon_size)/2 - border\r\n *\r\n * If we have label (with or without icon), don't bother, put 1em or whatever value decided by design (hardcoded or from the theme)\r\n */\r\n padding: 0 ${props => {\r\n if (props.hasIcon && !props.hasLabel) {\r\n return \"calc(\"+((props.height - props.iconSize)/2)+\"em - \"+props.strokeWidth+\"px)\";\r\n } else {\r\n return props.lateralPadding + \"em\";\r\n }\r\n }};\r\n line-height: 0.8;\r\n letter-spacing: 0.05em;\r\n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n /** content-box because the border is in px. So when computing heights, paddings etc in em border is not taken in consideration */\r\n /* box-sizing: content-box;\r\n height: calc(${props => props.height }em - 2*${props => props.strokeWidth }px); */\r\n /** OOORRR */\r\n box-sizing: border-box;\r\n height: ${props => props.height}em;\r\n\r\n width: ${props => props.fullWidth ? \"100%\" : \"auto\"};\r\n transition: all 0.2s ease-in-out;\r\n\r\n border-width: ${props => props.strokeWidth}px;\r\n border-style: solid;\r\n\r\n color: ${props => colorSet(props, props.active ? \"hover\" : \"normal\").text};\r\n background-color: ${props => colorSet(props, props.active ? \"hover\" : \"normal\").bg};\r\n border-color: ${props => colorSet(props, props.active ? \"hover\" : \"normal\").border};\r\n box-shadow: ${props => (props.elevated && colorSet(props, props.active ? \"hover\" : \"normal\").shadow) ? colorSet(props, props.active ? \"hover\" : \"normal\").shadow : \"none\"};\r\n\r\n /* Putting the &:hover rules inside the hover media queries prevents the button to remain in hover state after pressing it.\r\n We wouldn't need this is the pressed/active state would be different from the hover state */\r\n @media ${({theme}) => theme.mediaQuery.hover } {\r\n &:hover {\r\n color: ${props => colorSet(props, \"hover\").text};\r\n background-color: ${props => colorSet(props, \"hover\").bg};\r\n border-color: ${props => colorSet(props, \"hover\").border};\r\n box-shadow: ${props => (props.elevated && colorSet(props, \"hover\").shadow) ? colorSet(props, \"hover\").shadow : \"none\"};\r\n }\r\n }\r\n\r\n ${props => (props.rotated45 && props.hasIcon && !props.hasLabel) ? css`\r\n transform: rotate(45deg);\r\n ` : null}\r\n`;\r\n\r\n/** Helper function because i repeated this part way too much */\r\nfunction colorSet(props: IButtonBoxProps, set: keyof IButtonPreset[\"colors\"]) {\r\n return props.colorSet[props.disabled ? \"disabled\" : set];\r\n}\r\n","import styled from \"styled-components\";\r\n\r\ninterface IButtonLabelProps {\r\n fontSize: number;\r\n lateralPadding: number;\r\n allowLabelWrap?: boolean;\r\n}\r\n\r\nexport const ButtonLabelBox = styled.span`\r\n text-transform: uppercase;\r\n padding: 1px ${({lateralPadding}) => lateralPadding}em 0px;\r\n font-size: ${({fontSize}) => fontSize}em;\r\n line-height: 1.15;\r\n max-height: 2.2em;\r\n\r\n white-space: ${({allowLabelWrap}) => allowLabelWrap ? 'unset' : 'nowrap'};\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n`;\r\n","import styled, { css } from \"styled-components\";\r\nimport { CssRule } from \"../../../../themes/architecture/css-helpers/css-rule\";\r\n\r\ninterface IButtonIconWrapperProps {\r\n rotated45?: boolean;\r\n reverseOnRTL?: boolean;\r\n}\r\n\r\nexport const ButtonIconWrapperBox = styled.span`\r\n ${props => props.rotated45 ? css`\r\n transform: rotate(-45deg);\r\n ` : null}\r\n\r\n ${props => props.reverseOnRTL ? css`\r\n ${CssRule.For.RTL.build()} &{\r\n transform: scaleX(-1);\r\n }\r\n ` : null}\r\n`;\r\n","import React from \"react\";\r\nimport { withTheme } from \"styled-components\";\r\nimport { OrbitTheme } from \"../../../themes/architecture/orbit-theme.interface\";\r\nimport { SvgSizeUnit } from \"../../icon/svg-icon/svg.icon\";\r\nimport { IButtonCommonProps, ButtonPreset, ButtonStroke, ButtonSizeVariant, IButtonIconProps } from \"./button-props.interface\";\r\nimport { ButtonBox } from \"./boxes/button.box\";\r\nimport { ButtonLabelBox } from \"./boxes/button-label.box\";\r\nimport { ButtonIconWrapperBox } from \"./boxes/button-icon-wrapper.box\";\r\n\r\ninterface IButtonProps extends IButtonCommonProps {\r\n preset: ButtonPreset;\r\n stroke?: ButtonStroke;\r\n icon?: IButtonIconProps;\r\n sizeVariant?: ButtonSizeVariant;\r\n className?: string;\r\n allowLabelWrap?: boolean;\r\n tooltip?: string;\r\n\r\n /**\r\n * theme is addded by styled-component's withTheme\r\n * children should not be here, but typescript complains otherwise, when using this component with children\r\n */\r\n theme: OrbitTheme;\r\n children?: React.ReactNode;\r\n\r\n /* button interactions */\r\n onClick?(): void;\r\n onMouseEnter?(): void;\r\n onMouseLeave?(): void;\r\n}\r\n\r\nclass $Button extends React.Component {\r\n render() {\r\n let {\r\n children, theme, preset, icon, stroke, sizeVariant, rotated45, rounded, elevated, allowLabelWrap, tooltip,\r\n onClick, onMouseEnter, onMouseLeave,\r\n ...otherProps\r\n } = this.props;\r\n let hasIcon = !!icon;\r\n let hasLabel = !!children;\r\n\r\n onClick = this.props.disabled ? undefined : onClick;\r\n onMouseEnter = this.props.disabled ? undefined : onMouseEnter;\r\n onMouseLeave = this.props.disabled ? undefined : onMouseLeave;\r\n\r\n let presetValues = theme.baseUIComponents.button.presets[preset];\r\n let themePresetDefaults = theme.baseUIComponents.button.defaults;\r\n\r\n stroke = stroke ?? presetValues.stroke ?? themePresetDefaults.stroke;\r\n rounded = rounded ?? presetValues.rounded ?? themePresetDefaults.rounded;\r\n elevated = elevated ?? presetValues.elevated ?? themePresetDefaults.elevated;\r\n sizeVariant = sizeVariant || \"regular\";\r\n\r\n let iconSize = icon && icon.size ? icon.size : \"regular\";\r\n let iconPlacement = icon && icon.placement ? icon.placement : \"left\";\r\n\r\n let strokeWidth = theme.baseUIComponents.button.strokeValues[stroke];\r\n let height = theme.baseUIComponents.button.sizeVariantValues[sizeVariant].height;\r\n let iconSizeValue = theme.baseUIComponents.button.sizeVariantValues[sizeVariant].iconSize[iconSize];\r\n let fontSize = theme.baseUIComponents.button.sizeVariantValues[sizeVariant].fontSize || presetValues.fontSize || themePresetDefaults.fontSize;\r\n let lateralPadding = sizeVariant === \"small\" ? 0.6 : 1;\r\n\r\n /**\r\n * Rotation is supported for icon only buttons. We support this for casino 777 play game button which is a diamond shaped button\r\n */\r\n rotated45 = rotated45 && hasIcon && !hasLabel;\r\n\r\n return \r\n { (icon && iconPlacement === \"left\") ? this.renderIcon(icon.Component, iconSizeValue, {rotated45, reverseOnRTL: icon.reverseOnRTL}) : null }\r\n { children ? {children} : null }\r\n { (icon && iconPlacement === \"right\") ? this.renderIcon(icon.Component, iconSizeValue, {rotated45, reverseOnRTL: icon.reverseOnRTL}) : null }\r\n \r\n }\r\n\r\n private renderIcon(IconComponent: IButtonIconProps[\"Component\"], size: number, options?: {rotated45?: boolean, reverseOnRTL?: boolean}) {\r\n return \r\n \r\n \r\n }\r\n\r\n}\r\n\r\nexport const Button = withTheme($Button);\r\n","import 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.company-model\": [\n\t\t1002,\n\t\t70\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 __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 709;\nmodule.exports = webpackAsyncContext;","export function hexToRgba(hex: string, opacity: number = 1): string {\r\n var c;\r\n if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)){\r\n c = hex.substring(1).split('');\r\n if(c.length === 3){\r\n c = [c[0], c[0], c[1], c[1], c[2], c[2]];\r\n }\r\n c = '0x'+c.join('');\r\n return 'rgba('+[(c>>16)&255, (c>>8)&255, c&255].join(',')+',' + opacity +')';\r\n }\r\n throw new Error('Bad color Hex code');\r\n}","var map = {\n\t\"./ballysdover/theme.definition\": [\n\t\t1045,\n\t\t0,\n\t\t52\n\t],\n\t\"./casino777/theme.definition\": [\n\t\t1019,\n\t\t0,\n\t\t53\n\t],\n\t\"./casino888/cip/theme.definition\": [\n\t\t1046,\n\t\t0,\n\t\t55\n\t],\n\t\"./casino888/cis/theme.definition\": [\n\t\t944,\n\t\t0,\n\t\t56\n\t],\n\t\"./casino888/theme.definition\": [\n\t\t1021,\n\t\t0,\n\t\t57\n\t],\n\t\"./delawarepark/theme.definition\": [\n\t\t1022,\n\t\t0,\n\t\t58\n\t],\n\t\"./harrahs/theme.definition\": [\n\t\t945,\n\t\t0,\n\t\t59\n\t],\n\t\"./harrington/theme.definition\": [\n\t\t1047,\n\t\t0,\n\t\t60\n\t],\n\t\"./si/theme.definition\": [\n\t\t1010,\n\t\t0,\n\t\t61\n\t],\n\t\"./wsop/cip/theme.definition\": [\n\t\t1048,\n\t\t0,\n\t\t62\n\t],\n\t\"./wsop/theme.definition\": [\n\t\t1049,\n\t\t0,\n\t\t54\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 = 715;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./ara\": [\n\t\t492,\n\t\t15\n\t],\n\t\"./ara.ts\": [\n\t\t492,\n\t\t15\n\t],\n\t\"./chi\": [\n\t\t493,\n\t\t21\n\t],\n\t\"./chi.ts\": [\n\t\t493,\n\t\t21\n\t],\n\t\"./dan\": [\n\t\t494,\n\t\t30\n\t],\n\t\"./dan.ts\": [\n\t\t494,\n\t\t30\n\t],\n\t\"./dut\": [\n\t\t495,\n\t\t31\n\t],\n\t\"./dut.ts\": [\n\t\t495,\n\t\t31\n\t],\n\t\"./eng\": [\n\t\t311\n\t],\n\t\"./eng.ts\": [\n\t\t311\n\t],\n\t\"./fin\": [\n\t\t496,\n\t\t16\n\t],\n\t\"./fin.ts\": [\n\t\t496,\n\t\t16\n\t],\n\t\"./fre\": [\n\t\t497,\n\t\t17\n\t],\n\t\"./fre.ts\": [\n\t\t497,\n\t\t17\n\t],\n\t\"./ger\": [\n\t\t498,\n\t\t18\n\t],\n\t\"./ger.ts\": [\n\t\t498,\n\t\t18\n\t],\n\t\"./gre\": [\n\t\t499,\n\t\t19\n\t],\n\t\"./gre.ts\": [\n\t\t499,\n\t\t19\n\t],\n\t\"./ita\": [\n\t\t500,\n\t\t20\n\t],\n\t\"./ita.ts\": [\n\t\t500,\n\t\t20\n\t],\n\t\"./jpn\": [\n\t\t501,\n\t\t22\n\t],\n\t\"./jpn.ts\": [\n\t\t501,\n\t\t22\n\t],\n\t\"./nor\": [\n\t\t502,\n\t\t23\n\t],\n\t\"./nor.ts\": [\n\t\t502,\n\t\t23\n\t],\n\t\"./por\": [\n\t\t503,\n\t\t24\n\t],\n\t\"./por.ts\": [\n\t\t503,\n\t\t24\n\t],\n\t\"./rum\": [\n\t\t504,\n\t\t25\n\t],\n\t\"./rum.ts\": [\n\t\t504,\n\t\t25\n\t],\n\t\"./rus\": [\n\t\t505,\n\t\t26\n\t],\n\t\"./rus.ts\": [\n\t\t505,\n\t\t26\n\t],\n\t\"./spa\": [\n\t\t506,\n\t\t27\n\t],\n\t\"./spa.ts\": [\n\t\t506,\n\t\t27\n\t],\n\t\"./swe\": [\n\t\t507,\n\t\t28\n\t],\n\t\"./swe.ts\": [\n\t\t507,\n\t\t28\n\t],\n\t\"./tha\": [\n\t\t508,\n\t\t29\n\t],\n\t\"./tha.ts\": [\n\t\t508,\n\t\t29\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 = 716;\nmodule.exports = webpackAsyncContext;","export const CHANNEL_SOURCE = {\r\n casinoClient: 'CASINO_CLIENT',\r\n partyJackpotToaster: 'PARTY_JACKPOT_TOASTER',\r\n omg: 'OMG',\r\n myAccount: 'MY_ACCOUNT',\r\n registration: 'REGISTRATION'\r\n}\r\n\r\nexport const CHANNEL_ELEMENTS = {\r\n depositButton: 'deposit_button',\r\n withdrawButton: 'withdraw_button',\r\n retryButton: 'retry_button',\r\n plusButton: 'plus_button',\r\n urlParam: 'url_param',\r\n deepLink: 'deep_link',\r\n floatingIcon: 'floating_icon'\r\n}\r\n\r\nexport const DISPLAY_MESSAGE_IDS = {\r\n sofRequired: 100,\r\n retryCloseDrawerMessage: 101,\r\n psRedirectFocusDialog: 102,\r\n timeSpentReminder: 104 // BI said it should be 104\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 CANADA_ONTARIO: 21,\r\n NETHERLANDS: 22,\r\n MICHIGAN: 23, //TODO - set the correct value\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.CANADA_ONTARIO]: 'Ontario',\r\n [REGULATION_CODE_TYPES.NETHERLANDS]: 'Netherlands'\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};\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};\r\n\r\n\r\nexport {REGULATION_CODE_TYPES, REGULATION_NAMES, REGULATION_SUFFIX, TEMP_ACCOUNT_STATUS, BRANDS};\r\n","export enum ThemeName {\r\n Casino888 = \"casino888\",\r\n Casino888Cip = \"casino888/cip\",\r\n Casino888Cis = \"casino888/cis\",\r\n Casino777 = \"casino777\",\r\n Harrahs = \"harrahs\",\r\n Wsop = \"wsop\",\r\n WsopCip = \"wsop/cip\",\r\n BallysDover = \"ballysdover\",\r\n Delawarepark = \"delawarepark\",\r\n Harrington = \"harrington\",\r\n SI = \"si\" //sports illustrator\r\n}\r\n","import styled, { css } from \"styled-components\";\r\n\r\ntype FlexAlignItemsProp = \"flex-start\" | \"flex-end\" | \"stretch\" | \"center\" | \"baseline\";\r\ntype FlexJustifyContentProp = \"flex-start\" | \"flex-end\" | \"center\" | \"space-between\" | \"space-around\" | \"space-evenly\";\r\n\r\n/* styled components css interpolations */\r\n\r\nexport const flexRowContainerMixin = css`\r\n display: flex;\r\n flex-direction: row;\r\n`;\r\nexport const flexRowReverseContainerMixin = css`\r\n display: flex;\r\n flex-direction: row-reverse;\r\n`;\r\nexport const flexColumnContainerMixin = css`\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nexport const flexAlignItemsMixin = (props: {alignItems?: FlexAlignItemsProp;}) => css`\r\n align-items: ${props.alignItems || \"unset\"};\r\n`;\r\nexport const flexJustifyContentMixin = (props: {justifyContent?: FlexJustifyContentProp;}) => css`\r\n justify-content: ${props.justifyContent || \"unset\"};\r\n`;\r\nexport const flexCenterAlignItemsMixin = css`\r\n ${flexAlignItemsMixin({alignItems: \"center\"})}\r\n`;\r\n\r\nexport const flexGrowItem = (props: {flexBasis?: string;}) => css`\r\n flex: 1 0 ${props.flexBasis || \"auto\"};\r\n`;\r\nexport const flexFixedSizeItem = css`\r\n flex: 0 0 auto;\r\n`;\r\nexport const flexAdaptiveSizeItem = css`\r\n flex: 1 1 auto;\r\n`;\r\n\r\n/* styled based components, to be used as is or as Base to be extended */\r\n\r\nexport const FlexGrowItemBox = styled.div`\r\n ${flexGrowItem}\r\n`;\r\n\r\nexport const FlexContainerBox = styled.div<{\r\n alignItems?: FlexAlignItemsProp;\r\n justifyContent?: FlexJustifyContentProp;\r\n}>`\r\n ${flexRowContainerMixin}\r\n ${flexAlignItemsMixin}\r\n ${flexJustifyContentMixin}\r\n`;\r\n","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"],"sourceRoot":""}