{"version":3,"sources":["app-react/services/arenas/arena-consts.ts","common/const/jackpot_map_ids.ts","app-react/themes/architecture/theme-names.ts","app-react/components/base-components/orbit-suspense/orbit-suspense.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/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","app-react/services/video-live-stream/video-live-stream.service.ts","app-react/components/sdk/sdk.component.tsx","app-react/services/gaming-history/gaming-history-type.ts","app-react/components/balance-box/balance-value.component.tsx","app-react/themes/architecture/by-theme-registry.ts","app-react/themes/architecture/styled-by-theme.tsx","app-react/components/top-image/boxes/top-banner/top-banner.default.box.ts","app-react/components/top-image/boxes/top-banner/top-banner-777.box.ts","app-react/components/top-image/boxes/top-banner/top-banner.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/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/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/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","common/utils/image-preload.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/themes/definitions/wsop/wsop-colors.ts","settings/configuration/languages/eng.ts","app-react/themes/architecture/styled-by-device.tsx","app-react/services/ServiceBase.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/qa-environment-pop-up-blocker/qa-environment-pop-up-blocker.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/themes/architecture/css-helpers/flex.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/game-jackpot/game-jackpot.component.tsx","app-react/components/lobby-game-info-preview/common/game-info-container/jackpot/boxes/game-jackpot-preview/game-jackpot-preview.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/jackpot/boxes/game-jackpot-preview/game-jackpot-preview.default.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/jackpot/boxes/jackpot-amount-preview/jackpot-amount-preview.default.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/jackpot/boxes/jackpot-amount-preview/jackpot-amount-preview.casino777.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/jackpot/boxes/jackpot-amount-preview/jackpot-amount-preview.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/jackpot/game-jackpot-preview.component.tsx","app-react/components/lobby-game-info-preview/common/game-info-container/game-preview-info-container.default.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/game-preview-info-container.box.ts","app-react/components/lobby-game-info-preview/common/game-info-container/game-preview-info-container.component.tsx","app-react/components/lobby-game-info-preview/intermediate-page/game-icon-and-play-buttons/boxes/container/container.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/game-icon-and-play-buttons/boxes/container/container.default.box.ts","app-react/basic-components/game-icon/game-icon.box.ts","app-react/basic-components/game-icon/game-icon.default.box.ts","app-react/basic-components/play-buttons/play-buttons.box.ts","app-react/basic-components/play-buttons/play-buttons.default.box.ts","app-react/basic-components/game-icon-wrapper/game-icon-wrapper.box.ts","app-react/basic-components/game-icon-wrapper/game-icon-wrapper.default.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/game-icon-and-play-buttons/game-icon-and-play-buttons.component.tsx","app-react/components/lobby-game-info-preview/intermediate-page/boxes/intermediate-page/intermediate-page.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/boxes/intermediate-page/intermediate-page.default.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/boxes/stripe-image-and-buttons/stripe-image-and-buttons.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/boxes/stripe-image-and-buttons/stripe-image-and-buttons.default.box.ts","app-react/components/lobby-game-info-preview/intermediate-page/boxes/gradient/gradient.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/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/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.service.ts","app-react/app-bootstrap/constants.ts","app-react/services/games-filter/filters/other.filter.ts","app-react/services/configurations/config-data-sections/arenas.configuration.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/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.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.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/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/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.default.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-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/boxes/live-streaming-tile/live-streaming-tile.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-tile/live-streaming-tile.default.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-tile-footer/live-streaming-tile-footer.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-tile-footer/live-streaming-tile-footer.default.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-tile-game-title/live-streaming-tile-game-title.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-tile-game-title/live-streaming-tile-game-title.default.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-tile-betting-range/live-streaming-tile-betting-range.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-tile-betting-range/live-streaming-tile-betting-range.default.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-tile-footer/live-streaming-tile-footer-section.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-tile-footer/live-streaming-tile-footer-section.default.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-overlay-item/live-streaming-overlay-icon.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-overlay-item/live-streaming-overlay-icon.default.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-sound-button/live-streaming-sound-button.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-sound-button/live-streaming-sound-button.default.box.ts","app-react/components/live-streaming-tile/live-streaming-sound-button.component.tsx","app-react/components/live-streaming-tile/live-streaming-tile-video-overlay.component.tsx","app-react/components/live-streaming-tile/boxes/live-streaming-tile-overlay/live-streaming-tile-overlay.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-tile-overlay/live-streaming-tile-overlay.default.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-tile-skeleton-container/live-streaming-tile-skeleton-container.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-tile-skeleton-container/live-streaming-tile-skeleton-container.default.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-video/live-streaming-video.default.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-video/live-streaming-video.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-video-container/live-streaming-video-container.default.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-video-container/live-streaming-video-container.box.ts","app-react/components/live-streaming-tile/boxes/live-video-play-button/live-video-play-button.box.tsx","app-react/components/live-streaming-tile/boxes/live-video-play-button/live-video-play-button.default.box.ts","app-react/components/live-streaming-tile/live-streaming-video.component.tsx","app-react/components/live-streaming-tile/boxes/live-streaming-tile-retry-screen/retry-screen-icon.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-tile-retry-screen/retry-screen-icon.default.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-tile-retry-screen/retry-screen-text.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-tile-retry-screen/retry-screen-text.default.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-tile-retry-screen/retry-screen-title.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-tile-retry-screen/retry-screen-title.default.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-tile-skeleton/skeleton-animated-button.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-tile-retry-screen/live-streaming-tile-retry-screen.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-tile-retry-screen/live-streaming-tile-retry-screen.default.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-tile-skeleton/skeleton-animated-rectangle.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-tile-skeleton/live-streaming-tile-skeleton.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-tile-skeleton/live-streaming-tile-skeleton.default.box.ts","app-react/components/single-game/single-game-skeleton.component.tsx","app-react/components/live-streaming-tile/live-streaming-tile.component.tsx","app-react/components/single-game/live-streaming-template/boxes/live-streaming-item-container.box.ts","app-react/components/single-game/live-streaming-template/boxes/live-streaming-item-container.default.box.ts","app-react/components/single-game/live-streaming-template/single-game-live-streaming-template.component.tsx","app-react/components/single-game/single-game.component.tsx","app-react/components/single-game-placeholder/boxes/placeholder/game-placeholder.default.box.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/user-game-orientation/user-game-orientation.service.interface.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/components/live-casino-video/live-casino-video.component.tsx","app-react/components/live-streaming-tile/boxes/live-streaming-list-title/live-streaming-list-title.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-list-title/live-streaming-list-title.default.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-title-icon/live-streaming-title-icon.box.ts","app-react/components/live-streaming-tile/boxes/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/boxes/live-streaming-navigation/live-streaming-navigation.default.box.ts","app-react/components/live-streaming-tile/boxes/live-streaming-navigation/live-streaming-navigation.box.ts","app-react/services/arenas/models/lists/live-casino-video/live-casino-video-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/services/arenas/models/lists/list-factory.ts","app-react/services/arenas/models/arenas/arena-base.model.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/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.default.box.ts","app-react/components/home-page-header-arenas/boxes/home-page-header-arena-title/home-page-header-arena-title.box.ts","app-react/components/home-page-header-arenas/boxes/home-page-header-arena-badge/home-page-header-arena-badge.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/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.doverdowns.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-action-factory/deep-link-actions-factory.service.ts","app-react/services/sdk-component-factory/sdk-component-factory.service.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/safezone/safezone.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/casinofied/message-broker/message-broker.consts.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.box.ts","app-react/components/modal-dialog/boxes/consumer-content/dialog-consumer-content.default.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-content.default.box.ts","app-react/components/modal-dialog/boxes/overlay-content/dialog-overlay-content.box.ts","app-react/components/modal-dialog/modal-dialog.component.tsx","app-react/services/dialog/dialog.service.tsx","app-react/services/header/header.service.ts","app-react/services/main-screen/main-screen.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/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/freeplay-vouchers/freeplay-vouchers-service-consts.ts","app-react/services/freeplay-vouchers/freeplay-vouchers.service.tsx","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","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/analytics/analytics-data-layer.service.interface.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.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/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/time-spent-reminder.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/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/boxes/time-spent-reminder/time-spent-reminder.box.ts","app-react/components/time-spent-reminder/boxes/option-selector/option-selector.box.ts","app-react/components/time-spent-reminder/boxes/main-text/main-text.box.ts","app-react/components/time-spent-reminder/boxes/selector-container/selector-container.box.ts","app-react/components/state-popup/boxes/state-popup-wrapper.box.ts","app-react/components/state-popup/boxes/state-popup-icon.box.ts","app-react/components/state-popup/boxes/state-popup-text.box.ts","app-react/components/state-popup/boxes/state-popup-bottom-link.box.ts","app-react/components/state-popup/state-popup.component.tsx","app-react/services/orbit-component-to-sdk-adapter/orbit-component-to-sdk-adapter.service.tsx","app-react/services/omg-proxy/omg-proxy.service.ts","app-react/services/casinofied/message-broker/message-broker.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/boxes/payment-redirect-button-container/payment-redirect-button-container.box.ts","app-react/components/payments-redirect-focus/payments-redirect-focus.component.tsx","app-react/services/casinofied/app-launcher/apps/adapters/payments-redirect-zoid-adapter.ts","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/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/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/boxes/source-of-funds-open-chat-btn.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/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/services/player-offerings/player-offerings.service.ts","app-react/services/pixi-app/pixi-app-creator.ts","app-react/services/pixi-app/pixi-app.service.ts","app-react/services/game-animated-icons-manager/game-animated-icons-manager.service.interface.ts","app-react/services/game-animated-icons-manager/game-animated-icons-manager.service.ts","app-react/components/profile-box-messages-indicator/consts/indicator-layout.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.default.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/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.doverdowns.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.doverdowns.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.delawareparkdoverdowns.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/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/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/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/drawer-boxes/drawer-box/drawer-box.component.tsx","app-react/components/drawer-boxes/drawer-boxes.component.tsx","app-react/components/user-menu/mini-safezone/boxes/mini-safezone.default.box.tsx","app-react/components/user-menu/mini-safezone/boxes/mini-safezone.box.ts","app-react/components/user-menu/mini-safezone/mini-safezone.component.tsx","app-react/components/user-menu/user-menu/boxes/user-menu-scroll-wrapper.box.ts","app-react/components/user-menu/user-menu/boxes/user-menu-fake-ios-padding.box.ts","app-react/components/user-menu/user-menu/user-menu-mobile.component.tsx","app-react/components/welcome-user/boxes/welcome-user.box.ts","app-react/components/welcome-user/boxes/welcome-greeting.box.ts","app-react/components/welcome-user/boxes/welcome-user-info.box.ts","app-react/components/welcome-user/welcome-user.component.tsx","app-react/components/user-menu/close-button/boxes/user-menu-close-pc-button.box.ts","app-react/components/user-menu/close-button/boxes/user-menu-close-icon.box.tsx","app-react/components/user-menu/user-menu/boxes/user-menu-header.box.ts","app-react/components/user-menu/user-menu/user-menu-pc.component.tsx","app-react/components/user-menu/user-menu.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/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/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.doverdowns.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/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.doverdowns.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.doverdowns.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.casino777.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-content.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.777.ts","app-react/components/tooltip/boxes/tooltip-container/tooltip-container.box.ts","app-react/components/tooltip/tooltip-container.component.tsx","app-react/components/app/app.component.tsx","app-react/services/storage/in-memory-local-storage.service.ts","app-react/app-bootstrap/b2c-framework-loader/b2c-framework-loader.ts","settings/configuration/config.ts","app-react/themes/select-theme.ts","main.ts","app-react/basic-components/main-screen/boxes/main-screen.default.box.ts","app-react/basic-components/main-screen/boxes/main-screen.casino888.box.ts","app-react/basic-components/main-screen/boxes/main-screen.harrahs.box.ts","app-react/basic-components/main-screen/boxes/main-screen.wsop.box.ts","app-react/basic-components/main-screen/boxes/main-screen.cip.box.ts","app-react/basic-components/main-screen/boxes/main-screen.box.ts","app-react/basic-components/main-screen/main-screen.component.tsx","app-react/components/arena-host/seo-bread-crumbs/seo-breadcrumbs-container.box.ts","app-react/components/arena-host/seo-bread-crumbs/seo-bread-crumbs.component.tsx","app-react/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/casino888-cis-colors.ts","common/cy-classes.ts","app-react/components/sticky-handler/sticky-handler.ts","common/const/service-worker-constants.ts","common/utils/cashier-util.ts","app-react/components/user-menu/freeplay-details/freeplay-details.component.tsx","app-react/themes/definitions/casino888/casino888-colors.ts","app-react/themes/definitions/harrahs/harrahs-colors.ts","app-react/themes/architecture/asset.ts","app-react/themes/architecture/css-helpers/css-rule.ts","app-react/basic-ui-components/icon/svg-icon/svg.icon.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.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/thumbnail/live-casino-grid-item-thumbnail-image.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/thumbnail/live-casino-grid-item-thumbnail-image.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/title/live-casino-grid-item-title.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/title/live-casino-grid-item-title.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/title/live-casino-grid-item-title.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/bet-behind/live-casino-grid-item-bet-behind-button.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/bet-behind/live-casino-grid-item-bet-behind-button.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/bet-behind/live-casino-grid-item-bet-behind-button.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/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/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/filters-games-mobile-popup.default.box.ts","app-react/components/filters/filters-games-list-mobile/boxes/popup/menu/filters-mobile-buttons.box.ts","app-react/components/filters/filters-games-list-mobile/boxes/popup/menu/filters-mobile-buttons.default.box.ts","app-react/components/filters/filters-games-list-mobile/filters-games-list-mobile.component.tsx","app-react/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-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/css-constants.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/clock/boxes/clock.component.box.tsx","app-react/components/clock/boxes/clock.component.default.box.tsx","app-react/components/clock/clock.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/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/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.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/burnout/burnout-animation/burnout-animation-constants.ts","app-react/components/burnout/burnout-animation/boxes/burnout-animation-container.box.ts","app-react/components/burnout/burnout-animation/boxes/burnout-animation.box.ts","app-react/components/burnout/burnout-animation/boxes/burnout-animation-text.box.ts","app-react/components/burnout/burnout-animation/burnout-animation.component.tsx","app-react/components/burnout/burnout-animation/boxes/burnout-fab.box.tsx","app-react/components/burnout/burnout-animation/burnout-animation-wrapper.component.tsx","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/grid/live-casino-grid.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/grid/live-casino-grid.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/grid/live-casino-grid.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/grid/skeleton/live-casino-grid-item-skeleton.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/grid/skeleton/live-casino-grid-item-skeleton-title.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/grid/skeleton/live-casino-grid-item-skeleton-wrapper.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/live-casino-arena-grid.component.tsx","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/draws/live-casino-grid-item-draws.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/draws/live-casino-grid-item-draws.defatult.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/draws/live-casino-grid-item-draw.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/draws/live-casino-grid-item-draw.casino777.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/draws/live-casino-grid-item-draw.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/shared-components/roulette-draws.component.tsx","app-react/components/useful-links/boxes/useful-links-list/useful-links-list.default.box.ts","app-react/components/useful-links/boxes/useful-links-list/useful-links-list.cip.box.ts","app-react/components/useful-links/boxes/useful-links-list/useful-links-list.box.ts","app-react/components/useful-links/parts/useful-links-list/useful-links-list.component.tsx","app-react/components/cms-banner/empty-banner/empty-banner-container.box.ts","app-react/components/cms-banner/empty-banner/empty-banner.component.tsx","app-react/services/cms/cms-banners/banner-definition/empty-banner-definition.tsx","app-react/services/media-query/breakpoints.ts","app-react/services/media-query/media-query-builder.ts","app-react/services/media-query/media-queries.ts","app-react/services/cms/cms-content-decorator/cms-link.ts","app-react/services/cms/cms-content-decorator/evaluate-scripts.ts","app-react/services/cms/cms-content-decorator/cms-content-decorator.ts","app-react/basic-components/lobby-wrapper/lobby-wrapper.default.box.ts","app-react/basic-components/lobby-wrapper/lobby-wrapper.casino777.box.ts","app-react/basic-components/lobby-wrapper/lobby-wrapper.box.ts","app-react/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/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/grid-item/live-casino-grid-item.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/grid-item/live-casino-grid-item.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/infobar-icon/live-casino-grid-item-infobar-icon.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/infobar/infobar-icon/live-casino-grid-item-infobar-icon.default.box.ts","app-react/components/arena-host/new-live-casino-arena/live-casino-arena-grid/boxes/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/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/themes/definitions lazy /^/.*/theme/.definition$/ groupOptions: {} namespace object","settings/configuration/languages lazy /^/.*$/ groupOptions: {} namespace object","app-react/themes/definitions/casino777/casino777-colors.ts","app-react/themes/hex-to-rgba.ts","common/const/casinofied-analytics-consts.ts","app-react/themes/assets.ts"],"names":["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","JackpotInternalId","JackpotType","JACKPOT_STATE","ThemeName","OrbitSuspense","fallback","className","this","props","children","React","PureComponent","BannerContainerBox","styled","div","LOBBY_PAGE","theme","colors","bodyBackground","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","toString","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","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_AI_SORT_GAME_LIST","FEATURE_NAME_EXIT_POPUP_SQUARE_ICON","FEATURE_NAME_BECAUSE_YOU_PLAYED_LIST","BalanceType","TEST_DATA","streamSource","watchTimeLimit","GA_LIVE_STREAM_CATEGORY","VideoLiveStreamService","observable","ref","action","bound","_init","sdk","events","onAppPaused","_setIsAppVisible","onAppResumed","videoStreamsData","isSupported","isVideoMuted","isAppVisible","user","isAuthorized","currentRegulationCode","regulation","getRegulationCode","disableForRegulationPreLogin","configuration","servicesConfigs","LiveVideoStream","Check","isNullOrUndefined","_checkIfSupported","streamData","keys","forEach","streamInfo","_setVideoStreamsData","structuredLoggingService","getLogger","addCategory","addAction","info","_setIsSupported","then","module","LiveStreamNativePlayer","LiveStreamHlsPlayer","gameType","videoReference","a","device","os","isAndroid","_setIsVideoMuted","analytics","sendAnalytics","ServiceBase","computed","DefaultBox","SdkComponent","_elementRef","_captureElementRef","element","_renderSdkComponent","_sdkComponentRenderer","sdkComponentFactory","createComponentRenderer","componentId","sdkComponentRenderer","dispose","_disposeSdkComponent","sdkProps","prevProps","prevState","snapshot","JSON","stringify","Box","box","classNames","onClick","e","_passOnClick","GamingHistoryType","BalanceValue","balance","bankroll","walletProxy","balanceType","numberIndex","search","symbolIndex","min","WrapperComponent","defaultProps","BOTH","span","ByThemeRegistry","_default","_registry","getRegistryItem","themeName","override","Casino777","Casino888","Casino888Cip","WsopCip","Casino888Cis","Harrahs","Wsop","Doverdowns","Delawarepark","Harrington","StyledByTheme","ComponentDefinition","Component","currentTheme","forwardedRef","forwardRef","styledByTheme","defaultComponent","TopBannerDefaultBox","NEW_LIVE_CASINO_PAGE","mediaQuery","mAndBelow","GAMING_HISTORY_PAGE","sAndBelow","TopBanner777tBox","lAndBelow","TopBannerBox","forCasino777","apply","TopBannerImageBox","Image","PCBox","MobileBox","TopBannerLogoImageDefaultBox","styledByDevice","TopBannerLogoImageCasino777Box","LIVE_CASINO_PAGE","TopBannerLogoImageBox","h1","font","family","medium","arenaTitle","TopBannerTitleDefaultBox","TopBannerTitleCasino777Box","bold","TopBannerTitleBox","TopBannerLiveLogoDefaultBox","TopBannerLiveLogoCasino777Box","TopBannerLiveLogoBox","TopImageComponent","title","srcLogo","isMobile","images","liveArena","casinoLiveLogoMobile","casinoLiveLogoPC","alt","translation","translate","src","image","topImageRef","_renderLogoAndTitle","LinkToOfferBoxBase","CssRule","For","mobile","build","hasCircle","brandSecondary","linkToOfferIconKeyframes","keyframes","hexToRgba","LinkToOfferIconBox","shouldAnimate","landscape","not","tablet","LinkToOfferDialogCloseBox","PcBox","xlAndBelow","LinkToOfferBannerBox","LinkToOfferComponent","state","dialogHandler","_closeDialog","close","_subscribe","offers","playerOfferings","getOffers","linkToOfferConfig","offerToShow","find","offer","shouldBeVisible","init","reaction","hasWheelOfFortunePromotion","data","_updateOfferToShow","fireImmediately","CloseIconComponent","icons","linkToOfferCloseIcon","size","sizeIsHeight","hasBannerContent","isObject","bannerId","analyticsCategory","routing","currentRoute","arenaType","_onLinkToOfferClickerHandler","shoulUseLinkToOfferAnimation","_openLinkToOfferDialog","dialog","showModal","setState","_renderBanner","onClosed","_onClosedDialog","hideCloseButton","forceTransparentBackground","disableFullscreenMode","forceCentralization","hideDialogHeader","applyMaxHeight","OrbitComponentWithState","SwiperWindowComponent","arena","renderList","windowPosition","ArenaGamesListsComponent","_intersectionSpy","_timeoutRef","_onIntersect","_loadNextBatch","_onCaptureIntersectionSpyRef","_onFailedToCreateIntersectionSpy","swiperWindowsCount","_arena","listsCount","arenas","getArena","arenaName","nextBatch","getNextBatchSize","_ensureIntersectionSpyIsOutsideOfViewPort","clearInterval","setTimeout","getBoundingClientRect","top","mainScreen","mainScreenElement","bottom","Array","from","x","i","range","_windowsRange","Fragment","map","listWindowPosition","onIntersect","onCaptureIntersectionSpyRef","onFailedToCreateIntersectionSpy","cyClass","INSIDE_ORBIT_MENU_CONTAINER","imagePreload","timeout","TimeSpan","fromMinutes","Promise","res","rej","onload","clearTimeout","timeoutRejection","error","backgroundUrl","imageObj","onerror","totalMilliseconds","imagePreloadWithDefault","defaultPath","catch","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","Color","brand_green","white","black","light_black","dark_black","grey","pink","orange","red","dark_grey","slate_grey","soft_grey","black_grey","dark_green","black_green","middle_grey","smoke_grey","lime_green","silver_grey","vip_yellow","vip_purple","vip_blue","yellow","pear","inchWorm","transparent","scCards","roulBJ","vidPoker","pc","_serviceFactory","_reactions","thisProto","getPrototypeOf","constructor","name","CLASS","expression","effect","opts","push","mobxReaction","getAbTestingDataForFeature","_getClassName","disposer","smoothscroll","polyfill","overrideJson","require","ApplicationStartupConfigurationsReader","_defaultOrbitConfigurations","_window","_launcherOverridesReader","_http","_logger","_launcherOverrides","_b2cConfigurations","getOverrides","_getB2CConfigurations","_getCasinoConfigurations","casinoConfigurations","configs","configurationPath","_getConfigPath","orbitServer","orbit","extraProperties","paths","server","brandName","brand","country","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","text","SDKTexts","b2cConfigs","languageIso3Override","languageIso2Override","publicationIdOverride","publicationID","publicationId","segmentsOverrides","webData","segments","_applyB2COverrides","SdkHooksProvider","url","window","location","redirect","href","miniOrbit","isEnabled","openUrl","_isMiniOrbit","MINI_CIP_BASE_ROUTE","MINI_CIS_BASE_ROUTE","basePath","Uri","URL","pathName","getBase","toLowerCase","mapperData","usedGameTypesBySite","header","getHeaderRegulationDataElement","imageFilePath","resolveGameImagePath","orbitComponentInsideSdkProvider","cashier","PropertiesEvaluator","_propertiesEvaluators","_config","context","propEvaluator","defineProperty","propertyName","evaluate","configurable","enumerable","rootObject","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","isArray","innerRules","operator","createComparisonOperator","segmentValue","getSegmentValue","compare","BaseComparisonOperator","EqualOperator","value1","value2","_isBooleanAsString","NotEqualOperator","PropertyLevelContext","_originalContext","_currentPropertyName","operatorName","logicalOperatorName","ruleDefinition","statementDefinition","createStatementEvaluator","propertyPath","propertyOwner","getLauncherGames","PropertyEvaluator","_propertyName","_valueEvaluator","propertyContext","err","Error","createStatementsDefinition","subLists","statementsDefinition","statements","sublist","Segment","Games","segment","_createStatementsRule","GamesIdPropertyEvaluator","_owner","_adminConfig","gamesAdminRefKey","owner","listsv2","gameTypes","launcherGames","IsFalsyOperator","GreaterThanOperator","isNumber","LessThanOperator","AnyOfOperator","includes","PreviewFeatureType","ConfigurationEvaluationContext","dataProvider","_hasStatementsOrDefaultValue","_createStatementsEvaluators","statementsDefinitions","toUpperCase","logger","isString","assetPath","propertyValue","gamesSettings","gamesTags","_mergeGamesFromLauncher","existingGamesTags","demoSettings","demoCTAAnonymous","demoCTAAuthorized","intermediatePageAnonymous","intermediatePageAuthorized","SdkInitializer","_applicationConfiguration","_sdkHooksProvider","_windowService","_theme","_waitForMapperCGP","resolve","getGameTypesMappingForSdk","_waitForHeaderRegulationDataElement","headerRegulationDataElement","waitForElement","API","Logger","logLevel","sdkApi","sdkConfigOverrides","getSdkConfigOverrides","initialize","Country","getCountryServiceOverrides","Skin","getSkinServiceOverrides","Game","getGameServiceOverrides","Integration","getIntegrationServiceOverrides","Themes","getThemesServiceOverrides","Http2","getHttp2ServiceOverrides","JackpotToasters","getJackpotToastersServiceOverrides","OrbitComponentRender","getOrbitComponentRenderOverrides","CashierProxy","getCashierProxyOverrides","_evaluateSdkConfigsInsideOrbit","toasterImage","jackpotWidget","generic","crown","skinOverride","SDK","sdkConfig","responsibleGamblingLink","origin","substring","sdkConfigsInsideOrbit","env","configEvaluationDataProvider","segmentName","fromRoot","result","gameDefaultIcon","backgroundDefault","gameDefaultBackground","method","launcherOverrides","gameTypeMapper","_gameTypeMapper","bind","proxyLink","redirectProxy","openInNewWindowHook","isMiniCipFunc","isMiniCip","isMiniCisFunc","isMiniCis","_getHeaderRegulationDataElement","CMSSource","cmsSource","sdkTheme","api","getOrbitComponentToSdkAdapter","getCashierService","QA_ENVIRONMENT_POP_UP_BLOCKER_COOKIE","md5","QAEnvironmentPopUpBlockerService","password","QAEnvironmentPopUp","validationKey","_setCookie","expirationDate","setMonth","getMonth","storage","createCookie","TextTranslation","translationService","translationKey","_parameters","TranslationService","translatedTexts","parameters","translatedPhrase","langData","currentLanguage","_resolveBraces","console","log","str","objectKeys","objectKey","resolveConfigurationValue","CurrencyService","withDecimal","formatMoney","minBet","maxBet","getCurrencyIso3","AnalyticsService","category","label","omitStructuredLogger","engine","eventLabel","customData","addLabel","addValue","addCustomData","eventData","getGoogleClientID","LobbyGameInfoPreviewService","serviceFactory","_setGamePreviewTimeout","_clearGamePreviewTimeout","_allowPreview","_currentGamePreviewPinned","_resetGamePreview","currentPreviewedGame","games","gamesMap","clearGamePreview","allowGamePreview","_setCurrentPreviewedGame","RunningGameService","_activatedGetCorrelatedForLstRealGame","_setLastPlayedRealGame","_setCorrelatedGamesForLastPlayedRealGame","isGameRunning","continuePlayingCurrentGame","closeRunningGame","lastGameInfo","lastPlayedRealGame","correlatedGamesForLastPlayedRealGame","onGameClose","closeOptions","isReal","isGamePlayed","showNextGameSuggestion","getGameInfo","getCorrelatedGames","correlatedGames","getGamesInfoArray","gameInfosArray","gi","GameInfoButtonDefaultBox","components","intermediatePage","gameInfoButton","GameInfoButtonCasino777Box","GameInfoButtonBox","headerText","DialogTitleBox","DialogCloseButtonBox","button","modalDialog","closeButtonSize","closeModalDialog","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","headerBackground","height","DialogHeaderCipBox","DialogHeaderBox","forCip","forWsopCip","DialogHeaderComponent","CyClass","onCloseButtonClick","_renderTitle","_renderCloseButton","headerHeight","headerRegulationDataHeight","_renderContent","TitleComponent","_openGameInfo","gameInfo","_closeInfoMobile","infoPageURL","isEmpty","intermediatePageGameInfoButton","_renderOpenInfoButton","StripeImageBox","GameStripeImageComponent","imageSrc","stripImage","stripeImageFallback","fallbackSrc","TrailerBox","GameTrailerComponent","width","poster","autoPlay","loop","type","TrailerOrStripeImageComponent","hasVideoTrailer","CellValueBoolBox","checkMark","CellValueTextDefaultBox","brandPrimary","CellValueTextCasino777Box","brick","CellValueTextBox","CellTitleBox","bodyText","body","GameFeatureCellComponent","_renderNoInfo","check","_renderCheckbox","_renderDescription","_renderValue","TableContainerDefaultBox","table","lobbyGameInfoPreview","gameInfoTableBackground","dividerBottomBorder","dividerTopBorder","TableContainerBoxCasino777Box","tan","TableContainerBox","GameFeaturesTableComponent","cells","reduce","acc","curr","cell","features","chunks","splitArrayToChunks","cellSpacing","chunk","_renderGameInfoTableRow","GameDescriptionTextBox","regular","gameDescriptionText","flexRowContainerMixin","flexAlignItemsMixin","alignItems","flexCenterAlignItemsMixin","flexFixedSizeItem","flexAdaptiveSizeItem","FlexGrowItemBox","flexBasis","FlexContainerBox","justifyContent","h2","generalTitle","background","GeneralTitleDefaultBox","gamePreviewInfo","infoText","SectionTitleDefaultBox","common","secondary","RTL","spriteSheet","BasePcBox","BaseMobileBox","GeneralTitleCasino777Box","SectionTitleCasino777Box","bodyInfo","SectionTitleBox","GameAboutComponent","aboutText","GameJackpotComponent","gametypeid","GameJackpotPreviewBox","JackpotAmountPreviewDefaultBox","JackpotAmountPreviewCasino777Box","papaya","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","preset","fullWidth","gameImageInsideIntermediatePage","getGameImagePlaceHolderUrl","_renderDemoButton","IntermediatePageBox","texture","StripeImageAndButtonsBox","GradientBox","intermediatePageGradientBackground","WarningImageBox","WarningTextBox","WarningMessageBox","RealMoneyOnlyWarningComponent","onlyRealMoneyGameWarning","OpenGameIntermediatePageComponent","allowWithdrawOnlyFromReal","pageName","_renderOnlyRealMoneyWarning","showIntermediatePage","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","getGameCategory","companyName","vendorName","options","squareIcon","animatedIcon","shouldUseSquareIcons","hybrid_icon","animated_square","getAnimatedJsonUrl","_getResolvedGameImagePath","animated_round","icon","pngImagePath","animatedImageTimings","delay","interval","hybrid","isEmbedded","badge","gameBadgePath","maxBetPerBrand","useSquareIcon","gameIconPlaceHolderSq","gameIconPlaceHolder","seoValue","seo","gameName","categoryName","imagePath","strip_mobile","strip_pc","previewDefaultImage","gamesPreviewDefaultImages","gameCategoryWithUnderScores","multiplayer","forceIntermediatePageForAutorizedUsers","Boolean","params","openGameOptions","showRegister","cmsSegmentation","isCisOrCip","showRegisterButton","shouldShowIntermediatePage","dialogContentRenderer","marketing","getMarketingData","marketingParams","_sendOpenGameAnalytics","openGame","gameHandler","graphyteClickstream","sendGameOpenEvent","gameTitle","listTitle","gameIndex","_replaceUnderscore","analyticsLabel","analyticsAction","openFromDrawer","listPosition","aiEngine","AIListTypeID","AdminListID","sendElasticInfoEvent","words","arena_icon","GamesService","_gamesAboutTexts","_updateGamesMap","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","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","concat","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","setItem","statusGroupId","_checkForFaultyCStatus","scrollTo","getItem","_updateSegments","cStatus","isCstatus","IsAuthorized","IsVIP","GenderId","DaysSinceRegistration","daysSinceRegistration","activeChallengeCount","userName","cid","registrationCountry","joinDate","timeSinceRegistration","parse","totalDays","Infinity","playerRMStatus","depositWidgetEligibility","isABEligible","isNtsEligible","errorCode","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","isMobileSideMenuOpen","isMobileMenuOpen","isUserAreaMenuOpen","userMenu","isOpen","goBack","pushWithoutValidation","pathname","_onBackButtonClicked","closeMobileMenu","closeMenu","callback","_callback","isHybrid","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","isStandalone","_updateDeviceType","dom","devicechanged","_sdkDevice","deviceType","isEmbeddedHybrid","operationSystem","tool","isIpad","isProgressiveWebApp","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","dl","wtc","nextAction","join","DeepLinkJsonObjectParser","actionNextPropName","idNextPropName","DEEP_LINK_HASH_PARAM","DEEP_LINK_QUERY_PARAM","SPECIFIC_NAVIGATION","SPECIFIC_NAVIGATION_PARAM","DeepLinkParserService","deepLinkJson","_extractDeepLinkJsonFromFragment","_extractDeepLinkJsonFromDeepLinkQueryParam","isDeepLinkFromSpecificNavigation","_extractDeepLinkJsonFromSpecificNavigationQueryParam","_isDeepLinkObject","fragment","hash","decodeUriComponentRecursive","queryParams","getParamValue","DeepLinkService","_isExecuting","_executeDeepLinkFromSdkEvent","_waitForAutologin","deepLinkActionsFactory","createActionFromDeepLinkObject","_executeAction","_executeDeepLinkFromPostMessage","postEvent","messageData","ActionName","deepLinkJsonObject","_subscribeToCurrentUriReaction","onDeepLinkReceived","postMessage","_executeDeepLinkFromCurrentRoute","execute","lastTimeDeepLinkWasExecuted","reactionDisposer","createActionFromCurrentRoute","urlWithoutHash","getUrlWithoutHash","navigate","isArrayOfStrings","CGP_EVENTS_NAMES","SdkEvents","CGP","onEvent","eventName","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","getAbTestingData","getCurrentServerDate","featureName","ex","getUserSegments","format$$$","linkParams","useCallbackURL","source","getSourceSubBrandName","callbackUrl","getExternalBrandCallbackURL","openExternalLink","view","openResponsibleGamingLink","navbar","login","getRegulationService","isHybridEmbeddedGame","openHybridLink","autologinCookie","getCookie","setAutoLoginToken","removeCookie","getGRSEnvironments","countPlayerChallenges","openInNewWindow","menuActionExecute","getExternalBrandCallbackURLMethod","menuJSON","startLiveTableFeeds","startEvolutionLiveFeeds","stopLiveTableFeeds","stopEvolutionLiveFeeds","refreshThirdPartyVouchers","closeCurrentDetailHistory","campaignId","getRichPageUrl","getDailyDealCampaigns","getJackpotsWithState","getNumberOfAwaitingMessages","openOmgAwaitingMessages","getFreeplayVouchers","toasterData","showToaster","plainNumber","getBankroll","loadSafezoneSdk","getProductPackage","getPlatformSystemID","getSkin","getClientPlatform","getVersion","getCulture","shouldReplaceLoginWithDownloadAppForMobileWebApp","shouldPreventOpenGameForMobileWebApp","getBrandName","onOrbitInitComplete","getEnvironment","pushDataToDataLayer","getCountryIso3","requestData","httpPost","httpGet","tagId","loadScript","getRefreshToken","overlayZIndex","fireDepositWidgetClosed","getToken","openHistoryLink","getGeoLocationInfo","getDownloadAppLink","isDepositWidgetSupportedByHybrid","promptPushNotificationPermissionRequest","content","openPopUpOnSecondWebView","closePopUpOnSecondWebView","stepsBeforeOpenLoginAndRegistration","bringOmgToFront","getBurnoutAnimationZIndex","getCompanyByName","request","openHistoryGame","ApiListType","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","on","_applyTextFiltering","_applyGamesFilters","onFilters","onFiltersGroupedByType","filterDefinition","categoriesFilters","_checkCategories","_checkFeatures","searchWordsRegExp","word","RegExp","isAllWordsMatch","_getAllFiltersDisabled","_doFilterNavigation","shouldRedirect","_disableAllFilters","filterIds","originalFilter","checked","filterValue","UsefulLinkActions","link","handler","_findHandler","linkId","handlerName","charAt","openOldCashier","sessionType","externalLinks","openMyAccount","tabId","openContactUs","target","_openLinkAction","safezone","openFullSafezone","openHelpPage","shouldOpenLocal","local","openLink","sourceLink","li","usefulLinkBackground","usefulLinkTextNormal","usefulLinkTextHover","hideArrow","UsefulLinksItemDefaultBox","bodyHover","UsefulLinksItemCasino777Box","UsefulLinksItemCipBox","UsefulLinksItemBox","forCis","ConfigUsefulLink","linkConfig","linkAction","iconAsset","iconURI","imageAsset","imageAlt","imageURI","renderImageItem","renderTextItem","UsefulLinksItemSideTextBox","SdkUsefulLink","activator","sideText","sideTextClass","ANALYTICS_CATEGORY","USEFUL_LINKS_ACTION","UserMenuService","linkActions","reFetchLinks","classList","add","remove","overlay","isOverlayOpen","onGameOpen","onTouchIDActiveStateChanged","_fetchLinks","links","_setUsefulLinks","shouldOpen","shouldBeRewards","isRewardsInfo","newLinks","usefulLinks","fetchSteps","_fetchConfigLinks","_fetchSdkLinks","all","stepLinks","combinedLinks","n","orderLinksByPosition","sortingOrder","sortBy","position","drawer","_doConfigMenuAction","getUsefulLinks","sdkLinks","filteredOutIds","_getSdkFilteredOutUsefulLinksIds","pickedLinks","_doSdkMenuAction","executeAction","hour","getHours","minute","getMinutes","welcomeMessage","defaultMessage","conditions","ruleHour","ruleMinute","openDeposit","channel","CHANNEL_SOURCE","casinoClient","area","AreaType","UserArea","CHANNEL_ELEMENTS","depositButton","openWithdraw","withdrawButton","showLoyalty","menuFlow","hasCustomFlow","executeCustomFlow","continue","externalLinkSource","openMenu","_setIsRewardsInfo","_setIsOpen","closeOverlay","openOverlay","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","imageLoadBackgroundColor","AspectRatioContainerComponent","GameImageComponent","onSettled","loadingAnimation","attemptLoadAnimatedIcon","getGameImage","useSquareIcons","getAnimatedImageTimings","hideStaticImage","seoAlt","getImageSeoAlt","imgUrl","useLazyLoad","useLazyLoading","getGameImageExpectedSizes","onLoadStart","onLoad","GameImageContainerComponent","gameItemImageRef","createRef","enabled","allowTap","elementRef","onOpenRealGame","isCasinoGameIcon","_handleImageDoneLoading","playRealGameButton","GameTitleDefaultBox","blackTeal","GameTitleCasino777Box","GameTitleCipBox","GameTitleBox","MinMaxBetAmountDefaultBox","mAndAbove","MinMaxBetAmountCasino777Box","MinMaxBetAmountBox","InfoPageButtonComponent","infoIcon","onOpenInfoPage","margin","GameButtonsBox","PlayDemoButtonComponent","onOpenAnonymousGame","squareGameIcon","horizontalLineGlowPC","horizontalLineGlowMobile","GameDetailsContainerDefaultBox","GameDetailsContainerCasino777Box","GameDetailsContainerBox","JackpotAmountDefaultBox","JackpotAmountCasino777Box","JackpotAmountBox","GameInfoContainerBox","GameDetailsContainerComponent","allowMinMaxBet","formattedMinBaxBets","currency","formatMinMaxBet","disableGameInfoHover","allowHoverDetails","hasInfoPage","allowDemoButtonInSingleGame","_allowHoverDetails","_renderJackpot","_renderMinBaxBet","_renderGameInfoSection","_renderGameButtons","HOME_PAGE","WIDE_GRID","xlAndAbove","GameDefaultBox","GameCasino777Box","GameCisBox","GameBox","PlayRealButtonDefaultBox","lowHeight","PlayRealButtonCasino777Box","PlayRealButtonBox","isSquareIcon","cardAndTablesSquareBackgroundImage","cardAndTablesBackgroundImage","defaultSquareBackgroundImage","getPlaceholderBackground","ORBIT_TAP","GameImageContainerDefaultBox","GameImageContainerCasino777Box","GameImageContainerBox","GameNumberBadgeBox","gameNumberBadgeColor","SingleGameRegularTemplateComponent","isMobileOS","showNumberBadge","_renderGameNumberBadge","onMouseEnter","onMouseLeave","_renderPlayRealGameButton","CssClassNameBuilder","_classes","classes","c","verticalLineGlow","ultra","SingleGameJackpotTemplateComponent","LiveGameContainerBox","SingleGameLiveTemplateComponent","tableId","liveTable","liveTableFeeds","getTableInfo","fluidWidth","seoCategory","captureGameElementRef","LiveStreamingTileBox","LiveStreamingTileFooterBox","componentBackground","LiveStreamingTileGameTitleBox","LiveStreamingTileBettingRangeBox","LiveStreamingTileFooterSectionBox","LiveStreamingOverlayItemBox","capsule","LiveStreamingSoundButtonBox","LiveStreamingSoundButtonComponent","httpLiveStream","MuteIcon","muteIcon","UnmuteIcon","unmuteIcon","toggleVideoSound","_handleClick","_renderIcon","LiveStreamingTileOverlayComponent","_padding","left","isLiveStreamOverlay","tableInfo","_renderTopRight","_renderBottomLeft","_renderBottomRight","LiveStreamingTileOverlayBox","LiveStreamingTileSkeletonContainerBox","LiveStreamingVideoDefaultBox","video","LiveStreamingVideoBox","LiveStreamingVideoContainerDefaultBox","videoIsLoading","videoWatchTimeLimitReached","LiveStreamingVideoContainerBox","LiveVideoPlayButtonBox","LiveStreamingVideoComponent","_intersectionObserver","_videoElement","_isIntersecting","_isAppVisible","_captureVideoContainerRef","_createIntersectionObserver","_intersectionObserverCallback","entries","entry","isIntersecting","_detectIfVideoIsInFocus","_captureVideoRef","mediaElement","_playVideo","_liveStreamPlayer","_createLiveStreamPlayer","play","_pauseVideo","pause","_handlePlayVideoClick","logUIAction","_renderPlayerControls","autoplayAllowed","player","_destroyIntersectionObserver","IntersectionObserver","threshold","observe","disconnect","getLiveStreamPlayer","liveStreamPlayer","setLiveStreamPlayer","hasError","onError","onLoading","watchTimeLimitReached","onWatchTimeLimitReached","destroy","playsInline","muted","RetryScreenIconBox","RetryScreenTextBox","RetryScreenTitleBox","SkeletonAnimatedButton","borderRadius","LiveStreamingTileRetryScreenBox","SkeletonAnimatedRectangle","LiveStreamingTileSkeletonbox","DummyTextBox","DummyTextBoxAbsolute","DummyTextBoxRelative","small","SingleGameSkeletonComponent","placeholderImageSrc","templateType","JACKPOTS_ITEM","_renderJackpotGameSkeleton","LIVE_STREAMING_ITEM","_renderLiveStreamingSkeleton","_renderRegularGameSkeleton","LiveStreamingTileComponent","_onPlayClickHandler","_hasError","_isVideoLoading","_isFirstTimeLoading","_isWatchTimeLimitReached","statusText","BrokenLinkIcon","brokenLinkIcon","sizeUnit","SvgSizeUnit","Rem","sizeVariant","setHasError","setIsVideoLoading","setIsWatchTimeLimitReached","_renderPlayerOverlay","MinBet","MaxBet","Name","_renderGameTitle","_renderMinMaxBet","_renderRetryScreen","_renderPlayer","_renderFooter","_renderSkeleton","LiveStreamingItemContainerBox","SingleGameLiveStreamingTemplate","SingleGameComponent","openRealGame","_openGame","openAnonymousGame","openInfoPage","setGamePreview","openInRealMode","skipIntermediatePage","builder","append","isInsideSwiper","toCssClass","_buildComponentClasses","LIVE_CASINO_ITEM","GamePlaceHolderBox","embededHybrid","BaseGameImageBox","SingleGamePlaceholderComponent","emptyImage","SwiperWrapperDefaultBox","SwiperWrapperCasino777Box","SwiperWrapperBox","notMobileOs","SwiperGamesListBox","SwiperBox","OrbitSwiperComponent","_element","_captureSwiperGameListDivElement","viewModel","swipeLogicHandler","setElement","_title","numberOfGamesSkeletons","placeHolders","numberOfPlaceholders","numSkeletons","skeletons","_renderOneGame","_renderGamesSkeletons","isVisible","renderListHeader","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","img","forcePCView","JackpotWidgetAmountDefaultBox","Cold","widgetWidth","JackpotWidgetAmountCasino777Box","buttonWarning","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","JackpotWidgetAmountLabelDefaultBox","JackpotWidgetAmountLabelCasino777Box","JackpotWidgetAmountLabelBox","JackpotWidgetCollectingLabelDefaultBox","JackpotWidgetCollectingLabelCasino777Box","JackpotWidgetCollectingLabelBox","JackpotWidgetCollectingAmountDefaultBox","JackpotWidgetCollectingAmountCasino777Box","JackpotWidgetCollectingAmountBox","animationProps","JackpotWidgetBorderShine","rtl","startPos","BorderShineWidth","endPos","borderShineKeyframes","GAME_ORIENTATION_IDS","JackpotWidgetRadialShine","RadialShineWidth","radialShineKeyframes","JackpotWidgetAspectRatioBox","shouldMinimize","JackpotWidgetAmountContainer","JackpotWidgetFooterElementSkeletonBox","JackpotWidgetClockLabelSkeletonBox","JackpotWidgetCollectingLabelSkeletonBox","JackpotWidgetFooterSkeletonBox","JackpotWidgetAmountSkeletonBox","JackpotWidgetComponent","_onWidgetClick","widgetConfig","listInfo","getGamesListByJackpotId","Party","partyJackpot","openJackpotInfoPage","_isWidgetClickable","aspectRatioBox","resizeObserverInstance","_captureJackpotWidgetAspectRatioBoxRef","refEl","ResizeObserver","setWidgetWidth","oldRefEl","unobserve","readyState","imagesReady","Daily","jackpotHandler","jackpotsWithState","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","hideOnRealMobile","realMobile","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","_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","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","abTestingFeatureDataProvider","playersLikeYouGamesListTypeId","topCount","topNumber","countryName","LiveCasinoVideoComponent","LiveStreamingListTitleBox","LiveStreamingTitleIconBox","LiveStreamSwipeLogicHandler","_services","_touchStartX","_swipeDirection","_touchDragThreshold","_swipeTransitionCss","_handleTouchStart","event","changedTouches","clientX","_handleTouchEnd","_handleTransitionEnd","firstElementChild","transition","_setIsNavigationAllowed","allowed","overflow","prepend","lastElementChild","requestAnimationFrame","LiveStreamingNavigationCommonBox","isActive","LiveStreamingNavigationPrevButtonDefaultBox","LiveStreamingNavigationNextButtonDefaultBox","LiveStreamingNavigationPrevButtonBox","LiveStreamingNavigationNextButtonBox","LIVE_STREAM_GAMETYPES_OFFSET_STORAGE_KEY","LiveCasinoVideoListModel","_baseGameTypesArray","_isLiveStreamDisabled","isVideoLiveStreamEnabled","isDisabledPrelogin","_gameTypesOffset","storedValue","baseArray","_getGameTypesOffsetFromLocalStorage","newOffset","splice","tablesData","gType","openTablesIds","PrevIcon","leftArrowIcon","NextIcon","rightArrowIcon","StaticSwiperListModel","GamesGridBatchComponent","isResolved","intersectionRatio","_captureThresholdElement","listTitleTranslationKey","root","rootMargin","nextBatchGameTypes","propsForNextBatch","batchIndex","batchIndexOffset","currentBatchGameTypes","_renderNextBatch","_renderCurrentBatch","layout","padding","GamesGridDefaultBox","GamesGridCasino777Box","GamesGridBox","NoGamesFoundMessageBox","p","GamesGridContainerBox","CGP_GAME_OPEN","GamesGridComponent","_renderNoGames","GamesGridListModel","gridConfig","LiveCasinoListModel","moveGamesThatOpenSoonToTheEnd","BecauseYouPlayedComponent","runningGame","BecauseYouPlayedPlayedListModel","activateGetCorrelatedGamesForLastPlayedRealGame","isBecauseYouPlayedEnabled","ListFactory","apiListType","RECENTLY_PLAYED","TOP_PICKS","NEW_GAMES","PLAYERS_LIKE_YOU","LIVE_CASINO_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","DailyDealContainerBox","glowRotateAnimation","DailyDealChestGlowBox","dailyDeal","glow","chestScaleAnimation","DailyDealChestBox","DailyDealTextStripBox","textStrip","DailyDealChestHaloBox","halo","DailyDealComponent","_onDailyDealClick","visitDailyDeal","dailyDealCampaignId","chest","useSmallHeaderArenas","headerArenaIconDropShadow","HomepageHeaderArenaIconBox","HomepageHeaderArenaTitleBox","HomepageHeaderArenaBadgeBox","indicatorBadge","backgroundInGridLayout","HomePageHeaderArenasContainerBox","HomepageHeaderArenaLinkBox","HomepageHeaderArenaSkeletonBox","HomePageHeaderArenaIconComponent","_handleDoneLoading","HomePageHeaderArenasComponent","_handleArenaAction","jsonAction","_handleArenaRedirect","section","prop","placeholder","dynamic","seoConfig","preventDefault","enableTap","homePageArenaDefaultPlaceHolder","_getSeo","newGamesIndication","homepage","newAddedGames","_handleArenaClick","_renderArenaIcon","headerArenas","_renderOneHeaderArena","HomepageTopBannerBackgroundBox","homepageTopBannerPlaceholder","HomepageTopBannerDividerBox","HomePageComponent","topBannerProps","getCmsTopBannerProps","useMiniTopBanner","seoSection","linkToOffer","MOVE_TOP","_renderTopBanner","_renderHomePageArenaHeaders","_renderDailyDealBox","_renderSeoBanner","_renderLinkToOffer","HomePageArenaModel","postLoginListsSortOrderStorage","routeDefinition","resetNewAddedGames","graphyte","homepageLists","gameGroupOrientation","userGameOrientation","groupId","LIVE_CASINO","listOnTop","graphyteLists","recentlyPlayedListConfig","promotionalBanner","displayPlace","ArenaPictureBox","ArenaTitleBox","ArenaDescriptionTextBox","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","getArenaConfig","sideBarInfo","infoSideBar","infoTitle","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","newLiveCasino","filterButtonLabel","ACTIVE","buttonLight","LiveCasinoFilterButtonLabelDefaultBox","LiveCasinoFilterButtonLabelCasino777Box","LiveCasinoFilterButtonLabelBox","LiveCasinoArenaNavbarButtonDefaultBox","Link","buttonDark","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","gridItem","wrapperBorder","LiveArenaWidgetCapsuleContainerBox","LiveArenaWidgetCapsuleStartBox","infoCapsule","backgroundStart","LiveArenaWidgetCapsuleMidContainerBox","backgroundMiddle","LiveArenaWidgetCapsuleEndBox","backgroundEnd","LiveArenaWidgetSeparatorBox","separator","LiveArenaWidgetDescriptionBox","partyJackpotInGameWidget","amount","smallFont","LiveArenaWidgetAmountBox","LiveArenaWidgetClockBox","timer","LiveArenaWidgetComponent","_isAllPartyJPAvailable","getStandardJackpotState","_renderClock","_renderAmount","amountInCents","currentValue","trKey","_getDescriptionTranslationKey","NewLiveCasinoArenaComponent","_topImageRef","updateAiRecommendedLiveGames","current","categories","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","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","navItemTextNormal","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","navBoxBackground","SlotsSearchLinkDefaultBox","SlotsSearchLinkCasino777Box","SlotsSearchLinkBox","LiveSearchLinkDefaultBox","LiveSearchLinkCasino777Box","LiveSearchLinkBox","CardAndTableSearchLinkDefaultBox","CardAndTableSearchLinkCasino777Box","CardAndTableSearchLinkBox","RegularSearchLinkDefaultBox","RegularSearchLinkCasino777Box","RegularSearchLinkBox","SearchResultItemComponent","iconStyle","_renderSearchLinkBox","linkIconClass","SearchLinksListBox","ul","searchLinksBorder","SuggestedLinksComponent","_renderSuggestedCategory","_renderSuggestedCategories","isHybridAndroid","searchResultsBorder","SearchFormResultsDefaultBox","navBackground","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","componentTextInfo","SearchInputArenaDefaultMobileBox","SearchInputAreaDefaultBox","SearchInputAreaMutual","SearchInputAreaCasino777PCBox","SearchInputAreaCasino777MobileBox","SearchInputAreaCasino777Box","SearchInputArenaHarrahsPCBox","SearchInputArenaHarrahsBox","SearchInputMutual","SearchInputAreaPCBox","SearchInputAreaMobileBox","SearchInputAreaCasino888Box","SearchInputAreaDoverDownsPCBox","bodyBackgroundLight","SearchInputAreaDoverDownsBox","SearchInputAreaDelawareParkPCBox","SearchInputAreaDelawareParkBox","SearchInputAreaHarringtonPCBox","SearchInputAreaHarringtonBox","SearchInputAreaBox","forCasino888","forHarrahs","forDoverDowns","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","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","NavigationMenu","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","_getPagesRequestOptions","currentMiniOrbitConfig","_apiOrigin","_publicationID","_addSlashesInTheSides","fallbackCMSComponentsPath","createUrlSearchParams","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","banners","_setBanners","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","appendChild","cloneNode","setAttribute","setElementAttributes","addMetaTags","equals","pageElement","getElementById","isOrbitRoute","_loadCmsPageFromApi","_loadPageContentFromDOM","newPage","_setCurrentPage","_getPageData","pageData","setDocumentTitle","setCurrentPageMetaTags","headTags","_updateLocation","elementIdToBeScrolledIntoView","getPageContent","get404PageContent","CmsSegmentationService","_loadDefaultSegments","_loadSegmentsFromCmsApi","_setSegments","newSegments","uniqueSegments","getSegments","getSegmentsOverride","_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","random","gamePopup","showSuggestedGame","PlayGameRealDeepLinkAction","PlayGameDemoDeepLinkAction","RegisterDeepLinkAction","openMembership","_openCashier","_playGame","cashierAction","_findNextActionOfType","actionType","next","isActionOfType","MyAccountDeepLinkAction","RedirectDeepLinkAction","TerminateDeepLinkAction","UploadDocumentDeepLinkAction","openUploadDocument","JackpotGamesDeeplinkAction","openPartyJackpotGamesDrawer","FreePlayDeepLinkAction","freePlayArriveSubscribe","onFreeplayVouchersUpdated","openRewards","off","OpenListDeeplinkAction","getListConfig","verticalGamesList","OpenListDeeplinkByTitleAction","getGamesListByTitle","OpenListDeeplinkByIdAction","getGamesListById","Number","ControlCenterDeeplinkAction","reject","DeepLinkActionsFactoryService","_actionsPrototypes","my_account","terminate","parser","deepLinkParser","getParserFromCurrentRoute","_createActionsFromParser","actionInstance","actionPrototype","getParserFromDeepLinkObject","actionsDescriptors","getActionsDescriptors","getDeepLinkBuilder","actionDescriptor","SdkComponentFactoryService","StickyHandlerFactoryService","StickyHandler","BooleanGamePreviewFeature","_name","MoneyGamePreviewFeature","_shouldRenderWhenEmpty","_extractValue","NumericGamePreviewFeature","GamePreviewFeaturesSelectorService","_gameGroupToFeatureMapping","PF","disabledFeatures","feature","GameRouteHandlerService","_onGameOpenSubscription","_onGameCloseSubscription","_currentUriAndGamesMapReaction","_shouldSkipNextCloseGameRedirect","_previousUri","_isOpenGameFromUrlInProgress","_subscribeToGameEvents","_subscribeToUriAndGamesMapChanges","isFirstSubscription","_isOpenGameUri","_tryOpenGameFromUrl","_onGameOpen","_onGameClose","startsWith","eventParams","_unsubscribeFromUriAndGamesMapChanges","_getOpenGameFragment","finally","urlToGoBack","lastAttemptToOpenGameFromUrl","currentFragment","fragmentParts","gameMode","_setLastAttemptToOpenGameFromUrl","_unsubscribeFromGameEvents","redirectToHistory","LauncherOverridesReader","_storage","cgp_client","LAUNCHER_DATA_STORAGE_KEY","clientData","orbitSpecificOverrides","_getLauncherOverrides","_getOrbitSpecificConfigOverrides","LauncherService","launcherOverridesReader","addedGameTypesFromSdm","SpinnerService","_reactionOnIsFilteredGamesMapInitializedWasCanceled","_isFilteredGamesMapInitializedReactionDisposer","_hideSpinnerTimeout","_isB2CRoute","_spinnerAutoStopTimer","splash","onSplashRemoved","_internalStartSpinner","onBeforeChangingLocation","_onBeforeChangingLocationHandler","Spinner","_startTime","newUri","startSpinner","route","thisReaction","stopSpinner","_cancelSpinnerStopIntervals","_cancelTheReactionOnIsFilteredGamesMapInitialized","_startSpinnerAutoStop","_setSpinningStartTime","performanceNow","isSpinning","timeoutForHideSpinner","computeSplashTimeInSeconds","_hideSpinner","timeoutValue","setGlobalProperty","_enablePrerender","webVitals","siteFinishedLoading","sourceUri","targetUri","spinnerTime","sourceRoute","sendTechnicalEvent","leavingPage","_cancelSpinnerAutoStop","WebVitalsService","_siteNavCLSReported","_reportedCLSPages","_reportLCP","_attemptReportFID","lastRoute","_logCustomObjectToElastic","_clsData","_cls","toFixed","_resetCLSData","_lcpData","_fidData","STORAGE_NAME","fidDataHandler","eventAction","orbitWebVitalsData","eventValue","_prepareCustomData","topShiftsCount","b","errDetails","lcp","fid","cls","clsElements","bigestShift","bigShiftElements","shiftCounter","SAFEZONE_CONTAINERS_ID","COMPONENT_NAMES","MenuFlowService","customFlows","_executeInstallPwa","_openProactiveChat","menuItem","AppLauncher","apps","CR_CHAT","textKey","appLauncher","openChat","businessCorrelationID","tools","getGuid","appSpecificParameters","openMode","ChatOpenMode","Chat","AppIdentifiers","CasinoClient","prompt","PokerIntegrationService","onTokenLifetimeExpired","_onTokenLifetimeExpired","externalBrandCallbackInfo","getExternalBrandCallbackInfo","MiniOrbitPageComponent","MiniOrbitHomePageComponent","MiniOrbitArenaHostComponent","GamingHistoryComponent","MINI_ORBIT_ROUTING_DEFINITION","exact","cssSelectors","SLOTS_PAGE","CASINO_GAMES_PAGE","JACKPOTS_PAGE","historyType","UserHistory","redirectHomeIfUnauthorized","showMoreDetails","SESSION_HISTORY_PAGE","SessionHistory","ArenaHostComponent","CmsPageComponent","GamingHistoryPageComponent","RichPageComponent","LaboratoryShowcase","RoutingConfigurationService","fallbackRoute","routes","NEW_GAMES_PAGE","PROGRESSIVE_VIDEO_SLOTS_PAGE","ROULETTE_PAGE","VIRTUAL_SPORTS_PAGE","BLACKJACK_PAGE","INSTANT_WIN_GAMES_PAGE","showMoreDetailsLink","CHALLENGE_PAGE","VIDEO_POKER_PAGE","SCRATCH_CARDS_PAGE","EXCLUSIVE_888_GAMES_PAGE","standalone","OrbitRoute","RouteBase","RoutingService","_currentPathName","_updateCurrentRoute","featureData","abChangeRoute","removeItem","routeChangeData","Properties","routesChange","_doRedirect","routingConfiguration","getRoutingConfiguration","tryMatchPath","_removeCurrentRouteCssSelectors","_overrideArenaType","routeParams","_addCurrentRouteCssSelectors","FallbackRoute","fallbackRouteRender","routesToArenaTypesMapping","arenasRoutingOverride","_getCurrentRouteCssSelectors","selector","_cleanUpOldAbTestData","currentPathName","STANDARD_TOPIC_HEADER","publisher","OverlayService","onLoginFormOpen","ORBIT_OVERLAY_OPEN","onLoginFormClosed","_openInstances","zIndex","messageBroker","channels","navigation","topics","overlayClicked","publish","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","globalStyles","VoidCommunicationAdapter","openUrlInExternalBrowser","MiniOrbitService","_communicationAdapter","_onKickUserCount","_currentMiniOrbitConfig","_extractCurrentMiniOrbitConfig","onSiteLoaded","_reportAutologinResult","enableBasePathOverride","miniOrbitCommunicationAdapterFactory","createAdapter","onUserKicked","onAutologinSuccess","onAutologinFailed","currentLocationBasePath","miniOrbitConfigSection","basePaths","miniOrbitConfig","miniOrbitArenas","arenasHeaderButtons","DialogConsumerContentBox","transparentBackgroundOpacity","iPhoneVer10","DialogOverlayDefaultBox","DialogOverlayCasino777Box","DialogOverlayBox","MODAL_DIALOG_ANIMATION_DURATION","showDialogKeyframes","closeDialogKeyFrames","showDialogAnimation","closeDialogAnimation","applyBorders","border","radius","modalDialogBorder","DialogOverlayContentBox","ModalDialogComponent","_onCloseButtonClickHandler","overlayClasses","MODAL_DIALOG","dialogOptions","hideAnimation","additionalHeaderClass","headerClass","headerClasses","mobileCenterHeader","contentClasses","hideBorders","forceTransparentContentBackground","shouldApplyClosingAnimation","overlayTop","dialogHeaderComponent","renderContent","DialogService","_onDialogCloseHook","closedHandler","_setCurrentOpenModalDialogs","_currentOpenModalDialogs","_hasOpenDialogs","_enableScroll","_setCloseAllDialogsHook","closeAllDialogs","newDialogs","dialogComponent","CGP_OVERLAY_OPEN","isHighPriority","zIndexes","shouldBeClosedOnlyByUser","ModalDialogHandler","_getNextZIndex","showPopupAboveSecondWebViewHybrid","_disableScroll","_onCloseHook","_options","_isClosed","_applyCallbackAndCloseDialog","isClosedWithXButton","onClosedByXButton","debugInfo","namedSetTimeout","HeaderService","_headerResizeObserver","_headerRegulationDataResizeObserver","_onHeaderResize","_onHeaderRegulationDataResize","_headerElement","offsetHeight","_headerRegulationDataElement","headerElement","MainScreenService","_scrollEventSubscription","_eventListenerRegistration","_scrollHandler","dispatchEvent","Event","setScrollContainer","EventListenerRegistration","stickToBottomTooltipModifier","phase","beforeWrite","fn","popperWidth","rects","popper","popperHeight","styles","elements","adaptive","innerHeight","document","documentElement","clientWidth","arrow","offsetTooltipModifier","scrollContainer","boundary","flipTooltipModifier","preventOverflowTooltipModifier","IconTitleTextTooltipContainerBox","IconTitleTextTooltipTextContainerBox","IconTitleTextTooltipTitleBox","IconTitleTextTooltipIconBox","IconTitleTextTooltip","IconContainerBox","IOSAddToHomeShareIconBox","MessageBodyContainerBox","MessageBodyBoldContainerBox","IosAddToHomeScreenComponent","logoIcon","appIcon","iosShareIcon","iosShare","BRAND","onClicked","ProgressiveWebAppService","_clickSubscription","_isPwaOnIOSShownThisSession","_gameWasOpen","pwaEvent","PWA_PROMPT_EVENT","PWA_PROMPT_CALLBACK","PWA_INSTALLED_CALLBACK","_onAppInstalled","_initReactions","_onBeforeInstallEvent","onBeforeInstallEvent","_unsubscribeToMainScreenClick","_tryToShowPwaInstall","isUKOrIrl","shouldAutoPopup","PWA_SHOULD_AUTO_POPUP_LOCAL_STORAGE_KEY","_subscribeToMainScreenClick","_initIOSPwa","CID","pwaEnabled","_isIOSPwaEligible","isIphone","_showIOSTooltip","hasOpenDialogs","currentDialogs","tooltip","closeCurrentTooltip","shownTimes","PWA_IOS_SHOWN_INSTALL_OFFER_COUNT","createTooltip","styling","textColor","backgroundColor","showCloseButton","invertCloseButtonColors","closeOnClickOutside","showOverlay","onTooltipClosed","shouldPrompt","isAppBannerUKorIRL","_shouldAutoPrompt","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","spinner","onLiveTableFeedsUpdate","_onLiveFeedsUpdate","OperationHoursStartTime","_convertTimeToLocalTimeZone","rouletteLastNumbers","RouletteLast5Numbers","rouletteLast5NumbersConverted","_manipulateFeedData","_sendEvent","_updateOpenTimeToLocal","_verifyRouletteLastNumbers","evoLiveFeedResponseTime","timeUTC","toLocalTime","toHoursAndMinutesString","filteredGameIds","gameArenaIcon","_shouldSortGames","sortingOptions","numberOfSortingExemptGames","abTestingAiSortGamesLists","arenaHasAiSorting","startTime","currentDate","getCurrentDate","timeToOpen","gamesID","closeGamesArr","currentGame","_isGameOpenSoon","FREE_PLAY_TOOLTIP_DISPLAYED_NUMBER","FreeplayVouchersService","_FPIndicatorDOMRef","_receivedVouchersIds","freePlays","setFreeplayVouchersNumber","subscribe","numberOfFreeplays","extractNewVouchersFromData","_showTooltipOnFreePlay","ID","hasOwnProperty","numberOfFreeplayVouchers","hasVouchers","storageService","tooltipDisplayedNumber","translateService","FPGiftIcon","giftIcon","_onTooltipClicked","attach","DrawerContentDecorator","_originalDrawerContent","_id","isMinimized","onClose","minOverlayZIndex","Drawer","getZIndex","itemIndex","getLastVisibleDrawerItemIndex","drawerItem","currentContent","currentDrawerContent","existingContentIndex","_drawerContentStack","contentIndexToRemove","itemOnTheStackTop","_closeDrawerContentItem","_getNonMinimizedContents","minimizedContent","drawerContent","DrawerService","_closeDrawers","DailyDealService","removeDailyDealIndicator","setDailyDealCampaignId","_fetchDailyDealCampaign","onDailyDealRemoveIndication","dailyDeals","MarketingCampaignId","richPageUrl","JackpotHandler","gradualIncreaseAmountHelper","onAuthChangeReaction","previousUpdateTime","shouldStartGradual","gradualRealAmountInCents","isFastGradualIncreaseFinish","removeGradualIncreaseAmountHelper","jackpot","newState","createGradualIncreaseAmountHelper","updateAmount","useGradualAmountIncrease","setCurrentJackpotAmount","frequency","gradualIncreaseHelperFactory","create","updateAmountFunction","restart","JackpotsWithStateService","updateCurrentJackpots","readJackpotsData","onJackpotsWithStateUpdate","onBlueRibbonPartyJackpotStateChanged","_onBlueRibbonPartyJackpotStateChanged","jackpots","jackpotsAddition","jpData","setJackpotData","rawJackpots","jpId","rawJackpot","Jackpot","readJackpotState","winAmount","currentJackpotsClone","_convertBlueRibbonPartyJackpot","abTestingFeatureIsValid","featureObject","featureProperties","AbTestingFeatureDataProviderService","_playersLikeYouGamesListTypeId","_setIsVideoLiveStreamEnabled","_setIsExitPopupSquareIconsEnabled","_setIsBecauseYouPlayedEnabled","_features","aiSortGamesListsFeatureData","_hasFeature","abTestingSearchGameSuggestionByAI","aiType","abTestingPlayersLikeYouGamesListTypeIdAIData","listID","abTestingListOnTopData","enabledForRegulation","SafezoneLoader","abTestingSafeZoneToggleData","enableSafeZone","miniBannersFeature","featureToggle","isExitPopupSquareIconsEnabled","GradualIncreaseHelper","_params","realAmount","fakeAmount","stepAmount","amountIncreaseTimer","stopAmountIncreaseTimer","startAmount","steps","startAmountIncreaseTimer","updateFakeAmount","GradualIncreaseHelperFactoryService","OPEN_SAFEZONE_SOURCE_VALUES","CHANNEL","CLOSE_SAFEZONE_SOURCE_VALUES","SESSION_STATUS","ACTIONS","SAFEZONE_EVENTS","SafezoneService","_safezoneObj","_fullSafezoneHandler","_miniSafezoneHandler","_onSafezoneReady","component","MINI","onReady","FULL","_onCallToActionFunc","actionId","USER_AREA","correlationID","closeMiniSafezone","closedFromSafezone","openResponsibleGamblingLink","_kickUserAfterSelfExclude","_connectToSafezone","_logoutSafezone","safezoneObjectFactory","createFullSafezoneHandler","createMiniSafezoneHandler","_setHasError","createSafezoneObjectParams","onCallToActionCallback","onReadyCallback","createSafezoneObject","analyticsDataLayer","pushSafezoneInitParams","full","mini","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","correlationId","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","bType","plainNumberBankroll","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","navItemTextActive","navItemTextHover","GenericSideMenuLinkCasino777Box","filterSelected","GenericSideMenuLinkHarrahsWsopBox","GenericSideMenuLinkBox","GenericSideMenuLabelDefaultBox","GenericSideMenuLabelBox","InternalNavSideMenuLink","getLinkAction","InternalNavIcon","Icon","buildFullUri","isLinkToCurrentPage","decodeURI","encodeURI","withArrow","currentPath","candidate","SideMenuLinkIconDefaultWrapBase","SideMenuLinkIconCasino777WrapBase","SideMenuLinkIconWrapBase","SideMenuLinkIconDefaultBase","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","userMenuBalanceColor","SignupSideMenuLinkBox","ArrowSideMenuLinkDefaultIcon","ArrowSideMenuLinkCasino777Icon","ArrowSideMenuLinkIcon","SignupSideMenuLink","DepositSideMenuLink","SideMenuComponentDefaultBox","userMenuSectionBg","SideMenuComponentCasino777Box","userMenuTitleText","SideMenuComponentBox","SideMenuListDefaultBox","SideMenuListCasino777Box","SideMenuListHarrahsWsopBox","SideMenuListBox","SideMenuLinksGroup","menuItems","pickSideMenuItems","menuItemIds","some","it","listStyleType","k","renderLink","GamePopupCheckboxContainerBox","GamePopupCheckbox","checkboxChecked","checkBoxChecked","checkBoxEmpty","GamePopupComponent","onClickPlay","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","BLACKJACK","CASINO_GAMES","ROULETTE","LIVE_BLACKJACK","LIVE_ROULETTE","CASINO_SKILL","VIDEO_POKER","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","partyJackpotWinCelebrationPopup","PartyJackpotWinCelebrationPopupImageContainerBox","PartyJackpotWinCelebrationPopupButtonsContainerBox","PartyJackpotWinCelebrationPopupContentContainerBox","PartyJackpotWinCelebrationPopupTitleBox","PartyJackpotWinCelebrationPopupComponent","jackpotName","party","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","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","addListener","onchange","removeListener","mQueryEventData","isMatched","matches","MediaQueryService","mediaQueryListeners","tempRecords","mediaQueries","mediaType","sExact","sAndAbove","mExact","lExact","lAndAbove","xlExact","xxl","hover","hoverNone","anyHover","anyHoverNone","pointer","pointerFine","pointerCoarse","pointerNone","anyPointer","anyPointerFine","anyPointerCoarse","anyPointerNone","OrbitApi","ORBIT_VERSION","fullVersion","gamesTypes","errorLogs","executeDeepLink","cat","MAX_FIELD_SIZE","b2c_data","fieldsCount","b2c_data_obj","foundGames","missingGames","gameImage","gameImageAlt","partyJpName","potState","_getPartyJackpotInfoFromEventData","ToolsService","uuid","VerticalGamesListBox","verticalListBackground","HeaderBox","GamesListBox","GameDetailsBox","GameDividerBox","ButtonWrapperBox","NO_JACKPOT","GameDetailsNameBox","GameDetailsJpBox","jackpotValueColor","VerticalGamesListGameComponent","displayJackpotInfo","HeaderTitleBox","HeaderCloseButtonBox","DjWidgetBox","VerticalGamesListComponent","_onJackpotWidgetClicked","_closeDrawer","widgetConf","isMobileLandscape","_shouldMinimizeJackpotWidget","_shouldMinimizeWidget","scrollTop","onScroll","_onScroll","_renderHeader","_renderGamesList","SEO_CATEGORY","VerticalGamesListService","GAME_GROUP_COOKIE","UserGameOrientationService","_updateUserGameOrientation","orientation","userGameOrientationEnableConfig","User","enableUserGameOrientation","gameGroupCookie","_setUserOrientation","getUserGameOrientation","gameOrientation","_setGameOrientationCookie","setDate","getDate","ApiControllerBase","_getRoutePrefix","isUSRegulation","_buildApiRoute","BonusManagerController","_httpPost","ABTestingController","InsightController","req","NetPositionController","RestrictionRulerController","clientRequest","HistoryController","UserController","ApiService","bonusManagerController","aBTestingController","netPositionController","restrictionRulerController","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","placement","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","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","TimeSpentReminderDefaultBox","popupContentBackgroundColor","TimeSpentReminderBox","TimeSpentReminderOptionSelectorBox","select","TimeSpentReminderMainTextBox","popupIconColor","TimeSpentReminderSelectorContainerBox","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","TimeSpentReminderComponent","_businessCorrelationId","_renderLoggedInText","playingTimeWithoutUnits","playingTime","_renderSelectorContainer","_renderSelect","selectedOption","_updateSelection","timerType","tsrOption","selection","_sendActionDataTracking","_closeDialogBox","gameRouteHandler","openOptions","_onStopFurtherReminders","onStopReminders","_sendActionDataToElastic","casinofiedAnalytics","messageActionTaken","CGPEventCategory","CGPEventAction","setTarget","TimeSpentReminderIcon","timeSpentReminderClockIcon","color","messageDisplay","displayMessageID","DISPLAY_MESSAGE_IDS","timeSpentReminder","displayMessageName","StatePopupWrapperBox","StatePopupIconBox","statePopup","locationIcon","StatePopupTextBox","StatePopupBottomLinkBox","StatePopupComponent","_onStateSelector","onStateSelect","_onStateNotInListClick","onStateNotInListClick","OrbitComponentToSdkAdapterService","_renderComponent","showPartyJackpotWelcomePopup","onMessageClosed","currentRenderedComponents","_setCurrentRenderedComponents","unmount","_unmountComponent","OmgProxyService","setNumberOfAwaitingMessages","onOmgAwaitingMessagesUpdated","updatedNumberOfMessages","numberOfAwaitingMessages","MessageBrokerService","MessageBroker","identity","loginSuccess","logoutSuccess","getCasinofiedDeviceInfo","getCasinofiedDeviceType","OS","isNative","browserType","getCasinofiedCommonUserInfo","userMode","regulationTypeID","isVip","isPromotionPermitted","RMS","getCasinofiedGeoInfoParams","geoLocationInfo","timeZoneUTCOffset","loginIp","ISP","isp","proxyType","getCasinofiedCommonAppContextParams","productPackageFromID","languageCode","currencyCode","currencyIso3","gaClientID","DeviceType","Tablet","SmartPhone","PC","LIMIT_NAMES","CasinofiedZoidApplicationAdapter","appID","applicationSdk","clonedInitParams","messageBrokerChannels","zoidInitParams","onInitSucceeded","payload","_onInitSucceeded","onInitFailed","_onInitFailed","openApp","_openApp","_onClose","session","appInitSucceeded","appInitFailed","appClosed","CasinofiedRegularApplicationAdapter","applicationObject","CasinofiedApplicationBase","openAppData","_componentFactory","appSdkLoader","useZoidIntegration","appId","_openAppData","_sessionID","_topicsSubscriptions","_openPromise","_applicationObject","_isDisposed","_miniatureComponent","launchInfo","containerID","rootElement","firstChild","_appInitFailed","_isAnonymousModeAllowed","_setIsLoading","loadAppSdk","isDisposed","widgetLoadTimeoutMS","openTimeout","_setAppInitFailed","_unsubscribeFromTopics","appInitResult","appInitParams","cleanUp","_isCurrentApp","sessionID","errorDescription","_getAppInitCommonParams","commonParams","_showApp","sdkObjectName","appObject","_getAppSdkObjectName","_createApplicationAdapter","appInitRequest","_getInitAppParams","_getUserInfo","geoInfo","applicationContext","productPackageToID","productPackageID","deviceInfo","subscription","unsubscribe","_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","PaymentRedirectButtonContainerBox","PaymentsRedirectFocusComponent","stroke","PaymentsRedirectIcon","paymentsRedirectIcon","redirectApp","mftName","_renderButtonContainer","PaymentsRedirectZoidAdapter","Redirect","PaymentsRedirectApplication","_focusDialogHandler","_containerElement","psRedirectFocusDialog","sendLogLevelOnly","FullCashierApplication","_onExternalLinkClosedSubscription","_onExternalLinkClosed","linkSource","SessionType","onExternalLinkClosed","FullCashier","appData","CashoutWidgetApplication","CustomerRelationsApplication","featureType","openOldChat","sourceAppID","CustomerRelations","CasinofiedAppFactory","CrChat","OpenBanking","UnifiedCashier","UnifiedCashout","CasinofiedAppLauncherService","_appFactory","_runningApps","_onBeforeOAuthStateChangedHandler","_closeAllApps","_openAppHandler","_onBrowserUnload","_appClosedHandler","runningApp","_appMinimizedHandler","app","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","CasinofiedActionHandlerService","_performActionHandler","actionHandler","_createActionHandler","actionID","handle","performAction","ActionID","openBanking","uploadDocuments","withdraw","FloatingBubblesService","BubbleContentDecorator","bubbles","bubbleToRemoveIndex","_originalBubble","SourceOfFundsBox","SourceOfFundsOpenChatBtnBox","SourceOfFundsPopupComponent","SourceOfFundsIcon","sourceOfFundsIcon","messageRow1","messageRow2","openChatLabel","RestrictionRulerService","enableSOF","RestrictionRuler","_executeRestrictionRulerActions","getRestrictionActions","RequestedAction","restrictionRulerResponse","_showSourceOfFundsMessage","actionData","restrictionRuleActionType","notifyRestrictionActionPerformed","showMessageActions","actions","messageId","sofRequired","_notifyRestrictionActionPerformed","RedTigerService","RedTiger","jackPotUrl","jackPotFeedApiUrl","widgetParameters","iso2Lang","currentLanguageIso2","jackpotUrl","jackpotFeedApiUrl","CasinofiedAnalyticsService","_sessionClosed","_sequentialNumber","_authenticationResult","setEventType","setAppID","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","getEligibility","widgetConfigs","analyticsOptions","_waitForUserToBeLoggedIn","eligibility","isEligible","force","testGroup","testID","_getCashierWidgetEligibility","PAYMENTS_CASHOUT","_getDepositWidgetEligibility","depositEligibility","openDepositWidget","promoCode","_getCashOutWidgetEligibility","openCashoutWidget","isDepositSessionType","isCashoutSessionType","cashOutEligibility","_openCashierExternalLink","RegulationService","sessionCooldownConfig","shouldShowPlayerLimitsToaster","LimitsToasterService","_limitsData","DepositLimit","PlayTimeLimit","BankrollLimit","_subscriptions","_activeLimitToasters","_toasterDisplayDurationSec","_getPlayerLimits","getPlayerLimits","limitsDataRaw","depositLimitRaw","displayableLimits","limit","limitName","DEPOSIT_LIMIT","limitPeriods","playTimeLimitRaw","PLAYTIME_LIMIT","bankrollLimitRaw","BANKROLL_LIMIT","_handleUserLogout","_showLimitsToaster","hasData","_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","WelcomeOffer","linkToOfferIcon","WOFShellBox","wheelOfFortune","shell","rotateBackward","rotateStarting","rotateFullRotation","rotateFinish","WOFColorsBox","showSpin","WOFWrapperBox","WheelOfFortuneComponent","enableWheelOfFortuneAnimation","WheelOfFortuneOffer","PlayerOfferingsService","isEnabledFromConfig","PlayerOfferings","isWheelOfFortuneEnabled","hasWheelOfFortuneConfigSection","enableAnimation","_hasWheelOfFortunePromotion","welcomeBonus","userBalance","_setWOFEnableAnimation","_updateWheelOfFortuneAvailability","onPromotionsChanged","Cid","isBoolean","IsPromotionDisplayedInClient","getEligiblePromotionCodes","promoCodes","_fetchUserHasWheelOfFortune","hasWheelOfFortune","_setHasWheelOfFortunePromotion","loadPixi","PIXI","PixiSpine","createPixiApplication","Application","backgroundAlpha","antialias","forceCanvas","force2DCanvasContext","contextLostHandler","stop","_e","onContextLost","selfDestroyOnContextLost","canvas","GameAnimatedIconUnloadReason","PixiAppService","_pixiAppCreatorWithWebGlManager","webGlContextManager","makeCreator","pixiApp","resourcesUrls","loader","load","resources","spineData","IndicatorLayout","GameAnimatedIconsManagerService","intersectionObserver","observedTargets","isGameOpened","intersectionCallback","observedTarget","inViewport","attemptDisposeAnimation","VIEWPORT_EXIT","selectAndLoadAnimations","debounceTimeout","selectionRunning","selectionRunAgainNeeded","alreadyRunningAnimationCount","eligibleTargets","animationDisposer","loadingInProgress","remainingSlots","shuffle","loadGameAnimatedIcon","GAME_OPEN","set","delete","REQUESTED","reason","abortLoading","createPixiApp","CONTEXT_LOST","disposePixiApp","loadResources","spineAnimation","Spine","gameAnimatedIconResource","availableAnimations","animations","runAnimation","setAnimation","complete","animationSchedule","stage","addChild","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","tooltipDefaultOptions","TooltipService","_popperInstance","_tooltipsQueue","_handleClickOutsideTooltip","currentToolTip","_tooltipContainer","_openNextTooltip","tooltipObj","modifiers","attachToElement","HTMLElement","createPopper","strategy","modifier","closeTimeoutId","currentTooltipIndex","_showTooltip","HistoryPaginatorBaseModel","pageSize","_numberOfHistoryDays","_nextPageIndex","numberOfDays","_resetPaging","loadNextPage","records","_pages","fromLastDays","pageNumber","nextPage","requestKey","RequestKey","minDate","MinDate","maxDate","MaxDate","serverResponse","notInLayoutGames","GameHistoryData","record","_getGameTypeFromRecord","getNotInLayoutGamesInfo","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","amounts","_isFreePlayRound","_getFreePlayAmounts","_getRealMoneyAmounts","AdditionalData","AAMSGameSessionID","AAMSParticipationTicketID","AllowedPlatformType","supportsDetailHistory","historyRecordData","gameRoundId","gameRoundDate","UserGamingHistoryPaginatorModel","getHistory","GameTypeId","SessionGamingHistoryRecordModel","TotalBets","TotalWins","SessionBalance","SessionEndDateTime","GameSessionId","SessionGamingHistoryPaginatorModel","getGameSessionHistory","GamingHistoryService","maxPageSize","CompaniesService","ServiceFactory","sdkHooksProvider","windowService","domService","httpService","_appStartupConfigs","_languageData","_externalLinks","Lazy","_userMenu","_pokerIntegration","_partyJackpot","_verticalGamesList","_lobbyGameInfoPreview","_aiEngine","_aiNewEngine","_deepLink","_gameRouteHandler","_gamesFilter","_dynamicFilterFactory","_runningGame","_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","_mainScreen","_pwaManifest","_progressiveWebApp","_miniOrbitCommunicationAdapterFactory","_freeplayVouchers","_drawerService","_dailyDeal","_omgProxy","_jackpotsWithState","_gradualIncreaseHelperFactory","_walletProxy","_safezone","_safezoneObjectFactory","_tools","_sessionCooldown","_mediaQuery","_api","_graphyteClickstream","_orbitComponentToSdkAdapter","_graphyte","_messageBroker","_appLauncher","_actionHandler","_floatingBubbles","_restrictionRuler","_redTiger","_casinofiedAnalytics","_httpLiveStream","_httpWithRequestTimeMeasurement","_cashier","_playerOfferings","_qaEnvironmentPopUpBlockerService","_limitsToaster","_burnoutService","_pixiAppService","_gameAnimatedIconsManagerService","_webGlContextManagerService","_toolTip","_gamingHistory","_companies","SplashService","forceInit","fireOrbitInitComplete","LogoContainerDefaultBox","LogoContainerCasino888Box","sideMenuLogoBackground","logoDecoration","LogoContainerCasino777Box","LogoContainerBox","LogoImageDefaultBoxCasino777","LogoImageDefaultBoxHarringtonDelaware","LogoImageDefaultDoverDowns","LogoImageDefaultWSOP","LogoImageDefaultHarrash","LogoImageDefaultBox","LogoImageBox","LogoVipImageDefaultBox","LogoVipImageDefaultBoxCasino777","LogoVipImageDefaultBoxHarringtonDelawareDoverDowns","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","profileBoxMessagesBackground","userMenuBalanceBorder","IndicatorCasino777Box","IndicatorBox","IndicatorIconBgPosition","listLayout","casino777","harrahsAndWsop","FreePlay","Challenges","getBackgroundPosition","themeKey","iconSet","iconThemeSet","IndicatorIconDefaultBox","IndicatorIconCasino777Box","IndicatorIconHarrahsWsopBox","IndicatorIconBox","pulseAnimation","IndicatorBadgeBox","backgroundInListLayout","IndicatorTextDefaultBox","IndicatorTextCasino777Box","IndicatorTextBox","ProfileBoxMessagesIndicator","indicatorIsActive","indicatorActive","freeplayVouchers","setFreePlayIndicatorRef","numberOfMessagesIsDefinedAndGreaterThanZero","hasAwaitingMessages","OmgIndicator","omgProxy","FreeplayIndicator","ChallengesIndicator","hasActiveChallenges","ProfileMessagesDividerDefaultBox","ProfileMessagesDividerCasino777Box","ProfileMessagesDividerHarrahsWsopBox","ProfileMessagesDividerBox","ProfileButtonsDefaultBox","ProfileButtonsHarrahsWsopBox","ProfileButtonsBox","ProfileCashierButtonDefaultBox","ProfileCashierButtonCasino777Box","ProfileCashierButtonCasino888Box","ProfileCashierButtonDelawareparkDoverdownsBox","ProfileCashierButtonHarringtonBox","ProfileCashierButtonHarrahsWsopBox","ProfileCashierButtonBox","ProfileCashierAddButtonDefaultBox","ProfileCashierAddButtonHarrahsWsopBox","ProfileCashierAddButtonBox","ProfileWrapperBox","ProfileMessagesDefaultBox","ProfileMessagesCasino777Box","ProfileMessagesBox","MARKETING_DL","ProfileBox","_renderLogin","_renderCashier","_renderProfileBoxMessages","myChallenges","_openLogin","AddIcon","addIcon","plusButton","BrandListComponent","_onBrandClick","brandConfig","class","_renderBrand","StoreButton","store_button","appLink","preventDefaultOnClick","_getImageSource","imgSrc","imgSrcFallback","MenuLinksGroupsContainerBox","SideMenuContainerBox","SideMenu","linkBlocks","menuLinksBlockOrder","_renderSideMenuSection","_renderMobileMenuElements","_renderHelpAndLangSwitcher","_renderBrandList","_renderInsideOrbitMenuContainerMobile","_renderStoreButton","sideMenuConfiguration","isLanguageSwitcherEmpty","helpLinkMobile","_renderMobileHelp","_renderMobileLangSwitcher","openHelp","openMobileLanguageSwitcher","brand_sites","sites","LanguageSwitcherDropdownDefaultBox","LanguageSwitcherDropdownBox","LanguageSwitcherListDefaultBox","LanguageSwitcherListBox","h4","LanguageSwitcherTitleDefaultBox","LanguageSwitcherTitleBox","LanguageSwitcherListItemDefaultBox","LanguageSwitcherListItemBox","isSelected","componentTextLight","LanguageSwitcherItemLabelDefaultBox","LanguageSwitcherItemLabelBox","isChecked","LanguageSwitcherItemCheckboxDefaultBox","LanguageSwitcherItemCheckboxBox","LanguageSwitcherSectionComponent","_selectItem","makeCurrent","htmlId","isCurrent","_renderOneItem","LanguageSwitcherSectionSeparatorDefaultBox","LanguageSwitcherSectionSeparatorBox","LanguageSwitcherDropdownComponent","_renderSection","MobileMenuHeaderBox","MobileBackDefaultBox","MobileBackCasino777Box","MobileBackBox","MobileBackLabelBox","MainNav","mainNavRef","dragProperties","initialPointerX","initialNavMenuTransform","isNavigation","sideMenuDarkLogo","BackIcon","backButtonHandler","_hideMobileMenu","backButtonUseLabel","backButtonCyClass","isRTL","pointerX","touches","pointerXDelta","windowSize","innerWidth","minMainNavXToAutoClose","currentMainNavXPosition","removeProperty","MAIN_NAV","OPEN_MENU","onTouchMove","onTouchEnd","_onStopDragging","_renderMobileMenuHeader","_renderLogo","_renderProfileBox","UserMenuSectionDefaultBox","userMenuSectionText","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","LogOutLinkCasino777Box","LogOutLinkBox","UsefulLinks","userMenuService","doLogout","BonusAndCashBalanceBox","BalanceInnerBox","BalanceTitleInnerDefaultBox","BalanceTitleInnerCasino777Box","userMenuBalanceTitle","BalanceTitleInnerHarrahsWsopBox","BalanceTitleInnerBox","BalanceValueBonusAndCashDefaultBox","BalanceValueBonusAndCashCasino777Box","BalanceValueBonusAndCashHarrahsWsopBox","BalanceValueBonusAndCashBox","BonusAndCashBalance","BalanceButtonsGroupDefaultBox","BalanceButtonsGroupCasino777Box","BalanceButtonsGroupHarrahsWsopBox","BalanceButtonsGroupBox","UserBalanceButtons","onDeposit","onWithdraw","UserMenuBalanceTitleCasino777Box","UserMenuBalanceTitleBox","commonBalanceSectionMixin","UserBalanceSectionDefaultBox","UserBalanceSectionMobileBox","UserBalanceSectionBox","UserBalanceSectionIconDefaultBox","UserBalanceSectionIconCasino777Box","UserBalanceSectionIconBox","BalanceValuePrimaryDefaultBox","BalanceValuePrimaryCasino777Box","BalanceValuePrimaryBox","UserBalance","_renderButtons","launchDeposit","launchWithdraw","DrawerBox","launchDrawerLink","DrawerBoxes","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","UserMenu","holderRef","_renderMobileBackButton","_closeMenu","_renderMenuContents","HelpButtonComponent","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","BrandIcon","_getBrandIcon","crossBrandsConfig","cross_brand","_renderCrossBrandLinks","MobileBurgerMenuComponent","_clickHandler","HeaderWelcomeButtonsContainerDefaultBox","HeaderWelcomeButtonsContainerHarrahsBox","HeaderWelcomeButtonsContainerBox","HeaderWelcomeButtonsButtonBox","HeaderWelcomeButtonsComponent","_register","_downloadApp","openDownloadApp","register_in_login","_renderSdkWelcomeComponent","_getMarketingDataObject","showUserBadge","postLoginLayoutPc","styleSelectors","_getWelcomeStyleObj","preLoginLayoutPc","preLoginLayoutMobile","externalBrand","_renderDownloadApp","_showRegistrationButton","_renderWithRegistrationButton","_renderWithoutRegistrationButton","HeaderLanguageSwitcherBox","HeaderLanguageSwitcherComponent","_timer","_toggleDropdown","_clearCollapseTimeout","_colapseDropdown","_startCollapseTimeout","earthGlobeIcon","NavbarSeparatorDefaultBox","NavbarSeparatorBox","nav","HeaderNavbarContainerDefaultBox","DefaultPcBox","DefaultMobileBox","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","spinnerBackground","SpinnerBox","SpinnerBrandDefaultBox","SpinnerBrandBox","spinnerAnimationKeyframes","SpinnerBackgroundDefaultBox","SpinnerBackgroundCasino777Box","SpinnerBackgroundCIPBox","SpinnerBackgroundCISBox","SpinnerBackgroundBox","SpinnerLogoDefaultBox","SpinnerLogoCasino777Box","SpinnerLogoCIPBox","SpinnerLogoWSOPBox","SpinnerLogoDelawareParkBox","SpinnerLogoDoverDownsBox","SpinnerLogoHarringtonBox","SpinnerLogoCISBox","SpinnerLogoBox","SpinnerComponent","shouldShowSpinner","BreadcrumbsComponent","showBreadcrumbs","cmsPages","bcrumb","AppFooterComponent","footerConfiguration","footer","RouterOutletBox","RouterOutletComponent","BottomStickyNavbarContainerBox","shouldElevate","StickyNavigationMenuListBox","StickyNavigationMenuItemBox","iconNormalStatePosY","iconActiveStatePosY","StickyNavigationMenuItemIconDefaultBox","StickyNavigationMenuItemIconWsopBox","StickyNavigationMenuItemIconHarrahsBox","StickyNavigationMenuItemIconCasino777Box","StickyNavigationMenuItemIconHarringtonBox","StickyNavigationMenuItemIconDoverDownsBox","StickyNavigationMenuItemIconDelawareParkBox","StickyNavigationMenuItemIconBox","StickyNavigationMenuActiveIndicatorDefaultBox","StickyNavigationMenuActiveIndicatorWsopBox","StickyNavigationMenuActiveIndicatorHarrahsBox","StickyNavigationMenuActiveIndicatorCasino777Box","StickyNavigationMenuActiveIndicatorDoverDownsBox","StickyNavigationMenuActiveIndicatorHarringtonBox","StickyNavigationMenuActiveIndicatorDelawareParkBox","StickyNavigationMenuActiveIndicatorBox","StickyNavigationMenuActiveIndicatorRailBox","StickyNavigationMenuActiveIndicatorComponent","StickyNavigationMenuListComponent","allMenuLinks","validNavPaths","activeElement","stickyMenuBoundingBox","resizeEventHandler","activeLink","activePosition","_setActiveLink","_setActiveLinkPosition","elBoundingBox","stickyMenuLeftEdge","elBoundingBoxCenter","_isActiveLink","_setActiveLinkRef","_handleLinkClick","linksOrder","stickyMenuBlockOrder","linksConfig","_renderLink","el","_setStickyMenuContainerRef","_renderLinksList","StickyNavigationMenuComponent","FloatingBubblesContainerBox","FloatingBubbleBox","FloatingBubblesComponent","bubble","MainWrapperDefaultBox","MainWrapperCasino777Box","lightTeal","MainWrapperBox","QAEnvironmentPopUpBlocker","ContainerComponent","_showQAEnvironmentPopUpBlocker","qaEnvironmentPopUpBlockerCookie","URLSearchParams","_renderRightDrawer","_renderFullOrbitMobileLayout","_renderFullOrbitPcLayout","_renderMiniOrbit","_renderFullOrbit","ModalDialogsContainerComponent","OrbitComponentsRenderedInsideSdkContainer","componentsPortals","PlayerBurnoutLayerComponent","burnoutService","checkOmg","TooltipArrowDefaultBox","borderColor","TooltipArrow777Box","TooltipArrowBox","TooltipContentBox","TooltipCloseButtonBox","invertColors","TooltipContainerDefaultBox","TooltipContainer777Box","TooltipContainerBox","ToolTipContainerComponent","toolTipService","currentTooltip","closeTooltip","setTooltipContainer","AppComponent","removeSplash","splashTime","disableCSSOMInjection","stylisPlugins","RtlPlugin","renderGlobalStyles","renderApp","orbitElement","InMemoryLocalStorageService","_localStorageData","_cookies","B2CFrameworkLoader","_languageIso2","_cmsSource","overrides","_loadStyleTag","_buildFilePath","_loadScriptTag","scriptTag","styleTag","DEFAULT_CONFIGS","resolveAssets","assetsContainer","assetLocationInfo","Asset","resolveLocation","getThemeName","baseUri","isMiniOrbitBasePath","ORBIT_LOCATION_OVERRIDE_BASE","selectTheme","themeDefinitionModule","themeDefinition","Assets","configure","enforceActions","createStorage","lsData","localStorage","StorageService","getLanguageData","languageIso3","languageDataModule","engLang","startApplication","WindowService","DomService","HttpService","loggerService","ConsoleLoggerService","configurationsReader","readApplicationConfigurations","languageData","loadB2CFramework","promo","MainScreenDefaultBox","main","MainScreenCasino888Box","lightBlack","darkGreen","blackGreen","MainScreenHarrahsBox","MainScreenWsopBox","MainScreenCipBox","MainScreenBox","MainScreenComponent","_captureMainScreenRef","setMainScreenElement","MAIN_SCREEN","SeoBreadcrumbsContainerBox","SeoBreadCrumbsComponent","_templateID","_fallbackFileName","_areEqual","val1","val2","TableSeatsComponent","Seats","SeatsTaken","Players","_isTableFull","_getTableIsFullTranslationKey","_getPlayersCountFormated","fullSeatIcon","seatIcon","_getTableIsFullText","_getSeatsIconSource","LayoutWrapperBox","LayoutWrapperDefaultBox","IntersectionSpyComponent","_captureIntersectionSpy","darkMain","base01","base02","base03","base04","base05","base06","base07","base08","base09","base10","base11","_onScrollSubscription","_scrollContainerReaction","_scrollTopMinValue","onWindowScroll","_setIsSticky","_updateHeaderHeight","scroll","_isSticky","getHeaderElement","QA_ENV_URBAN_DEFAULT_SETTINGS","defaultIcon","defaultTitle","defaultActionURL","appKey","vapidPublicKey","freeplayDirectiveConfig","FreeplayDetails","MiniOrbitFreeplayDetails","brandGreen","turbo","darkBlack","darkGrey","slateGrey","softGrey","blackGrey","middleGrey","smokeGrey","limeGreen","silverGrey","vipYellow","vipPurple","vipBlue","_relativePath","_brandsOverrides","_locationInfo","locationInfo","negateNextRule","formatRule","EMBEDDED_HYBRID","MINI_ORBIT","Svg","svg","flipOnRTL","SvgIcon","defaultSize","Px","Percent","ratio","viewBox","version","xmlns","LiveCasinoGridItemInfobarDefaultBox","infobarBackground","LiveCasinoGridItemInfobarCasino777Box","LiveCasinoGridItemInfobarBox","LiveCasinoGridItemBetIntervalDefaultBox","LiveCasinoGridItemBetIntervalCasino777Box","sepia","LiveCasinoGridItemBetIntervalBox","LiveCasinoGridItemClosedMessageDefaultBox","closedMessageBackground","LiveCasinoGridItemClosedMessageCasino777Box","LiveCasinoGridItemClosedMessageBox","LiveCasinoGridItemThumbnailOverlayBox","LiveCasinoGridItemThumbnailBox","LiveCasinoGridItemWrapperDefaultBox","LiveCasinoGridItemWrapperCasino777Box","LiveCasinoGridItemWrapperBox","LiveCasinoGridItemThumbnailImageBox","LiveCasinoGridItemTitleDefaultBox","LiveCasinoGridItemTitleCasino777Box","LiveCasinoGridItemTitleBox","LiveCasinoGridItemBetBehindButtonDefaultBox","LiveCasinoGridItemBetBehindButtonCasino777Box","LiveCasinoGridItemBetBehindBox","LiveCasinoGridItemOpenAtBox","LiveCasinoArenaGridItem","isMobilePhone","Dealer","dealerIcon","tableIsFull","BetBehind","_renderDealerName","_renderSeatsCount","_renderRouletteDraws","_renderBetBehindButton","TableImage","imageRandom","addQueryParam","_renderGameThumbnailImage","_renderGameInfobar","_renderGameIsClosed","_renderGameThumbnail","_renderGameItem","CommonStyles","LobbyHeaderPCBox","LobbyHeaderMobileBox","LobbyHeaderDefaultBox","LobbyHeaderCasino777Box","LobbyHeaderBox","LobbyHeaderTitlePCBox","LobbyHeaderTitleMobileBox","LobbyHeaderTitleBox","LobbyHeaderLinePCBox","LobbyHeaderLineMobileBox","arenaTitleTopDevider","arenaTitleBottomDevider","LobbyHeaderLineDefaultBox","LobbyHeaderLineCasino777Box","LobbyHeaderLineBox","FiltersMobileButtonDefaultBox","FiltersMobileButtonCasino777Box","FiltersMobileButtonBox","FiltersMobileIconDefaultBox","FiltersMobileIconCasino777Box","FiltersMobileIconBox","FiltersGamesMobilePopupBox","FiltersMobileButtonsBox","FiltersGamesListMobileComponent","_closePopup","filterToToggle","_applyFilters","checkedFiltersIds","applyMultipleFilters","_clearFilters","_renderPopupButtons","FiltersMobileButtonComponent","shouldHideFiltersButtonMobile","LobbyHeaderButtonsContainerBox","LobbyHeaderDefaultButtonsBox","LobbyHeader777ButtonsBox","LobbyHeaderButtonsBox","LobbyHeaderComponent","handleSearchClick","lobbyHeaderClasses","LiveCasinoFilterButtonsDefaultBox","LiveCasinoFilterButtonsCasino777Box","LiveCasinoFilterButtonsBox","LiveCasinoNavbarScrollBox","LiveCasinoNavbarOverflowBox","STICKY_NAVBAR","LiveCasinoNavbarDefaultBox","LiveCasinoNavbarCipBox","LiveCasinoNavbarCasino777Box","LiveCasinoNavbarCisBox","LiveCasinoNavbarBox","ButtonsActiveIndicatorBox","activeIndicatorBg","activeIndicatorWidth","activeIndicatorPosition","LiveCasinoArenaNavbar","navbarRef","buttonsRefs","scrollContainerRef","_scrollEventHandler","_buttonsRefsFilters","_updateActiveIndicatorPosition","activeButton","currentFilterIndex","activeIndicator","offsetWidth","widthOffset","activeFilterButtonIndex","filterButton","_onFilterClicked","_getFilterInFirstEnter","filterIndex","_updateStateForFilterChange","setCurrentFilter","runFilter","clearFilters","nextProps","nextState","nextContext","_renderActiveIndicator","ClockComponentBox","ClockComponent","datetime","ClockLastLoginDefaultBox","ClockLastLoginCasino777Box","ClockLastLoginBox","LastLoginBox","ClockAndLastLoginBoxComponent","ClockAndLastLoginBox","getTimeFormat","_renderLastLoginComponent","lastLoginDisplay","getDateTimeFormat","RegulatoryDataBox","GamblingWarningBox","GamblingWarningComponent","gamblingMessageConfig","gambling_message","Mobilebox","ResponsibleGamingIconsBox","ResponsibleIconsComponent","ageButtonConfig","iconType","responsibleIconsConfig","_renderAgeButton","ageButton","RegulatoryDataComponent","_captureHeaderUpperRef","setHeaderRegulationDataElement","_renderMobileLastLogin","_getRegulatoryContent","filterTop","filterMiddle","filterBottom","FilterLinkIconDefaultBox","FilterLinkIconCasino777Box","FilterLinkIconBox","FilterLinkDefaultBox","FilterLinkBox","FilterLinkComponent","_onFilterClick","FiltersGamesListBox","FilterLinkListComponent","_toggleHandler","_renderOneFilter","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","v","_showCongratsText","BurnoutFab","removeButton","BurnoutFabContainer","BurnoutFabInner","disappearAnimation","shadowAppear","BurnoutAnimationWrapper","_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","LiveCasinoGridItemDrawsBox","LiveCasinoGridItemDrawDefaultBox","drawColor","drawRedItemBackground","drawGreenItemFirstChildBackground","drawRedItemFirstChildBackground","LiveCasinoGridItemDrawCasino777Box","LiveCasinoGridItemDrawBox","ROULETTE_NUMBERS_MAP","green","RouletteDrawsComponent","drawValue","_getDrawColor","UsefulLinksListDefaultBox","UsefulLinksListCipBox","UsefulLinksListBox","UsefulLinksListComponent","onItemClick","EmptyBannerContainerBox","EmptyBannerComponent","MediaType","MediaOrientation","MediaPointer","breakpoints","MediaQueryBuilder","_mediaType","w","precision","unshift","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","LobbyWrapperDefaultBox","LobbyWrapperCasino777Box","LobbyWrapperBox","LobbyGridDefaultBox","LobbyGridCasino777Box","LobbyGridBox","LiveCasinoGridItemBox","LiveCasinoGridItemInfobarIconBox","LiveCasinoGridItemInfoItemBox","ButtonBox","rounded","hasIcon","hasLabel","iconSize","strokeWidth","lateralPadding","colorSet","bg","elevated","shadow","rotated45","ButtonLabelBox","fontSize","ButtonIconWrapperBox","$Button","otherProps","presetValues","baseUIComponents","presets","themePresetDefaults","defaults","iconPlacement","strokeValues","sizeVariantValues","iconSizeValue","renderIcon","Em","Button","withTheme","anchorRef","_getAnchorProps","_renderAnchor","webpackAsyncContext","__webpack_require__","code","ids","exports","brandYellow","brandTeal","softTeal","milkyTeal","peach","patternStrip","patternFill","blackRed","shadowTeal","shadowYellow","greyTeal","lightGreen","hex","opacity","omg","myAccount","urlParam","fonts","_888_Black_eot","_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","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","game_default_background_png","horizontal_line_glow_mobile_png","horizontal_line_glow_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_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_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","state_location_icon_svg","swiper_layout_bottom_shaddow_png","user_menu_box_icon_png","user_png","_888casinologo_dark_png","blackSquare_png","div_lang_png","germany_panic_icon_png","delaware_park_logo_png","doverdowns_logo_png","hccasinologo_png","harrington_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","games_icons_background","BGcardandtable_png","BGGameBlack_png","BGGameBlackSquare_png","BGicon_png","BGredTiger_png","history","history_details_left_corner_png","history_calendar_png","jackpot_widget","crown_png","daily","background_png","logo_png","high_noon","info_dialog","mobile_png","mobile_landscape_png","pc_png","live_party","in_game_widget_background_png","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","begambleaeare_logo_png","gamecare_logo_png","safeZoneIcon_svg","wheel_of_fortune","colors_svg","shell_svg","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","_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","fp_vouchers_bg_png","freeplayVoucherBG_png","freeSpinsVoucherBG_png","full_screen_png","full_screen_off_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","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","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"],"mappings":"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lM,EAAI,GAC7B,OAAOhnM,QAAQg3C,IAAIgwJ,EAAIx8M,MAAM,GAAG6U,IAAIynM,EAAoBrzM,IAAItC,MAAK,WAChE,OAAO21M,EAAoBhlM,MAG7B+kM,EAAoBp2M,KAAO,WAC1B,OAAO3G,OAAO2G,KAAK4O,IAEpBwnM,EAAoB/kM,GAAK,IACzB1Q,EAAO61M,QAAUJ,G,oBCxEjB,IAAIxnM,EAAM,CACT,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,KAED,WAAY,CACX,KAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,IAED,QAAS,CACR,IACA,IAED,WAAY,CACX,IACA,KAGF,SAASwnM,EAAoBhgE,GAC5B,IAAIigE,EAAoB57M,EAAEmU,EAAKwnI,GAC9B,OAAO7mI,QAAQ6S,UAAU1hB,MAAK,WAC7B,IAAIsC,EAAI,IAAIkc,MAAM,uBAAyBk3H,EAAM,KAEjD,MADApzI,EAAEszM,KAAO,mBACHtzM,KAIR,IAAIuzM,EAAM3nM,EAAIwnI,GAAM/kI,EAAKklM,EAAI,GAC7B,OAAOhnM,QAAQg3C,IAAIgwJ,EAAIx8M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","file":"static/js/orbit-main.e2235554.chunk.js","sourcesContent":["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 JackpotInternalId {\r\n Daily = 8000,\r\n Twilight = 8001\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}\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","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 Doverdowns = \"doverdowns\",\r\n Delawarepark = \"delawarepark\",\r\n Harrington = \"harrington\"\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 {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\nconst DefaultBox = styled.div`\r\n position: relative;\r\n width: 100%;\r\n\r\n .${LOBBY_PAGE} & {\r\n z-index: 2;\r\n background-color: ${props => props.theme.colors.bodyBackground}\r\n }\r\n\r\n ${props => props.minHeight && css`\r\n min-height: ${props.minHeight};\r\n`};\r\n`;\r\n\r\nexport const BannerContainerDefaultBox = DefaultBox;\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();","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_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\n","export enum BalanceType {\r\n CASH = \"cash\",\r\n BONUS = \"bonus\",\r\n BOTH = \"both\"\r\n}\r\n","import { Check } from '@sparkware/app-utils';\r\nimport { observable, action, computed } from 'mobx';\r\nimport { ServiceBase } from './../ServiceBase';\r\nimport { IVideoLiveStreamPlayer } from './video-live-stream-players/video-live-stream-player.interface';\r\nimport { IStreamData, IStreamInfo } from './video-live-stream.service.interface';\r\nimport { IServiceFactoryExtended } from './../service-factory-extended.interface';\r\nimport { IVideoLiveStreamService } from './video-live-stream.service.interface';\r\n\r\nconst TEST_DATA = {\r\n 2330093: {\r\n streamSource: 'https://888-promo.cdn.ptlive.video/promo-888-abw.smil/playlist.m3u8',\r\n watchTimeLimit: 120000\r\n },\r\n 2330017: {\r\n streamSource: 'https://888-promo.cdn.ptlive.video/promo-888-qr.smil/playlist.m3u8',\r\n watchTimeLimit: 120000\r\n },\r\n 2330030: {\r\n streamSource: 'https://888-promo.cdn.ptlive.video/promo-888-agr.smil/playlist.m3u8',\r\n watchTimeLimit: 120000\r\n },\r\n 2330162: {\r\n streamSource: 'https://888-promo.cdn.ptlive.video/promo-888-mfr.smil/playlist.m3u8',\r\n watchTimeLimit: 120000\r\n },\r\n 2010163: {\r\n streamSource: 'https://live105.egprom.com/app/43/amlst:dc3_ct_auto/playlist.m3u8',\r\n watchTimeLimit: 120000\r\n },\r\n 2010033: {\r\n streamSource: 'https://live105.egprom.com/app/10/amlst:lightr1_imr_auto/playlist.m3u8',\r\n watchTimeLimit: 120000\r\n },\r\n 2010013: {\r\n streamSource: 'https://live105.egprom.com/app/10/amlst:888r1_imr_auto/playlist.m3u8',\r\n watchTimeLimit: 120000\r\n },\r\n 2010015: {\r\n streamSource: 'https://live105.egprom.com/app/10/amlst:888nlr1_imr_auto/playlist.m3u8',\r\n watchTimeLimit: 120000\r\n },\r\n};\r\n\r\nexport const GA_LIVE_STREAM_CATEGORY = \"ORBIT_LIVE_STREAM\";\r\n\r\nexport class VideoLiveStreamService extends ServiceBase implements IVideoLiveStreamService {\r\n\r\n @observable.ref videoStreamsData: IStreamData = {};\r\n @action.bound\r\n private _setVideoStreamsData(videoStreamsData: IStreamData): void {\r\n this.videoStreamsData = videoStreamsData;\r\n }\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\t if (this.services.user.isAuthorized) {\r\n\t return false;\r\n\t }\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 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 }\r\n\r\n private async _init() {\r\n const isSupported = await this._checkIfSupported();\r\n\r\n if (isSupported) {\r\n // @TODO: this data should be read from admin. For day 1 launch, it will be hardcoded in the code\r\n let streamData: IStreamData = {};\r\n Object.keys(TEST_DATA).forEach((key) => {\r\n let streamInfo: IStreamInfo = {\r\n ...TEST_DATA[key]\r\n }\r\n streamData[key] = streamInfo;\r\n });\r\n this._setVideoStreamsData(streamData);\r\n } else {\r\n this.services.sdk.structuredLoggingService\r\n .getLogger()\r\n .addCategory(GA_LIVE_STREAM_CATEGORY)\r\n .addAction('VideoStreamNotSupported')\r\n .info();\r\n }\r\n\r\n this._setIsSupported(isSupported);\r\n }\r\n\r\n private async _checkIfSupported() {\r\n const LiveStreamNativePlayer = await import('./video-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-live-stream-players/hls/video-live-stream-player-hls').then(module => module.LiveStreamHlsPlayer);\r\n if (LiveStreamHlsPlayer.isSupported()) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n async getLiveStreamPlayer(gameType: number, videoReference: HTMLVideoElement): Promise {\r\n\r\n const {streamSource, watchTimeLimit} = {...this.videoStreamsData[gameType]}; // use ... destructuring otherwise if this.videoStreamsData[gameType] is undefined it will crash\r\n\r\n const LiveStreamNativePlayer = await import('./video-live-stream-players/native/video-live-stream-player-native').then(module => module.LiveStreamNativePlayer);\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-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 return null;\r\n }\r\n\r\n toggleVideoSound() {\r\n this._setIsVideoMuted(!this.isVideoMuted);\r\n this.services.analytics.sendAnalytics(GA_LIVE_STREAM_CATEGORY, \"SOUND_CLICK\", `${this.isVideoMuted ? \"OFF\" : \"ON\"}`, Object.keys(this.videoStreamsData)[0], true);\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","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 };\r\n render() {\r\n let bankroll = this.services.walletProxy.bankroll[this.props.balanceType!];\r\n const balanceMaxChars = 15;\r\n // Bankroll length limited by 15 chars\r\n const numberIndex = bankroll.search(/[0-9]/g);\r\n const symbolIndex = bankroll.search(/[^0-9.,]/g);\r\n let balance: string;\r\n\r\n if (numberIndex > symbolIndex) {\r\n balance = bankroll.slice(numberIndex, numberIndex + balanceMaxChars);\r\n bankroll = bankroll.slice(symbolIndex, numberIndex) + balance;\r\n } else {\r\n balance = bankroll.slice(numberIndex, Math.min(balanceMaxChars, symbolIndex - numberIndex));\r\n bankroll = balance + bankroll.slice(symbolIndex);\r\n }\r\n\r\n let WrapperComponent = this.props.WrapperComponent!;\r\n return \r\n { bankroll }\r\n ;\r\n }\r\n}\r\n","import { 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 forDoverDowns(override: T): this {\r\n this._registry[ThemeName.Doverdowns] = 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 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 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.arenaTitle};\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\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 {this._renderLogoAndTitle()}\r\n \r\n )\r\n\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}>`\r\n background-size: contain;\r\n height: 50px;\r\n width: 50px;\r\n position: fixed;\r\n bottom: 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.brandSecondary};\r\n border-radius: 50%;\r\n ` : '' }\r\n`;","import styled, {css, keyframes} 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 => keyframes`\r\n 0% {\r\n transform: scale(0.9);\r\n box-shadow: 0 0 0 0 ${hexToRgba(props.theme.colors.brandSecondary, 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.brandSecondary, 0)};\r\n }\r\n 100% {\r\n transform: scale(0.9);\r\n box-shadow: 0 0 0 0 ${hexToRgba(props.theme.colors.brandSecondary, 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)`\r\n z-index:201;\r\n`;\r\n","import styled from \"styled-components\";\r\nimport { CssRule } from \"../../../../themes/architecture/css-helpers/css-rule\";\r\nimport {styledByDevice} from \"../../../../themes/architecture/styled-by-device\";\r\n\r\nconst DefaultBox = styled.div`\r\n width: 450px;\r\n padding: 10px;\r\n`;\r\n\r\nexport const PcBox = styled(DefaultBox)`\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n width: 390px;\r\n }\r\n`;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\r\n width: 100%;\r\n ${CssRule.For.mobile.tablet.build()} & {\r\n width: 450px;\r\n }\r\n`;\r\n\r\nexport const LinkToOfferBannerDefaultBox = styledByDevice(PcBox, MobileBox);","import {LinkToOfferBannerDefaultBox} from \"./link-to-offer-banner.default.box\";\r\n\r\nexport const LinkToOfferBannerBox = LinkToOfferBannerDefaultBox;\r\n","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 {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 {CmsBannerComponent} from \"../cms-banner/cms-banner.component\";\r\nimport {LinkToOfferBannerBox} from \"./boxes/link-to-offer-banner/link-to-offer-banner.box\";\r\nimport { IModalDialogHandler } from '../../services/dialog/dialog.service.interface';\r\nimport {LinkToOfferConfiguration} from \"../../services/configurations/config-data-sections/link-to-offer.configuration\";\r\nimport { action, observable } from 'mobx';\r\nimport { IOffer } from '../../services/player-offerings/player-offerings.service';\r\nimport { Check } from '@sparkware/app-utils';\r\n\r\nexport interface LinkToOfferComponentProps {\r\n linkToOfferConfig: LinkToOfferConfiguration;\r\n}\r\n\r\ninterface LinkToOfferComponentState {\r\n dialogHandler: IModalDialogHandler | null;\r\n}\r\n\r\n@observer\r\nexport class LinkToOfferComponent extends OrbitComponentWithState {\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n this._subscribe();\r\n }\r\n\r\n\r\n\r\n @observable.ref\r\n offerToShow: IOffer = null;\r\n\r\n @action.bound\r\n _updateOfferToShow() {\r\n //ofer to show is first visible one\r\n const offers = this.services.playerOfferings.getOffers(this.props.linkToOfferConfig);\r\n this.offerToShow = offers.find(offer => offer.shouldBeVisible());\r\n if (this.offerToShow) {\r\n this.offerToShow.init();\r\n }\r\n }\r\n\r\n private _subscribe() {\r\n this.reaction(\r\n () => { return {\r\n isAuthorized: this.services.user.isAuthorized,\r\n bannersMap: this.services.cmsBanners.bannersMap,\r\n hasWheelOfFortunePromotion: this.services.playerOfferings.hasWheelOfFortunePromotion\r\n }},\r\n (data) => {\r\n this._updateOfferToShow();\r\n },\r\n {\r\n fireImmediately: true\r\n }\r\n );\r\n }\r\n\r\n render() {\r\n if(!this.props.linkToOfferConfig && !this.offerToShow) {\r\n return null;\r\n }\r\n\r\n if (this.state.dialogHandler) {\r\n let CloseIconComponent = this.services.theme.currentTheme.icons.linkToOfferCloseIcon;\r\n\r\n return (\r\n {this._closeDialog()}}\r\n shouldAnimate={false}\r\n hasCircle={true}>\r\n \r\n \r\n );\r\n }\r\n\r\n const hasBannerContent = Check.isObject(this.services.cmsBanners.bannersMap[this.offerToShow?.bannerId.key]);\r\n if (this.offerToShow && this.offerToShow.shouldBeVisible() && hasBannerContent) {\r\n this.services.analytics.sendAnalytics(this.offerToShow.analyticsCategory, this.services.routing.currentRoute.data.arenaType, 'View_Floating_Button');\r\n\r\n return (\r\n {this._onLinkToOfferClickerHandler()}}\r\n shouldAnimate={this.offerToShow.shoulUseLinkToOfferAnimation()}\r\n hasCircle={this.offerToShow.shoulUseLinkToOfferAnimation()}\r\n >\r\n {this.offerToShow.render()}\r\n \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public state: LinkToOfferComponentState = {\r\n dialogHandler: null\r\n };\r\n\r\n private _onLinkToOfferClickerHandler():void{\r\n this._openLinkToOfferDialog();\r\n this.services.analytics.sendAnalytics(this.offerToShow.analyticsCategory, this.services.routing.currentRoute.data.arenaType,'Open_Floating_Button');\r\n }\r\n\r\n private _renderBanner() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private _openLinkToOfferDialog(): void {\r\n\r\n this.services.dialog.showModal((dialogHandler) => {\r\n this.setState({\r\n dialogHandler: dialogHandler\r\n });\r\n return this._renderBanner();\r\n }, {\r\n title: ' ',\r\n onClosed: () => this._onClosedDialog(),\r\n hideCloseButton: true,\r\n forceTransparentBackground: true,\r\n disableFullscreenMode: true,\r\n forceCentralization: true,\r\n hideDialogHeader: true,\r\n applyMaxHeight: true\r\n });\r\n }\r\n\r\n private _onClosedDialog() {\r\n this.services.analytics.sendAnalytics(this.offerToShow.analyticsCategory, this.services.routing.currentRoute.data.arenaType, 'Close_Floating_Button');\r\n this.setState({dialogHandler: null});\r\n }\r\n\r\n private _closeDialog = () => {\r\n if (this.state.dialogHandler) {\r\n this.state.dialogHandler.close();\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) {\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 if (this._intersectionSpy.getBoundingClientRect().top < this.services.mainScreen.mainScreenElement.getBoundingClientRect().bottom) {\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 { TimeSpan } from \"@sparkware/app-utils\";\r\n\r\ninterface ImagePreloadPromiseResponse {\r\n error: string | null;\r\n backgroundUrl: string;\r\n imageObj: HTMLImageElement;\r\n}\r\n\r\nexport function imagePreload(src: string, timeout?: TimeSpan) {\r\n timeout = timeout || TimeSpan.fromMinutes(2);\r\n return new Promise((res, rej) => {\r\n let image = new Image();\r\n image.onload = () => {\r\n clearTimeout(timeoutRejection);\r\n res({error: null, backgroundUrl: src, imageObj: image});\r\n };\r\n image.onerror = ()=> {\r\n rej({\r\n error: 'Could not load image on path => ' + src,\r\n backgroundUrl: src\r\n });\r\n };\r\n const timeoutRejection = setTimeout(() => {\r\n rej({\r\n error: 'Timeout. Could not load image on path => ' + src,\r\n backgroundUrl: src\r\n });\r\n }, timeout.totalMilliseconds);\r\n image.src = src;\r\n });\r\n}\r\n\r\nexport function imagePreloadWithDefault(src: string | null | undefined, defaultPath: string) {\r\n if (src) {\r\n return imagePreload(src).catch(() => {\r\n return imagePreload(defaultPath);\r\n });\r\n } else {\r\n return imagePreload(defaultPath);\r\n }\r\n}\r\n","\r\nexport enum 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\ninterface ITimeSpentReminderComponentBaseProps {\r\n playingTime: TimeSpan;\r\n};\r\ninterface ISessionTimeSpentReminderComponentProps extends ITimeSpentReminderComponentBaseProps {\r\n timerType: TSR_TYPE.SESSION_TIMER;\r\n}\r\ninterface IGameTimeSpentReminderComponentProps extends ITimeSpentReminderComponentBaseProps {\r\n timerType: TSR_TYPE.GAME_TIMER;\r\n onStopReminders: () => void;\r\n}\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}","export const Color = {\r\n brand_green: \"#ab192c\",\r\n white: \"#ffffff\",\r\n black: \"#000000\",\r\n light_black: \"#232323\",\r\n dark_black: \"#171717\",\r\n grey: \"#717171\",\r\n pink: \"#ff014f\",\r\n orange: \"#ff8a00\",\r\n red: \"#ff014f\",\r\n dark_grey: \"#161616\",\r\n slate_grey: \"#1e1e1e\",\r\n soft_grey: \"#303030\",\r\n black_grey: \"#0a0a0a\",\r\n dark_green: \"#001b01\",\r\n black_green: \"#001000\",\r\n middle_grey: \"#484848\",\r\n smoke_grey: \"#cacaca\",\r\n lime_green: \"#d2f800\",\r\n silver_grey: \"#5c5c5c\",\r\n\r\n\r\n vip_yellow: \"#f9c600\",\r\n vip_purple: \"#aa9aca\",\r\n vip_blue: \"#74adb3\",\r\n\r\n yellow: \"#ffff00\",\r\n pear: \"#d5ec37\",\r\n inchWorm: \"#7aec37\",\r\n\r\n transparent: \"transparent\",\r\n\r\n scCards: \"#12011A\",\r\n roulBJ: \"#071A01\",\r\n vidPoker: \"#000E24\",\r\n};","export default {\r\n \"iso3\": \"eng\",\r\n \"iso2\": \"en\",\r\n \"text\": {\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 \"RED_TIGER_DAILY_JACKPOT\": \"Red Tiger's Daily 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\r\n // game popup\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\r\n // party jackpotYou are now playing on Bonus Balance\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\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\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\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\r\n // jackpot widget\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\r\n \"FREEPLAY_INDICATOR\": \"FreePlay\",\r\n \"OMG_INDICATOR\": \"Notifications\",\r\n\r\n \"USER_LIKE_YOU\": \"TOP {topNumber} IN {countryName}\",\r\n \"YOUR_COUNTRY\": \"Your country\",\r\n\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\r\n //video live stream\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\r\n //Time Spent Reminder (= new reality check)\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_MAIN_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\r\n // Payments Redirect Focus\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 //Admin Lists Volatile\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\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\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 }\r\n}\r\n","import React from 'react';\r\nimport {StyledComponent} from 'styled-components';\r\nimport {OrbitTheme} from './orbit-theme.interface';\r\nimport {OrbitComponent} from '../../components/base-components/orbit-component/orbit-component';\r\nimport {observer} from 'mobx-react';\r\n\r\nexport function styledByDevice, O extends object = {}>(\r\n pc: StyledComponent, mobile: StyledComponent\r\n): StyledComponent {\r\n\r\n let ComponentDefinition = observer(class extends OrbitComponent{\r\n render() {\r\n let Component = null;\r\n\r\n if(this.services.device.isMobile) {\r\n Component = mobile;\r\n } else {\r\n Component = pc;\r\n }\r\n\r\n return (\r\n \r\n {this.props.children}\r\n \r\n );\r\n }\r\n });\r\n\r\n\r\n let finalComponent = React.forwardRef((props, ref) => );\r\n\r\n return (finalComponent as any) as StyledComponent;\r\n}","import {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 '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\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(): any {\r\n if (!this.services) {\r\n return null;\r\n }\r\n\r\n const mapperData = {};\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","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 {OrbitTheme} from '../../themes/architecture/orbit-theme.interface';\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\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: OrbitTheme,\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 };\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.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 = {\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.images.gameDefaultIcon.toString();\r\n result.backgroundDefault = this._theme.images.gameDefaultBackground.toString();\r\n\r\n return result;\r\n }\r\n\r\n private _waitForMapperCGP = (resolve) => {\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) => {\r\n let headerRegulationDataElement = this._sdkHooksProvider.getHeaderRegulationDataElement();\r\n this.waitForElement(this._waitForHeaderRegulationDataElement, headerRegulationDataElement, resolve);\r\n };\r\n\r\n waitForElement(method, element, resolve) {\r\n if(element) {\r\n resolve(element);\r\n } else {\r\n setTimeout(() => method(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) => 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?.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\r\n}\r\n\r\n\r\n\r\n","export const QA_ENVIRONMENT_POP_UP_BLOCKER_COOKIE:string = 'dontShowEnvironmentPopUpBlockerAgain';","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.storage.createCookie(QA_ENVIRONMENT_POP_UP_BLOCKER_COOKIE, 'true', expirationDate);\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, IAnalyticsService} from './analytics.service.interface';\r\nimport {ServiceBase} from '../ServiceBase';\r\nimport {IElasticEventData, IStructuredLogger} from '../../../common/interfaces/structured-logging-service-interface';\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(category: string, action: string, eventLabel?: string, value?: string, customData?: object) {\r\n this.services.sdk.structuredLoggingService\r\n .getLogger()\r\n .addCategory(category)\r\n .addAction(action)\r\n .addLabel(eventLabel)\r\n .addValue(value)\r\n .addCustomData(customData)\r\n .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 } from '../sdk/sdk-events';\r\nimport { IServiceFactoryExtended } from '../service-factory-extended.interface';\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 constructor(serviceFactory: IServiceFactoryExtended) {\r\n super(serviceFactory);\r\n\r\n this.reaction(\r\n () => this.services.user.isAuthorized,\r\n (isAuthorized) => {\r\n if (!isAuthorized) {\r\n this._setLastPlayedRealGame(null);\r\n this._setCorrelatedGamesForLastPlayedRealGame([]);\r\n }\r\n }, {\r\n fireImmediately: true\r\n });\r\n }\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 @observable.ref\r\n correlatedGamesForLastPlayedRealGame: number[] = [];\r\n\r\n private _activatedGetCorrelatedForLstRealGame = false;\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 activateGetCorrelatedGamesForLastPlayedRealGame() {\r\n if (this._activatedGetCorrelatedForLstRealGame) {\r\n return;\r\n }\r\n\r\n this.services.sdk.events.onGameClose(async (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 const lastGameInfo = await this.services.games.getGameInfo(closeOptions.gameType)\r\n const correlatedGames = await this.services.games.getCorrelatedGames(closeOptions.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\r\n this._activatedGetCorrelatedForLstRealGame = true;\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.components.intermediatePage.colors.gameInfoButton};\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.headerText};\r\n font-family: ${props => props.theme.font.family.bold};\r\n font-weight: 600;\r\n line-height: normal;\r\n text-transform: uppercase;\r\n`;\r\n\r\n\r\nconst PcBox = styled(DefaultBox)`\r\n font-size: 1.6em;\r\n text-align: center;\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n text-align: left;\r\n font-size: 1.4em; \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\nexport const DialogCloseButtonDefaultBox = styled.button`\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 cursor: pointer;\r\n background-image: url(\"${props => props.theme.images.closeModalDialog.toString()}\");\r\n background-size: contain;\r\n background-repeat: no-repeat;\r\n background-position: center center;\r\n 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.headerBackground};\r\n padding: 10px 15px;\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.brandPrimary};\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\nimport {Color} from '../../../../../../../../themes/definitions/casino777/casino777-colors';\r\n\r\nexport const CellValueTextCasino777Box = styled(CellValueTextDefaultBox)`\r\n color: ${Color.brick};\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.bodyText};\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.components.lobbyGameInfoPreview.colors.gameInfoTableBackground};\r\n color: ${props => props.theme.colors.bodyText};\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.dividerBottomBorder};\r\n border-top: 1px solid ${props => props.theme.colors.dividerTopBorder};\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\nimport {Color} from '../../../../../../../../themes/definitions/casino777/casino777-colors';\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 ${hexToRgba(Color.tan, 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.gameDescriptionText};\r\n font-weight: 300;\r\n line-height: normal;\r\n padding: 0 1rem 2rem;\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 flexColumnContainerMixin = css`\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nexport const flexAlignItemsMixin = (props: {alignItems?: FlexAlignItemsProp;}) => css`\r\n align-items: ${props.alignItems || \"unset\"};\r\n`;\r\nexport const flexJustifyContentMixin = (props: {justifyContent?: FlexJustifyContentProp;}) => css`\r\n justify-content: ${props.justifyContent || \"unset\"};\r\n`;\r\nexport const flexCenterAlignItemsMixin = css`\r\n ${flexAlignItemsMixin({alignItems: \"center\"})}\r\n`;\r\n\r\nexport const flexGrowItem = (props: {flexBasis?: string;}) => css`\r\n flex: 1 0 ${props.flexBasis || \"auto\"};\r\n`;\r\nexport const flexFixedSizeItem = css`\r\n flex: 0 0 auto;\r\n`;\r\nexport const flexAdaptiveSizeItem = css`\r\n flex: 1 1 auto;\r\n`;\r\n\r\n/* styled based components, to be used as is or as Base to be extended */\r\n\r\nexport const FlexGrowItemBox = styled.div`\r\n ${flexGrowItem}\r\n`;\r\n\r\nexport const FlexContainerBox = styled.div<{\r\n alignItems?: FlexAlignItemsProp;\r\n justifyContent?: FlexJustifyContentProp;\r\n}>`\r\n ${flexRowContainerMixin}\r\n ${flexAlignItemsMixin}\r\n ${flexJustifyContentMixin}\r\n`;\r\n","import 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: 2px solid ${props => props.theme.colors.brandSecondary};\r\n color: ${props => props.theme.colors.brandSecondary};\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.components.gamePreviewInfo.colors.infoText};\r\n border-left: 2px solid ${props => props.theme.components.gamePreviewInfo.colors.infoText};\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.bodyInfo};\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 React from 'react';\r\nimport {OrbitComponent} from '../base-components/orbit-component/orbit-component';\r\nimport {SdkComponent} from '../sdk/sdk.component';\r\nimport {AnyStyledComponent} from 'styled-components';\r\n\r\n\r\nexport interface GameJackpotComponentProps {\r\n gameType: number;\r\n className?: string;\r\n box?: AnyStyledComponent;\r\n}\r\n\r\nexport class GameJackpotComponent extends OrbitComponent {\r\n render() {\r\n let sdkProps = {\r\n gametypeid: this.props.gameType\r\n };\r\n return (\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\n//game-info-amount game-info-text\r\nexport const JackpotAmountPreviewDefaultBox = styled.div`\r\n font-family: ${props => props.theme.font.family.bold};\r\n font-size: 2.4rem;\r\n font-weight: 800;\r\n color: ${props => props.theme.colors.brandPrimary};\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 {Color} from '../../../../../../../themes/definitions/casino777/casino777-colors';\r\n\r\nexport const JackpotAmountPreviewCasino777Box = styled(JackpotAmountPreviewDefaultBox)`\r\n text-shadow: 3px 3px 0 ${props => props.theme.colors.bodyText}, 0 0 0 ${props => props.theme.colors.bodyText}, 1px 1px 0 ${props => props.theme.colors.bodyText}, 2px 2px 0 ${props => props.theme.colors.bodyText}, 0 0 0 ${props => props.theme.colors.bodyText};\r\n color: ${Color.papaya};\r\n -webkit-text-stroke-width: .5px;\r\n -webkit-text-stroke-color: ${props => props.theme.colors.bodyText};\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 {GameJackpotComponent} from '../../../../game-jackpot/game-jackpot.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) {\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//demo-and-play\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//demo-and-play-buttons\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 {GradientDefaultBox} from './gradient.default.box';\r\n\r\nexport const GradientBox = GradientDefaultBox;","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: ${props => props.theme.colors.intermediatePageGradientBackground}; \r\n`;","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 {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 {OpenGameIntermediatePageComponent} from \"../../components/lobby-game-info-preview/intermediate-page/open-game-intermediate-page.component\";\r\nimport React from \"react\";\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}\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 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 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 @computed\r\n get badgeUrl(): string | null {\r\n if (this.badge) {\r\n return this.services.configuration.data.generalSettings.gamesSettings.gameBadgePath + this.badge + '.png';\r\n }\r\n\r\n return null;\r\n }\r\n\r\n get minBet(): number {\r\n return this._rawGameData.minBet;\r\n }\r\n\r\n get maxBet(): number {\r\n return this._rawGameData.maxBet;\r\n }\r\n\r\n get maxBetPerBrand(): number {\r\n return this._rawGameData.maxBetPerBrand;\r\n }\r\n\r\n getGameImagePlaceHolderUrl(useSquareIcon?: boolean): string {\r\n if (useSquareIcon) {\r\n return this.services.theme.currentTheme.images.gameIconPlaceHolderSq.toString();\r\n }\r\n return this.services.theme.currentTheme.images.gameIconPlaceHolder.toString();\r\n }\r\n\r\n getImageSeoAlt() {\r\n\r\n let seoValue = this.services.configuration.data?.seo?.games?.images?.alt;\r\n\r\n return this.services.translation.translate(seoValue, {\r\n gameName: this.title,\r\n categoryName: this.gameCategory\r\n });\r\n };\r\n\r\n private _getResolvedGameImagePath(imagePath: string): string {\r\n return this.services.configuration.resolveGameImagePath(imagePath);\r\n }\r\n\r\n @computed\r\n get stripImage(): string {\r\n let images = this._rawGameData.images;\r\n if (!images) {\r\n return '';\r\n }\r\n\r\n return this._isMobile ? this._getResolvedGameImagePath(images.strip_mobile) :\r\n this._getResolvedGameImagePath(images.strip_pc);\r\n }\r\n\r\n @computed\r\n get stripeImageFallback(): string {\r\n let generalSettings = this.services.configuration.data.generalSettings;\r\n let previewDefaultImage = generalSettings && generalSettings.gamesSettings && generalSettings.gamesSettings.gamesPreviewDefaultImages;\r\n\r\n if (previewDefaultImage && this.gameCategory) {\r\n //Replace the game category dash to under score (like the image name for example card-and-table category name should be default_game_strip_card_and_table)\r\n let gameCategoryWithUnderScores = this.gameCategory.replace(/-/g, '_');\r\n previewDefaultImage = previewDefaultImage.replace(/{arena-category}/g, gameCategoryWithUnderScores);\r\n //Add _mobile if we are in mobile\r\n\r\n if (this.services.device.isMobile) {\r\n return previewDefaultImage.replace('.png', '_mobile.png');\r\n }\r\n\r\n return previewDefaultImage;\r\n }\r\n\r\n return ''\r\n }\r\n\r\n get hasVideoTrailer(): boolean {\r\n return this.gameType === 130136;\r\n }\r\n\r\n get aboutText(): string {\r\n return this._aboutText;\r\n }\r\n\r\n get multiplayer(): number {\r\n return this._rawGameData.multiplayer;\r\n }\r\n\r\n get isClassicSlot(): boolean {\r\n return this._hasCustomFilter('ClassicSlots');\r\n }\r\n\r\n get hasHighVolatility(): boolean {\r\n return this._hasCustomFilter('HighVolatilityTag');\r\n }\r\n\r\n get hasLowVolatility(): boolean {\r\n return this._hasCustomFilter('LowVolatilityTag');\r\n }\r\n\r\n @computed\r\n get shouldShowIntermediatePage(): boolean {\r\n if (!this._isMobile) {\r\n return false;\r\n }\r\n\r\n if (!this._rawGameData.isAnonymousSupported) {\r\n return false;\r\n }\r\n\r\n if (this.gameCategory === GAMES_CATEGORIES.LIVE) {\r\n return false;\r\n }\r\n\r\n if (this._rawGameData.forceDemoButton) {\r\n return true;\r\n }\r\n\r\n let demoSettings = this._rawGameData.demoSettings;\r\n if (this._isAuthorized) {\r\n if ((this._rawGameData?.forceIntermediatePageForAutorizedUsers) || (demoSettings && demoSettings.intermediatePageAuthorized && demoSettings.intermediatePageAuthorized.mobile)) {\r\n return true;\r\n }\r\n } else {\r\n if (demoSettings?.intermediatePageAnonymous?.mobile) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n @computed\r\n get allowSwitchGameMode(): boolean {\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\r\n async open(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 };\r\n\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;\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.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 return gameHandler;\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);\r\n\r\n this.services.analytics.sendElasticInfoEvent('game_click', params.pageName, listTitle, this.gameType.toString(), params);\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","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 getNotInLayoutGamesInfo(gameTypes: number[]): Promise {\r\n let sdkGamesInfo = await this.services.sdk.getGamesInfo(gameTypes);\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.miniOrbit.isEnabled || 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 this.services.window.scrollTo(0,0);\r\n this._userData = {...userData, statusGroupId: this.services.storage.getItem('playerStatus')};\r\n } else {\r\n this._userData = userData;\r\n this.services.storage.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\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(this.services.device.hybrid.isHybrid){\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\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.model = this._sdkDevice.model;\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 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 };\r\n model: {\r\n isIphone: boolean;\r\n };\r\n hybrid: {\r\n isHybrid: boolean;\r\n isEmbedded: boolean;\r\n };\r\n isStandalone: boolean;\r\n\r\n segments: {\r\n [key: string]: any;\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/modules/company-view-model.interface\";\r\nimport {GamingHistoryRecordRawData} from \"../gaming-history/gaming-history.service.interfce\";\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_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};\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 };\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 isProgressiveWebApp: boolean;\r\n isStandalone: boolean;\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 IAbTestingFeatureProperties {\r\n Properties: {\r\n [key: string]: any;\r\n featureToggle?: string;\r\n };\r\n}\r\n\r\nexport interface CgpSkinInfo {\r\n getBrandName(): string;\r\n getPlatformSystemID(): number;\r\n getClientPlatform(): string;\r\n getVersion(): string;\r\n getCulture(): string;\r\n shouldReplaceLoginWithDownloadAppForMobileWebApp(): boolean;\r\n shouldPreventOpenGameForMobileWebApp(): boolean;\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}\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 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): void;\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 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 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 stepsBeforeOpenLoginAndRegistration(): Promise;\r\n bringOmgToFront(): void;\r\n getBurnoutAnimationZIndex(): number;\r\n getCompanyByName(name: string): Promise;\r\n openHistoryGame(request: IOpenHistoryGameRequest): Promise\r\n}\r\n","import {CGP_EVENTS_NAMES, CGPEventSubscription, ICgpSdk} from './cgp-sdk.interface';\r\nimport { LiveTables } from '../live-table-feeds-service/live-table-feeds.service.interface';\r\nimport {TimeSpan} from '@sparkware/app-utils';\r\nimport {IBlueRibbonPartyJackpot} from '../../../common/interfaces/blue-ribbon-party-jackpot.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 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","import {\r\n AIRecommendations,\r\n CmsUserSignature,\r\n ISdkService,\r\n SdkOpenExternalLinkParams,\r\n OpenGameOptions,\r\n UserData, GameRawData, ExternalBrandCallbackInfo, DateAndTimeFormat, ITokenInfo\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 IAbTestingFeatureProperties,\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/modules/company-view-model.interface\";\r\n\r\nexport interface IGetAiRecommendationsOptions {\r\n maxGames?: number;\r\n filterOutRecentlyPlayedGames?: boolean;\r\n numberOfRecentlyPlayedGameToFilterOut?: number;\r\n}\r\n\r\nexport class SdkService extends ServiceBase implements ISdkService {\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\r\n\r\n this._updateLocalStorageAccordingToCookie();\r\n\r\n this._displayHybrid();\r\n\r\n this.reaction(() => this.services.location.currentUri,\r\n () => {\r\n if(this.services.location.hasNavigationHistory) {\r\n this.CGP.routeChanged();\r\n }\r\n });\r\n }\r\n\r\n private _displayHybrid() {\r\n //F TO DO why is this here and not in the SDK ?\r\n if(Check.isFunction(this.CGP.displayHybrid)) {\r\n this.CGP.displayHybrid();\r\n }\r\n }\r\n\r\n private _events: SdkEvents = null;\r\n\r\n get events(): SdkEvents {\r\n if(!this._events) {\r\n this._events = new SdkEvents(this.CGP);\r\n }\r\n\r\n return this._events;\r\n }\r\n\r\n\r\n\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 getAbTestingData(): { [key: string]: IAbTestingFeatureProperties } {\r\n return this.CGP.getAbTestingData();\r\n }\r\n\r\n getCurrentServerDate(): Date {\r\n return this.CGP.getCurrentServerDate();\r\n }\r\n\r\n getAbTestingDataForFeature(featureName: string): IAbTestingFeatureProperties {\r\n return this.CGP.getAbTestingDataForFeature(featureName);\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): void {\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 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 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.storage.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.storage.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 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){\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 }\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 stepsBeforeOpenLoginAndRegistration(): Promise {\r\n return this.CGP.stepsBeforeOpenLoginAndRegistration();\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","export const CGP_OBJECT_NAME = 'CGP';\r\n\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 {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 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 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 {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 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_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}\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\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 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 //On 777UK we would like to send users to a link instead of opening the safe zone as there is no safezone in 777UK, so it contains \"link\" attribute in the config.json\r\n if(link.link){\r\n return this._openLinkAction(link);\r\n }\r\n\r\n this.services.safezone.openFullSafezone();\r\n }\r\n\r\n onTimeSpentReminder(link: IUsefulLinkConfiguration) {\r\n this.services.safezone.openFullSafezone();\r\n }\r\n\r\n onHelp() {\r\n this.services.externalLinks.openHelpPage();\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.dividerTopBorder};\r\n border-top: 1px solid ${props => props.theme.colors.dividerBottomBorder};\r\n padding-left: 1rem;\r\n white-space: nowrap;\r\n cursor: pointer;\r\n background-color: ${props => props.theme.colors.usefulLinkBackground};\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.2rem;\r\n line-height: 3.5rem;\r\n color: ${props => props.theme.colors.usefulLinkTextNormal};\r\n \r\n &:first-child {\r\n margin-top: 3px;\r\n }\r\n \r\n &:hover {\r\n color: ${props => props.theme.colors.usefulLinkTextHover};\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.usefulLinkTextHover};\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 &:hover {\r\n background-color: ${props => props.theme.colors.bodyHover};\r\n }\r\n\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\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 {\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\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.reaction(() => this.isOpen,\r\n (isOpen) => {\r\n if (isOpen) {\r\n this.services.dom.body.classList.add('drawer-open');\r\n } else {\r\n this.services.dom.body.classList.remove('drawer-open');\r\n }\r\n });\r\n\r\n\r\n this.reaction(() => this.services.overlay.isOpen, isOverlayOpen => {\r\n if(!isOverlayOpen) {\r\n this.closeMenu();\r\n }\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 @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 this.services.overlay.closeOverlay();\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.overlay.openOverlay();\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\nconst DefaultBox = styled(Image)<{hide?: 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 * Because YES, Safari is the new Internet Explorer!!!\r\n */\r\n`;\r\n\r\nexport const GameImageDefaultBox = DefaultBox;","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.imageLoadBackgroundColor}`};\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 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}\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 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 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.props.gameInfo.getAnimatedImageTimings().delay || 0);\r\n };\r\n\r\n private onAnimationLoad = () => {\r\n this.setState({hideStaticImage: true});\r\n };\r\n\r\n private onAnimationBeforeUnload = () => {\r\n this.setState({hideStaticImage: false});\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 ? : 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} 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}\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 this._handleImageDoneLoading()} />\r\n {this.props.playRealGameButton}\r\n \r\n \r\n );\r\n }\r\n}\r\n","import styled from 'styled-components';\r\nimport {TWO_LINES_TITLE} from '../../../css-constants';\r\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\n\r\n//.games-item-title\r\nconst DefaultBox = styled.div`\r\n color: ${props => props.theme.colors.bodyText};\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n margin: auto;\r\n text-align: center;\r\n opacity: 1;\r\n font-weight: 300;\r\n line-height: normal;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n direction: initial;\r\n\r\n`;\r\n\r\nexport const PcBox = styled(DefaultBox)`\r\n font-size: 1.4rem;\r\n\r\n`;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\r\n font-size: 1.2rem;\r\n padding-bottom: 0;\r\n\r\n\r\n &.${TWO_LINES_TITLE} {\r\n max-width: 90%;\r\n white-space: initial;\r\n }\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n font-size: 0.9rem;\r\n }\r\n`;\r\n\r\nexport const GameTitleDefaultBox = styledByDevice(PcBox, MobileBox);","import styled, { css } from 'styled-components';\r\nimport {PcBox as BasePcBox, MobileBox as BaseMobileBox} from './game-title.default.box';\r\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\nimport {Color} from '../../../../../themes/definitions/casino777/casino777-colors';\r\n\r\nconst common = css`\r\n color: ${Color.blackTeal};\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.5rem;\r\n\r\n`;\r\n\r\n\r\nconst MobileBox = styled(BaseMobileBox)`\r\n ${common}\r\n font-size: 1.2rem;\r\n\r\n /* override the BaseMobileBox CSS for small screen */\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n font-size: 1.2rem;\r\n }\r\n\r\n`;\r\n\r\n\r\nexport const GameTitleCasino777Box = styledByDevice(PcBox, MobileBox);\r\n","import styled from \"styled-components\";\r\nimport {MobileBox as BaseMobileBox, PcBox as BasePcBox} from \"./game-title.default.box\";\r\nimport {styledByDevice} from \"../../../../../themes/architecture/styled-by-device\";\r\n\r\nconst PcBox = styled(BasePcBox)`\r\n`;\r\n\r\n\r\nconst MobileBox = styled(BaseMobileBox)`\r\n font-family: ${props => props.theme.font.family.regular}; \r\n`;\r\n\r\n\r\nexport const GameTitleCipBox = styledByDevice(PcBox, MobileBox);","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\n\r\nexport const GameTitleBox = styledByTheme(GameTitleDefaultBox)\r\n .forCip(GameTitleCipBox)\r\n .forWsopCip(GameTitleCipBox)\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 display: block;\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n margin: auto;\r\n text-align: center;\r\n opacity: 1;\r\n color: ${props => props.theme.colors.brandPrimary};\r\n\r\n .${GAME_GROUP_LIVE_CASINO} & {\r\n color: ${props => props.theme.colors.brandSecondary};\r\n }\r\n`;\r\n\r\nexport const PcBox = styled(DefaultBox)`\r\n top: 2.5rem;\r\n font-size: 1.4rem;\r\n font-weight: 600;\r\n`;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\r\n top: 1.5rem;\r\n font-size: 1.3rem;\r\n font-weight: 400;\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n font-size: 1.1rem;\r\n }\r\n`;\r\n\r\nexport const MinMaxBetAmountDefaultBox = styledByDevice(PcBox, MobileBox);","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\nimport {Color} from '../../../../../themes/definitions/casino777/casino777-colors';\r\n\r\nconst common = css`\r\n color: ${Color.red};\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\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\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\n\r\ninterface GameDetailsContainerProps {\r\n squareGameIcon?: number\r\n}\r\n\r\nexport const DefaultBox = styled.div`\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n overflow: hidden;\r\n top: ${props => props.squareGameIcon? '10px' : '0'};\r\n\r\n /** Glow Line Boottom **/\r\n &:after {\r\n content: \"\";\r\n position: absolute;\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 }\r\n`;\r\n\r\nexport const PcBox = styled(DefaultBox)`\r\n min-height: 5rem;\r\n padding: 0 1rem 1rem;\r\n &:after {\r\n background-image: url(\"${props => props.theme.images.horizontalLineGlowPC.toString()}\");\r\n }\r\n`;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\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 &:after {\r\n background-image: url(\"${props => props.theme.images.horizontalLineGlowMobile.toString()}\");\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\r\n`;\r\n\r\nexport const GameDetailsContainerDefaultBox = styledByDevice(PcBox, MobileBox);","import styled from 'styled-components';\r\nimport {PcBox as BasePcBox, MobileBox as BaseMobileBox} from './game-details-container.default.box';\r\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\n\r\nfunction common(): string {\r\n return `\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 `\r\n}\r\n\r\nconst PcBox = styled(BasePcBox)`\r\n ${common()}\r\n &:after {\r\n bottom:-15px;\r\n }\r\n`;\r\n\r\nconst MobileBox = styled(BaseMobileBox)`\r\n ${common()}\r\n &:after {\r\n bottom:-18px;\r\n }\r\n`;\r\n\r\n\r\nexport const GameDetailsContainerCasino777Box = styledByDevice(PcBox, MobileBox);","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\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\n\r\nconst DefaultBox = styled.div`\r\n display: block;\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n margin: auto;\r\n text-align: center;\r\n opacity: 1;\r\n color: ${props => props.theme.colors.brandPrimary};\r\n`;\r\n\r\nexport const PcBox = styled(DefaultBox)`\r\n top: 2.5rem;\r\n font-size: 1.4rem;\r\n font-weight: 600;\r\n`;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\r\n top: 1.5rem;\r\n font-size: 1.3rem;\r\n font-weight: 400;\r\n\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n font-size: 1.1rem;\r\n }\r\n`;\r\n\r\n\r\nexport const JackpotAmountDefaultBox = styledByDevice(PcBox, MobileBox);","import styled, { css } from 'styled-components';\r\nimport {PcBox as BasePcBox, MobileBox as BaseMobileBox} from './jackpot-amount.default.box';\r\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\nimport {Color} from '../../../../../themes/definitions/casino777/casino777-colors';\r\n\r\nconst common = css`\r\n color: ${Color.red};\r\n font-weight: 600;\r\n font-family: ${({theme}) => theme.font.family.bold};\r\n`;\r\n\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\n\r\nexport const JackpotAmountCasino777Box = styledByDevice(PcBox, MobileBox);","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 {GameInfoContainerDefaultBox} from './game-info-container.default.box';\r\n\r\nexport const GameInfoContainerBox = GameInfoContainerDefaultBox;","import styled from 'styled-components';\r\nimport {ENABLE_HOVER_ANIMATION, GAME_BOX} from '../../../css-constants';\r\n\r\nexport const GameInfoContainerDefaultBox = styled.div`\r\n transition: all 0.3s ease-in-out;\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 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\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}\r\n\r\n@observer\r\nexport class GameDetailsContainerComponent extends OrbitComponent {\r\n\r\n private _renderMinBaxBet() {\r\n if(!this.props.gameInfo.allowMinMaxBet) {\r\n return null;\r\n }\r\n\r\n let formattedMinBaxBets = this.services.currency.formatMinMaxBet(this.props.gameInfo.minBet, this.props.gameInfo.maxBet);\r\n\r\n if(!formattedMinBaxBets) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {formattedMinBaxBets}\r\n \r\n );\r\n\r\n }\r\n\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 _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 \r\n );\r\n }\r\n\r\n\r\n private _renderGameInfoSection() {\r\n return (\r\n \r\n \r\n {this.props.gameInfo.title}\r\n \r\n {this._renderJackpot()}\r\n {this._renderMinBaxBet()}\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\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} {\r\n background-position: -553px -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\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 {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.gameNumberBadgeColor};\r\n z-index: 2;\r\n text-shadow: -1px -1px 0 ${props => props.theme.colors.brandSecondary},\r\n 1px -1px 0 ${props => props.theme.colors.brandSecondary},\r\n -1px 1px 0 ${props => props.theme.colors.brandSecondary},\r\n 1px 1px 0 ${props => props.theme.colors.brandSecondary};\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\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 gameIndex?: number;\r\n useSquareIcons?: boolean;\r\n showNumberBadge?: 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 position: relative;\r\n display: flex;\r\n align-items: center;\r\n text-align: 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 styled from 'styled-components';\r\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\n\r\nconst DefaultBox = 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`;\r\n\r\nconst PcBox = styled(DefaultBox)`\r\n font-size: 1rem;\r\n align-items: flex-start;\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndAbove} {\r\n align-items: flex-start;\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\r\nexport const GameDetailsContainerDefaultBox = styledByDevice(PcBox, MobileBox);","import {GameDetailsContainerDefaultBox} from './game-details-container.default.box';\r\n\r\nexport const GameDetailsContainerBox = GameDetailsContainerDefaultBox;","import styled from 'styled-components';\r\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\n\r\nconst DefaultBox = styled.div`\r\n position: relative;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n margin: 0;\r\n opacity: 1;\r\n text-align: center;\r\n white-space: normal;\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.bodyText};\r\n`;\r\n\r\nexport const PcBox = DefaultBox;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\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\r\nexport const GameTitleDefaultBox = styledByDevice(PcBox, MobileBox);","import styled from 'styled-components';\r\nimport {PcBox as BasePcBox, MobileBox as BaseMobileBox} from './game-title.default.box';\r\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\n\r\n\r\nfunction common(): string {\r\n return ` \r\n font-size: 1.9em;\r\n `;\r\n}\r\n\r\nconst PcBox = styled(BasePcBox)`\r\n ${common()};\r\n`;\r\n\r\nconst MobileBox = styled(BaseMobileBox)`\r\n ${common()};\r\n`;\r\n\r\nexport const GameTitleCasino777Box = styledByDevice(PcBox, MobileBox);","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\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\n\r\nconst DefaultBox = styled.div`\r\n position: relative;\r\n color: ${props => props.theme.colors.brandPrimary};\r\n top: 0;\r\n margin: 0;\r\n text-align: center;\r\n opacity: 1;\r\n font-family: ${props => props.theme.font.family.ultra};\r\n font-size: 2.6em;\r\n font-weight: 800;\r\n`;\r\n\r\nexport const PcBox = styled(DefaultBox)`\r\n @media ${({theme}) => theme.mediaQuery.xlAndBelow} {\r\n font-size: 2.2em;\r\n }\r\n`;\r\n\r\nexport const MobileBox = DefaultBox;\r\n\r\nexport const JackpotAmountDefaultBox = styledByDevice(PcBox, MobileBox);\r\n","import styled, { css } from 'styled-components';\r\nimport {PcBox as BasePcBox, MobileBox as BaseMobileBox} from './jackpot-amount.default.box';\r\nimport {styledByDevice} from '../../../../../themes/architecture/styled-by-device';\r\nimport {Color} from '../../../../../themes/definitions/casino777/casino777-colors';\r\n\r\nconst common = css`\r\n font-family: ${({theme}) => theme.font.family.secondary};\r\n font-weight: 300;\r\n`;\r\n\r\nconst PcBox = styled(BasePcBox)`\r\n ${common}\r\n color: ${Color.papaya};\r\n text-shadow: 3px 3px 0 ${props => props.theme.colors.bodyText}, 0 0 0 ${props => props.theme.colors.bodyText}, 1px 1px 0 ${props => props.theme.colors.bodyText}, 2px 2px 0 ${props => props.theme.colors.bodyText}, 0 0 0 ${props => props.theme.colors.bodyText};\r\n -webkit-text-stroke-width: .5px;\r\n -webkit-text-stroke-color: ${props => props.theme.colors.bodyText};\r\n`;\r\n\r\nconst MobileBox = styled(BaseMobileBox)`\r\n ${common}\r\n color: ${props => props.theme.colors.bodyText};\r\n text-shadow: none;\r\n letter-spacing: .3px;\r\n -webkit-text-stroke-width: 0;\r\n -webkit-text-stroke-color: ${Color.transparent};\r\n`;\r\n\r\nexport const JackpotAmountCasino777Box = styledByDevice(PcBox, MobileBox);","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 {LiveStreamingTileDefaultBox} from \"./live-streaming-tile.default.box\";\r\n\r\nexport const LiveStreamingTileBox = LiveStreamingTileDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const LiveStreamingTileDefaultBox = styled.div`\r\n position: relative;\r\n width: 100%;\r\n overflow: hidden;\r\n\r\n &::after {\r\n content: \"\";\r\n display: block;\r\n width: 100%;\r\n height: 10px;\r\n background: linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.25) 20%, rgba(0, 0, 0, 0));\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`;","import {LiveStreamingTileFooterDefaultBox} from \"./live-streaming-tile-footer.default.box\";\r\n\r\nexport const LiveStreamingTileFooterBox = LiveStreamingTileFooterDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const LiveStreamingTileFooterDefaultBox = 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.componentBackground.toString()};\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 {LiveStreamingTileGameTitleDefaultBox} from \"./live-streaming-tile-game-title.default.box\";\r\n\r\nexport const LiveStreamingTileGameTitleBox = LiveStreamingTileGameTitleDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const LiveStreamingTileGameTitleDefaultBox = styled.div`\r\n margin-left: 0.5rem;\r\n font-size: 1rem;\r\n color: ${({theme}) => theme.colors.bodyText.toString()};\r\n line-height: 1;\r\n`;\r\n","import {LiveStreamingTileBettingRangeDefaultBox} from \"./live-streaming-tile-betting-range.default.box\";\r\n\r\nexport const LiveStreamingTileBettingRangeBox = LiveStreamingTileBettingRangeDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const LiveStreamingTileBettingRangeDefaultBox = styled.div`\r\n margin: 5px 0 0 0.5rem;\r\n font-size: 1.2rem;\r\n color: ${({theme}) => theme.colors.brandSecondary.toString()};\r\n line-height: 1;\r\n`;\r\n","import {LiveStreamingTileFooterSectionDefaultBox} from \"./live-streaming-tile-footer-section.default.box\";\r\n\r\nexport const LiveStreamingTileFooterSectionBox = LiveStreamingTileFooterSectionDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const LiveStreamingTileFooterSectionDefaultBox = styled.div`\r\n\r\n`;\r\n","import {LiveStreamingOverlayItemDefaultBox} from \"./live-streaming-overlay-icon.default.box\";\r\n\r\nexport const LiveStreamingOverlayItemBox = LiveStreamingOverlayItemDefaultBox;\r\n","import styled, {css} from \"styled-components\";\r\n\r\ninterface ILiveStreamingOverlayItemDefaultBoxProps {\r\n capsule?: boolean;\r\n transparent?: boolean;\r\n}\r\n\r\nexport const LiveStreamingOverlayItemDefaultBox = styled.div`\r\n display: flex;\r\n background: ${({theme, transparent}) => !transparent && theme.colors.bodyBackground.toString()};\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 {LiveStreamingSoundButtonDefaultBox} from \"./live-streaming-sound-button.default.box\";\r\n\r\nexport const LiveStreamingSoundButtonBox = LiveStreamingSoundButtonDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const LiveStreamingSoundButtonDefaultBox = styled.div`\r\n padding: 0.25rem;\r\n background: ${({theme}) => theme.colors.bodyBackground.toString()};\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 {LiveStreamingSoundButtonBox} from \"./boxes/live-streaming-sound-button/live-streaming-sound-button.box\";\r\n\r\nexport class LiveStreamingSoundButtonComponent extends OrbitComponent {\r\n private _renderIcon() {\r\n\r\n if (this.services.httpLiveStream.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.services.httpLiveStream.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 {RouletteDrawsComponent} from \"../arena-host/new-live-casino-arena/live-casino-arena-grid/shared-components/roulette-draws.component\";\r\nimport {LiveStreamingOverlayItemBox} from \"./boxes/live-streaming-overlay-item/live-streaming-overlay-icon.box\";\r\nimport {LiveStreamingSoundButtonComponent} from \"./live-streaming-sound-button.component\";\r\nimport {ILiveTableInfo} from \"../../services/live-table-feeds-service/live-table-feeds.service.interface\";\r\nimport {TableSeatsComponent} from \"../arena-host/new-live-casino-arena/live-casino-arena-grid/shared-components/table-seats.component\";\r\n\r\nexport interface LiveStreamingTileOverlayComponentProps {\r\n tableInfo: ILiveTableInfo;\r\n}\r\n\r\nexport class LiveStreamingTileOverlayComponent extends OrbitComponent {\r\n\r\n private _padding = \"1rem\";\r\n\r\n private _renderTopRight(): React.ReactElement {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private _renderBottomLeft(): React.ReactElement {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private _renderBottomRight(): React.ReactElement {\r\n return (\r\n \r\n \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 {LiveStreamingTileOverlayDefaultBox} from \"./live-streaming-tile-overlay.default.box\";\r\n\r\nexport const LiveStreamingTileOverlayBox = LiveStreamingTileOverlayDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const LiveStreamingTileOverlayDefaultBox = 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.bodyText};\r\n background: rgba(0,0,0,0.5);\r\n`;\r\n","import {LiveStreamingTileSkeletonContainerDefaultBox} from \"./live-streaming-tile-skeleton-container.default.box\";\r\n\r\nexport const LiveStreamingTileSkeletonContainerBox = LiveStreamingTileSkeletonContainerDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const LiveStreamingTileSkeletonContainerDefaultBox = 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 LiveStreamingVideoDefaultBox = DefaultBox;","import { LiveStreamingVideoDefaultBox } from './live-streaming-video.default.box';\r\nimport { styledByTheme } from '../../../../themes/architecture/styled-by-theme';\r\n\r\nexport const LiveStreamingVideoBox = styledByTheme(LiveStreamingVideoDefaultBox).apply();","import styled from 'styled-components';\r\n\r\ninterface LiveStreamingVideoContainerBoxProps {\r\n videoIsLoading: boolean;\r\n videoWatchTimeLimitReached: boolean;\r\n}\r\n\r\nconst DefaultBox = styled.div`\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 LiveStreamingVideoContainerDefaultBox = DefaultBox;","import { styledByTheme } from '../../../../themes/architecture/styled-by-theme';\r\nimport { LiveStreamingVideoContainerDefaultBox } from './live-streaming-video-container.default.box';\r\n\r\nexport const LiveStreamingVideoContainerBox = styledByTheme(LiveStreamingVideoContainerDefaultBox).apply();;","import { LiveVideoPlayButtonDefaultBox } from './live-video-play-button.default.box';\r\n\r\n\r\nexport const LiveVideoPlayButtonBox = LiveVideoPlayButtonDefaultBox;\r\n","import styled from 'styled-components';\r\n\r\n\r\nexport const LiveVideoPlayButtonDefaultBox = 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`;","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 { IVideoLiveStreamPlayer } from '../../services/video-live-stream/video-live-stream-players/video-live-stream-player.interface';\r\nimport { action, observable } from 'mobx';\r\nimport { LiveStreamingVideoBox } from './boxes/live-streaming-video/live-streaming-video.box';\r\nimport { LiveStreamingVideoContainerBox } from './boxes/live-streaming-video-container/live-streaming-video-container.box';\r\nimport { LiveVideoPlayButtonBox } from \"./boxes/live-video-play-button/live-video-play-button.box\";\r\nimport { GA_LIVE_STREAM_CATEGORY } from '../../services/video-live-stream/video-live-stream.service';\r\n\r\ninterface LiveStreamingVideoComponentProps {\r\n gameType: number,\r\n muted: boolean,\r\n onError?: (hasError: boolean) => void,\r\n onLoading?: (isLoading: boolean) => void,\r\n onWatchTimeLimitReached?: (watchTimeLimitReached: boolean) => void\r\n}\r\n\r\n@observer\r\nexport class LiveStreamingVideoComponent extends OrbitComponent {\r\n\r\n @observable\r\n private _liveStreamPlayer: IVideoLiveStreamPlayer = null;\r\n @action.bound\r\n setLiveStreamPlayer(player: IVideoLiveStreamPlayer) {\r\n this._liveStreamPlayer = player;\r\n }\r\n\r\n private _intersectionObserver: IntersectionObserver = null;\r\n private _videoElement = null;\r\n private _isIntersecting = true;\r\n private _isAppVisible = true;\r\n\r\n private _captureVideoContainerRef = (element: HTMLElement | null) => {\r\n if (element) {\r\n this._createIntersectionObserver(element);\r\n }\r\n }\r\n\r\n private _createIntersectionObserver(element: HTMLElement) {\r\n this._destroyIntersectionObserver();\r\n\r\n this._intersectionObserver = new IntersectionObserver(this._intersectionObserverCallback, {\r\n threshold:0.99\r\n });\r\n\r\n this._intersectionObserver.observe(element);\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 _intersectionObserverCallback = (entries) => {\r\n entries.forEach((entry) => {\r\n this._isIntersecting = entry.isIntersecting;\r\n this._detectIfVideoIsInFocus();\r\n });\r\n }\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 _createLiveStreamPlayer() {\r\n const liveStreamPlayer = await this.services.httpLiveStream.getLiveStreamPlayer(this.props.gameType, this._videoElement);\r\n this.setLiveStreamPlayer(liveStreamPlayer);\r\n }\r\n\r\n private _playVideo = async () => {\r\n if (!this._liveStreamPlayer) {\r\n await this._createLiveStreamPlayer();\r\n }\r\n\r\n this._liveStreamPlayer.play();\r\n }\r\n\r\n private _pauseVideo = () => {\r\n if (this._liveStreamPlayer) {\r\n this._liveStreamPlayer.pause();\r\n }\r\n }\r\n\r\n private _detectIfVideoIsInFocus = () => {\r\n if (this._isAppVisible && this._isIntersecting) {\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._isIntersecting) {\r\n this._playVideo();\r\n this._liveStreamPlayer.logUIAction('info', 'VideoPlayClick');\r\n this.services.analytics.sendAnalytics(GA_LIVE_STREAM_CATEGORY, \"AUTOPLAY\", \"VIDEO_PLAY_CLICK\", this.props.gameType, true);\r\n } \r\n }\r\n\r\n private _renderPlayerControls = () => {\r\n return this._liveStreamPlayer?.autoplayAllowed ? null : (\r\n \r\n );\r\n }\r\n\r\n componentDidMount() {\r\n super.componentDidMount();\r\n\r\n this.reaction(() => this._liveStreamPlayer?.hasError, (hasError) => {\r\n this.props.onError(hasError);\r\n });\r\n this.reaction(() => this._liveStreamPlayer?.isLoading, (isLoading) => {\r\n this.props.onLoading(isLoading);\r\n });\r\n this.reaction(() => this._liveStreamPlayer?.watchTimeLimitReached, (watchTimeLimitReached) => {\r\n this.props.onWatchTimeLimitReached(watchTimeLimitReached);\r\n });\r\n this.reaction(() => this.services.httpLiveStream.isAppVisible, (isAppVisible) => {\r\n this._isAppVisible = isAppVisible;\r\n this._detectIfVideoIsInFocus();\r\n });\r\n }\r\n\r\n componentWillUnmount() {\r\n super.componentWillUnmount();\r\n\r\n this._destroyIntersectionObserver();\r\n\r\n if (this._liveStreamPlayer) {\r\n this._liveStreamPlayer.destroy();\r\n }\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};","import {RetryScreenIconDefaultBox} from \"./retry-screen-icon.default.box\";\r\n\r\nexport const RetryScreenIconBox = RetryScreenIconDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const RetryScreenIconDefaultBox = 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.bodyBackground.toString()};\r\n border-radius: 50%;\r\n`;\r\n","import {RetryScreenTextDefaultBox} from \"./retry-screen-text.default.box\";\r\n\r\nexport const RetryScreenTextBox = RetryScreenTextDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const RetryScreenTextDefaultBox = 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.bodyText.toString()};\r\n`;\r\n","import {RetryScreenTitleDefaultBox} from \"./retry-screen-title.default.box\";\r\n\r\nexport const RetryScreenTitleBox = RetryScreenTitleDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const RetryScreenTitleDefaultBox = styled.div`\r\n margin: 1rem 0;\r\n font-size: 2rem;\r\n color: ${({theme}) => theme.colors.bodyText.toString()};\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 {LiveStreamingTileRetryScreenDefaultBox} from \"./live-streaming-tile-retry-screen.default.box\";\r\n\r\nexport const LiveStreamingTileRetryScreenBox = LiveStreamingTileRetryScreenDefaultBox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const LiveStreamingTileRetryScreenDefaultBox = styled.div`\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}) => theme.colors.componentBackground.toString()};\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 {LiveStreamingTileSkeletonDefaultbox} from \"./live-streaming-tile-skeleton.default.box\";\r\n\r\nexport const LiveStreamingTileSkeletonbox = LiveStreamingTileSkeletonDefaultbox;\r\n","import styled from \"styled-components\";\r\n\r\nexport const LiveStreamingTileSkeletonDefaultbox = 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.componentBackground.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 {JackpotAmountBox} from \"../single-game/regular-template/boxes/jackpot-amount/jackpot-amount.box\";\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} from \"../../themes/css-global-classes\";\r\nimport {LiveStreamingTileBox} from \"../live-streaming-tile/boxes/live-streaming-tile/live-streaming-tile.box\";\r\nimport {SkeletonAnimatedButton} from \"../live-streaming-tile/boxes/live-streaming-tile-skeleton/skeleton-animated-button.box\";\r\nimport {SkeletonAnimatedRectangle} from \"../live-streaming-tile/boxes/live-streaming-tile-skeleton/skeleton-animated-rectangle.box\";\r\nimport {LiveStreamingTileFooterBox} from \"../live-streaming-tile/boxes/live-streaming-tile-footer/live-streaming-tile-footer.box\";\r\nimport {LiveStreamingTileSkeletonbox} from \"../live-streaming-tile/boxes/live-streaming-tile-skeleton/live-streaming-tile-skeleton.box\";\r\nimport { CyClass } from \"../../../common/cy-classes\";\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 _renderLiveStreamingSkeleton() {\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\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 (this.props.templateType === LIVE_STREAMING_ITEM) {\r\n return this._renderLiveStreamingSkeleton();\r\n }\r\n\r\n return this._renderRegularGameSkeleton();\r\n }\r\n}\r\n","import React, {ReactNode} from \"react\";\r\nimport {Button} from \"../../basic-ui-components/button/base/button.component\";\r\nimport {CyClass} from \"../../../common/cy-classes\";\r\nimport {OrbitComponent} from \"../base-components/orbit-component/orbit-component\";\r\nimport {LiveStreamingTileBox} from \"./boxes/live-streaming-tile/live-streaming-tile.box\";\r\nimport {LiveStreamingTileFooterBox} from \"./boxes/live-streaming-tile-footer/live-streaming-tile-footer.box\";\r\nimport {LiveStreamingTileGameTitleBox} from \"./boxes/live-streaming-tile-game-title/live-streaming-tile-game-title.box\";\r\nimport {LiveStreamingTileBettingRangeBox} from \"./boxes/live-streaming-tile-betting-range/live-streaming-tile-betting-range.box\";\r\nimport {LiveStreamingTileFooterSectionBox} from \"./boxes/live-streaming-tile-footer/live-streaming-tile-footer-section.box\";\r\nimport {AspectRatioContainerComponent} from \"../raw-components/aspect-ratio-container/aspect-ratio-container.component\";\r\nimport {LiveStreamingTileOverlayComponent} from \"./live-streaming-tile-video-overlay.component\";\r\nimport {LiveStreamingTileOverlayBox} from \"./boxes/live-streaming-tile-overlay/live-streaming-tile-overlay.box\";\r\nimport {LiveStreamingTileSkeletonContainerBox} from \"./boxes/live-streaming-tile-skeleton-container/live-streaming-tile-skeleton-container.box\";\r\nimport {LiveStreamingVideoComponent} from \"./live-streaming-video.component\";\r\nimport {action, observable} from \"mobx\";\r\nimport {observer} from \"mobx-react\";\r\nimport {RetryScreenIconBox} from \"./boxes/live-streaming-tile-retry-screen/retry-screen-icon.box\";\r\nimport {RetryScreenTextBox} from \"./boxes/live-streaming-tile-retry-screen/retry-screen-text.box\";\r\nimport {RetryScreenTitleBox} from \"./boxes/live-streaming-tile-retry-screen/retry-screen-title.box\";\r\nimport {SkeletonAnimatedButton} from \"./boxes/live-streaming-tile-skeleton/skeleton-animated-button.box\";\r\nimport {LiveStreamingTileRetryScreenBox} from \"./boxes/live-streaming-tile-retry-screen/live-streaming-tile-retry-screen.box\";\r\nimport {SvgSizeUnit} from \"../../basic-ui-components/icon/svg-icon/svg.icon\";\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 { SingleGameSkeletonComponent } from \"../single-game/single-game-skeleton.component\";\r\nimport { LIVE_STREAMING_ITEM } from \"../../themes/css-global-classes\";\r\nimport { GA_LIVE_STREAM_CATEGORY } from \"../../services/video-live-stream/video-live-stream.service\";\r\n\r\nexport interface LiveStreamingTileComponentProps {\r\n gameInfo: GameInfo;\r\n onOpenRealGame: () => void;\r\n}\r\n\r\n@observer\r\nexport class LiveStreamingTileComponent extends OrbitComponent {\r\n\r\n @observable\r\n private _hasError: boolean = false;\r\n @action.bound\r\n setHasError(value: boolean) {\r\n this._hasError = value;\r\n }\r\n @observable\r\n private _isVideoLoading: boolean = true;\r\n @observable\r\n private _isFirstTimeLoading: boolean = true;\r\n @action.bound\r\n setIsVideoLoading(value: boolean) {\r\n this._isVideoLoading = value;\r\n if (this._isFirstTimeLoading === true && value === false) {\r\n this._isFirstTimeLoading = false;\r\n }\r\n }\r\n @observable\r\n private _isWatchTimeLimitReached: boolean = false;\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 this.services.analytics.sendAnalytics(GA_LIVE_STREAM_CATEGORY, \"PLAY_GAME\", \"CLICK\", this.props.gameInfo.gameType, true);\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\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 \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 \r\n \r\n );\r\n }\r\n\r\n private _renderPlayer(tableInfo: ILiveTableInfo) {\r\n return (\r\n \r\n this.setHasError(value)}\r\n onLoading={(value) => {this.setIsVideoLoading(value)}}\r\n onWatchTimeLimitReached={(value) => {this.setIsWatchTimeLimitReached(value)}}\r\n />\r\n {this._renderPlayerOverlay()}\r\n \r\n \r\n );\r\n }\r\n\r\n private _renderMinMaxBet(tableInfo: ILiveTableInfo): ReactNode {\r\n\r\n let minBet: number;\r\n let maxBet: number;\r\n\r\n if(Check.isNullOrUndefined(tableInfo?.MinBet) || Check.isNullOrUndefined(tableInfo?.MaxBet)){\r\n minBet = this.props.gameInfo.minBet;\r\n maxBet = this.props.gameInfo.maxBet;\r\n } else {\r\n minBet = tableInfo.MinBet;\r\n maxBet = 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(tableInfo: ILiveTableInfo): ReactNode {\r\n\r\n let title = this.props.gameInfo?.title || \"\\xa0\";\r\n\r\n if (tableInfo?.Name?.length > 0) {\r\n title = 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 _renderFooter(tableInfo: ILiveTableInfo) {\r\n return (\r\n \r\n \r\n {this._renderGameTitle(tableInfo)}\r\n {this._renderMinMaxBet(tableInfo)}\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 private _renderSkeleton() {\r\n if (this._isFirstTimeLoading) {\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n }\r\n\r\n private _renderContent() {\r\n if (this._hasError) {\r\n return this._renderRetryScreen();\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 {this._renderPlayer(tableInfo)}\r\n {this._renderFooter(tableInfo)}\r\n {this._renderSkeleton()}\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 {LiveStreamingItemContainerDefaultBox} from \"./live-streaming-item-container.default.box\";\r\n\r\nexport const LiveStreamingItemContainerBox = LiveStreamingItemContainerDefaultBox;\r\n","import styled from \"styled-components\";\r\nimport {flexFixedSizeItem} from \"../../../../themes/architecture/css-helpers/flex\";\r\n\r\nexport const LiveStreamingItemContainerDefaultBox = styled.div`\r\n width: 100%;\r\n ${flexFixedSizeItem}\r\n`;\r\n","import React from \"react\";\r\nimport {GameInfo} from \"../../../services/games/game-info\";\r\nimport {OrbitComponent} from \"../../base-components/orbit-component/orbit-component\";\r\nimport {LiveStreamingTileComponent} from \"../../live-streaming-tile/live-streaming-tile.component\";\r\nimport {LiveStreamingItemContainerBox} from \"./boxes/live-streaming-item-container.box\";\r\n\r\nexport interface SingleGameLiveStreamingTemplateProps {\r\n tableConfig: GameInfo;\r\n onOpenRealGame: () => void;\r\n}\r\nexport class SingleGameLiveStreamingTemplate extends OrbitComponent {\r\n render() {\r\n return (\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 {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} 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 {SingleGameLiveStreamingTemplate} from './live-streaming-template/single-game-live-streaming-template.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}\r\n\r\n@observer\r\nexport class SingleGameComponent extends OrbitComponent {\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 };\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) {\r\n this.services.analytics.sendAnalytics(this.props.seoCategory, this.props.listTitle, label);\r\n }\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 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){\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 {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} from '../../../../themes/css-global-classes';\r\nimport {styledByDevice} from '../../../../themes/architecture/styled-by-device';\r\n\r\n//.orbit-swiper-wrapper\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\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\r\nexport const MobileBox = styled(DefaultBox)`\r\n padding: 0;\r\n`;\r\n\r\nexport const SwiperWrapperDefaultBox = styledByDevice(PcBox, MobileBox);","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 from 'styled-components';\r\nimport { CssRule } from '../../../../themes/architecture/css-helpers/css-rule';\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\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\r\nconst PcBox = styled(DefaultBox)`\r\n overflow: visible;\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n margin-top: 5px;\r\n margin-bottom: 20px;\r\n overflow-x: scroll;\r\n overflow-y: hidden;\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 ${CssRule.For.notMobileOs.build()} & {\r\n overflow: visible;\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`;","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\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}\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) {\r\n return ;\r\n }\r\n\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 _element = null;\r\n\r\n private _captureSwiperGameListDivElement = (element) => {\r\n this._element = element;\r\n this.props.viewModel.swipeLogicHandler.setElement(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) => this._renderOneGame(gameType, index));\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._element),\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._element)\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","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.sAndBelow} {\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 { Color } from \"../../../../themes/definitions/casino777/casino777-colors\";\r\nimport { styledByTheme } from \"../../../../themes/architecture/styled-by-theme\";\r\nimport {JACKPOT_STATE} from '../../../../../common/const/jackpot_map_ids';\r\n\r\ninterface IJackpotWidgetAmountBox {\r\n forcePCView: boolean;\r\n state: JACKPOT_STATE;\r\n widgetIsMinimized?: boolean;\r\n widgetWidth: number;\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.bodyText : theme.colors.brandPrimary };\r\n text-shadow: 0px 2px 3px ${({theme}) => theme.colors.bodyHover};\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.sAndBelow} {\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}) => state === JACKPOT_STATE.Cold ? Color.blackTeal : theme.colors.buttonWarning };\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.sAndBelow} {\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 { Color } from \"../../../../../../themes/definitions/casino777/casino777-colors\";\r\nimport { styledByTheme } from \"../../../../../../themes/architecture/styled-by-theme\";\r\nimport {JACKPOT_STATE} from '../../../../../../../common/const/jackpot_map_ids';\r\n\r\ninterface IJackpotWidgetClockLabelBox{\r\n forcePCView: boolean;\r\n state: JACKPOT_STATE;\r\n widgetIsMinimized?: boolean;\r\n widgetWidth: number;\r\n}\r\n\r\nconst JackpotWidgetClockLabelDefaultBox = styled.div`\r\n width: ${({widgetIsMinimized}) => widgetIsMinimized ? \"100%\" : \"74%\" };\r\n text-align: ${({widgetIsMinimized}) => widgetIsMinimized ? \"center\" : \"left\" };\r\n ${({forcePCView}) => !forcePCView && css`\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n text-align: center;\r\n width: 100%;\r\n }\r\n `}\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.brandPrimary : theme.colors.bodyText };\r\n letter-spacing: 0.02rem;\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.sAndBelow} {\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}) => state === JACKPOT_STATE.Hot ? theme.colors.buttonWarning : Color.blackTeal };\r\n`;\r\nexport const JackpotWidgetClockLabelBox = styledByTheme(JackpotWidgetClockLabelDefaultBox)\r\n .forCasino777(JackpotWidgetClockLabelCasino777Box).apply();\r\n","import styled, {css} from \"styled-components\";\r\nimport { Color } from \"../../../../../../themes/definitions/casino777/casino777-colors\";\r\nimport { styledByTheme } from \"../../../../../../themes/architecture/styled-by-theme\";\r\n\r\nexport interface IJackpotWidgetClockBoxProps {\r\n className?: string;\r\n forcePCView?: boolean;\r\n widgetIsMinimized?: boolean;\r\n widgetWidth?: number;\r\n}\r\n\r\nconst JackpotWidgetClockDefaultBox = styled.div`\r\n width: ${({widgetIsMinimized}) => widgetIsMinimized ? \"100%\" : \"26%\" };\r\n text-align: ${({widgetIsMinimized}) => widgetIsMinimized ? \"center\" : \"right\" };\r\n ${({forcePCView}) => !forcePCView && css`\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n text-align: center;\r\n width: 100%;\r\n }\r\n `}\r\n\r\n color: ${({theme}) => theme.colors.bodyText};\r\n font-family: ${({theme}) => theme.components.jackpotWidget.font.clock};\r\n\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 /** 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: ${Color.blackTeal};\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} 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}\r\n\r\n@observer\r\nexport class JackpotWidgetClockComponent extends OrbitComponent {\r\n private updateClockInterval = null;\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 { Color } from \"../../../../../themes/definitions/casino777/casino777-colors\";\r\nimport { styledByTheme } from \"../../../../../themes/architecture/styled-by-theme\";\r\n\r\ninterface IJackpotWidgetAmountLabelBox {\r\n forcePCView: boolean;\r\n widgetIsMinimized?: boolean;\r\n widgetWidth: number;\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.bodyText};\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.sAndBelow} {\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: ${Color.blackTeal};\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\n\r\ninterface IJackpotWidgetCollectingLabelBox {\r\n forcePCView: boolean;\r\n widgetIsMinimized?: boolean;\r\n widgetWidth: number;\r\n}\r\n\r\nconst JackpotWidgetCollectingLabelDefaultBox = styled.div`\r\n width: ${({widgetIsMinimized}) => widgetIsMinimized ? \"100%\" : \"62%\" };\r\n text-align: ${({widgetIsMinimized}) => widgetIsMinimized ? \"center\" : \"left\" };\r\n ${({forcePCView}) => !forcePCView && css`\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n text-align: center;\r\n width: 100%;\r\n }\r\n `}\r\n\r\n font-family: ${({theme}) => theme.font.family.body};\r\n color: ${({theme}) => theme.colors.brandPrimary};\r\n letter-spacing: 0.02rem;\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.sAndBelow} {\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}) => theme.colors.buttonWarning};\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\n\r\ninterface IJackpotWidgetCollectingAmountBox{\r\n forcePCView: boolean;\r\n widgetIsMinimized?: boolean;\r\n widgetWidth: number;\r\n}\r\n\r\nconst JackpotWidgetCollectingAmountDefaultBox = styled.div`\r\n width: ${({widgetIsMinimized}) => widgetIsMinimized ? \"100%\" : \"38%\" };\r\n text-align: ${({widgetIsMinimized}) => widgetIsMinimized ? \"center\" : \"right\" };\r\n ${({forcePCView}) => !forcePCView && css`\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n text-align: center;\r\n width: 100%;\r\n }\r\n `}\r\n font-family: ${({theme}) => theme.font.family.bold};\r\n color: ${({theme}) => theme.colors.brandPrimary};\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 * 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.sAndBelow} {\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}) => theme.colors.buttonWarning};\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","\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 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.sAndBelow} {\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 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 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 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.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 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@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 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\nimport {styledByDevice} from \"../../../../themes/architecture/styled-by-device\";\r\n\r\nconst DefaultBox = 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`;\r\n\r\nexport const PCBox = DefaultBox;\r\n\r\nexport const MobileBox = styled(DefaultBox)`\r\n &:before {\r\n height: 25rem;\r\n }\r\n`;\r\n\r\nexport const ListTitleDefaultBox = styledByDevice(PCBox, MobileBox);","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.brandSecondary};\r\n background-color: ${props => props.theme.colors.bodyBackground};\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\nimport { CssRule } from \"../../../../../themes/architecture/css-helpers/css-rule\";\r\n\r\nexport const SwiperButtonBox = styled.div<{hideOnRealMobile?: boolean}>`\r\n margin: 0 0.5rem;\r\n\r\n ${({hideOnRealMobile}) => hideOnRealMobile ? css`\r\n ${CssRule.For.realMobile.build()} &{\r\n display: none;\r\n }\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 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\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 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\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}","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.name;\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 {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 LiveCasinoVideoComponentProps {\r\n viewModel: ISwiperListViewModel;\r\n listPosition: number;\r\n}\r\n\r\n@observer\r\nexport class LiveCasinoVideoComponent extends OrbitComponent {\r\n\r\n render() {\r\n const viewModel = this.props.viewModel;\r\n return (\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.bodyText.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.bodyBackground.toString()};\r\n background: ${({theme}) => theme.colors.brandSecondary.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 if (event.propertyName === \"transform\") {\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 this._element.style.transform = \"translateX(-100%)\";\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 this._element.style.transform = \"translateX(-100%)\";\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\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`;\r\n\r\nexport const LiveStreamingNavigationPrevButtonDefaultBox = styled(LiveStreamingNavigationCommonBox)`\r\n left: 1rem;\r\n`;\r\n\r\nexport const LiveStreamingNavigationNextButtonDefaultBox = styled(LiveStreamingNavigationCommonBox)`\r\n right: 1rem;\r\n`;\r\n","import {LiveStreamingNavigationPrevButtonDefaultBox, LiveStreamingNavigationNextButtonDefaultBox} from \"./live-streaming-navigation.default.box\";\r\n\r\nexport const LiveStreamingNavigationPrevButtonBox = LiveStreamingNavigationPrevButtonDefaultBox;\r\nexport const LiveStreamingNavigationNextButtonBox = LiveStreamingNavigationNextButtonDefaultBox;\r\n","import React from \"react\";\r\nimport {LiveCasinoVideoComponent} from \"../../../../../components/live-casino-video/live-casino-video.component\";\r\nimport {Check} from \"@sparkware/app-utils\";\r\nimport {SwiperListBaseModel} from \"../swiper-list-base.model\";\r\nimport {LiveStreamingListTitleBox} from \"../../../../../components/live-streaming-tile/boxes/live-streaming-list-title/live-streaming-list-title.box\";\r\nimport {LiveStreamingTitleIconBox} from \"../../../../../components/live-streaming-tile/boxes/live-streaming-title-icon/live-streaming-title-icon.box\";\r\nimport {LIVE_STREAMING_ITEM} from \"../../../../../themes/css-global-classes\";\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 {LiveStreamingNavigationPrevButtonBox, LiveStreamingNavigationNextButtonBox} from \"../../../../../components/live-streaming-tile/boxes/live-streaming-navigation/live-streaming-navigation.box\";\r\n\r\nconst LIVE_STREAM_GAMETYPES_OFFSET_STORAGE_KEY = \"orbit-live-stream-gametypes-offset\";\r\n\r\nexport class LiveCasinoVideoListModel extends SwiperListBaseModel {\r\n\r\n // HELPER for gametypes:\r\n // 2330093 is Adventures Beyond Wonderland\r\n // 2010163 is Crazy Time\r\n // 2330162 is Mega Fire Blaze Roulette\r\n // 2010013 is 888 Roulette\r\n // 2330030 is Age of Gods Roulette\r\n // 2010033 is Live Lighting Roulette\r\n // 2330017 is Quantum Roulette\r\n // 2010015 is Ruby Roulette\r\n private _baseGameTypesArray = [2330093, 2010163, 2330162, 2010013, 2330030, 2010033, 2330017, 2010015];\r\n\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 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.device.isMobile ||\r\n this.services.miniOrbit.isEnabled ||\r\n !this.services.abTestingFeatureDataProvider.isVideoLiveStreamEnabled ||\r\n this.services.httpLiveStream.isDisabledPrelogin\r\n }\r\n\r\n get maxGamesToShowInList(): number {\r\n return 8;\r\n }\r\n\r\n private _getGameTypesOffsetFromLocalStorage(): number {\r\n let storedValue = this.services.storage.getItem(LIVE_STREAM_GAMETYPES_OFFSET_STORAGE_KEY);\r\n\r\n return Check.isNullOrUndefined(storedValue) ? 0 : parseInt(storedValue);\r\n }\r\n\r\n private _gameTypesOffset: number = null;\r\n\r\n protected _getGameTypes(): number[] {\r\n\r\n if(!Check.isNullOrUndefined(this.services.httpLiveStream.isSupported)\r\n && !this.services.httpLiveStream.isSupported) {\r\n return [];\r\n }\r\n\r\n let baseArray = [...this._baseGameTypesArray];\r\n if(Check.isNullOrUndefined(this._gameTypesOffset)){\r\n this._gameTypesOffset = this._getGameTypesOffsetFromLocalStorage();\r\n let newOffset = (this._gameTypesOffset + 1) % (this._baseGameTypesArray.length);\r\n this.services.storage.setItem(LIVE_STREAM_GAMETYPES_OFFSET_STORAGE_KEY, newOffset);\r\n }\r\n\r\n let gameTypes = baseArray.splice(this._gameTypesOffset)\r\n .concat(baseArray);\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 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 _renderList(listPosition: number): React.ReactElement | null {\r\n return ();\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 get numberOfGamesSkeletons(): number {\r\n return this._getNumberOfGamesSkeletons();\r\n }\r\n\r\n protected _getNumberOfGamesSkeletons(): number {\r\n if(Check.isNullOrUndefined(this.services.httpLiveStream.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 get templateType(): string {\r\n return LIVE_STREAMING_ITEM;\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.swipeLogicHandler.movePrevious()}>\r\n \r\n \r\n this.swipeLogicHandler.moveNext()}>\r\n \r\n \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, gameIndex) {\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 root: this.services.mainScreen.mainScreenElement, //if we don't attach to the correct scroll container (the one that has the scroll bars) then the rootMargin doesn't work correctly\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 ${props => props.theme.layout.wrapper.padding.mobile};\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.activateGetCorrelatedGamesForLastPlayedRealGame();\r\n }\r\n\r\n protected _shouldBeDisplayed(): boolean {\r\n return super._shouldBeDisplayed() && \r\n this.services.user.isAuthorized &&\r\n this.services.abTestingFeatureDataProvider.isBecauseYouPlayedEnabled &&\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 {\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 {LiveCasinoVideoListModel} from \"./live-casino-video/live-casino-video-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\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:\r\n return new LiveCasinoVideoListModel(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}","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 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 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}\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 if (!this.services.dailyDeal.dailyDealCampaignId) {\r\n return null;\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.dailyDeal.visitDailyDeal();\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\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 styled from \"styled-components\";\r\nimport {styledByDevice} from \"../../../../themes/architecture/styled-by-device\";\r\n\r\nconst DefaultBox = 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.bodyText};\r\n margin: 0 auto;\r\n width: fit-content;\r\n z-index: 1;\r\n`;\r\n\r\nconst PCBox = styled(DefaultBox)`\r\n\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n font-size: 0.9rem;\r\n`;\r\n\r\nexport const HomepageHeaderArenaTitleDefaultBox = styledByDevice(PCBox, MobileBox);\r\n","import {HomepageHeaderArenaTitleDefaultBox} from \"./home-page-header-arena-title.default.box\";\r\n\r\nexport const HomepageHeaderArenaTitleBox = HomepageHeaderArenaTitleDefaultBox;\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.bodyText.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 justify-content: center;\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) {\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\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(section, prop, placeholder, dynamic) {\r\n\r\n let seoValue = '';\r\n let seoConfig = this.services.configuration.data.seo;\r\n\r\n if (seoConfig && seoConfig[section] && seoConfig[section].images && seoConfig[section].images[prop]) {\r\n seoValue = seoConfig[section].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) => {\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) {\r\n const hasNewGamesIndication = arena.title === NEW_GAMES_TITLE && this.services.homepage.newAddedGames > 0;\r\n const newGamesIndication = hasNewGamesIndication ?\r\n {this.services.homepage.newAddedGames} \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.dividerTopBorder};\r\n border-top: 3px solid ${props => props.theme.colors.dividerBottomBorder};\r\n border-bottom: 1px solid ${props => props.theme.colors.dividerTopBorder};\r\n margin: 4px 0 7px 7px;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport {CmsBannerComponent} from '../cms-banner/cms-banner.component';\r\nimport {DailyDealComponent} from \"../daily-deal/daily-deal.component\";\r\nimport {RoutedComponent} from '../base-components/routed-component/routed.component';\r\nimport {LayoutWrapperBox} from \"../../basic-components/layout-wrapper/layout-wrapper.box\";\r\nimport {MOVE_TOP} from \"../../themes/css-global-classes\";\r\nimport classNames from \"classnames\";\r\nimport {HomePageHeaderArenasComponent} from \"../home-page-header-arenas/home-page-header-arenas.component\";\r\nimport {HomepageTopBannerBackgroundBox} from \"./boxes/home-page-top-banner-background.box\";\r\nimport { HomepageTopBannerDividerBox } from './boxes/home-page-top-banner-divider-line';\r\nimport { CyClass } from '../../../common/cy-classes';\r\nimport {LinkToOfferComponent} from \"../link-to-offer/link-to-offer.component\";\r\nimport {ArenaGamesListsComponent} from \"../arena-games-lists/arena-games-lists.component\";\r\nimport {HOME_PAGE_ARENA} from \"../../services/arenas/arena-consts\";\r\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 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 \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.bodyText};\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.bodyInfo};\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\n//.lobby-games-info\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: ${props => props.theme.layout.wrapper.padding.pc};\r\n padding-right: ${props => props.theme.layout.wrapper.padding.pc};\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\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","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.storage.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.storage.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.brandSecondary : theme.colors.bodyText};\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.buttonLight};\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.buttonDark};\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 { Color } from \"../../../../../../themes/definitions/casino777/casino777-colors\";\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.brandPrimary, 0.6)};\r\n }\r\n &:last-child {\r\n border-left: 1px solid ${hexToRgba(Color.tan, 0.6)};\r\n border-right: none;\r\n }\r\n\r\n border-left: 1px solid ${hexToRgba(Color.tan, 0.6)};\r\n border-right: 1px solid ${({theme}) => hexToRgba(theme.colors.brandPrimary, 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.components.partyJackpotInGameWidget.colors.amount};\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.components.partyJackpotInGameWidget.colors.amount};\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.components.partyJackpotInGameWidget.colors.timer};\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 } 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\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 constructor(props, context?) {\r\n super(props, context);\r\n\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","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.storage.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\n\r\nexport class SideMenuService extends ServiceBase implements ISideMenuService {\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(() => this.services.overlay.isOpen,\r\n (isOpen) => {\r\n if (!isOpen) {\r\n this.closeMobileMenu();\r\n }\r\n });\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.services.overlay.openOverlay();\r\n this._setIsMobileMenuOpen(true);\r\n }\r\n }\r\n\r\n closeMobileMenu(): void {\r\n if (this.isMobileMenuOpen) {\r\n this.services.overlay.closeOverlay();\r\n this.services.gameSearch.closeSearchResult();\r\n this.closeMobileLanguageSwitcher();\r\n\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.overlay.closeOverlay();\r\n this.services.userMenu.closeMenu();\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\n\r\nexport interface OpenLinkParams {\r\n source?: string;\r\n sourceLink?: string;\r\n options?: any;\r\n view?: string;\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: string;\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.navItemTextNormal};\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\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.brandSecondary}\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.navBoxBackground};\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) {\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.searchLinksBorder};\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.bodyBackground};\r\n border: 1px solid ${props => props.theme.colors.searchResultsBorder};\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.navBackground};\r\n border: 1px solid ${props => props.theme.colors.searchResultsBorder};\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.brandPrimary};\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.bodyText};\r\n background: ${props => props.theme.colors.componentBackground};\r\n\r\n &:focus {\r\n background: ${props => props.theme.colors.componentBackground};\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.componentTextInfo};\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.bodyText};\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.bodyText};\r\n height: initial;\r\n margin: 0;\r\n background: ${props => props.theme.colors.bodyBackground};\r\n \r\n &:focus {\r\n box-shadow: none;\r\n outline: none;\r\n background: ${props => props.theme.colors.bodyBackground};\r\n }\r\n \r\n &::placeholder {\r\n color: ${props => props.theme.colors.bodyText};\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.bodyText};\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.bodyText};\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.buttonDark};\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 font-family: ${props => props.theme.font.family.regular};\r\n font-weight: 300;\r\n color: ${props => props.theme.colors.bodyText};\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 background: ${props => props.theme.colors.bodyBackground};\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.componentTextInfo};\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.bodyInfo};\r\n }\r\n\r\n &:focus {\r\n transition: width 0.5s ease, padding 0.5s ease;\r\n background:${props => props.theme.colors.bodyBackground};\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 background:#232323;\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.bodyText};\r\n }\r\n &:focus {\r\n background:#232323;\r\n border: none;\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 SearchInputAreaDoverDownsPCBox = styled(SearchInputArenaDefaultPCBox)`\r\n border: 2px solid ${props => props.theme.colors.bodyBackgroundLight};\r\n`;\r\n\r\nexport const SearchInputAreaDoverDownsBox = styledByDevice(SearchInputAreaDoverDownsPCBox, 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.bodyBackgroundLight};\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.bodyBackgroundLight};\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 {SearchInputAreaDoverDownsBox} from \"./search-input-area.doverdowns.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 .forDoverDowns(SearchInputAreaDoverDownsBox)\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) => {\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\n\r\nexport class GameSearchService extends ServiceBase implements IGameSearchService {\r\n\r\n private _closeMobileSideMenuOnSearchClose: boolean = false;\r\n\r\n constructor(services: IServiceFactoryExtended) {\r\n super(services);\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 private _openFullOrbitSearchResult() {\r\n this._disposeDocumentClickSubscription();\r\n\r\n if (!this.services.device.isMobile) {\r\n this.services.overlay.openOverlay();\r\n }\r\n\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 private _closeFullOrbitSearchResult = () => {\r\n this._disposeDocumentClickSubscription();\r\n\r\n if (!this.services.device.isMobile) {\r\n this.services.overlay.closeOverlay();\r\n }\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, index) => {\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\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 = this.services.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\r\n return new Promise((resolve) => {\r\n if(params.resolveByCallback && !isHybrid) {\r\n sdkOpenParams.actionCallback = (result: any) => resolve(result);\r\n }\r\n this.services.sdk.openExternalLink(sdkOpenParams, useCallbackURL);\r\n if(!params.resolveByCallback || isHybrid) {\r\n resolve();\r\n }\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\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\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 let data = null;\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): 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 return this.services.http.get(this._apiOrigin + '/api/pagecontent?publicationid=' + this._publicationID + '&url=' + this._addSlashesInTheSides(url), 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\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 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 }\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 {UriPath} from '../../location/uri-path/uri-path';\r\nimport {Check} from \"@sparkware/app-utils\";\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 let pageElement = this.services.dom.getElementById('page');\r\n if(this._isFirstLoad && pageElement && !this.services.routing.isOrbitRoute(uri.pathName)) {\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._loadCmsPageFromApi(uri);\r\n } else{\r\n this._loadPageContentFromDOM(pageElement, uri);\r\n }\r\n\r\n } else {\r\n await this._loadCmsPageFromApi(uri);\r\n }\r\n\r\n\r\n this._isFirstLoad = false;\r\n this._currentUri = uri;\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 {styledByDevice} from \"../../themes/architecture/styled-by-device\";\r\n\r\nexport const DefaultBox = styled.div`\r\n color: ${props => props.theme.colors.bodyInfo};\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n font-size: 1.2rem;\r\n line-height: normal;\r\n padding-left: ${props => props.theme.layout.wrapper.padding.pc};\r\n padding-right: ${props => props.theme.layout.wrapper.padding.pc};\r\n \r\n &:before {\r\n content: \"\";\r\n position: absolute;\r\n width: 100%;\r\n height: 350px;\r\n left: 0;\r\n top: 0;\r\n background-image: radial-gradient(50% 80% at top, rgba(0,0,0,0.5), transparent);\r\n background-repeat: no-repeat;\r\n background-position: center top;\r\n }\r\n`;\r\n\r\nconst MobileBox = styled(DefaultBox)`\r\n\r\n padding-top: 1.5rem;\r\n padding-left: 0;\r\n padding-right: 0;\r\n\r\n &:before{\r\n display: none;\r\n opacity: 0;\r\n }\r\n`;\r\n\r\nexport const LobbyWrapperDefaultBox = styledByDevice(DefaultBox, MobileBox);","import styled from \"styled-components\";\r\nimport {DefaultBox} from './lobby-wrapper.default.box';\r\nimport {styledByDevice} from \"../../themes/architecture/styled-by-device\";\r\nimport {LOBBY_PAGE} from '../../themes/css-global-classes';\r\n\r\n\r\nconst PCBox = styled(DefaultBox)`\r\n &:before {\r\n background-size: cover;\r\n top: 0;\r\n height: 35rem;\r\n }\r\n`;\r\n\r\nconst MobileBox = styled(PCBox)`\r\n padding: 0;\r\n .${LOBBY_PAGE} & {\r\n &:before {\r\n display: block;\r\n opacity:1;\r\n top: 0;\r\n }\r\n }\r\n`;\r\n\r\nexport const LobbyWrapperCasino777Box = styledByDevice(PCBox, MobileBox);","import {LobbyWrapperDefaultBox} from \"./lobby-wrapper.default.box\";\r\nimport {styledByTheme} from \"../../themes/architecture/styled-by-theme\";\r\nimport {LobbyWrapperCasino777Box} from \"./lobby-wrapper.casino777.box\";\r\n\r\nexport const LobbyWrapperBox = styledByTheme(LobbyWrapperDefaultBox).forCasino777(LobbyWrapperCasino777Box).apply();","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 {LiveCasinoGridItemDefaultBox} from \"./live-casino-grid-item.default.box\";\r\n\r\nexport const LiveCasinoGridItemBox = LiveCasinoGridItemDefaultBox;","import styled, {css} from \"styled-components\";\r\n\r\ninterface ILiveCasinoGridItemDefaultBoxProps {\r\n fluidWidth?: boolean; // when true, don't set the width, let it flow within its parent\r\n}\r\n\r\nexport const LiveCasinoGridItemDefaultBox = styled.div`\r\n box-sizing: border-box;\r\n\r\n /* Prevents CSS Transform flicker */\r\n backface-visibility: hidden;\r\n\r\n ${({fluidWidth}) => !fluidWidth && css`\r\n\r\n width: calc(100% / 5);\r\n padding: 1em 0.5em;\r\n\r\n @media ${({theme}) => theme.mediaQuery.mAndAbove} {\r\n width: calc(100% / 3);\r\n }\r\n @media ${({theme}) => theme.mediaQuery.xlAndAbove} {\r\n width: calc(100% / 4);\r\n }\r\n @media ${({theme}) => theme.mediaQuery.sAndBelow} {\r\n width: calc(100% / 2);\r\n padding: 0.5em 0.25em;\r\n }\r\n `}\r\n`;","import {LiveCasinoGridItemInfobarIconDefaultBox} from \"./live-casino-grid-item-infobar-icon.default.box\";\r\n\r\nexport const LiveCasinoGridItemInfobarIconBox = LiveCasinoGridItemInfobarIconDefaultBox;","import styled from \"styled-components\";\r\nimport { Image } from \"../../../../../../raw-components/image/image\";\r\n\r\nexport const LiveCasinoGridItemInfobarIconDefaultBox = styled(Image)`\r\n margin-right: 0.25em;\r\n`;","import {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 letter-spacing: 0.1rem;\r\n font-size: 1em;\r\n height: 24px;\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\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\"./casino777/theme.definition\": [\n\t\t998,\n\t\t0,\n\t\t58\n\t],\n\t\"./casino888/cip/theme.definition\": [\n\t\t1023,\n\t\t0,\n\t\t15,\n\t\t59\n\t],\n\t\"./casino888/cis/theme.definition\": [\n\t\t927,\n\t\t0,\n\t\t15,\n\t\t60\n\t],\n\t\"./casino888/theme.definition\": [\n\t\t337,\n\t\t0,\n\t\t15\n\t],\n\t\"./delawarepark/theme.definition\": [\n\t\t1000,\n\t\t0,\n\t\t61\n\t],\n\t\"./doverdowns/theme.definition\": [\n\t\t1024,\n\t\t0,\n\t\t62\n\t],\n\t\"./harrahs/theme.definition\": [\n\t\t928,\n\t\t0,\n\t\t63\n\t],\n\t\"./harrington/theme.definition\": [\n\t\t1025,\n\t\t0,\n\t\t64\n\t],\n\t\"./wsop/cip/theme.definition\": [\n\t\t1026,\n\t\t0,\n\t\t65\n\t],\n\t\"./wsop/theme.definition\": [\n\t\t324,\n\t\t0,\n\t\t66\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 = 697;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./ara\": [\n\t\t482,\n\t\t20\n\t],\n\t\"./ara.ts\": [\n\t\t482,\n\t\t20\n\t],\n\t\"./chi\": [\n\t\t483,\n\t\t26\n\t],\n\t\"./chi.ts\": [\n\t\t483,\n\t\t26\n\t],\n\t\"./dan\": [\n\t\t484,\n\t\t35\n\t],\n\t\"./dan.ts\": [\n\t\t484,\n\t\t35\n\t],\n\t\"./dut\": [\n\t\t485,\n\t\t36\n\t],\n\t\"./dut.ts\": [\n\t\t485,\n\t\t36\n\t],\n\t\"./eng\": [\n\t\t299\n\t],\n\t\"./eng.ts\": [\n\t\t299\n\t],\n\t\"./fin\": [\n\t\t486,\n\t\t21\n\t],\n\t\"./fin.ts\": [\n\t\t486,\n\t\t21\n\t],\n\t\"./fre\": [\n\t\t487,\n\t\t22\n\t],\n\t\"./fre.ts\": [\n\t\t487,\n\t\t22\n\t],\n\t\"./ger\": [\n\t\t488,\n\t\t23\n\t],\n\t\"./ger.ts\": [\n\t\t488,\n\t\t23\n\t],\n\t\"./gre\": [\n\t\t489,\n\t\t24\n\t],\n\t\"./gre.ts\": [\n\t\t489,\n\t\t24\n\t],\n\t\"./ita\": [\n\t\t490,\n\t\t25\n\t],\n\t\"./ita.ts\": [\n\t\t490,\n\t\t25\n\t],\n\t\"./jpn\": [\n\t\t491,\n\t\t27\n\t],\n\t\"./jpn.ts\": [\n\t\t491,\n\t\t27\n\t],\n\t\"./nor\": [\n\t\t492,\n\t\t28\n\t],\n\t\"./nor.ts\": [\n\t\t492,\n\t\t28\n\t],\n\t\"./por\": [\n\t\t493,\n\t\t29\n\t],\n\t\"./por.ts\": [\n\t\t493,\n\t\t29\n\t],\n\t\"./rum\": [\n\t\t494,\n\t\t30\n\t],\n\t\"./rum.ts\": [\n\t\t494,\n\t\t30\n\t],\n\t\"./rus\": [\n\t\t495,\n\t\t31\n\t],\n\t\"./rus.ts\": [\n\t\t495,\n\t\t31\n\t],\n\t\"./spa\": [\n\t\t496,\n\t\t32\n\t],\n\t\"./spa.ts\": [\n\t\t496,\n\t\t32\n\t],\n\t\"./swe\": [\n\t\t497,\n\t\t33\n\t],\n\t\"./swe.ts\": [\n\t\t497,\n\t\t33\n\t],\n\t\"./tha\": [\n\t\t498,\n\t\t34\n\t],\n\t\"./tha.ts\": [\n\t\t498,\n\t\t34\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 = 698;\nmodule.exports = webpackAsyncContext;","export const Color = {\r\n brandYellow:\"#fcf6d5\",\r\n brandTeal:\"#0ea79b\",\r\n softTeal:\"#8cd1ba\",\r\n milkyTeal:\"#c2e3c7\",\r\n lightTeal:\"#8ad0b8\",\r\n peach:\"#ffd683\",\r\n papaya:\"#ffbe0b\",\r\n patternStrip:\"#cccfb4\",\r\n patternFill:\"#ecf1d1\",\r\n tan:\"#a4867c\",\r\n blackTeal:\"#19322f\",\r\n red:\"#bc3554\",\r\n brick: \"#b01619\",\r\n blackRed:\"#4c1723\",\r\n shadowTeal:\"#72a795\",\r\n shadowYellow:\"#cac5aa\",\r\n greyTeal:\"#478f89\",\r\n black:\"#19322f\",\r\n sepia:\"#eadfc3\",\r\n\r\n brandGreen: \"#7ff800\",\r\n white: \"#ffffff\",\r\n lightBlack: \"#232323\",\r\n darkBlack: \"#171717\",\r\n grey: \"#717171\",\r\n pink: \"#ff014f\",\r\n orange: \"#ff8a00\",\r\n darkGrey:\"#161616\",\r\n slateGrey: \"#1e1e1e\",\r\n softGrey: \"#303030\",\r\n blackGrey: \"#0a0a0a\",\r\n darkGreen:\"#001b01\",\r\n blackGreen:\"#001000\",\r\n middleGrey: \"#484848\",\r\n smokeGrey: \"#cacaca\",\r\n limeGreen:\"#d2f800\",\r\n silverGrey: \"#5c5c5c\",\r\n lightGreen: \"#c3e3c7\",\r\n\r\n sport: \"#fa6200\",\r\n\r\n vipYellow:\"#f9c600\",\r\n vipPurple:\"#aa9aca\",\r\n vipBlue:\"#74adb3\",\r\n\r\n yellow: \"#ffff00\",\r\n pear: \"#d5ec37\",\r\n inchWorm: \"#7aec37\",\r\n\r\n transparent: \"transparent\",\r\n\r\n scCards: \"#12011A\",\r\n roulBJ:\"#071A01\",\r\n vidPoker:\"#000E24\",\r\n};","export function hexToRgba(hex: string, opacity: number = 1): string {\r\n var c;\r\n if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)){\r\n c = hex.substring(1).split('');\r\n if(c.length === 3){\r\n c = [c[0], c[0], c[1], c[1], c[2], c[2]];\r\n }\r\n c = '0x'+c.join('');\r\n return 'rgba('+[(c>>16)&255, (c>>8)&255, c&255].join(',')+',' + opacity +')';\r\n }\r\n throw new Error('Bad color Hex code');\r\n}","export const CHANNEL_SOURCE = {\r\n casinoClient: 'CASINO_CLIENT',\r\n partyJackpotToaster: 'PARTY_JACKPOT_TOASTER',\r\n omg: 'OMG',\r\n myAccount: 'MY_ACCOUNT',\r\n registration: 'REGISTRATION'\r\n}\r\n\r\nexport const CHANNEL_ELEMENTS = {\r\n depositButton: 'deposit_button',\r\n withdrawButton: 'withdraw_button',\r\n retryButton: 'retry_button',\r\n plusButton: 'plus_button',\r\n urlParam: 'url_param',\r\n deepLink: 'deep_link'\r\n}\r\n\r\nexport const DISPLAY_MESSAGE_IDS = {\r\n sofRequired: 100,\r\n retryCloseDrawerMessage: 101,\r\n psRedirectFocusDialog: 102,\r\n timeSpentReminder: 104 // BI said it should be 104\r\n}","/** This is an automatically generated file.*/\nimport {Asset} from './architecture/asset';\nexport const Assets = {\n\tfonts: {\n\t\t_888_Black_eot: new Asset(\"fonts/888-Black.eot\", {}),\n\t\t_888_Black_otf: new Asset(\"fonts/888-Black.otf\", {}),\n\t\t_888_Black_svg: new Asset(\"fonts/888-Black.svg\", {}),\n\t\t_888_Black_ttf: new Asset(\"fonts/888-Black.ttf\", {}),\n\t\t_888_Black_woff: new Asset(\"fonts/888-Black.woff\", {}),\n\t\t_888_Black_woff2: new Asset(\"fonts/888-Black.woff2\", {}),\n\t\t_888_Bold_eot: new Asset(\"fonts/888-Bold.eot\", {'777_com': true}),\n\t\t_888_Bold_otf: new Asset(\"fonts/888-Bold.otf\", {'777_com': true}),\n\t\t_888_Bold_svg: new Asset(\"fonts/888-Bold.svg\", {'777_com': true}),\n\t\t_888_Bold_ttf: new Asset(\"fonts/888-Bold.ttf\", {'777_com': true}),\n\t\t_888_Bold_woff: new Asset(\"fonts/888-Bold.woff\", {'777_com': true}),\n\t\t_888_DemiBold_eot: new Asset(\"fonts/888-DemiBold.eot\", {}),\n\t\t_888_DemiBold_otf: new Asset(\"fonts/888-DemiBold.otf\", {}),\n\t\t_888_DemiBold_svg: new Asset(\"fonts/888-DemiBold.svg\", {}),\n\t\t_888_DemiBold_ttf: new Asset(\"fonts/888-DemiBold.ttf\", {}),\n\t\t_888_DemiBold_woff: new Asset(\"fonts/888-DemiBold.woff\", {}),\n\t\t_888_DemiBold_woff2: new Asset(\"fonts/888-DemiBold.woff2\", {}),\n\t\t_888_Light_eot: new Asset(\"fonts/888-Light.eot\", {}),\n\t\t_888_Light_otf: new Asset(\"fonts/888-Light.otf\", {}),\n\t\t_888_Light_svg: new Asset(\"fonts/888-Light.svg\", {}),\n\t\t_888_Light_ttf: new Asset(\"fonts/888-Light.ttf\", {}),\n\t\t_888_Light_woff: new Asset(\"fonts/888-Light.woff\", {}),\n\t\t_888_Light_woff2: new Asset(\"fonts/888-Light.woff2\", {}),\n\t\t_888_Medium_eot: new Asset(\"fonts/888-Medium.eot\", {}),\n\t\t_888_Medium_otf: new Asset(\"fonts/888-Medium.otf\", {}),\n\t\t_888_Medium_svg: new Asset(\"fonts/888-Medium.svg\", {}),\n\t\t_888_Medium_ttf: new Asset(\"fonts/888-Medium.ttf\", {}),\n\t\t_888_Medium_woff: new Asset(\"fonts/888-Medium.woff\", {}),\n\t\t_888_Medium_woff2: new Asset(\"fonts/888-Medium.woff2\", {}),\n\t\t_888_Regular_eot: new Asset(\"fonts/888-Regular.eot\", {}),\n\t\t_888_Regular_otf: new Asset(\"fonts/888-Regular.otf\", {}),\n\t\t_888_Regular_svg: new Asset(\"fonts/888-Regular.svg\", {}),\n\t\t_888_Regular_ttf: new Asset(\"fonts/888-Regular.ttf\", {}),\n\t\t_888_Regular_woff: new Asset(\"fonts/888-Regular.woff\", {}),\n\t\t_888_Regular_woff2: new Asset(\"fonts/888-Regular.woff2\", {}),\n\t\t_888_SemiCondensedBold_eot: new Asset(\"fonts/888-SemiCondensedBold.eot\", {}),\n\t\t_888_SemiCondensedBold_otf: new Asset(\"fonts/888-SemiCondensedBold.otf\", {}),\n\t\t_888_SemiCondensedBold_svg: new Asset(\"fonts/888-SemiCondensedBold.svg\", {}),\n\t\t_888_SemiCondensedBold_ttf: new Asset(\"fonts/888-SemiCondensedBold.ttf\", {}),\n\t\t_888_SemiCondensedBold_woff: new Asset(\"fonts/888-SemiCondensedBold.woff\", {}),\n\t\t_888_SemiCondensedBold_woff2: new Asset(\"fonts/888-SemiCondensedBold.woff2\", {}),\n\t\t_888_SemiCondensedDemiBold_eot: new Asset(\"fonts/888-SemiCondensedDemiBold.eot\", {}),\n\t\t_888_SemiCondensedDemiBold_otf: new Asset(\"fonts/888-SemiCondensedDemiBold.otf\", {}),\n\t\t_888_SemiCondensedDemiBold_svg: new Asset(\"fonts/888-SemiCondensedDemiBold.svg\", {}),\n\t\t_888_SemiCondensedDemiBold_ttf: new Asset(\"fonts/888-SemiCondensedDemiBold.ttf\", {}),\n\t\t_888_SemiCondensedDemiBold_woff: new Asset(\"fonts/888-SemiCondensedDemiBold.woff\", {}),\n\t\t_888_SemiCondensedDemiBold_woff2: new Asset(\"fonts/888-SemiCondensedDemiBold.woff2\", {}),\n\t\t_888_Thin_eot: new Asset(\"fonts/888-Thin.eot\", {}),\n\t\t_888_Thin_otf: new Asset(\"fonts/888-Thin.otf\", {}),\n\t\t_888_Thin_svg: new Asset(\"fonts/888-Thin.svg\", {}),\n\t\t_888_Thin_ttf: new Asset(\"fonts/888-Thin.ttf\", {}),\n\t\t_888_Thin_woff: new Asset(\"fonts/888-Thin.woff\", {}),\n\t\t_888_Thin_woff2: new Asset(\"fonts/888-Thin.woff2\", {}),\n\t\t_888_Ultra_eot: new Asset(\"fonts/888-Ultra.eot\", {}),\n\t\t_888_Ultra_otf: new Asset(\"fonts/888-Ultra.otf\", {}),\n\t\t_888_Ultra_svg: new Asset(\"fonts/888-Ultra.svg\", {}),\n\t\t_888_Ultra_ttf: new Asset(\"fonts/888-Ultra.ttf\", {}),\n\t\t_888_Ultra_woff: new Asset(\"fonts/888-Ultra.woff\", {}),\n\t\t_888_Ultra_woff2: new Asset(\"fonts/888-Ultra.woff2\", {}),\n\t\tdigital_7_mono_ttf: new Asset(\"fonts/digital_7_mono.ttf\", {}),\n\t\tLobster_Regular_eot: new Asset(\"fonts/Lobster_Regular.eot\", {'777_com': true}),\n\t\tLobster_Regular_otf: new Asset(\"fonts/Lobster_Regular.otf\", {'777_com': true}),\n\t\tLobster_Regular_svg: new Asset(\"fonts/Lobster_Regular.svg\", {'777_com': true}),\n\t\tLobster_Regular_ttf: new Asset(\"fonts/Lobster_Regular.ttf\", {'777_com': true}),\n\t\tLobster_Regular_woff: new Asset(\"fonts/Lobster_Regular.woff\", {'777_com': true}),\n\t\tLobster_Regular_woff2: new Asset(\"fonts/Lobster_Regular.woff2\", {'777_com': true}),\n\t\toleo_script_reg_eot: new Asset(\"fonts/oleo_script_reg.eot\", {}),\n\t\toleo_script_reg_svg: new Asset(\"fonts/oleo_script_reg.svg\", {}),\n\t\toleo_script_reg_ttf: new Asset(\"fonts/oleo_script_reg.ttf\", {}),\n\t\toleo_script_reg_woff: new Asset(\"fonts/oleo_script_reg.woff\", {}),\n\t\toleo_script_reg_woff2: new Asset(\"fonts/oleo_script_reg.woff2\", {}),\n\t\toleo_script_reg_ext_woff2: new Asset(\"fonts/oleo_script_reg_ext.woff2\", {}),\n\t\tRobotoCondensed_Bold_ttf: new Asset(\"fonts/RobotoCondensed-Bold.ttf\", {}),\n\t\tTradeGothicLTStd_Bd2_otf: new Asset(\"fonts/TradeGothicLTStd-Bd2.otf\", {}),\n\t\tBello_Script_eot: new Asset(\"fonts/Bello_Script.eot\", {'777_com': true}),\n\t\tBello_Script_svg: new Asset(\"fonts/Bello_Script.svg\", {'777_com': true}),\n\t\tBello_Script_ttf: new Asset(\"fonts/Bello_Script.ttf\", {'777_com': true}),\n\t\tBello_Script_woff: new Asset(\"fonts/Bello_Script.woff\", {'777_com': true}),\n\t\tBello_Script_woff2: new Asset(\"fonts/Bello_Script.woff2\", {'777_com': true}),\n\t\tFutura_PT_Bold_eot: new Asset(\"fonts/Futura_PT_Bold.eot\", {'777_com': true}),\n\t\tFutura_PT_Bold_otf: new Asset(\"fonts/Futura_PT_Bold.otf\", {'777_com': true}),\n\t\tFutura_PT_Bold_svg: new Asset(\"fonts/Futura_PT_Bold.svg\", {'777_com': true}),\n\t\tFutura_PT_Bold_ttf: new Asset(\"fonts/Futura_PT_Bold.ttf\", {'777_com': true}),\n\t\tFutura_PT_Bold_woff: new Asset(\"fonts/Futura_PT_Bold.woff\", {'777_com': true}),\n\t\tFutura_PT_Bold_woff2: new Asset(\"fonts/Futura_PT_Bold.woff2\", {'777_com': true}),\n\t\tFutura_PT_Book_eot: new Asset(\"fonts/Futura_PT_Book.eot\", {'777_com': true}),\n\t\tFutura_PT_Book_otf: new Asset(\"fonts/Futura_PT_Book.otf\", {'777_com': true}),\n\t\tFutura_PT_Book_svg: new Asset(\"fonts/Futura_PT_Book.svg\", {'777_com': true}),\n\t\tFutura_PT_Book_ttf: new Asset(\"fonts/Futura_PT_Book.ttf\", {'777_com': true}),\n\t\tFutura_PT_Book_woff: new Asset(\"fonts/Futura_PT_Book.woff\", {'777_com': true}),\n\t\tFutura_PT_Book_woff2: new Asset(\"fonts/Futura_PT_Book.woff2\", {'777_com': true}),\n\t\tFutura_PT_Demi_eot: new Asset(\"fonts/Futura_PT_Demi.eot\", {'777_com': true}),\n\t\tFutura_PT_Demi_otf: new Asset(\"fonts/Futura_PT_Demi.otf\", {'777_com': true}),\n\t\tFutura_PT_Demi_svg: new Asset(\"fonts/Futura_PT_Demi.svg\", {'777_com': true}),\n\t\tFutura_PT_Demi_ttf: new Asset(\"fonts/Futura_PT_Demi.ttf\", {'777_com': true}),\n\t\tFutura_PT_Demi_woff: new Asset(\"fonts/Futura_PT_Demi.woff\", {'777_com': true}),\n\t\tFutura_PT_Demi_woff2: new Asset(\"fonts/Futura_PT_Demi.woff2\", {'777_com': true}),\n\t\tFutura_PT_Heavy_eot: new Asset(\"fonts/Futura_PT_Heavy.eot\", {'777_com': true}),\n\t\tFutura_PT_Heavy_otf: new Asset(\"fonts/Futura_PT_Heavy.otf\", {'777_com': true}),\n\t\tFutura_PT_Heavy_svg: new Asset(\"fonts/Futura_PT_Heavy.svg\", {'777_com': true}),\n\t\tFutura_PT_Heavy_ttf: new Asset(\"fonts/Futura_PT_Heavy.ttf\", {'777_com': true}),\n\t\tFutura_PT_Heavy_woff: new Asset(\"fonts/Futura_PT_Heavy.woff\", {'777_com': true}),\n\t\tFutura_PT_Heavy_woff2: new Asset(\"fonts/Futura_PT_Heavy.woff2\", {'777_com': true}),\n\t\tFutura_PT_Medium_eot: new Asset(\"fonts/Futura_PT_Medium.eot\", {'777_com': true}),\n\t\tFutura_PT_Medium_otf: new Asset(\"fonts/Futura_PT_Medium.otf\", {'777_com': true}),\n\t\tFutura_PT_Medium_svg: new Asset(\"fonts/Futura_PT_Medium.svg\", {'777_com': true}),\n\t\tFutura_PT_Medium_ttf: new Asset(\"fonts/Futura_PT_Medium.ttf\", {'777_com': true}),\n\t\tFutura_PT_Medium_woff: new Asset(\"fonts/Futura_PT_Medium.woff\", {'777_com': true}),\n\t\tFutura_PT_Medium_woff2: new Asset(\"fonts/Futura_PT_Medium.woff2\", {'777_com': true}),\n\t\tFuturaPTBold_otf: new Asset(\"fonts/FuturaPTBold.otf\", {'doverdowns_de': true}),\n\t\tFuturaPTBoldOblique_otf: new Asset(\"fonts/FuturaPTBoldOblique.otf\", {'doverdowns_de': true}),\n\t\tFuturaPTBook_otf: new Asset(\"fonts/FuturaPTBook.otf\", {'doverdowns_de': true}),\n\t\tFuturaPTBookOblique_otf: new Asset(\"fonts/FuturaPTBookOblique.otf\", {'doverdowns_de': true}),\n\t\tFuturaPTCondBold_otf: new Asset(\"fonts/FuturaPTCondBold.otf\", {'doverdowns_de': true}),\n\t\tFuturaPTCondBoldOblique_otf: new Asset(\"fonts/FuturaPTCondBoldOblique.otf\", {'doverdowns_de': true}),\n\t\tFuturaPTCondBook_otf: new Asset(\"fonts/FuturaPTCondBook.otf\", {'doverdowns_de': true}),\n\t\tFuturaPTCondBookOblique_otf: new Asset(\"fonts/FuturaPTCondBookOblique.otf\", {'doverdowns_de': true}),\n\t\tFuturaPTCondExtraBold_otf: new Asset(\"fonts/FuturaPTCondExtraBold.otf\", {'doverdowns_de': true}),\n\t\tFuturaPTCondExtraBoldOblique_otf: new Asset(\"fonts/FuturaPTCondExtraBoldOblique.otf\", {'doverdowns_de': true}),\n\t\tFuturaPTCondMedium_otf: new Asset(\"fonts/FuturaPTCondMedium.otf\", {'doverdowns_de': true}),\n\t\tFuturaPTCondMediumOblique_otf: new Asset(\"fonts/FuturaPTCondMediumOblique.otf\", {'doverdowns_de': true}),\n\t\tFuturaPTDemi_otf: new Asset(\"fonts/FuturaPTDemi.otf\", {'doverdowns_de': true}),\n\t\tFuturaPTDemiOblique_otf: new Asset(\"fonts/FuturaPTDemiOblique.otf\", {'doverdowns_de': true}),\n\t\tFuturaPTExtraBold_otf: new Asset(\"fonts/FuturaPTExtraBold.otf\", {'doverdowns_de': true}),\n\t\tFuturaPTExtraBoldOblique_otf: new Asset(\"fonts/FuturaPTExtraBoldOblique.otf\", {'doverdowns_de': true}),\n\t\tFuturaPTHeavy_otf: new Asset(\"fonts/FuturaPTHeavy.otf\", {'doverdowns_de': true}),\n\t\tFuturaPTHeavyOblique_otf: new Asset(\"fonts/FuturaPTHeavyOblique.otf\", {'doverdowns_de': true}),\n\t\tFuturaPTLight_otf: new Asset(\"fonts/FuturaPTLight.otf\", {'doverdowns_de': true}),\n\t\tFuturaPTLightOblique_otf: new Asset(\"fonts/FuturaPTLightOblique.otf\", {'doverdowns_de': true}),\n\t\tFuturaPTMedium_otf: new Asset(\"fonts/FuturaPTMedium.otf\", {'doverdowns_de': true}),\n\t\tFuturaPTMediumOblique_otf: new Asset(\"fonts/FuturaPTMediumOblique.otf\", {'doverdowns_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},\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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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\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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': true,'wsop_nj': true}),\n\t\thorizontal_line_glow_png: new Asset(\"images/horizontal-line-glow.png\", {'777_com': true}),\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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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_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_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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': true,'wsop_nj': true}),\n\t\ttexture_png: new Asset(\"images/texture.png\", {'777_com': true,'harrahs_nj': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': true,'wsop_nj': true}),\n\t\tstate_location_icon_svg: new Asset(\"images/state-location-icon.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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrington_de': 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\tdelaware_park_logo_png: new Asset(\"images/delaware-park-logo.png\", {'delawarepark_de': true}),\n\t\tdoverdowns_logo_png: new Asset(\"images/doverdowns_logo.png\", {'doverdowns_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\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\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\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,'delawarepark_de': true,'doverdowns_de': true,'harrington_de': 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\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\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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'doverdowns_de': true,'harrahs_nj': 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,'doverdowns_de': true,'harrahs_nj': 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,'doverdowns_de': true,'harrahs_nj': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'doverdowns_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'doverdowns_de': 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,'doverdowns_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': true,'wsop_nj': true}),\n\t\t\t\tvisual_sport_arena_info_png: new Asset(\"images/arenas/HomePage/visual_sport_arena_info.png\", {'doverdowns_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'doverdowns_de': 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,'doverdowns_de': 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,'doverdowns_de': 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,'doverdowns_de': true}),\n\t\t\tevo_lobby_banner_pc_png: new Asset(\"images/banners/evo_lobby_banner_pc.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'doverdowns_de': true}),\n\t\t\tevo_lobby_banner_tablet_png: new Asset(\"images/banners/evo_lobby_banner_tablet.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'doverdowns_de': true}),\n\t\t\tjackpot_arena_banner_mobile_png: new Asset(\"images/banners/jackpot_arena_banner_mobile.png\", {'777_com': true,'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'doverdowns_de': 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,'doverdowns_de': 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,'doverdowns_de': 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,'doverdowns_de': 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,'doverdowns_de': 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,'doverdowns_de': 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,'doverdowns_de': 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,'doverdowns_de': 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,'doverdowns_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'doverdowns_de': true,'harrahs_nj': 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,'doverdowns_de': true,'harrahs_nj': 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,'doverdowns_de': true,'harrahs_nj': 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,'doverdowns_de': true}),\n\t\t\t_888exclusive_arena_banner_pc_png: new Asset(\"images/banners/888exclusive_arena_banner_pc.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'doverdowns_de': true}),\n\t\t\t_888exclusive_arena_banner_tablet_png: new Asset(\"images/banners/888exclusive_arena_banner_tablet.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'doverdowns_de': true}),\n\t\t\t_888exclusive_arena_preview_image_png: new Asset(\"images/banners/888exclusive_arena_preview_image.png\", {'888casino_ca': true,'888casino_com': true,'888casino_dk': true,'888casino_es': true,'888casino_ger': true,'888casino_it': true,'888casino_nj': true,'888casino_nl': true,'888casino_pt': true,'888casino_ro': true,'888casino_se': true,'doverdowns_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'doverdowns_de': 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,'doverdowns_de': 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,'doverdowns_de': 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,'doverdowns_de': 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,'doverdowns_de': 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,'doverdowns_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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\", {'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': true}),\n\t\t\tgame_frame_bg_fp_right_png: new Asset(\"images/sdk_icons/game-frame-bg-fp-right.png\", {'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': true}),\n\t\t\tpost_login_mobile_png: new Asset(\"images/sdk_icons/post-login-mobile.png\", {'harrahs_nj': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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})\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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrahs_nj': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrington_de': 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,'delawarepark_de': true,'doverdowns_de': true,'harrington_de': 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};"],"sourceRoot":""}