{"version":3,"file":"static/js/services-group2.84857644.chunk.js","mappings":"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","sources":["app-react/services/login-popup/login-popup.service.ts","app-react/services/exit-popup/exit-popup-consts.ts","app-react/services/exit-popup/exit-popup.service.tsx"],"sourcesContent":["import {ServiceBase} from \"../ServiceBase\";\nimport {ILoginPopupData, ILoginPopupService} from \"./login-popup.service.interface\";\nimport {IServiceFactoryExtended} from \"../service-factory-extended.interface\";\nimport {OnOauthStateChangedParams} from \"../sdk/sdk-events\";\n\nconst loginPopupAcknowledgeStorageKey = 'orbit_login_popup_acknowledge';\n\nexport class LoginPopupService extends ServiceBase implements ILoginPopupService{\n private _loginPopupShown = false;\n private _loginPopupPreviousCallPromise = null;\n\n constructor(services: IServiceFactoryExtended) {\n super(services);\n\n if(this.services.regulation.isLoginPopupEnabled()) {\n // We need this for users that refresh the page while not approve yet the login popup.mo\n this.showLoginGamePopup();\n }\n }\n\n public showLoginGamePopupOnAuthStateChange(params: OnOauthStateChangedParams) {\n this._loginPopupShown = false;\n this.services.localStorage.setItem(loginPopupAcknowledgeStorageKey, false);\n\n if(this.services.user.isAuthorized) {\n this.showLoginGamePopup(params?.fromRegistration);\n }\n }\n\n private _onAcknowledge(resolve) {\n this.services.localStorage.setItem(loginPopupAcknowledgeStorageKey, true);\n this._loginPopupPreviousCallPromise = null;\n this._loginPopupShown = false;\n resolve();\n }\n\n public showLoginGamePopup(fromRegistration?: boolean): Promise {\n let currentPromise = new Promise((resolve)=> {\n // Not show login popup if already shown - for example open game and login show it and then login popup game step try to show it\n if(this._loginPopupShown) {\n return this._loginPopupPreviousCallPromise.then(() => resolve());\n }\n\n if(this._skipPopupConditions(fromRegistration)) {\n resolve();\n return;\n }\n\n this._loginPopupShown = true;\n return this.services.specificDialogs.showLoginPopup(()=> this._onAcknowledge(resolve));\n });\n\n this._loginPopupPreviousCallPromise = currentPromise;\n return this._loginPopupPreviousCallPromise;\n }\n\n public getLoginPopupData(): ILoginPopupData {\n try {\n return JSON.parse(this.services.sdk.extractTokenProperty('regulationMessages'));\n } catch(err) {\n return null;\n }\n }\n\n private _skipPopupConditions(fromRegistration: boolean) {\n return fromRegistration ||\n this.services.sdk.isLoginFromRegistration ||\n this.services.user.isDocUploadRequired() ||\n !this.services.regulation.isLoginPopupEnabled() ||\n !this.services.user.isAuthorized ||\n this.services.localStorage.getItem(loginPopupAcknowledgeStorageKey) === \"true\";\n }\n\n}","export const EXIT_POPUP_DEFAULT_CONFIG = {\n INITIAL_CHANCE: 20,\n PLAY_INCREASE_CHANCE: 5,\n CANCEL_DECREASE_CHANCE: 5,\n MAX_CHANCE: 50,\n MAX_APPEARANCES_PER_SESSION: 3,\n};\n\nexport const EXIT_POPUP_LOCAL_STORAGE_KEY = 'orbitExitPopupData';\n\nexport const numberOfCorrelatedGames = 6;\n\n","import {ServiceBase} from \"../ServiceBase\";\nimport {IExitPopupService} from \"./exit-popup.service.interface\";\nimport {IServiceFactoryExtended} from \"../service-factory-extended.interface\";\nimport {EXIT_POPUP_DEFAULT_CONFIG, EXIT_POPUP_LOCAL_STORAGE_KEY, numberOfCorrelatedGames} from \"./exit-popup-consts\";\nimport {Check} from \"@sparkware/app-utils\";\nimport { action, observable, makeObservable } from \"mobx\";\nimport {GameInfo} from \"../games/game-info\";\nimport {OnGameCloseParams} from \"../sdk/sdk-events\";\nimport {ISendElasticEventOptions} from \"../analytics/analytics.service.interface\";\n\n\nexport interface IExitPopupLocalStorage {\n sessionChance: number;\n dontShowPopupAgain: boolean;\n numberOfAppearancesInSession: number;\n}\n\n\nexport class ExitPopupService extends ServiceBase implements IExitPopupService {\n private _numberOfAppearancesInSession: number = 0;\n private _sessionChance: number = 0;\n @observable.ref\n public dontShowPopupAgain: boolean;\n\n\n constructor(services: IServiceFactoryExtended) {\n super(services);\n\n makeObservable(this);\n\n this._initDataFromLocalStorage();\n this._subscribe();\n }\n\n _subscribe() {\n this.services.sdk.events.onOAuthStateChanged(()=> {\n this._numberOfAppearancesInSession = 0;\n this._setExitPopupDataInLocalStorage();\n });\n\n this.services.sdk.events.onGameClose((properties: OnGameCloseParams)=> {\n if(properties.showNextGameSuggestion && properties.isGamePlayed) {\n return this._showExitPopup(properties.gameType, properties.isReal);\n }\n\n return Promise.resolve();\n });\n }\n\n _onOpenRealGame(gameInfo: GameInfo, closedGameType: number) {\n this._updateMessageChance(EXIT_POPUP_DEFAULT_CONFIG.PLAY_INCREASE_CHANCE);\n this._sendAnalytics(\n 'click_play',\n `${this._sessionChance}_${closedGameType}_${gameInfo.gameType}_${EXIT_POPUP_DEFAULT_CONFIG.PLAY_INCREASE_CHANCE}`,\n this._numberOfAppearancesInSession\n );\n this._setExitPopupDataInLocalStorage();\n }\n\n _onCancel(recommendedGame: GameInfo, closedGameType: number): void {\n this._updateMessageChance(EXIT_POPUP_DEFAULT_CONFIG.CANCEL_DECREASE_CHANCE * -1);\n this._sendAnalytics(\n 'click_not_now',\n `${this._sessionChance}_${closedGameType}_${recommendedGame.gameType}_${EXIT_POPUP_DEFAULT_CONFIG.CANCEL_DECREASE_CHANCE}`,\n this._numberOfAppearancesInSession\n );\n this._dontShowAgainGAEvent();\n this._setExitPopupDataInLocalStorage();\n }\n\n _dontShowAgainGAEvent() {\n if (!this.dontShowPopupAgain) {\n return;\n }\n\n this._sendAnalytics(\n 'dont_show_again',\n `${this.dontShowPopupAgain}`,\n this._numberOfAppearancesInSession\n );\n }\n\n _sendAnalytics(action = '', label = '', value = 0): void {\n let data:ISendElasticEventOptions={\n eventType:\"Orbit_AI_Feature\",\n category:'exitPopUpRecommendation',\n action:action,\n label:label,\n value:value.toString()\n }\n\n this.services.analytics.sendElasticInfoEvent(data,true);\n }\n\n /**\n * @description Hold the logic if to show or not to show the exit popup\n * @return {boolean}\n * @private\n */\n _isMessageCanBeShown(isReal: boolean): boolean {\n //If it is can be shown during session (will be false if the user clicked don't show again or _numberOfAppearancesInSession if larger then define)\n if (this.dontShowPopupAgain) {\n this.services.logger.info(`Exit game didn't show because dontShowPopupAgain is ${this.dontShowPopupAgain}`);\n return false;\n }\n\n //Don't show the pop up again if we show the popup more then the max appearance per session\n if (this._numberOfAppearancesInSession >= EXIT_POPUP_DEFAULT_CONFIG.MAX_APPEARANCES_PER_SESSION) {\n this.services.logger.info(`Exit game didn't show because _numberOfAppearancesInSession is ${this._numberOfAppearancesInSession}`);\n return false;\n }\n\n //Don't show the pop If that game wasn't played (the balance didn't change) unless we support also demo mode and then it will always pass\n if (!isReal) {\n this.services.logger.info(`Exit game will not show because support only real mode`);\n return false;\n }\n\n return this._calcRandomChance();\n }\n\n /**\n * @description Calculate random chance if to show or not to show\n * @private\n */\n _calcRandomChance() {\n const randomChance = Math.ceil(Math.random() * 100);\n this.services.logger.info('Random chance = ' + randomChance + ' Session Chance = ' + this._sessionChance);\n\n return randomChance <= this._sessionChance;\n }\n\n async _showExitPopup(gameType: number, isReal: boolean): Promise {\n if (!this._isMessageCanBeShown(isReal)) {\n return Promise.resolve(false);\n }\n\n this._openExitPopupMessage(gameType);\n return Promise.resolve(true);\n }\n\n @action.bound\n _clickDontShowPopupAgain() {\n this.dontShowPopupAgain = !this.dontShowPopupAgain;\n }\n\n async _openExitPopupMessage(playedGameType: number): Promise {\n const correlatedGame = await this._getCorrelatedGame(playedGameType);\n const gameInfo: GameInfo = await this.services.games.getGameInfo(correlatedGame);\n\n if(!gameInfo) {\n this.services.logger.error('There is no game info, exit popup game message can not be displayed! gameType: ' + correlatedGame);\n return Promise.resolve()\n }\n\n const gamePopup = await this.services.gamePopup;\n\n await gamePopup.showSuggestedGame(\n correlatedGame,\n this.services.translation.translate(\"EXIT_POPUP_TITLE\"),\n \"\",\n ()=> {this._onPopupClosed()},\n ()=> {this._onCloseButtonClicked(gameInfo, playedGameType)},\n ()=> {this._onCancel(gameInfo, playedGameType)},\n ()=> {this._onOpenRealGame(gameInfo, playedGameType)},\n {display: true, text: this.services.translation.translate('DONT_SHOW_AGAIN_TEXT'), onClickHandler: ()=> {this._clickDontShowPopupAgain()}},\n true);\n\n this._numberOfAppearancesInSession++;\n this._sendAnalytics(\n 'view',\n `${this._sessionChance}_${playedGameType}_${gameInfo.gameType}`,\n this._numberOfAppearancesInSession\n );\n }\n\n /**\n * @description Get the correlated games\n * @Note - We will got the top 6 games for this game and randomly chose one of them\n * @param gameType of the game that was just played\n * @return Correlated gameType\n * @private\n */\n _getCorrelatedGame(gameType: number): Promise{\n return this.services.games.getCorrelatedGames(gameType, numberOfCorrelatedGames).then((correlatedGames: number[])=>{\n if (correlatedGames.length > 0) {\n const index = Math.floor(Math.random() * (correlatedGames.length));\n //Return randomly one of the 6 related games\n return correlatedGames[index];\n } else {\n this.services.logger.info(`Exit pop was not show because we didnt got correlated games for game type ${gameType}`)\n return Promise.reject(false);\n }\n });\n }\n\n @action.bound\n _initDataFromLocalStorage(): void {\n const exitPopUpData: IExitPopupLocalStorage = this._getExitPopupDataInLocalStorage();\n\n this.dontShowPopupAgain = (exitPopUpData && exitPopUpData.dontShowPopupAgain) || false;\n this._numberOfAppearancesInSession = (exitPopUpData && exitPopUpData.numberOfAppearancesInSession) || 0;\n\n //Init the session with default chance or previews chance\n const chance = Check.isNullOrUndefined(exitPopUpData &&exitPopUpData.sessionChance) ? EXIT_POPUP_DEFAULT_CONFIG.INITIAL_CHANCE : exitPopUpData.sessionChance;\n\n\n this._updateMessageChance(chance);\n }\n\n _updateMessageChance(chance): void {\n const newChance = this._sessionChance + chance;\n this._sessionChance = newChance > EXIT_POPUP_DEFAULT_CONFIG.MAX_CHANCE ? EXIT_POPUP_DEFAULT_CONFIG.MAX_CHANCE : newChance;\n this.services.logger.info('_updateMessageChance, New chance = ' + this._sessionChance);\n //Update the chance in the LocalStorage\n this._setExitPopupDataInLocalStorage();\n }\n\n _setExitPopupDataInLocalStorage() {\n const exitPopupData: IExitPopupLocalStorage = {\n sessionChance: this._sessionChance || 0,\n dontShowPopupAgain: this.dontShowPopupAgain || false,\n numberOfAppearancesInSession: this._numberOfAppearancesInSession || 0\n };\n\n this.services.localStorage.setItem(EXIT_POPUP_LOCAL_STORAGE_KEY, JSON.stringify(exitPopupData));\n }\n\n\n _onPopupClosed(): void {\n this._setExitPopupDataInLocalStorage();\n this._dontShowAgainGAEvent();\n }\n\n _onCloseButtonClicked(recommendedGame: GameInfo, closedGameType: number): void {\n this._sendAnalytics(\n 'click_close_button',\n `${this._sessionChance}_${closedGameType}_${recommendedGame.gameType}`,\n this._numberOfAppearancesInSession\n );\n }\n\n _getExitPopupDataInLocalStorage() {\n return JSON.parse(this.services.localStorage.getItem(EXIT_POPUP_LOCAL_STORAGE_KEY));\n }\n}"],"names":["loginPopupAcknowledgeStorageKey","LoginPopupService","services","_loginPopupShown","_loginPopupPreviousCallPromise","regulation","isLoginPopupEnabled","showLoginGamePopup","params","this","localStorage","setItem","user","isAuthorized","fromRegistration","resolve","currentPromise","Promise","then","_skipPopupConditions","specificDialogs","showLoginPopup","_onAcknowledge","JSON","parse","sdk","extractTokenProperty","err","isLoginFromRegistration","isDocUploadRequired","getItem","ServiceBase","EXIT_POPUP_DEFAULT_CONFIG","EXIT_POPUP_LOCAL_STORAGE_KEY","ExitPopupService","observable","action","_numberOfAppearancesInSession","_sessionChance","makeObservable","_initDataFromLocalStorage","_subscribe","events","onOAuthStateChanged","_setExitPopupDataInLocalStorage","onGameClose","properties","showNextGameSuggestion","isGamePlayed","_showExitPopup","gameType","isReal","gameInfo","closedGameType","_updateMessageChance","_sendAnalytics","recommendedGame","_dontShowAgainGAEvent","dontShowPopupAgain","data","eventType","category","label","value","toString","analytics","sendElasticInfoEvent","logger","info","_calcRandomChance","randomChance","Math","ceil","random","_isMessageCanBeShown","_openExitPopupMessage","playedGameType","_getCorrelatedGame","correlatedGame","games","getGameInfo","error","gamePopup","showSuggestedGame","translation","translate","_onPopupClosed","_onCloseButtonClicked","_onCancel","_onOpenRealGame","display","text","onClickHandler","_clickDontShowPopupAgain","getCorrelatedGames","correlatedGames","length","floor","reject","exitPopUpData","_getExitPopupDataInLocalStorage","numberOfAppearancesInSession","chance","Check","sessionChance","newChance","exitPopupData","stringify"],"sourceRoot":""}