{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/GenericPopup.vue?3535","webpack:///./common/styles/colors.scss","webpack:///./src/components/GameDesc/ShareButton.vue?caba","webpack:///./src/components/GameDesc/GameTags.vue?bd16","webpack:///./src/components/HomeListedGame.vue?f8a0","webpack:///./src/assets/icons/material_symbols/account_circle_FILL1_wght400_GRAD0_opsz48.vue?3030","webpack:///./src/store/modules/language.ts","webpack:///./src/store/modules/payment.ts","webpack:///./src/store/modules/gamelists.ts","webpack:///./src/store/modules/genres.ts","webpack:///./src/store/modules/tags.ts","webpack:///./src/store/modules/publishers.ts","webpack:///./src/store/modules/payment/fastspring.ts","webpack:///./src/store/modules/payment/transactbridge.ts","webpack:///./src/store/modules/popup.ts","webpack:///./src/store/index.ts","webpack:///./src/components/CardGameM.vue?0646","webpack:///./src/store/modules/bigscreen.ts","webpack:///./src/components/Common/Tag.vue?630d","webpack:///./src/assets/icons/material_symbols/add_FILL0_wght400_GRAD0_opsz48.vue?058e","webpack:///./src/assets/icons/material_symbols/lockIcon.vue?426d","webpack:///./sdk/src/engine/types/TrialEndReason.ts","webpack:///./src/assets/icons/material_symbols/share_FILL0_wght400_GRAD0_opsz48.vue?272d","webpack:///./src/components/SubscribeBannerPopup.vue?fa92","webpack:///./src/components/RegisterPopup.vue?b673","webpack:///./src/components/CardScreenshot.vue?7328","webpack:///./src/components/Profile/LoginForm.vue?3874","webpack:///./src/views/PlayIframe.vue?84bb","webpack:///./src/components/ListedGame.vue?5ee3","webpack:///./src/components/OGLTapBar.vue?9edd","webpack:///./src/components/GameDesc/Bonuses/BonusCard.vue?5dcd","webpack:///./src/assets/icons/material_symbols/more_vert_FILL0_wght400_GRAD0_opsz48.vue?a719","webpack:///./src/views/MyGames.vue?c8a1","webpack:///./src/assets/icons/material_symbols/add_to_home_screen_FILL1_wght400_GRAD0_opsz48.vue?e067","webpack:///./src/components/TapBarMoveWarning.vue?c95b","webpack:///./src/components/SubscribeTutoPopup.vue?8801","webpack:///./sdk/src/engine/types/ErrorCodes.ts","webpack:///./src/components/SharePopup.vue?e8a4","webpack:///./src/assets/icons/material_symbols/play_arrow_FILL1_wght400_GRAD0_opsz48.vue?274c","webpack:///./src/components/CardL.vue?d1a3","webpack:///./src/apm.ts","webpack:///./src/components/CardM.vue?220c","webpack:///./common/utils/utils.ts","webpack:///./src/assets/icons/material_symbols/ios_share_FILL0_wght400_GRAD0_opsz48.vue?6439","webpack:///./src/components/Home/HomeSections/CardShowtime.vue?b6d2","webpack:///./src/assets/icons/material_symbols/visibility_FILL1_wght400_GRAD0_opsz48.vue?becb","webpack:///./sdk/src/engine/old-client-stuff/MobileManager.ts","webpack:///./sdk/src/engine/Logger.ts","webpack:///./sdk/src/engine/WebRTC/FirefoxRTCStatsTypes.ts","webpack:///./sdk/src/engine/WebRTC/DefaultWebRTCStatsParser.ts","webpack:///./sdk/src/engine/WebRTC/FirefoxWebRTCStatsParser.ts","webpack:///./sdk/src/engine/WebRTC/WebRTCStatsParser.ts","webpack:///./src/views/PlayIframe.vue?04e0","webpack:///./src/components/SubscribeBanner.vue?9981","webpack:///./src/locales sync [A-Za-z0-9-_,\\s]+\\.json$/","webpack:///./common/share/index.ts","webpack:///./src/store/modules/mobile.ts","webpack:///./src/components/Common/GoUltimateButton.vue?deb9","webpack:///./src/components/SubscribeBanner.vue?36ae","webpack:///./src/components/TapBar.vue?769f","webpack:///./src/components/AgreementPopup.vue?d79c","webpack:///./src/assets/icon.png","webpack:///./src/assets/icons/material_symbols/bookmark_add_FILL0_wght400_GRAD0_opsz48.vue?07cd","webpack:///./src/App.vue?e52c","webpack:///./src/components/NeedPartnerAuthenticationPopup.vue?26b5","webpack:///./src/components/CategoryList.vue?e2d3","webpack:///./src/components/Home/HomeSections/CardGameVideo.vue?731f","webpack:///./src/components/UpdateModal.vue?66ae","webpack:///./src/components/Bigscreen/EnterCodePopup.vue?224e","webpack:///./src/components/Bigscreen/EnterCodePopup.vue","webpack:///./src/components/Bigscreen/EnterCodePopup.vue?e4ec","webpack:///./src/components/Bigscreen/EnterCodePopup.vue?6858","webpack:///./src/views/Leaderboard.vue?2e01","webpack:///./common/stats/SessionManager.ts","webpack:///./common/stats/StatsManager.ts","webpack:///./src/store/modules/games.ts","webpack:///./src/components/Discover/TagScroller.vue?c117","webpack:///./src/views/Categories.vue?599a","webpack:///./src/components/PaymentCompletedPopup.vue?8e87","webpack:///./src/components/PaymentFailedPopup.vue?4105","webpack:///./src/assets/icons/material_symbols/home_FILL1_wght400_GRAD0_opsz48.vue?25b5","webpack:///./src/App.vue?279b","webpack:///./src/components/HomeScroller.vue?7d17","webpack:///./src/components/SubscribeBanner.vue?e97e","webpack:///./src/store/modules/authentication.ts","webpack:///./src/assets/icons/material_symbols/play_circle_FILL1_wght400_GRAD0_opsz48.vue?4e8c","webpack:///./src/assets/incomp_browser.png","webpack:///./src/components/Common/PlayButton.vue?fa59","webpack:///./src/store/modules/homesections.ts","webpack:///./src/assets/icons/material_symbols/keyboard_arrow_down_FILL0_wght0_GRAD0_opszNaN.vue?fab3","webpack:///./src/components/Bigscreen/EnterCodePopup.vue?2529","webpack:///./src/components/OGLTapBar.vue?1569","webpack:///./src/assets/icons/material_symbols/more_horiz_FILL0_wght400_GRAD0_opsz48.vue?3019","webpack:///./src/components/Add2HomeTuto.vue?0735","webpack:///./src/views/OneGameProfile.vue?4220","webpack:///./src/components/HorizontalScroll.vue?7024","webpack:///./src/views/OneGameLobby.vue?fc5d","webpack:///./src/components/Profile/RegisterForm.vue?b3dd","webpack:///./src/assets/icons/material_icons/arrow_back_ios_white_24dp.vue?f171","webpack:///./src/components/PayPopup.vue?6c57","webpack:///./src/views/Game.vue?2b58","webpack:///./src/components/CardScreenshot.vue?7501","webpack:///./src/components/CardScreenshot.vue","webpack:///./src/components/CardScreenshot.vue?eb99","webpack:///./src/components/CardScreenshot.vue?e003","webpack:///./src/components/CardGameL.vue?045a","webpack:///./src/components/CardGame.vue","webpack:///./src/components/CardGame.vue?054e","webpack:///./src/components/CardGame.vue?f64e","webpack:///./src/components/CardL.vue?d374","webpack:///./src/components/CardL.vue","webpack:///./src/components/CardL.vue?07f7","webpack:///./src/components/CardL.vue?4214","webpack:///./src/components/CardGameL.vue","webpack:///./src/components/CardGameL.vue?1946","webpack:///./src/components/CardGameL.vue?2349","webpack:///./src/components/HomeScroller.vue?9cbf","webpack:///./src/components/HorizontalScroll.vue?0d57","webpack:///./src/components/HorizontalScroll.vue","webpack:///./src/components/HorizontalScroll.vue?731c","webpack:///./src/components/HorizontalScroll.vue?3e2b","webpack:///./src/components/HomeScroller.vue","webpack:///./src/components/HomeScroller.vue?4a91","webpack:///./src/components/HomeScroller.vue?ec88","webpack:///./src/components/TapBar.vue?c16b","webpack:///./src/components/SubscribeBanner.vue?9e0f","webpack:///./src/components/SubscribeBanner.vue","webpack:///./src/components/SubscribeBanner.vue?3ef5","webpack:///./src/components/SubscribeBanner.vue?e8f6","webpack:///./src/components/TapBar.vue","webpack:///./src/components/TapBar.vue?6040","webpack:///./src/components/TapBar.vue?3086","webpack:///./src/components/Home/HomeSections/CardGameVideo.vue?ad9f","webpack:///./src/components/ListedGame.vue?f0e8","webpack:///./src/components/ListedGame.vue","webpack:///./src/components/ListedGame.vue?1a9d","webpack:///./src/components/ListedGame.vue?a226","webpack:///./src/components/Home/HomeSections/CardGameVideo.vue","webpack:///./src/components/Home/HomeSections/CardGameVideo.vue?d49d","webpack:///./src/components/Home/HomeSections/CardGameVideo.vue?13d8","webpack:///./src/components/Common/PlayButton.vue?8f18","webpack:///./src/components/Common/PlayButton.vue","webpack:///./src/components/Common/PlayButton.vue?2424","webpack:///./src/components/Common/PlayButton.vue?0d61","webpack:///./src/components/GameDesc/FavButton.vue?7da6","webpack:///./src/components/GameDesc/FavButton.vue","webpack:///./src/components/GameDesc/FavButton.vue?4b2e","webpack:///./src/components/GameDesc/FavButton.vue?cba9","webpack:///./src/components/GameDesc/ShareButton.vue?1ea5","webpack:///./src/components/GameDesc/ShareButton.vue","webpack:///./src/components/GameDesc/ShareButton.vue?c585","webpack:///./src/components/GameDesc/ShareButton.vue?9718","webpack:///./src/components/GameDesc/Bonuses/BonusScroller.vue?16ec","webpack:///./src/components/GameDesc/Bonuses/BonusCard.vue?c08f","webpack:///./src/components/GameDesc/Bonuses/BonusCard.vue","webpack:///./src/components/GameDesc/Bonuses/BonusCard.vue?7025","webpack:///./src/components/GameDesc/Bonuses/BonusCard.vue?c965","webpack:///./src/components/GameDesc/Bonuses/BonusScroller.vue","webpack:///./src/components/GameDesc/Bonuses/BonusScroller.vue?e3b6","webpack:///./src/components/GameDesc/Bonuses/BonusScroller.vue?990a","webpack:///./src/components/GameDesc/GameTags.vue?ed34","webpack:///./src/components/Common/Tag.vue?4ae7","webpack:///./src/components/Common/Tag.vue","webpack:///./src/components/Common/Tag.vue?c358","webpack:///./src/components/Common/Tag.vue?2d23","webpack:///./src/components/GameDesc/GameTags.vue","webpack:///./src/components/GameDesc/GameTags.vue?8285","webpack:///./src/components/GameDesc/GameTags.vue?8f45","webpack:///./src/views/Game.vue","webpack:///./src/views/Game.vue?b107","webpack:///./src/views/Game.vue?afb0","webpack:///./src/views/PlayIframe.vue?1410","webpack:///./src/views/PlayIframe.vue","webpack:///./src/views/PlayIframe.vue?dfe3","webpack:///./src/views/PlayIframe.vue?dc08","webpack:///./src/views/Categories.vue?b3c7","webpack:///./src/components/Discover/TagScroller.vue?20f1","webpack:///./src/components/Discover/TagScroller.vue","webpack:///./src/components/Discover/TagScroller.vue?962b","webpack:///./src/components/Discover/TagScroller.vue?9df2","webpack:///./src/components/Common/GoUltimateButton.vue?a83a","webpack:///./src/components/Common/GoUltimateButton.vue","webpack:///./src/components/Common/GoUltimateButton.vue?eb9a","webpack:///./src/components/Common/GoUltimateButton.vue?73cb","webpack:///./src/views/Categories.vue","webpack:///./src/views/Categories.vue?a640","webpack:///./src/views/Categories.vue?6d4a","webpack:///./src/views/MyGames.vue?0588","webpack:///./src/views/MyGames.vue","webpack:///./src/views/MyGames.vue?8575","webpack:///./src/views/MyGames.vue?c564","webpack:///./src/views/Profile.vue?5362","webpack:///./src/views/Profile.vue","webpack:///./src/views/Profile.vue?051d","webpack:///./src/views/Profile.vue?dbf3","webpack:///./src/views/Leaderboard.vue?094c","webpack:///./src/components/OGLTapBar.vue?885c","webpack:///./src/components/OGLTapBar.vue","webpack:///./src/components/OGLTapBar.vue?3440","webpack:///./src/components/OGLTapBar.vue?b4f0","webpack:///./src/views/Leaderboard.vue","webpack:///./src/views/Leaderboard.vue?efa5","webpack:///./src/views/Leaderboard.vue?28f4","webpack:///./src/views/Logout.vue?1cb1","webpack:///./src/views/Logout.vue","webpack:///./src/views/Logout.vue?3c2b","webpack:///./src/views/Logout.vue?d274","webpack:///./src/views/Home.vue?1428","webpack:///./src/components/Home/HomeSection.vue?e051","webpack:///./src/components/Banner.vue?eb3d","webpack:///./src/components/Banner.vue","webpack:///./src/components/Banner.vue?3b48","webpack:///./src/components/Banner.vue?9426","webpack:///./src/components/Home/HomeSections/CardGameXL.vue?cbeb","webpack:///./src/components/Home/HomeSections/CardGameXL.vue","webpack:///./src/components/Home/HomeSections/CardGameXL.vue?7c07","webpack:///./src/components/Home/HomeSections/CardGameXL.vue?7da6","webpack:///./src/components/Home/HomeSections/CardShowtime.vue?d31f","webpack:///./src/components/Home/HomeSections/CardShowtime.vue","webpack:///./src/components/Home/HomeSections/CardShowtime.vue?2820","webpack:///./src/components/Home/HomeSections/CardShowtime.vue?a62a","webpack:///./src/components/CategoryList.vue?b774","webpack:///./src/components/CardCategory.vue?8757","webpack:///./src/components/CardCategory.vue","webpack:///./src/components/CardCategory.vue?d59d","webpack:///./src/components/CardCategory.vue?b8f9","webpack:///./src/components/CategoryList.vue","webpack:///./src/components/CategoryList.vue?e970","webpack:///./src/components/CategoryList.vue?4680","webpack:///./src/components/Home/HomeSections/HomeCardGameVideo.vue?7dc1","webpack:///./src/components/HomeListedGame.vue?0cc7","webpack:///./src/components/CardGameM.vue?2dc8","webpack:///./src/components/CardM.vue?11f3","webpack:///./src/components/CardM.vue","webpack:///./src/components/CardM.vue?05f7","webpack:///./src/components/CardM.vue?a5cc","webpack:///./src/components/CardGameM.vue","webpack:///./src/components/CardGameM.vue?4f7e","webpack:///./src/components/CardGameM.vue?8e97","webpack:///./src/components/HomeListedGame.vue","webpack:///./src/components/HomeListedGame.vue?287b","webpack:///./src/components/HomeListedGame.vue?50f7","webpack:///./src/components/Home/HomeSections/HomeCardGameVideo.vue","webpack:///./src/components/Home/HomeSections/HomeCardGameVideo.vue?a494","webpack:///./src/components/Home/HomeSections/HomeCardGameVideo.vue?640c","webpack:///./src/components/Home/HomeSection.vue","webpack:///./src/components/Home/HomeSection.vue?7669","webpack:///./src/components/Home/HomeSection.vue?6b77","webpack:///./src/views/Home.vue","webpack:///./src/views/Home.vue?2352","webpack:///./src/views/Home.vue?b4c0","webpack:///./src/views/OneGameLobby.vue?d2a1","webpack:///./src/views/OneGameLobby.vue","webpack:///./src/views/OneGameLobby.vue?2690","webpack:///./src/views/OneGameLobby.vue?c305","webpack:///./src/views/OneGameProfile.vue?2bee","webpack:///./src/components/TapBarMoveWarning.vue?0f6a","webpack:///./src/components/TapBarMoveWarning.vue","webpack:///./src/components/TapBarMoveWarning.vue?c8ba","webpack:///./src/components/TapBarMoveWarning.vue?548d","webpack:///./src/views/OneGameProfile.vue","webpack:///./src/views/OneGameProfile.vue?5800","webpack:///./src/views/OneGameProfile.vue?4815","webpack:///./src/router/routes.ts","webpack:///./src/router/index.ts","webpack:///./src/views/Game.vue?fdda","webpack:///./src/assets/icons/material_symbols/unlockIcon.vue?7314","webpack:///./src/components/CardGameL.vue?8948","webpack:///./src/components/WrongBrowserPopup.vue?20c7","webpack:///./src/assets/icons/material_symbols/search_FILL0_wght400_GRAD0_opsz48.vue?9676","webpack:///./src/components/Home/HomeSections/HomeCardGameVideo.vue?1798","webpack:///./src/components/TapBar.vue?ed6d","webpack:///./src/assets/icons/material_symbols/live_tv_24dp_FILL0_wght400_GRAD0_opsz24.vue?0246","webpack:///./src/components/Home/HomeSections/CardGameXL.vue?0ad2","webpack:///./src/components/CardCategory.vue?730a","webpack:///./src/components/Banner.vue?e079","webpack:///./src/App.vue?a9d2","webpack:///./src/components/AlertDialog.vue?06c8","webpack:///./src/components/AlertDialog.vue","webpack:///./src/components/AlertDialog.vue?6c51","webpack:///./src/components/AlertDialog.vue?be2c","webpack:///./src/components/WrongBrowserPopup.vue?0bcc","webpack:///./src/components/WrongBrowserPopup.vue","webpack:///./src/components/WrongBrowserPopup.vue?324d","webpack:///./src/components/WrongBrowserPopup.vue?f772","webpack:///./src/components/NeedAccessPopup.vue?7b5d","webpack:///./src/components/NeedAccessPopup.vue","webpack:///./src/components/NeedAccessPopup.vue?882b","webpack:///./src/components/NeedAccessPopup.vue?1cfa","webpack:///./src/components/NeedPartnerAuthenticationPopup.vue?454e","webpack:///./src/components/NeedPartnerAuthenticationPopup.vue","webpack:///./src/components/NeedPartnerAuthenticationPopup.vue?03f9","webpack:///./src/components/NeedPartnerAuthenticationPopup.vue?e4cd","webpack:///./src/components/Add2HomeTuto.vue?f70d","webpack:///./src/components/Add2HomeTuto.vue","webpack:///./src/components/Add2HomeTuto.vue?8714","webpack:///./src/components/Add2HomeTuto.vue?a7f0","webpack:///./src/components/Add2HomeAndroidIntercept.vue?e40c","webpack:///./src/components/Add2HomeAndroidIntercept.vue","webpack:///./src/components/Add2HomeAndroidIntercept.vue?60b1","webpack:///./src/components/Add2HomeAndroidIntercept.vue?5bd4","webpack:///./src/components/UpdateModal.vue?177a","webpack:///./src/components/UpdateModal.vue","webpack:///./src/components/UpdateModal.vue?abce","webpack:///./src/components/UpdateModal.vue?23a9","webpack:///./src/components/AgreementPopup.vue?7bd3","webpack:///./src/components/AgreementPopup.vue","webpack:///./src/components/AgreementPopup.vue?29ba","webpack:///./src/components/AgreementPopup.vue?4745","webpack:///./src/components/SharePopup.vue?ed0e","webpack:///./src/components/SharePopup.vue","webpack:///./src/components/SharePopup.vue?3162","webpack:///./src/components/SharePopup.vue?9b65","webpack:///./src/components/SubscribeTutoPopup.vue?0a19","webpack:///./src/components/SubscribeTutoPopup.vue","webpack:///./src/components/SubscribeTutoPopup.vue?8dea","webpack:///./src/components/SubscribeTutoPopup.vue?cb34","webpack:///./src/components/RenewTutoPopup.vue?0538","webpack:///./src/components/RenewTutoPopup.vue","webpack:///./src/components/RenewTutoPopup.vue?23d0","webpack:///./src/components/RenewTutoPopup.vue?0b9e","webpack:///./src/components/SubscribeBannerPopup.vue?4757","webpack:///./src/components/SubscribeBannerPopup.vue","webpack:///./src/components/SubscribeBannerPopup.vue?0073","webpack:///./src/components/SubscribeBannerPopup.vue?14c6","webpack:///./src/components/LoginPopup.vue?6ea8","webpack:///./src/components/LoginPopup.vue","webpack:///./src/components/LoginPopup.vue?b2fc","webpack:///./src/components/LoginPopup.vue?866a","webpack:///./src/components/PayPopup.vue?f985","webpack:///./src/components/PayPopup.vue","webpack:///./src/components/PayPopup.vue?5d0c","webpack:///./src/components/PayPopup.vue?3331","webpack:///./src/components/RegisterPopup.vue?36b2","webpack:///./src/components/RegisterPopup.vue","webpack:///./src/components/RegisterPopup.vue?44ee","webpack:///./src/components/RegisterPopup.vue?3810","webpack:///./src/components/PaymentCompletedPopup.vue?7e54","webpack:///./src/components/PaymentCompletedPopup.vue","webpack:///./src/components/PaymentCompletedPopup.vue?48ea","webpack:///./src/components/PaymentCompletedPopup.vue?ba5e","webpack:///./src/components/PaymentFailedPopup.vue?c235","webpack:///./src/components/PaymentFailedPopup.vue","webpack:///./src/components/PaymentFailedPopup.vue?f398","webpack:///./src/components/PaymentFailedPopup.vue?cb6e","webpack:///./src/components/GenericPopup.vue?7886","webpack:///./src/components/GenericPopup.vue","webpack:///./src/components/GenericPopup.vue?bdb7","webpack:///./src/components/GenericPopup.vue?648d","webpack:///./src/App.vue","webpack:///./src/App.vue?31c5","webpack:///./src/App.vue?68bd","webpack:///./src/assets/icons/material_symbols/account_circle_FILL1_wght400_GRAD0_opsz48.vue?bcda","webpack:///./src/assets/icons/material_symbols/account_circle_FILL1_wght400_GRAD0_opsz48.vue","webpack:///./src/assets/icons/material_symbols/play_arrow_FILL1_wght400_GRAD0_opsz48.vue?922e","webpack:///./src/assets/icons/material_symbols/play_arrow_FILL1_wght400_GRAD0_opsz48.vue","webpack:///./src/assets/icons/material_symbols/play_circle_FILL1_wght400_GRAD0_opsz48.vue?83bd","webpack:///./src/assets/icons/material_symbols/play_circle_FILL1_wght400_GRAD0_opsz48.vue","webpack:///./src/assets/icons/material_symbols/search_FILL0_wght400_GRAD0_opsz48.vue?db39","webpack:///./src/assets/icons/material_symbols/search_FILL0_wght400_GRAD0_opsz48.vue","webpack:///./src/assets/icons/material_icons/arrow_back_ios_white_24dp.vue?9f12","webpack:///./src/assets/icons/material_icons/arrow_back_ios_white_24dp.vue","webpack:///./src/assets/icons/material_symbols/add_FILL0_wght400_GRAD0_opsz48.vue?b737","webpack:///./src/assets/icons/material_symbols/add_FILL0_wght400_GRAD0_opsz48.vue","webpack:///./src/assets/icons/material_symbols/keyboard_arrow_down_FILL0_wght0_GRAD0_opszNaN.vue?0928","webpack:///./src/assets/icons/material_symbols/keyboard_arrow_down_FILL0_wght0_GRAD0_opszNaN.vue","webpack:///./src/assets/icons/material_symbols/keyboard_arrow_up_FILL0_wght0_GRAD0_opszNaN.vue?0b58","webpack:///./src/assets/icons/material_symbols/keyboard_arrow_up_FILL0_wght0_GRAD0_opszNaN.vue","webpack:///./src/assets/icons/material_symbols/bookmark_add_FILL0_wght400_GRAD0_opsz48.vue?1ae3","webpack:///./src/assets/icons/material_symbols/bookmark_add_FILL0_wght400_GRAD0_opsz48.vue","webpack:///./src/assets/icons/material_symbols/bookmark_added_FILL1_wght400_GRAD0_opsz48.vue?5320","webpack:///./src/assets/icons/material_symbols/bookmark_added_FILL1_wght400_GRAD0_opsz48.vue","webpack:///./src/assets/icons/material_symbols/home_FILL1_wght400_GRAD0_opsz48.vue?fe77","webpack:///./src/assets/icons/material_symbols/home_FILL1_wght400_GRAD0_opsz48.vue","webpack:///./src/assets/icons/material_symbols/ios_share_FILL0_wght400_GRAD0_opsz48.vue?55e4","webpack:///./src/assets/icons/material_symbols/ios_share_FILL0_wght400_GRAD0_opsz48.vue","webpack:///./src/assets/icons/material_symbols/more_horiz_FILL0_wght400_GRAD0_opsz48.vue?2939","webpack:///./src/assets/icons/material_symbols/more_horiz_FILL0_wght400_GRAD0_opsz48.vue","webpack:///./src/assets/icons/material_symbols/more_vert_FILL0_wght400_GRAD0_opsz48.vue?b2d9","webpack:///./src/assets/icons/material_symbols/more_vert_FILL0_wght400_GRAD0_opsz48.vue","webpack:///./src/assets/icons/material_symbols/add_box_FILL1_wght400_GRAD0_opsz48.vue?5448","webpack:///./src/assets/icons/material_symbols/add_box_FILL1_wght400_GRAD0_opsz48.vue","webpack:///./src/assets/icons/material_symbols/add_to_home_screen_FILL1_wght400_GRAD0_opsz48.vue?3292","webpack:///./src/assets/icons/material_symbols/add_to_home_screen_FILL1_wght400_GRAD0_opsz48.vue","webpack:///./src/assets/icons/material_symbols/visibility_FILL1_wght400_GRAD0_opsz48.vue?c77b","webpack:///./src/assets/icons/material_symbols/visibility_FILL1_wght400_GRAD0_opsz48.vue","webpack:///./src/assets/icons/material_symbols/visibility_off_FILL1_wght400_GRAD0_opsz48.vue?2117","webpack:///./src/assets/icons/material_symbols/visibility_off_FILL1_wght400_GRAD0_opsz48.vue","webpack:///./src/assets/icons/material_symbols/leaderboard_FILL0_wght400_GRAD0_opsz48.vue?7bff","webpack:///./src/assets/icons/material_symbols/leaderboard_FILL0_wght400_GRAD0_opsz48.vue","webpack:///./src/assets/icons/material_symbols/share_FILL0_wght400_GRAD0_opsz48.vue?6378","webpack:///./src/assets/icons/material_symbols/share_FILL0_wght400_GRAD0_opsz48.vue","webpack:///./src/assets/icons/material_symbols/shareIcon.vue?2961","webpack:///./src/assets/icons/material_symbols/shareIcon.vue","webpack:///./src/assets/icons/material_symbols/live_tv_24dp_FILL0_wght400_GRAD0_opsz24.vue?6b14","webpack:///./src/assets/icons/material_symbols/live_tv_24dp_FILL0_wght400_GRAD0_opsz24.vue","webpack:///./src/assets/icons/material_symbols/cancel_20dp_FILL0_wght400_GRAD0_opsz20.vue?7985","webpack:///./src/assets/icons/material_symbols/cancel_20dp_FILL0_wght400_GRAD0_opsz20.vue","webpack:///./src/assets/icons/material_symbols/check_circle_20dp_FILL0_wght400_GRAD0_opsz20.vue?011d","webpack:///./src/assets/icons/material_symbols/check_circle_20dp_FILL0_wght400_GRAD0_opsz20.vue","webpack:///./src/assets/icons/material_symbols/lockIcon.vue?28d1","webpack:///./src/assets/icons/material_symbols/lockIcon.vue","webpack:///./src/assets/icons/material_symbols/unlockIcon.vue?de74","webpack:///./src/assets/icons/material_symbols/unlockIcon.vue","webpack:///./src/assets/icons/material_symbols/favoriteIcon.vue?4d44","webpack:///./src/assets/icons/material_symbols/favoriteIcon.vue","webpack:///./src/assets/icons/material_symbols/unfavoriteIcon.vue?e530","webpack:///./src/assets/icons/material_symbols/unfavoriteIcon.vue","webpack:///./src/assets/icons/material_symbols/bonusIcon.vue?c5ea","webpack:///./src/assets/icons/material_symbols/bonusIcon.vue","webpack:///./src/plugins/vuetify.ts","webpack:///./src/main.ts","webpack:///./src/assets/logo.png","webpack:///./sdk/src/engine/types/index.ts","webpack:///./src/components/Add2HomeAndroidIntercept.vue?9a05","webpack:///./src/components/Profile/LoginForm.vue?5ea1","webpack:///./src/components/Profile/LoginForm.vue","webpack:///./src/components/Profile/LoginForm.vue?2e84","webpack:///./src/components/Profile/LoginForm.vue?b6d3","webpack:///./src/assets/icons/material_symbols/visibility_off_FILL1_wght400_GRAD0_opsz48.vue?803e","webpack:///./src/components/AlertDialog.vue?5421","webpack:///./src/assets/icons/material_symbols/keyboard_arrow_up_FILL0_wght0_GRAD0_opszNaN.vue?fa4a","webpack:///./src/components/RenewTutoPopup.vue?9b6a","webpack:///./src/components/OGLTapBar.vue?ba86","webpack:///./src/components/TapBar.vue?83db","webpack:///./src/assets/icons/material_symbols/add_box_FILL1_wght400_GRAD0_opsz48.vue?2c1e","webpack:///./src/assets/icons/material_symbols/leaderboard_FILL0_wght400_GRAD0_opsz48.vue?9dda","webpack:///./src/components/Profile/RegisterForm.vue?6727","webpack:///./src/components/Profile/RegisterForm.vue","webpack:///./src/components/Profile/RegisterForm.vue?f89d","webpack:///./src/components/Profile/RegisterForm.vue?5adc","webpack:///./src/components/LoginPopup.vue?d308","webpack:///./src/components/GameDesc/Bonuses/BonusScroller.vue?7c4a","webpack:///./src/views/Profile.vue?28a2","webpack:///./src/assets/icons/material_symbols/bookmark_added_FILL1_wght400_GRAD0_opsz48.vue?34fa","webpack:///./sdk/src/engine/types/NetworkState.ts","webpack:///./src/views/Home.vue?dd19","webpack:///./src/components/NeedAccessPopup.vue?6a26","webpack:///./src/plugins/i18n.ts","webpack:///./src/components/GameDesc/FavButton.vue?f8d0"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","PaymentProvider","namespaced","state","language","availableLanguages","getters","availableLanguageCodes","map","mutations","SET_LANGUAGE","lang","locale","SET_AVAILABLE_LANGUAGES","actions","setLanguage","context","prefferdLanguages","moduleActionContext","commit","some","sl","match","RegExp","test","fallbackLocale","toString","init","dispatch","axiosInstance","response","navigator","languages","loadMessages","jsonLocaleFileUrl","a","mergeLocaleMessage","gameListsPromise","gameLists","SET_GAME_LISTS","getGameLists","rootGetters","locales","forEach","messages","_id","localizedClientInfo","title","genresPromise","genres","SET_GENRES","getGenres","tagsPromise","tags","SET_TAGS","getTags","publishersPromise","publishers","SET_PUBLISHERS","getPublishers","showPayPopup","showPaymentCompletedPopup","showPaymentFailedPopup","lastRequestedGame","enabled","_state","fallbackEnabled","skipRegister","shouldUseCGPayement","args","rootState","authentication","user","tempAccount","isRegistered","paymentProvider","toUpperCase","SHOW_PAY_POPUP","querySelector","classList","add","scrollTo","StatsManager","location","CLOSE_PAY_POPUP","remove","SHOW_PAYEMENT_COMPLETED_POPUP","CLOSE_PAYEMENT_COMPLETED_POPUP","SHOW_PAYEMENT_FAILED_POPUP","CLOSE_PAYEMENT_FAILED_POPUP","SET_LAST_REQUESTED_GAME","game","setup","rootDispatch","provider","FASTSPRING","TRANSACTBRIDGE","fastspring","transactbridge","purchaseSubscription","onPurchaseCompleted","games","checkAllsubscriptions","checkGameSubscription","force","onPurchaseFailed","moduleGetterContext","scriptId","existingScript","getElementById","id","dataset","storefront","dataPopupClosed","payment","userId","alert","builder","clean","checkout","router","currentRoute","query","status","replace","tbId","supplierRefId","post","currentUrl","res","payUrl","tab","open","focus","text","buttons","showPopup","SHOW_POPUP","payload","warn","CLOSE_POPUP","popupName","showAlreadySubPopup","onClick","important","showLostMySubPopup","use","strict","mobile","homeSections","bigscreen","popup","apiEndpoint","isLoading","requestedRoute","show","add2HomeTuto","showWrongBrowserPopup","SET_LOADING","SET_REQUESTED_ROUTE","SHOW_ALERT","onClose","CLOSE_ALERT","SHOW_WRONG_BROWSER_POPUP","SHOW_ADD2HOME_TUTO","onSkip","CLOSE_ADD2HOME_TUTO","store","rootActionContext","rootGetterContext","interceptors","config","baseURL","token","jwt","headers","Authorization","StreamingMode","bigscreenIsPaired","isBigscreenPaired","TOGGLE_BIGSCREEN_IS_PAIRED","bool","sendPairingCode","body","pairing_code","isPairedToBigScreen","TrialEndReason","ErrorCode","uuidv4","Number","parseInt","crypto","getRandomValues","Uint8Array","apm","pageName","SESSION_ID_KEY","LAST_SEEN_DATE_KEY","initApm","apmServerUrl","sessionExpirationDuration","distributedTracingOrigins","active","serviceName","serverUrl","breakdownMetrics","propagateTracestate","logLevel","ignoreTransactions","disableInstrumentations","flushInterval","pageLoadTransactionName","storedSessionID","localStorage","getItem","lastSeen","session_id","Date","getTime","addLabels","isPwa","standalone","matchMedia","matches","setItem","toISOString","dec2hex","dec","padStart","generateId","len","arr","Array","from","join","delay","ms","assertNever","x","isValidAndroidAppID","isValidHttpUrl","string","url","URL","_","protocol","MobileOS","BrowserType","OrientationMode","prefix","this","newArgs","unshift","log","modifyLog","info","debug","RTCStatsType","historyLimit","history","rawStats","dataChannel","peerConnection","transport","iceCandidatePairs","certificates","codecs","inboundStreams","localIceCandidates","remoteIceCandidates","iceCandidates","locals","remotes","stats","attribute","rawData","kind","inboundStreamData","FindByAttribute","previousStat","transportData","transportId","newLocal","selectedCandidatePairId","inboundRTPAudioStream","inboundRTPVideoStream","bytesReceivedPerSeconds","NaN","effectiveFramesPerSecond","bytesReceived","timestamp","framesDecoded","localCertificate","localCertificateId","remoteCertificate","remoteCertificateId","selectedCandidatePair","localCandidate","localCandidateId","remoteCandidate","remoteCandidateId","codec","codecId","parseRawData","parsedData","date","parseInboundStream","pop","emit","parsedStats","ping","remoteOutboundStreams","CANDIDATE_PAIR","DATA_CHANNEL","INBOUND_RTP","LOCAL_CANDIDATE","REMOTE_CANDIDATE","REMOTE_OUTBOUND_RTP","payloadType","mimeType","clockRate","sdpFmtpLine","previousCandidatePair","candidatePair","find","pair","selected","candidate","bytesSent","dtlsCipher","dtlsState","selectedCandidatePairChanges","srtpCipher","tlsVersion","base64Certificate","fingerprint","fingerprintAlgorithm","availableIncomingBitrate","bitrateMean","availableOutgoingBitrate","consentRequestsSent","currentRoundTripTime","nominated","priority","requestsReceived","requestsSent","responsesReceived","responsesSent","totalRoundTripTime","writable","candidateType","deleted","ip","isRemote","port","networkType","address","prev","estimatedPlayoutTimestamp","headerBytesReceived","lastPacketReceivedTimestamp","mediaType","packetsLost","packetsReceived","ssrc","decoderImplementation","firCount","framerateMean","keyFramesDecoded","nackCount","pliCount","totalDecodeTime","totalInterFrameDelay","totalSquaredInterFrameDelay","frameHeight","frameWidth","framesDropped","jitterBufferDelay","jitterBufferEmittedCount","inboundStream","fecPacketsDiscarded","fecPacketsReceived","jitter","makeDummyCodec","createTransport","createInboundStream","datachannelid","dataChannelIdentifier","stack","webpackContext","req","webpackContextResolve","keys","GetShareURL","options","defaultURL","searchParams","set","referralCode","delete","ShareData","CanShare","canShare","Share","share","SERVICE_WORKER_OUTGOING_MESSAGE_TYPE","SendMessageToServiceWorker","serviceWorker","ready","controller","postMessage","parser","LOCAL_STORAGE_COUNT_PWA_LAUNCHES","orientation","PORTRAIT","manifest","pushNotifEnabled","defferedPWAPrompt","isBigScreenResolution","lastModified","showUpdateModal","add2HomeAndroidIntercept","showAgreementPopup","showSubscribeTutoPopup","showRenewTutoPopup","showSharePopup","showSubscribeBannerPopup","showLoginPopup","loginPopupCloseToWelcome","showRegisterPopup","showTvCodePopup","isWebApp","isiOS","getOS","isAndroid","isChrome","getBrowser","isSafari","isBrowserValid","shareOptions","i18n","gameName","canDeferPWAPrompt","isAbleNotification","Notification","gaveAgreement","countPWALaunches","count","SET_BIGSCREEN_RESOLUTION","SET_ORIENTATION","innerHeight","innerWidth","LANDSCAPE","SET_MANIFEST","objValue","srcValue","stringManifest","JSON","stringify","blob","Blob","manifestURL","createObjectURL","customManifest","UPDATE_MANIFEST","SET_PUSH_NOTIF_ENABLED","SET_DEFERRED_PWA_PROMPT","SHOW_DEFERRED_PWA_PROMPT","prompt","SET_LAST_MODIFIED","SET_SHOW_UPDATE_MODAL","SHOW_ADD2HOME_ANDROID_INTERCEPT","CLOSE_SHOW_ADD2HOME_ANDROID_INTERCEPT","SHOW_AGREEMENT_POPUP","CLOSE_AGREEMENT_POPUP","SHOW_RENEW_TUTO_POPUP","CLOSE_RENEW_TUTO_POPUP","SHOW_TV_CODE_POPUP","CLOSE_TV_CODE_POPUP","SHOW_SUBSCRIBE_TUTO_POPUP","CLOSE_SUBSCRIBE_TUTO_POPUP","SHOW_SHARE_POPUP","CLOSE_SHARE_POPUP","INCREMENT_PWA_LAUNCHES","SHOW_SUBSCRIBE_BANNER_POPUP","CLOSE_SUBSCRIBE_BANNER_POPUP","SHOW_LOGIN_POPUP","closeToWelcome","CLOSE_LOGIN_POPUP","SHOW_REGISTER_POPUP","CLOSE_REGISTER_POPUP","addEventListener","updateAndSetManifest","permission","pushManager","getSubscription","sub","UPDATE_ENDPOINT","dynamicManifest","short_name","description","display","start_url","origin","background_color","theme_color","icons","sizes","purpose","related_applications","platform","setBigScreenResolution","bigscreen_resolution","fetchBigScreenResolution","createNotificationSubscription","subscribe","userVisibleOnly","applicationServerKey","subscription","removeNotificationSubscription","unsubscribe","checkPWAChanged","random","Math","round","now","substring","fetch","method","cache","lastModifiedDate","isNaN","lastPwaReload","lastPwaReloadDate","reloadPWA","reload","render","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","hideSuccessMsg","_e","hideFailMsg","domProps","codeValue","on","checkInput","close","staticRenderFns","playOnBigScreen","$store","direct","$t","play","component","VIcon","VOverlay","newSession","start","lastActive","_currentSession","_cacheStorage","LOCAL_STORAGE_KEY","SESSION_MAX_AGE","SESSION_MAX_IDLE","saveSessionToCacheStorage","session","caches","json","put","Response","loadSessionFromCacheStorage","saveSession","loadSession","item","parse","getSession","age","idle","_APIEndpoint","_user","_cgToken","_pageLoadID","_attributes","setAPIEndpoint","endpoint","isLocal","hostname","isHTTPS","setUser","setCGToken","GetDate","dd","getUTCDate","mm","getUTCMonth","yyyy","getUTCFullYear","hh","getUTCHours","min","getUTCMinutes","ss","getUTCSeconds","SSS","getUTCMilliseconds","enrichStats","entrypoint_ip","page_load_ID","user_agent","userAgent","user_id","screen","userAgentData","brands","getHighEntropyValues","ua","highEntropyValues","SendStats","Headers","append","SendArbitraryStats","log_type","additional_attributes","SendNavigationStats","to","SendButtonClickStats","button","gamingPageTab","PegiRating","PegiContentDescriptor","SubscriptionAccess","TriggerEvent","TriggerConditionPWA","TriggerOutput","ScreenshotType","sortGamesByName","sortGamesByDate","sort","b","releasedAt","favoriteGamesIds","favoriteGames","lastPlayedGamesIds","lastPlayedGames","subscriptions","expiredSubscriptions","getGame","appID","g","getGameById","gamesSortedAlpha","gamesSortedDate","getMaxTrialPlays","getGamesFromCache","urlRequest","cachedList","getHighestSubscription","highestSub","subRanks","FULL","DISCOVERY","TRIAL","VISIBLE","UNKNOWN","access","endOfSubscriptionDate","getGameSubscription","gam","subscriptionAccess","hasSubscription","getHighestExpiredSubscription","ADD_GAMES","newGames","filter","g2","SET_FAVORITE_GAMES_IDS","gameIds","SET_FAVORITE_GAMES","SET_LAST_PLAYED_GAMES_IDS","SET_LAST_PLAYED_GAMES","ADD_GAME_TO_LAST_PLAYED","index","indexOf","ADD_GAME_TO_FAVORITES","REMOVE_GAME_FROM_FAVORITES","SET_SUBSCRIPTIONS","SET_EXPIRED_SUBSCRIPTIONS","CACHE_REQUEST","cacheDate","SET_GAME_SUBCRIPTION","applyGamesLocales","shortDescription","caregameBonuses","bonuses","bonus","bonusLocalizedInfo","getAllGames","getGamesByQuery","cachedGames","params","getGamesByIds","ids","gamesToFetch","gamesAlreadyFetched","$or","getGameByAppID","gameInState","getGamesByGenre","genre","getGamesByTags","getGamesByPublisher","publisher","getFavoriteGames","sorted","aFavorite","bFavorite","getLastPlayedGames","aLastPlayed","bLastPlayed","getHomeSections","getExpiredSubscriptions","addToFavorite","removeFromFavorite","getRemainingTrialPlays","tries","openSubPopup","clickedSub","startTransaction","end","listener","source","subbed","removeEventListener","playUrl","BIGSCREEN","MOBILE","URLSearchParams","search","entries","openPlay","playIframeLocation","path","streamingmode","rootCommit","needSubscription","atLeastOneVisible","gameSub","pwaIsInstalled","getInstalledRelatedApps","relatedApps","envSkipPWACheckAndroid","envSkipPWACheckiOS","envSkipPWACheckSubAccessString","envSkipPWACheckSubAccessStringArray","split","trim","toLowerCase","envSkipPWACheck","hasPermission","SKIP_ADD2HOME","includes","UserPermission","cacheStorage","CGToken","exp","TOKEN_KEY","CGTOKENS_KEY","CACHE_KEY","LOCAL_STORAGE_REFERRAL_KEY","whoamiPromise","cgtokens","showNeedAccessPopup","showNeedPartnerAuthenticationPopup","friendList","isAuthenticated","permissions","isAuthPartner","isUrlSubPartner","isOtherSubPartner","showSubscribeBanner","SET_JWT","ADD_CGTOKEN","cgtoken","valid","expired","REMOVE_CGTOKEN","SET_CGTOKENS","DELETE_JWT","removeItem","SET_USER","UPDATE_STATS_INFO","SET_SHOW_NEED_ACCESS_POPUP","SET_SHOW_NEED_PARTNER_AUTHENTICATION_POPUP","SET_USERNAME","username","ADD_FRIENDS","friends","newFriend","friend","REMOVE_FRIEND","f","SET_REFERRAL_CODE","GIVE_AGREEMENT","logout","createTempAccount","urlParams","setJWT","whoami","tempRegister","login","password","loginValidity","_context","usernameValidity","initCacheStorage","currentCGToken","hasReferrer","createdAt","getFriends","accountAge","maxAgeForReferrer","updateReferrer","latestToken","cgTokens","cacheResponse","cacheResponse2","convertAccount","currentURL","newRoute","pathname","fromEntries","updateUsername","users","uUID","addFriend","removeFriend","needAccess","partnerAccess","openAuthPopup","popupOpened","partnerUrlAccess","partnerOtherAccess","highestExpiredSub","setReferrer","giveAgreement","patch","onCGToken","onError","onPopupCGToken","onPopupClose","onPopupError","checkPopupClose","openUnsubPopup","onSuccess","onPopupSubUnsubSuccess","VUE_APP_POPUP_URL_UNSUB","popupInterval","setInterval","closed","popupClosedProgrammatically","clearInterval","authorizedOrigins","every","success","Type","singleGameSections","GAME_SINGLE","GAME_VIDEO","homeSectionsPromise","link","fr","NORMAL","SET_HOME_SECTIONS","_homeSections","homeSection","order","subTitle","class","subscribed","_s","contentRating","canPlayOnTv","hasBigScreenPermission","playOnTv","screenshots","currentSShot","$event","lightBoxOpened","noActiveSub","staticStyle","_l","screenshot","portrait","isPortrait","thumbnail","clickedScreenshot","short","fullDescription","similarGames","$router","back","image","$emit","scopedSlots","_u","fn","proxy","_t","String","Boolean","VImg","VSkeletonLoader","bannerSmall","stopPropagation","preventDefault","toggleFavorite","arguments","clickPlayButton","favorite","newValue","default","components","CardL","VBtn","stepper","stepperArray","k","activeStepper","ref","notitle","childrenCount","el","$refs","horizontalScroll","$el","maxScroll","scrollWidth","clientWidth","floor","scrollLeft","max","$children","calculateStepper","HorizontalScroll","bordered","notSubscribed","showSubBanner","isConnected","click","openPopup","SubscribeBanner","VBadge","VBottomNavigation","disableLink","bannerBigNoTitle","hidden","videoURL","showPlayButton","showFavoriteButton","fake","CardGameL","pause","video","currentTime","contains","children","videoSource","tagName","load","appId","videoUrl","headerVideo","ListedGame","lock","isComingSoon","style","playButtonText","gameSubscription","styles","width","height","minWidth","stretch","fontSize","shareIsToggled","icon","required","BonusCard","nativeOn","tagClicked","isSelected","svgData","urlSegment","gameTags","t1","t2","TagComponent","Tag","accessUpdateInterval","$route","setupAccessUpdate","autoplay","pegi","rating","gameID","CardScreenshot","CoolLightBox","HomeScroller","TapBar","CardGameVideo","PlayButton","FavButton","ShareButton","BonusScroller","GameTags","EnterCodePopup","VContainer","reset","isBigScreen","updatedSelectedTag","isInit","tagList","previousStatus","$nextTick","scrollIntoView","tabName","findIndex","createTags","selectUrlTag","v","loaded","allGames","newUrl","tagUrlSegment","replaceState","selectedTag","modifyUrl","fetchGamesByTag","fetchAllGames","initTags","hasTagInUrl","TagScroller","GoUltimateButton","ListType","highestSubscription","endSubDate","clickedLink","lostMySub","switchColor","model","callback","$$v","hasNotif","expression","isBigscreenResolution","paymentEnabled","hasDiscoverySubscription","VUE_APP_PROFILE_SHOW_TNC","isTempAccount","VUE_APP_PROFILE_SHOW_LOGIN","format","toLocaleDateString","VSwitch","move","doMove","checkBeforeMove","_rej","OGLTapBar","section","observeVideoCard","firstSection","isFirst","isTypeBig","atLeastOneGame","isTypeNormal","isTypeFavorite","isTypeLastPlayed","isTypeGameSingle","isTypeGameVideo","transmitVideoCardUpdate","transmitVideoCard","bannerBigWithTitle","imageLink","cat","backgroundImage","backgroundColor","colorGradient1","colorGradient2","colorGradient3","listedCategories","CardCategory","CardM","CardGameM","HomeListedGame","homeSectionGames","videoCard","FAVORITE","LAST_PLAYED","getGamesFromHomeSection","BIG","CATEGORY_LIST","CATEGORY_SINGLE","$te","CardGameXL","CardShowtime","CategoryList","Banner","HomeCardGameVideo","everyVideoElement","intersectSquareHeight","screenMiddle","videoNeedsLoading","videoElement","loadVideo","pauseVideo","playVideo","restartVideo","checkIntersection","top","bottom","intersectingVideos","firstVideo","elem","videoRect","getBoundingClientRect","firstVideoRect","y","rectA","y1","y2","rectB","scrollY","playing","element","h","OLD","HomeSectionComponent","HomeSection","genreName","showLogin","showRegister","beforeMoveLeave","beforeMoveContinue","beforeMove","friendID","beforeMovePromise","showBeforeMoveWarning","LoginForm","RegisterForm","TapBarMoveWarning","routes","Game","meta","noHandleNotch","PlayIframe","Categories","OneGameProfile","Profile","Logout","skipAuth","OneGameLobby","Home","redirect","routeHistory","afterEach","_from","fallback","routeBeforeBack","fullPath","MAX_BACK_ATTEMPTS","attempts","backWorked","hasMoved","go","routeAfterBack","base","scrollBehavior","savedPosition","hasQueryParams","route","beforeEach","next","referrer","hadCGToken","assign","shouldKeepAlive","dialog","buttonText","VCard","VDialog","VCol","VRow","disabled","VCardActions","step","skip","showButtonClose","useLogo","install","isPaymentEnabled","logged","loginToPartner","registered","toggleForm","useRegister","hasFullSub","afterConnected","showGetTempAccountPopup","onReady","exitCode","BROWSER_INCOMPATIBLE","Alert","CONNECTION_LOST","CONNECTION_TIMEOUT","NO_CAPACITY_AVAILABLE","PWA_REQUIRED","SAVE_PENDING","SAVE_RESTORE_ERROR","SERVICE_NOT_AVAILABLE","SPEEDTEST_FAILED","BS_SPEEDTEST_FAILED","USER_AFK","USER_ALREADY_PAIRED","USER_NOT_AUTHORIZED","USER_UNFOCUS_AFK","USER_NEW_SESSION","QUEUE_TIMEOUT","BS_DISCONNECTED","END_TRIAL","showError","isIframe","opener","listenToMessages","dostuff","setUpApm","pageLoadTransansaction","getCurrentTransaction","loadingSpan","startSpan","waitForRouterReady","subscriptionStatusPromise","expiredSubscriptionsPromise","catch","loadedLobby","checkPWANeedReload","hideNativePWABanner","setViewHeight","debouncedSetHeight","$once","vh","documentElement","setProperty","VUE_APP_SESSION_EXPIRATION_DURATION","apmEndpoint","AlertDialog","WrongBrowserPopup","NeedAccessPopup","NeedPartnerAuthenticationPopup","Add2HomeTuto","Add2HomeAndroidIntercept","UpdateModal","SubscribeTutoPopup","RenewTutoPopup","AgreementPopup","SharePopup","SubscribeBannerPopup","LoginPopup","PayPopup","RegisterPopup","PaymentCompletedPopup","PaymentFailedPopup","GenericPopup","VApp","VMain","customIcons","unlock","unfavorite","iconfont","values","tapBarHome","tapBarCategory","tapBarProfile","tapBarLeaderboard","playButton","playCircleButton","tvButton","backButton","favoriteButton","favoriteButtonAdded","showMore","showLess","profileAddGames","add2HomeTutoOtherStep1","add2HomeTutoOtherStep2","add2HomeTutoAndroidChromeStep1","add2HomeTutoAndroidChromeStep2","visibility","visibilityOff","shareButton","shareIcon","lockIcon","unlockIcon","favoriteIcon","unFavoriteIcon","bonusIcon","validIcon","failedIcon","theme","dark","current","isSecureContext","register","productionTip","errorHandler","_info","original","vuetify","$mount","form","$set","formRules","resetError","showPassword","working","validate","loginResult","VForm","VProgressCircular","VTextField","validationRegex","userNameAlreadyTakenError","checkUsernameDebounced","loginAlreadyTakenError","checkLoginDebounced","timerId","intervalId","withUsername","checkUsername","checkLogin","NetworkState","loadLocaleMessages","matched"],"mappings":"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","file":"js/app.e1de4da8.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-16c5cde1\":\"57187a7c\",\"chunk-d77110e2\":\"411b7056\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-16c5cde1\":1,\"chunk-d77110e2\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-16c5cde1\":\"7c5e161d\",\"chunk-d77110e2\":\"cb9be7b3\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GenericPopup.vue?vue&type=style&index=0&id=705a4104&lang=scss&scoped=true&\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"green100\":\"#c8fbd7\",\"green200\":\"#94f7ba\",\"green300\":\"#5ce79f\",\"green400\":\"#33cf8e\",\"green500\":\"#00af77\",\"green600\":\"#009675\",\"green700\":\"#007d6e\",\"green800\":\"#006562\",\"green900\":\"#004d53\",\"green1000\":\"#003f44\",\"purple100\":\"#e7e7f5\",\"purple200\":\"#d0d0eb\",\"purple300\":\"#a2a2c3\",\"purple400\":\"#6b6b88\",\"purple500\":\"#292939\",\"purple600\":\"#1d1d31\",\"purple700\":\"#141429\",\"purple800\":\"#0d0d21\",\"purple900\":\"#07071b\",\"purple1000\":\"#040411\"};","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareButton.vue?vue&type=style&index=0&id=4ad20a86&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GameTags.vue?vue&type=style&index=0&id=0c9407e8&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HomeListedGame.vue?vue&type=style&index=0&id=6c8fd126&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./account_circle_FILL1_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=153a7d04&lang=scss&scoped=true&\"","import { defineModule } from \"direct-vuex\";\nimport axios, { AxiosResponse } from \"axios\";\n\nimport Vuei18n from \"@/plugins/i18n\";\nimport { moduleActionContext, axiosInstance } from \"@/store\";\n\ninterface Language {\n code: string;\n jsonLocaleFileUrl: string;\n}\n\nexport interface LanguageState {\n language?: string;\n availableLanguages: Language[];\n}\n\nlet promise: Promise> | undefined;\n\nconst module = defineModule({\n namespaced: true as const,\n state: {\n language: undefined,\n availableLanguages: [],\n } as LanguageState,\n getters: {\n availableLanguageCodes: (state) => state.availableLanguages.map((language) => language.code),\n },\n mutations: {\n SET_LANGUAGE(state: LanguageState, lang: string) {\n state.language = lang;\n Vuei18n.locale = lang;\n },\n SET_AVAILABLE_LANGUAGES(state: LanguageState, availableLanguages: Language[]) {\n state.availableLanguages = availableLanguages;\n },\n },\n actions: {\n setLanguage(context, prefferdLanguages: readonly string[]) {\n const { getters, commit } = moduleActionContext(context, module);\n\n if (typeof prefferdLanguages === \"string\") commit.SET_LANGUAGE(prefferdLanguages);\n else {\n let language: string | undefined = undefined;\n prefferdLanguages?.some((l) =>\n getters.availableLanguageCodes.some((sl): boolean => {\n const match = new RegExp(sl, \"gi\").test(l);\n if (match) language = sl;\n return match;\n })\n );\n if (!language) language = Vuei18n.fallbackLocale.toString();\n commit.SET_LANGUAGE(language);\n }\n },\n async init(context): Promise {\n const { state, commit, dispatch } = moduleActionContext(context, module);\n\n if (state.availableLanguages.length !== 0) return;\n if (promise) return;\n promise = axiosInstance.get(`/api/v1/languages`);\n const response = await promise;\n commit.SET_AVAILABLE_LANGUAGES(response.data);\n\n await dispatch.setLanguage(navigator.languages);\n\n await dispatch.loadMessages();\n },\n async loadMessages(context) {\n const { state } = moduleActionContext(context, module);\n\n for (const language of state.availableLanguages) {\n try {\n if (!language.jsonLocaleFileUrl) return;\n const response = await axios.get(language.jsonLocaleFileUrl);\n Vuei18n.mergeLocaleMessage(language.code, response.data);\n } catch (e) {\n console.error(e);\n }\n }\n },\n },\n});\n\nexport default module;\n","import { defineModule } from \"direct-vuex\";\n\nimport { moduleActionContext, moduleGetterContext } from \"@/store/\";\nimport { Game } from \"@/store/modules/games\";\n\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\n\nenum PaymentProvider {\n FASTSPRING = \"FASTSPRING\",\n TRANSACTBRIDGE = \"TRANSACTBRIDGE\",\n}\n\nexport interface PaymentState {\n showPayPopup: boolean;\n showPaymentCompletedPopup: boolean;\n showPaymentFailedPopup: boolean;\n lastRequestedGame: Game | undefined;\n}\n\nconst module = defineModule({\n namespaced: true as const,\n state: {\n showPayPopup: false,\n showPaymentCompletedPopup: false,\n showPaymentFailedPopup: false,\n lastRequestedGame: undefined,\n } as PaymentState,\n getters: {\n enabled: (_state): boolean => /^true$/i.test(process.env.VUE_APP_CGPAYMENT_ENABLED),\n fallbackEnabled: (_state): boolean => /^true$/i.test(process.env.VUE_APP_CGPAYMENT_FALLBACK_ENABLED),\n skipRegister: (_state): boolean => /^true$/i.test(process.env.VUE_APP_CGPAYMENT_SKIP_REGISTER),\n shouldUseCGPayement: (...args): boolean => {\n const { rootState } = mod1GetterContext(args);\n if (!rootState.authentication.user) return false;\n return rootState.authentication.user?.tempAccount || rootState.authentication.user?.isRegistered;\n },\n paymentProvider: (): PaymentProvider => {\n const paymentProvider: string | PaymentProvider =\n process.env.VUE_APP_PAYMENT_PROVIDER || PaymentProvider.TRANSACTBRIDGE;\n return PaymentProvider[paymentProvider.toUpperCase() as keyof typeof PaymentProvider];\n },\n },\n mutations: {\n SHOW_PAY_POPUP: (state) => {\n state.showPayPopup = true;\n document.querySelector(\"html\")?.classList.add(\"noscroll\");\n window.scrollTo(0, 0);\n StatsManager.SendNavigationStats(window.location.href, \"PAY_POPUP\");\n },\n CLOSE_PAY_POPUP: (state) => {\n state.showPayPopup = false;\n document.querySelector(\"html\")?.classList.remove(\"noscroll\");\n StatsManager.SendNavigationStats(\"PAY_POPUP\", window.location.href);\n },\n SHOW_PAYEMENT_COMPLETED_POPUP: (state) => {\n state.showPaymentCompletedPopup = true;\n document.querySelector(\"html\")?.classList.add(\"noscroll\");\n window.scrollTo(0, 0);\n StatsManager.SendNavigationStats(window.location.href, \"PAYMENT_COMPLETED_POPUP\");\n },\n CLOSE_PAYEMENT_COMPLETED_POPUP: (state) => {\n state.showPaymentCompletedPopup = false;\n document.querySelector(\"html\")?.classList.remove(\"noscroll\");\n StatsManager.SendNavigationStats(\"PAYMENT_COMPLETED_POPUP\", window.location.href);\n },\n SHOW_PAYEMENT_FAILED_POPUP: (state) => {\n state.showPaymentFailedPopup = true;\n document.querySelector(\"html\")?.classList.add(\"noscroll\");\n window.scrollTo(0, 0);\n StatsManager.SendNavigationStats(window.location.href, \"PAYMENT_FAILED_POPUP\");\n },\n CLOSE_PAYEMENT_FAILED_POPUP: (state) => {\n state.showPaymentFailedPopup = false;\n document.querySelector(\"html\")?.classList.remove(\"noscroll\");\n StatsManager.SendNavigationStats(\"PAYMENT_FAILED_POPUP\", window.location.href);\n },\n SET_LAST_REQUESTED_GAME: (state, game: Game) => {\n state.lastRequestedGame = game;\n },\n },\n actions: {\n async setup(context): Promise {\n const { getters, rootDispatch } = moduleActionContext(context, module);\n\n StatsManager.SendArbitraryStats(\"payment\", {\n event: \"payment_setup\",\n provider: getters.paymentProvider,\n });\n\n switch (getters.paymentProvider) {\n case PaymentProvider.FASTSPRING:\n rootDispatch.fastspring.setup();\n break;\n case PaymentProvider.TRANSACTBRIDGE:\n rootDispatch.transactbridge.setup();\n break;\n default:\n console.error(\"Unknown payment provider\");\n }\n },\n async purchaseSubscription(context): Promise {\n const { getters, rootDispatch } = moduleActionContext(context, module);\n\n StatsManager.SendArbitraryStats(\"payment\", {\n event: \"purchase_started\",\n provider: getters.paymentProvider,\n });\n\n switch (getters.paymentProvider) {\n case PaymentProvider.FASTSPRING:\n rootDispatch.fastspring.purchaseSubscription();\n break;\n case PaymentProvider.TRANSACTBRIDGE:\n rootDispatch.transactbridge.purchaseSubscription();\n break;\n default:\n console.error(\"Unknown payment provider\");\n }\n },\n async onPurchaseCompleted(context): Promise {\n const { commit, rootDispatch, state } = moduleActionContext(context, module);\n\n commit.SHOW_PAYEMENT_COMPLETED_POPUP();\n rootDispatch.games.checkAllsubscriptions();\n if (state.lastRequestedGame)\n rootDispatch.games.checkGameSubscription({ game: state.lastRequestedGame, force: true });\n StatsManager.SendArbitraryStats(\"payment\", {\n event: \"purchase_completed\",\n });\n },\n async onPurchaseFailed(context): Promise {\n const { commit } = moduleActionContext(context, module);\n\n commit.SHOW_PAYEMENT_FAILED_POPUP();\n StatsManager.SendArbitraryStats(\"payment\", {\n event: \"purchase_failed\",\n });\n },\n },\n});\n\nexport default module;\nconst mod1GetterContext = (args: [any, any, any, any]) => moduleGetterContext(args, module);\n","import { defineModule } from \"direct-vuex\";\n\nimport { LocaleMessageObject } from \"vue-i18n\";\n\nimport { moduleActionContext, axiosInstance as axios } from \"@/store/\";\nimport VueI18n from \"@/plugins/i18n\";\nimport { AxiosResponse } from \"axios\";\n\ntype Locale = \"fr\" | \"en\" | string;\n\ninterface GameListLocalizedClientInfo {\n title: string;\n}\n\nexport interface GameList {\n _id: string;\n name: string;\n urlSegment: string;\n games: string[];\n localizedClientInfo: { [key in Locale]: GameListLocalizedClientInfo };\n}\n\nlet gameListsPromise: Promise> | undefined = undefined;\n\nexport interface GameListsState {\n gameLists: GameList[];\n}\n\nconst module = defineModule({\n namespaced: true as const,\n state: {\n gameLists: [],\n } as GameListsState,\n mutations: {\n SET_GAME_LISTS(state, gameLists: GameList[]) {\n state.gameLists = gameLists;\n },\n },\n actions: {\n async getGameLists(context): Promise {\n const { rootGetters, state, commit } = moduleActionContext(context, module);\n try {\n if (state.gameLists.length > 0) return state.gameLists;\n if (!gameListsPromise) gameListsPromise = axios.get(`/api/v1/gamelists`);\n const { data } = await gameListsPromise;\n commit.SET_GAME_LISTS(data);\n const locales: Locale[] = rootGetters.language.availableLanguageCodes;\n locales.forEach((locale) => {\n const messages: LocaleMessageObject = {};\n state.gameLists.forEach(\n (a) => (messages[`gameLists.${a._id}.title`] = a?.localizedClientInfo?.[locale]?.title)\n );\n VueI18n.mergeLocaleMessage(locale, messages);\n });\n return state.gameLists;\n } catch (error) {\n console.error(error);\n commit.SET_GAME_LISTS([]);\n return state.gameLists;\n }\n },\n },\n});\n\nexport default module;\n","import { defineModule } from \"direct-vuex\";\n\nimport { LocaleMessageObject } from \"vue-i18n\";\n\nimport { moduleActionContext, axiosInstance as axios } from \"@/store/\";\nimport VueI18n from \"@/plugins/i18n\";\nimport { AxiosResponse } from \"axios\";\n\ninterface GenreLocalizedClientInfo {\n name: string;\n bannerImg: string;\n}\n\ntype Locale = \"fr\" | \"en\" | string;\n\nexport class Genre {\n _id: string;\n name: string;\n enabled: boolean;\n headerImg: string;\n localizedClientInfo: { [key in Locale]: GenreLocalizedClientInfo };\n colorGradient1?: string;\n colorGradient2?: string;\n urlSegment?: string;\n}\n\nlet genresPromise: Promise> | undefined = undefined;\n\nexport interface GenresState {\n genres: Genre[];\n}\n\nconst module = defineModule({\n namespaced: true as const,\n state: {\n genres: [],\n } as GenresState,\n mutations: {\n SET_GENRES(state, genres: Genre[]) {\n state.genres = genres;\n },\n },\n actions: {\n async getGenres(context): Promise {\n const { rootGetters, state, commit } = moduleActionContext(context, module);\n try {\n if (state.genres.length > 0) return state.genres;\n if (!genresPromise) genresPromise = axios.get(`/api/v1/genres`);\n const { data } = await genresPromise;\n commit.SET_GENRES(data);\n const locales: Locale[] = rootGetters.language.availableLanguageCodes;\n locales.forEach((locale) => {\n const messages: LocaleMessageObject = {};\n state.genres.forEach((a) => (messages[`genres.${a._id}.name`] = a?.localizedClientInfo?.[locale]?.name));\n VueI18n.mergeLocaleMessage(locale, messages);\n });\n return state.genres;\n } catch (error) {\n console.error(error);\n commit.SET_GENRES([]);\n return state.genres;\n }\n },\n },\n});\n\nexport default module;\n","import { defineModule } from \"direct-vuex\";\n\nimport { LocaleMessageObject } from \"vue-i18n\";\n\nimport { moduleActionContext, axiosInstance as axios } from \"@/store/\";\nimport VueI18n from \"@/plugins/i18n\";\nimport { AxiosResponse } from \"axios\";\n\ninterface TagLocalizedClientInfo {\n name: string;\n}\n\ntype Locale = \"fr\" | \"en\" | string;\n\nexport class Tag {\n _id: string;\n name: string;\n enabled: boolean;\n icon: string;\n localizedClientInfo: { [key in Locale]: TagLocalizedClientInfo };\n urlSegment?: string;\n}\n\nlet tagsPromise: Promise> | undefined = undefined;\n\nexport interface TagState {\n tags: Tag[];\n}\n\nconst module = defineModule({\n namespaced: true as const,\n state: {\n tags: [],\n } as TagState,\n mutations: {\n SET_TAGS(state, tags: Tag[]) {\n state.tags = tags;\n },\n },\n actions: {\n async getTags(context): Promise {\n const { rootGetters, state, commit } = moduleActionContext(context, module);\n try {\n if (state.tags.length > 0) return state.tags;\n if (!tagsPromise) tagsPromise = axios.get(`/api/v1/tags`);\n const { data } = await tagsPromise;\n commit.SET_TAGS(data);\n const locales: Locale[] = rootGetters.language.availableLanguageCodes;\n locales.forEach((locale) => {\n const messages: LocaleMessageObject = {};\n state.tags.forEach((a) => (messages[`tags.${a._id}.name`] = a?.localizedClientInfo?.[locale]?.name));\n VueI18n.mergeLocaleMessage(locale, messages);\n });\n return state.tags;\n } catch (error) {\n console.error(error);\n commit.SET_TAGS([]);\n return state.tags;\n }\n },\n },\n});\n\nexport default module;\n","import { defineModule } from \"direct-vuex\";\n\nimport { moduleActionContext, axiosInstance as axios } from \"@/store/\";\nimport { AxiosResponse } from \"axios\";\n\nexport interface Publisher {\n _id: string;\n name: string;\n}\n\nlet publishersPromise: Promise> | undefined = undefined;\n\nexport interface PublishersState {\n publishers: Publisher[];\n}\n\nconst module = defineModule({\n namespaced: true as const,\n state: {\n publishers: [],\n } as PublishersState,\n\n mutations: {\n SET_PUBLISHERS(state, publishers: Publisher[]) {\n state.publishers = publishers;\n },\n },\n actions: {\n async getPublishers(context): Promise {\n const { commit, state } = moduleActionContext(context, module);\n try {\n if (state.publishers.length > 0) return state.publishers;\n if (!publishersPromise) publishersPromise = axios.get(`/api/v1/publishers`);\n const { data } = await publishersPromise;\n commit.SET_PUBLISHERS(data);\n return state.publishers;\n } catch (error) {\n console.error(error);\n commit.SET_PUBLISHERS([]);\n return state.publishers;\n }\n },\n },\n});\n\nexport default module;\n","import { defineModule } from \"direct-vuex\";\n\nimport { moduleActionContext } from \"@/store/\";\n\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ndeclare const fastspring: any;\n\ninterface DataPopupClosed {\n id: string;\n reference: string;\n}\n\nconst module = defineModule({\n namespaced: true as const,\n state: {},\n getters: {},\n mutations: {},\n actions: {\n async setup(context): Promise {\n const { rootDispatch } = moduleActionContext(context, module);\n\n // ID of the script element\n const scriptId = \"fsc-api\";\n // Check if the script already exist\n const existingScript = document.getElementById(scriptId);\n if (!existingScript) {\n // Check if the environment variable is set\n if (!process.env.VUE_APP_FASTSPRING_STOREFRONT)\n return console.error(\"VUE_APP_FASTSPRING_STOREFRONT is not set\");\n\n // Create the script element\n const script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n script.id = scriptId;\n script.setAttribute(\"data-continuous\", \"true\");\n script.src = \"https://sbl.onfastspring.com/sbl/1.0.1/fastspring-builder.min.js\";\n script.dataset.storefront = process.env.VUE_APP_FASTSPRING_STOREFRONT;\n\n // Add the callback function\n if (typeof window !== \"undefined\") {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (window as any).dataPopupClosed = (data?: DataPopupClosed) => {\n StatsManager.SendNavigationStats(\"FASTSPRING_CHECKOUT\", window.location.href);\n\n // Check if the callback was called with data, which means the payment was successful\n if (data && data.id) {\n rootDispatch.payment.onPurchaseCompleted();\n // Otherwise the payment failed or the user closed the popup without completing the payment\n } else rootDispatch.payment.onPurchaseFailed();\n };\n }\n // Add the attribute to the script so the callback function is called\n script.setAttribute(\"data-popup-closed\", \"dataPopupClosed\");\n\n // Append the script to the head\n document.head.appendChild(script);\n }\n },\n async purchaseSubscription(context): Promise {\n const { rootState } = moduleActionContext(context, module);\n try {\n const userId = rootState.authentication.user?.id;\n if (!userId) return alert(\"You must be logged in to subscribe\");\n\n if (!process.env.VUE_APP_FASTSPRING_PRODUCT) return console.error(\"VUE_APP_FASTSPRING_PRODUCT is not set\");\n\n fastspring.builder.clean();\n fastspring.builder.add(process.env.VUE_APP_FASTSPRING_PRODUCT);\n fastspring.builder.tag({\n user: userId,\n });\n\n fastspring.builder.checkout();\n StatsManager.SendNavigationStats(window.location.href, \"FASTSPRING_CHECKOUT\");\n } catch (error) {\n console.error(error);\n }\n },\n },\n});\n\nexport default module;\n","import { defineModule } from \"direct-vuex\";\n\nimport { moduleActionContext, axiosInstance as axios } from \"@/store/\";\nimport router from \"@/router\";\n\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\n\ninterface CreateSessionResponse {\n payUrl: string;\n}\n\ntype PaymentStatus = \"CLOSED\" | \"REJECTED\" | \"EXPIRED\";\n\nconst module = defineModule({\n namespaced: true as const,\n state: {},\n getters: {},\n mutations: {},\n actions: {\n async setup(context): Promise {\n const { rootDispatch } = moduleActionContext(context, module);\n\n if (router.currentRoute.query[\"tbId\"]) {\n const status: PaymentStatus = router.currentRoute.query[\"status\"] as PaymentStatus;\n if (status === \"CLOSED\") {\n rootDispatch.payment.onPurchaseCompleted();\n // Otherwise the payment failed or the user closed the popup without completing the payment\n } else if (status === \"REJECTED\" || status === \"EXPIRED\") rootDispatch.payment.onPurchaseFailed();\n // Remove the query params\n router.replace({\n query: {\n ...router.currentRoute.query,\n tbId: undefined,\n status: undefined,\n supplierRefId: undefined,\n type: undefined,\n },\n });\n }\n },\n async purchaseSubscription(context): Promise {\n const { rootState } = moduleActionContext(context, module);\n try {\n const res = await axios.post(\"/transactbridge/createSession\", {\n currentUrl: window.location.href,\n locale: rootState.language.language || \"en\",\n });\n\n if (res.data.payUrl) {\n StatsManager.SendNavigationStats(window.location.href, \"TRANSACTBRIDGE_CHECKOUT\");\n const tab = window.open(res.data.payUrl, \"_blank\");\n if (tab) tab.focus();\n // If the tab is blocked by the browser, we redirect the user to the payment page\n else window.location.href = res.data.payUrl;\n } else console.error(\"No payUrl in response\");\n } catch (error) {\n console.error(error);\n }\n },\n },\n});\n\nexport default module;\n","import { defineModule } from \"direct-vuex\";\n\nimport { moduleActionContext } from \"@/store/\";\nimport VueI18n from \"@/plugins/i18n\";\n\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\n\nexport interface Button {\n text: string;\n onClick: () => void;\n important?: boolean;\n}\n\ninterface PopupPayload {\n /**\n * Internal name of the popup, used for tracking\n */\n name: string;\n title: string;\n text: string;\n buttons: Button[];\n}\n\nexport interface PopupState {\n name: string;\n title: string;\n text: string;\n buttons: Button[];\n showPopup: boolean;\n}\n\nconst module = defineModule({\n namespaced: true as const,\n state: {\n name: \"\",\n title: \"\",\n text: \"\",\n buttons: [],\n showPopup: false,\n } as PopupState,\n mutations: {\n SHOW_POPUP(state, payload: PopupPayload) {\n if (state.showPopup) console.warn(`Showing popup ${payload.name} while ${state.name} is already shown`);\n if (!payload.name) throw new Error(\"Popup name is required\");\n\n state.name = payload.name;\n state.title = payload.title;\n state.text = payload.text;\n state.buttons = payload.buttons;\n\n state.showPopup = true;\n\n document.querySelector(\"html\")?.classList.add(\"noscroll\");\n window.scrollTo(0, 0);\n\n StatsManager.SendNavigationStats(window.location.href, state.name);\n },\n CLOSE_POPUP(state) {\n if (!state.showPopup) console.warn(`Closing popup while no popup is shown`);\n\n // Track the popup name before resetting the state\n const popupName = state.name;\n state.name = \"\";\n state.title = \"\";\n state.text = \"\";\n state.buttons = [];\n\n state.showPopup = false;\n\n document.querySelector(\"html\")?.classList.remove(\"noscroll\");\n\n StatsManager.SendNavigationStats(popupName, window.location.href);\n },\n },\n actions: {\n showAlreadySubPopup(context) {\n const { commit } = moduleActionContext(context, module);\n\n commit.SHOW_POPUP({\n name: \"ALREADY_SUB_POPUP\",\n title: VueI18n.t(\"alreadySubPopup.title\").toString(),\n text: VueI18n.t(\"alreadySubPopup.text\").toString(),\n buttons: [\n {\n text: VueI18n.t(\"alreadySubPopup.buttons.close\").toString(),\n onClick: () => {\n StatsManager.SendButtonClickStats(\"ALREADY_SUB_POPUP\", \"close\");\n commit.CLOSE_POPUP();\n },\n important: true,\n },\n ],\n });\n },\n showLostMySubPopup(context) {\n const { commit } = moduleActionContext(context, module);\n\n commit.SHOW_POPUP({\n name: \"LOST_MY_SUB_POPUP\",\n title: VueI18n.t(\"lostMySubPopup.title\").toString(),\n text: VueI18n.t(\"lostMySubPopup.text\").toString(),\n buttons: [\n {\n text: VueI18n.t(\"lostMySubPopup.buttons.close\").toString(),\n onClick: () => {\n StatsManager.SendButtonClickStats(\"LOST_MY_SUB_POPUP\", \"close\");\n commit.CLOSE_POPUP();\n },\n important: true,\n },\n ],\n });\n },\n },\n});\n\nexport default module;\n","import Vue from \"vue\";\nimport Vuex from \"vuex\";\nimport { createDirectStore } from \"direct-vuex\";\nimport { RawLocation } from \"vue-router\";\nimport axios from \"axios\";\n\nimport authentication from \"./modules/authentication\";\nimport language from \"./modules/language\";\nimport games from \"./modules/games\";\nimport homeSections from \"./modules/homesections\";\nimport gameLists from \"./modules/gamelists\";\nimport genres from \"./modules/genres\";\nimport tags from \"./modules/tags\";\nimport publishers from \"./modules/publishers\";\nimport mobile from \"./modules/mobile\";\nimport payment from \"./modules/payment\";\nimport fastspring from \"./modules/payment/fastspring\";\nimport transactbridge from \"./modules/payment/transactbridge\";\nimport popup from \"./modules/popup\";\n\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\nimport bigscreen from \"./modules/bigscreen\";\n\nStatsManager.setAPIEndpoint(process.env.VUE_APP_API_ENDPOINT);\n\nVue.use(Vuex);\n\ninterface AlertDialog {\n show: boolean;\n title?: string;\n text: string;\n buttonText?: string;\n onClose?: () => void;\n}\n\ninterface Add2HomeTuto {\n show: boolean;\n onSkip?: () => void;\n onClose?: () => void;\n}\n\nexport interface RootState {\n apiEndpoint: string;\n isLoading: boolean;\n requestedRoute: RawLocation;\n alert: AlertDialog;\n showWrongBrowserPopup: boolean;\n add2HomeTuto: Add2HomeTuto;\n}\n\nconst { store, rootActionContext, moduleActionContext, rootGetterContext, moduleGetterContext } = createDirectStore({\n strict: process.env.NODE_ENV !== \"production\",\n modules: {\n authentication,\n language,\n games,\n mobile,\n homeSections,\n gameLists,\n genres,\n tags,\n publishers,\n payment,\n fastspring,\n transactbridge,\n bigscreen,\n popup,\n },\n state: {\n apiEndpoint: process.env.VUE_APP_API_ENDPOINT,\n isLoading: false,\n requestedRoute: \"\",\n alert: {\n show: false,\n },\n add2HomeTuto: {\n show: false,\n },\n showWrongBrowserPopup: false,\n } as RootState,\n getters: {},\n mutations: {\n SET_LOADING(state, isLoading: boolean) {\n state.isLoading = isLoading;\n },\n SET_REQUESTED_ROUTE(state, requestedRoute: RawLocation) {\n state.requestedRoute = requestedRoute;\n },\n SHOW_ALERT(state, { title, text, onClose }: { title?: string; text: string; onClose?: () => void }) {\n state.alert.title = title;\n state.alert.text = text;\n state.alert.onClose = onClose;\n state.alert.show = true;\n },\n CLOSE_ALERT(state) {\n if (state.alert.show) {\n state.alert.onClose?.();\n state.alert.show = false;\n }\n },\n SHOW_WRONG_BROWSER_POPUP(state) {\n state.showWrongBrowserPopup = true;\n },\n SHOW_ADD2HOME_TUTO(state, { onSkip, onClose }: { onSkip?: () => void; onClose?: () => void }) {\n state.add2HomeTuto.onSkip = onSkip;\n state.add2HomeTuto.onClose = onClose;\n state.add2HomeTuto.show = true;\n document.querySelector(\"html\")?.classList.add(\"noscroll\");\n window.scrollTo(0, 0);\n StatsManager.SendNavigationStats(location.href, \"ADD2HOME_TUTO\");\n },\n CLOSE_ADD2HOME_TUTO(state) {\n if (state.add2HomeTuto.show) {\n state.add2HomeTuto.onClose?.();\n state.add2HomeTuto.show = false;\n document.querySelector(\"html\")?.classList.remove(\"noscroll\");\n StatsManager.SendNavigationStats(\"ADD2HOME_TUTO\", location.href);\n }\n },\n },\n actions: {},\n});\n\n// Export the direct-store instead of the classic Vuex store.\nexport default store;\n\n// The following exports will be used to enable types in the\n// implementation of actions.\nexport { rootActionContext, moduleActionContext, rootGetterContext, moduleGetterContext };\n\n// The following lines enable types in the injected store '$store'.\nexport type AppStore = typeof store;\ndeclare module \"vuex\" {\n interface Store {\n direct: AppStore;\n }\n}\n\nexport const axiosInstance = axios.create();\n\naxiosInstance.interceptors.request.use((config) => {\n config.baseURL = store.state.apiEndpoint;\n const token = store.getters.authentication.jwt;\n if (!config.headers.Authorization && token) config.headers.Authorization = `Bearer ${token}`;\n return config;\n});\n\naxiosInstance.interceptors.response.use(undefined, (error) => {\n if (error?.response?.status === 429) {\n // TODO Show popup to tell people that they sent too many requests?\n }\n return Promise.reject(error);\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardGameM.vue?vue&type=style&index=0&id=336222be&lang=scss&scoped=true&\"","import { defineModule } from \"direct-vuex\";\nimport { moduleActionContext } from \"..\";\nimport { axiosInstance as axios } from \"@/store/\";\nimport { AxiosResponse } from \"axios\";\n\nexport enum StreamingMode {\n BIGSCREEN = \"BIGSCREEN\",\n MOBILE = \"MOBILE\",\n}\n\nconst module = defineModule({\n namespaced: true as const,\n state: {\n bigscreenIsPaired: false,\n },\n getters: {\n isBigscreenPaired: (state) => state.bigscreenIsPaired,\n },\n mutations: {\n TOGGLE_BIGSCREEN_IS_PAIRED(state, bool: boolean) {\n state.bigscreenIsPaired = bool;\n },\n },\n actions: {\n async sendPairingCode(context, code: string) {\n const { commit } = moduleActionContext(context, module);\n\n const body = { pairing_code: code };\n let response: AxiosResponse;\n try {\n response = await axios.post(`/api/v1/bigScreen/pairingCode`, body);\n } catch (err) {\n console.error(err);\n commit.TOGGLE_BIGSCREEN_IS_PAIRED(false);\n return false;\n }\n if (response.status === 200) {\n commit.TOGGLE_BIGSCREEN_IS_PAIRED(true);\n return true;\n } else {\n commit.TOGGLE_BIGSCREEN_IS_PAIRED(false);\n return false;\n }\n },\n\n async isPairedToBigScreen(context) {\n const { commit } = moduleActionContext(context, module);\n try {\n const response = await axios.get(`/api/v1/bigScreen/isPaired`);\n if (response.status === 200) {\n commit.TOGGLE_BIGSCREEN_IS_PAIRED(true);\n }\n } catch (e) {\n commit.TOGGLE_BIGSCREEN_IS_PAIRED(false);\n }\n },\n },\n});\n\nexport default module;\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tag.vue?vue&type=style&index=0&id=2335a4f6&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./add_FILL0_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=4c3cfd58&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./lockIcon.vue?vue&type=style&index=0&id=6fa0d682&lang=scss&scoped=true&\"","export enum TrialEndReason {\n /**\n * The trial ended because the user won the trial level(s).\n */\n WIN,\n\n /**\n * The trial ended because the user lost the trial level(s).\n */\n LOSE,\n\n /**\n * The trial ended because the user finished the trial level(s).\n */\n ENDED,\n\n /**\n * The trial ended because there is no time remaining.\n */\n TIMEOUT,\n}\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./share_FILL0_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=18cd8ef8&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubscribeBannerPopup.vue?vue&type=style&index=0&id=1be7917b&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegisterPopup.vue?vue&type=style&index=0&id=7f35b804&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardScreenshot.vue?vue&type=style&index=0&id=cb2a7c9e&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginForm.vue?vue&type=style&index=0&id=46ad5b85&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayIframe.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListedGame.vue?vue&type=style&index=0&id=5ca76ea2&lang=scss&scoped=true&\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"green100\":\"#c8fbd7\",\"green200\":\"#94f7ba\",\"green300\":\"#5ce79f\",\"green400\":\"#33cf8e\",\"green500\":\"#00af77\",\"green600\":\"#009675\",\"green700\":\"#007d6e\",\"green800\":\"#006562\",\"green900\":\"#004d53\",\"green1000\":\"#003f44\",\"purple100\":\"#e7e7f5\",\"purple200\":\"#d0d0eb\",\"purple300\":\"#a2a2c3\",\"purple400\":\"#6b6b88\",\"purple500\":\"#292939\",\"purple600\":\"#1d1d31\",\"purple700\":\"#141429\",\"purple800\":\"#0d0d21\",\"purple900\":\"#07071b\",\"purple1000\":\"#040411\"};","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BonusCard.vue?vue&type=style&index=0&id=3176478c&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./more_vert_FILL0_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=07de4529&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MyGames.vue?vue&type=style&index=0&id=5b7dd155&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./add_to_home_screen_FILL1_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=4c1ee3ee&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TapBarMoveWarning.vue?vue&type=style&index=0&id=b0939d12&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubscribeTutoPopup.vue?vue&type=style&index=0&id=48bcc126&lang=scss&scoped=true&\"","export enum ErrorCode {\n /**\n * The current browser is not compatible with CareGame.\n */\n BROWSER_INCOMPATIBLE,\n\n /**\n * The connection to the CareGame service has been lost.\n */\n CONNECTION_LOST,\n\n /**\n * The connection to the CareGame service took to long to succeed and has been aborted.\n */\n CONNECTION_TIMEOUT,\n\n /**\n * No capacity was found to serve this user.\n */\n NO_CAPACITY_AVAILABLE,\n\n /**\n * The current browser requires the page to be running as a PWA but the page is not running as such.\n */\n PWA_REQUIRED,\n\n /**\n * The previous save of the user is still being saved.\n */\n SAVE_PENDING,\n\n /**\n * The previous save of the user could not be retrieved.\n */\n SAVE_RESTORE_ERROR,\n\n /**\n * The CareGame service is not available.\n */\n SERVICE_NOT_AVAILABLE,\n\n /**\n * The speedtest showed that the user doesn't have a good enough connection to play.\n */\n SPEEDTEST_FAILED,\n\n /**\n * The speedtest showed that the user doesn't have a good enough connection to play on bigscreen.\n */\n BS_SPEEDTEST_FAILED,\n\n /**\n * The user has not touched the screen for a while and has been set as AFK.\n */\n USER_AFK,\n\n /**\n * The user is already playing on another device.\n */\n USER_ALREADY_PAIRED,\n\n /**\n * The user is trying to play a game they don't have access to.\n */\n USER_NOT_AUTHORIZED,\n\n /**\n * The user has switch app and has been set as AFK.\n */\n USER_UNFOCUS_AFK,\n\n /**\n * A new session has been launched with the same account.\n */\n USER_NEW_SESSION,\n\n /**\n * The user was in the queue for too long.\n */\n QUEUE_TIMEOUT,\n\n /**\n * The bigscreen peer disconnected\n */\n BS_DISCONNECTED,\n\n /**\n * Trial ended\n */\n END_TRIAL,\n}\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharePopup.vue?vue&type=style&index=0&id=31bd09a6&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./play_arrow_FILL1_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=3ba5c15b&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardL.vue?vue&type=style&index=0&id=d5737d46&lang=scss&scoped=true&\"","import { init, ApmBase } from \"@elastic/apm-rum\";\n\nfunction uuidv4(): string {\n // Reference: https://stackoverflow.com/a/61011303/2780319\n return \"10000000-1000-4000-8000-100000000000\".replace(/[018]/g, (s) => {\n const c = Number.parseInt(s, 10);\n return (c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))).toString(16);\n });\n}\n\nlet apm: ApmBase | undefined = undefined;\n\nconst pageName = \"Lobby-page-load\";\nconst SESSION_ID_KEY = \"sessionID\";\nexport const LAST_SEEN_DATE_KEY = \"lastSeen\";\n\nexport async function initApm(\n apmServerUrl: string,\n sessionExpirationDuration: number,\n distributedTracingOrigins: (string | RegExp)[] | undefined,\n active = true\n): Promise {\n apm = init({\n // Set required service name (allowed characters: a-z, A-Z, 0-9, -, _, and space)\n serviceName: \"CareGame-SDK\",\n // Set custom APM Server URL (default: http://localhost:8200)\n serverUrl: apmServerUrl,\n // environment: \"toto\",\n active: active,\n breakdownMetrics: true,\n distributedTracingOrigins: distributedTracingOrigins,\n propagateTracestate: true,\n logLevel: \"trace\",\n ignoreTransactions: [`*/send_stat/gamer`],\n disableInstrumentations: [\"fetch\", \"xmlhttprequest\", \"eventtarget\"],\n flushInterval: 10,\n pageLoadTransactionName: pageName,\n });\n let session_id: string;\n const storedSessionID = localStorage.getItem(SESSION_ID_KEY);\n const lastSeen = localStorage.getItem(LAST_SEEN_DATE_KEY);\n if (\n !storedSessionID ||\n (lastSeen && (new Date().getTime() - new Date(lastSeen).getTime()) / 1000 > sessionExpirationDuration)\n )\n session_id = uuidv4();\n else session_id = storedSessionID;\n apm.addLabels({ session_id });\n apm.addLabels({\n isPwa:\n (window.navigator as any).standalone ||\n window.matchMedia(\"(display-mode: standalone)\").matches ||\n window.matchMedia(\"(display-mode: fullscreen)\").matches,\n });\n // setSessionID(session_id);\n localStorage.setItem(SESSION_ID_KEY, session_id);\n localStorage.setItem(LAST_SEEN_DATE_KEY, new Date().toISOString());\n return apm;\n}\n\nexport default apm;\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardM.vue?vue&type=style&index=0&id=003f2973&lang=scss&scoped=true&\"","// See https://stackoverflow.com/a/27747377/2780319\n// dec2hex :: Integer -> String\n// i.e. 0-255 -> '00'-'ff'\n/**\n * Convert a decimal number to a hexadecimal string.\n * @param dec The decimal number to convert.\n * @returns The hexadecimal string.\n */\nfunction dec2hex(dec: number): string {\n return dec.toString(16).padStart(2, \"0\");\n}\n\n/**\n * Generate a random id. See https://stackoverflow.com/a/27747377/2780319\n * @param len The length of the id to generate. Defaults to 40.\n * @returns The generated id.\n */\nexport function generateId(len = 40): string {\n const arr = new Uint8Array(len / 2);\n window.crypto.getRandomValues(arr);\n return Array.from(arr, dec2hex).join(\"\");\n}\n\n/**\n * Generate a random UUID v4.\n * Reference: https://stackoverflow.com/a/61011303/2780319\n * @returns The generated UUID v4.\n */\nexport function uuidv4(): string {\n return \"10000000-1000-4000-8000-100000000000\".replace(/[018]/g, (s) => {\n const c = Number.parseInt(s, 10);\n return (c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))).toString(16);\n });\n}\n\n/**\n * Wait for the given number of milliseconds. It's setTimeout wrapped in a promise.\n * @param ms The number of milliseconds to wait.\n * @returns A promise that resolves after the given number of milliseconds.\n */\nexport function delay(ms: number): Promise {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\n/**\n * Assert that the given value is never.\n * @param x The value to assert.\n * @throws If the value is not never.\n */\nexport function assertNever(x: never): never {\n throw new Error(`Unexpected object: ${x}`);\n}\n\n/**\n * Check if the given string is a valid Android Application ID.\n * @param id The Android Application ID to test.\n * @returns True if the given string is a valid Android Application ID, false otherwise.\n */\nexport function isValidAndroidAppID(id: string): boolean {\n // Should matches Android Application ID following these rules:\n // • It must have at least two segments (one or more dots).\n // • Each segment must start with a letter.\n // • All characters must be alphanumeric or an underscore [a-zA-Z0-9_].\n return /^[a-zA-Z][a-zA-Z0-9_]*(\\.[a-zA-Z][a-zA-Z0-9_]*)+$/.test(id);\n}\n\n/**\n * Check if the given string is a valid HTTP URL.\n * @param string The string to test.\n * @returns True if the given string is a valid HTTP URL, false otherwise.\n */\nexport function isValidHttpUrl(string: string): boolean {\n let url;\n\n try {\n url = new URL(string);\n } catch (_) {\n return false;\n }\n\n return url.protocol === \"http:\" || url.protocol === \"https:\";\n}\n\n/**\n * Check if we are running in a web app / pwa.\n * @returns True if the current browser is a web app / pwa, false otherwise.\n */\nexport function isWebApp(): boolean {\n return (\n (window.navigator as any).standalone == true ||\n window.matchMedia(\"(display-mode: standalone)\").matches ||\n window.matchMedia(\"(display-mode: fullscreen)\").matches\n );\n}\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ios_share_FILL0_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=5eb0eae8&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardShowtime.vue?vue&type=style&index=0&id=78f79f02&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./visibility_FILL1_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=d8fa4484&lang=scss&scoped=true&\"","import { UAParser } from \"ua-parser-js\";\n\nimport Logger from \"../Logger\";\n\nconst parser = new UAParser();\n\nexport enum MobileOS {\n ANDROID,\n IOS,\n OTHER,\n}\n\nexport enum BrowserType {\n CHROME,\n CHROME_WEBVIEW,\n EDGE,\n FACEBOOK,\n FIREFOX,\n OPERA,\n SAFARI,\n SAMSUNG,\n OTHER,\n}\n\nexport enum OrientationMode {\n PORTRAIT,\n LANDSCAPE,\n}\n\nexport function isMobile(): boolean {\n return (\n parser.getDevice().type === \"mobile\" ||\n parser.getDevice().type === \"tablet\" ||\n parser.getDevice().type === \"embedded\"\n );\n}\n\nexport function getMobileOS(): MobileOS {\n if (parser.getOS().name === \"Android\") return MobileOS.ANDROID;\n if (parser.getOS().name === \"iOS\") return MobileOS.IOS;\n return MobileOS.OTHER;\n}\n\nexport function getBrowserType(): BrowserType {\n Logger.log(\"BROWSER\", parser.getBrowser().name);\n if (parser.getBrowser().name === \"Chrome\") return BrowserType.CHROME;\n if (parser.getBrowser().name === \"Chrome WebView\") return BrowserType.CHROME_WEBVIEW;\n if (parser.getBrowser().name === \"Mobile Safari\") return BrowserType.SAFARI;\n if (parser.getBrowser().name === \"Samsung Browser\") return BrowserType.SAMSUNG;\n if (parser.getBrowser().name === \"Opera\") return BrowserType.OPERA;\n if (parser.getBrowser().name === \"Firefox\") return BrowserType.FIREFOX;\n if (parser.getBrowser().name === \"Edge\") return BrowserType.EDGE;\n if (parser.getBrowser().name === \"Facebook\") return BrowserType.FACEBOOK;\n return BrowserType.OTHER;\n}\n\nexport function getMobileOrientation(): OrientationMode {\n return window.innerHeight > window.innerWidth ? OrientationMode.PORTRAIT : OrientationMode.LANDSCAPE;\n}\n\nexport function isFacebookApp(): boolean {\n return parser.getUA().indexOf(\"FBAN\") > -1 || parser.getUA().indexOf(\"FBAV\") > -1;\n}\n\nexport function isWebApp(): boolean {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (\n (window.navigator as any).standalone ||\n window.matchMedia(\"(display-mode: standalone)\").matches ||\n window.matchMedia(\"(display-mode: fullscreen)\").matches\n );\n}\n","class Logger {\n private enabled: boolean;\n private prefix = \"CG-SDK\";\n\n public setPrefix(prefix?: string): void {\n this.prefix = prefix || \"\";\n }\n\n public setEnabled(enabled: boolean): void {\n this.enabled = enabled;\n }\n\n private modifyLog(args: unknown[]): unknown[] {\n const newArgs = Array.prototype.slice.call(args);\n\n if (this.prefix) newArgs.unshift(`[${this.prefix}] -`);\n\n return newArgs;\n }\n\n public log(...args: unknown[]): void {\n if (this.enabled) console.log(...this.modifyLog(args));\n }\n\n public info(...args: unknown[]): void {\n if (this.enabled) console.info(...this.modifyLog(args));\n }\n\n public debug(...args: unknown[]): void {\n if (this.enabled) console.debug(...this.modifyLog(args));\n }\n\n public warn(...args: unknown[]): void {\n if (this.enabled) console.warn(...this.modifyLog(args));\n }\n\n public error(...args: unknown[]): void {\n if (this.enabled) console.error(...this.modifyLog(args));\n }\n}\n\nexport default new Logger();\n","export enum RTCStatsType {\n CANDIDATE_PAIR = \"candidate-pair\",\n LOCAL_CANDIDATE = \"local-candidate\",\n REMOTE_CANDIDATE = \"remote-candidate\",\n INBOUND_RTP = \"inbound-rtp\",\n REMOTE_OUTBOUND_RTP = \"remote-outbound-rtp\",\n DATA_CHANNEL = \"data-channel\",\n}\n\nexport interface RTCStats {\n id: string;\n timestamp: number;\n type: RTCStatsType;\n}\n\nexport interface RTCIceCandidatePairStatsData extends RTCStats {\n bytesReceived: number;\n bytesSent: number;\n lastPacketReceivedTimestamp: number;\n lastPacketSentTimestamp: number;\n localCandidateId: string;\n nominated: boolean;\n priority: number;\n readable: boolean;\n remoteCandidateId: string;\n selected: boolean;\n state: RTCStatsIceCandidatePairState;\n timestamp: number;\n transportId: string;\n type: RTCStatsType.CANDIDATE_PAIR;\n writable: boolean;\n}\n\nexport interface RTCDataChannelStats extends RTCStats {\n bytesReceived: number;\n bytesSent: number;\n dataChannelIdentifier: number;\n label: string;\n messagesReceived: number;\n messagesSent: number;\n protocol: string;\n state: RTCDataChannelState;\n type: RTCStatsType.DATA_CHANNEL;\n}\n\nexport interface RTCIceCandidatePairStats extends RTCIceCandidatePairStatsData {\n localCandidateId: string;\n remoteCandidateId: string;\n transportId: string;\n}\n\nexport interface RTCIceCandidateStatsData extends RTCStats {\n address: string;\n candidateType: RTCIceCandidateType;\n port: number;\n priority: number;\n protocol: RTCIceProtocol;\n type: RTCStatsType.LOCAL_CANDIDATE | RTCStatsType.REMOTE_CANDIDATE;\n}\n\nexport interface RTCIceCandidateLocalStats extends RTCIceCandidateStatsData {\n type: RTCStatsType.LOCAL_CANDIDATE;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface RTCIceCandidateRemoteStats extends RTCIceCandidateStatsData {\n type: RTCStatsType.REMOTE_CANDIDATE;\n}\n\nexport interface RTCInboundRTPStreamStats extends RTCStats {\n bytesReceived: number;\n jitter: number;\n kind: \"audio\" | \"video\";\n mediaType: \"audio\" | \"video\";\n nackCount: number;\n packetsLost: number;\n packetsReceived: number;\n remoteId: string;\n ssrc: number;\n type: RTCStatsType.INBOUND_RTP;\n jitterBufferDelay: number;\n jitterBufferEmittedCount: number;\n}\n\nexport interface RTCInboundRTPAudioStreamStats extends RTCInboundRTPStreamStats {\n fecPacketsDiscarded: number;\n fecPacketsReceived: number;\n kind: \"audio\";\n mediaType: \"audio\";\n}\n\nexport interface RTCInboundRTPVideoStreamStats extends RTCInboundRTPStreamStats {\n bitrateMean: number;\n bitrateStdDev: number;\n discardedPackets: number;\n firCount: number;\n framerateMean: number;\n framerateStdDev: number;\n framesDecoded: number;\n kind: \"video\";\n mediaType: \"video\";\n pliCount: number;\n frameHeight: number;\n frameWidth: number;\n framesDropped: number;\n}\n\nexport interface RTCRemoteOutboundRTPStats extends RTCStats {\n bytesSent: number;\n kind: \"audio\" | \"video\";\n localId: string;\n mediaType: \"audio\" | \"video\";\n type: RTCStatsType.REMOTE_OUTBOUND_RTP;\n packetsSent: number;\n remoteTimestamp: number;\n ssrc: string;\n}\n\nexport interface RTCRemoteOutboundRTPVideoStats extends RTCRemoteOutboundRTPStats {\n kind: \"video\";\n mediaType: \"video\";\n}\n\nexport interface RTCRemoteOutboundRTPAudioStats extends RTCRemoteOutboundRTPStats {\n kind: \"audio\";\n mediaType: \"audio\";\n}\n","import { EventEmitter } from \"events\";\n\nimport * as WebRTCStatsParser from \"./WebRTCStatsParser\";\nimport * as DefaultRTCStatsTypes from \"./DefaultRTCStatsTypes\";\n\nexport interface DefaultRawData {\n certificates: DefaultRTCStatsTypes.RTCCertificateStats[];\n codecs: DefaultRTCStatsTypes.RTCCodecStats[];\n dataChannel: DefaultRTCStatsTypes.RTCDataChannelStats;\n iceCandidatePairs: DefaultRTCStatsTypes.RTCIceCandidatePairStats[];\n iceCandidates: {\n locals: DefaultRTCStatsTypes.RTCIceCandidateLocalStats[];\n remotes: DefaultRTCStatsTypes.RTCIceCandidateRemoteStats[];\n };\n inboundStreams: DefaultRTCStatsTypes.RTCInboundRTPStreamStats[];\n peerConnection: DefaultRTCStatsTypes.RTCPeerConnectionStats;\n transport: DefaultRTCStatsTypes.RTCTransportStats;\n}\n\nexport class DefaultWebRTCStatsParser extends EventEmitter implements WebRTCStatsParser.IStatsParser {\n private readonly historyLimit = 100;\n private readonly history: WebRTCStatsParser.ParsedWebRTCStats[];\n\n constructor() {\n super();\n this.history = [];\n }\n\n private parseRawData(rawStats: DefaultRTCStatsTypes.RTCStats[]): DefaultRawData {\n const iceCandidatePairs: DefaultRTCStatsTypes.RTCIceCandidatePairStats[] = [];\n const certificates: DefaultRTCStatsTypes.RTCCertificateStats[] = [];\n const codecs: DefaultRTCStatsTypes.RTCCodecStats[] = [];\n let dataChannel!: DefaultRTCStatsTypes.RTCDataChannelStats;\n const inboundStreams: DefaultRTCStatsTypes.RTCInboundRTPStreamStats[] = [];\n let peerConnection!: DefaultRTCStatsTypes.RTCPeerConnectionStats;\n const localIceCandidates: DefaultRTCStatsTypes.RTCIceCandidateLocalStats[] = [];\n const remoteIceCandidates: DefaultRTCStatsTypes.RTCIceCandidateRemoteStats[] = [];\n let transport!: DefaultRTCStatsTypes.RTCTransportStats;\n rawStats.forEach((s) => {\n switch (s.type) {\n case \"candidate-pair\":\n iceCandidatePairs?.push(s as DefaultRTCStatsTypes.RTCIceCandidatePairStats);\n break;\n case \"certificate\":\n certificates?.push(s as DefaultRTCStatsTypes.RTCCertificateStats);\n break;\n case \"codec\":\n codecs?.push(s as DefaultRTCStatsTypes.RTCCodecStats);\n break;\n case \"data-channel\":\n dataChannel = s as DefaultRTCStatsTypes.RTCDataChannelStats;\n break;\n case \"inbound-rtp\":\n inboundStreams?.push(s as DefaultRTCStatsTypes.RTCInboundRTPStreamStats);\n break;\n case \"peer-connection\":\n peerConnection = s as DefaultRTCStatsTypes.RTCPeerConnectionStats;\n break;\n case \"local-candidate\":\n localIceCandidates?.push(s as DefaultRTCStatsTypes.RTCIceCandidateLocalStats);\n break;\n case \"remote-candidate\":\n remoteIceCandidates?.push(s as DefaultRTCStatsTypes.RTCIceCandidateRemoteStats);\n break;\n case \"transport\":\n transport = s as DefaultRTCStatsTypes.RTCTransportStats;\n break;\n case \"remote-outbound-rtp\":\n break;\n default:\n // assertNever(s.type);\n console.warn(`Unknown stat: ${s.type}`);\n }\n });\n return {\n certificates,\n codecs,\n dataChannel,\n iceCandidatePairs,\n iceCandidates: {\n locals: localIceCandidates,\n remotes: remoteIceCandidates,\n },\n inboundStreams,\n peerConnection,\n transport,\n };\n }\n\n private FindByAttribute(\n stats: DefaultRTCStatsTypes.RTCStats[],\n attribute: string,\n value: unknown\n ): DefaultRTCStatsTypes.RTCStats | undefined {\n for (const s of stats) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if ((s as any)[attribute] === value) return s;\n }\n return undefined;\n }\n\n private parseInboundStream(\n rawData: DefaultRawData,\n kind: \"audio\" | \"video\"\n ): WebRTCStatsParser.InboundRTPAudioStream | WebRTCStatsParser.InboundRTPVideoStream {\n let inboundStreamData = this.FindByAttribute(rawData.inboundStreams, \"mediaType\", kind) as\n | DefaultRTCStatsTypes.RTCInboundRTPAudioStreamStats\n | DefaultRTCStatsTypes.RTCInboundRTPVideoStreamStats;\n if (!inboundStreamData)\n inboundStreamData = this.FindByAttribute(rawData.inboundStreams, \"kind\", kind) as\n | DefaultRTCStatsTypes.RTCInboundRTPAudioStreamStats\n | DefaultRTCStatsTypes.RTCInboundRTPVideoStreamStats;\n\n const transportData = this.FindByAttribute(\n [rawData.transport],\n \"id\",\n inboundStreamData.transportId\n ) as DefaultRTCStatsTypes.RTCTransportStats;\n const newLocal = this.FindByAttribute(\n rawData.iceCandidatePairs,\n \"id\",\n transportData.selectedCandidatePairId\n ) as DefaultRTCStatsTypes.RTCIceCandidatePairStats;\n\n let previousStat;\n if (kind === \"audio\" && this.history[0].inboundRTPAudioStream) {\n previousStat = this.history[0].inboundRTPAudioStream;\n } else if (kind === \"video\" && this.history[0].inboundRTPVideoStream) {\n previousStat = this.history[0].inboundRTPVideoStream;\n }\n\n let bytesReceivedPerSeconds = NaN;\n let effectiveFramesPerSecond = NaN;\n if (previousStat) {\n bytesReceivedPerSeconds =\n (inboundStreamData.bytesReceived - previousStat.bytesReceived) /\n ((inboundStreamData.timestamp - previousStat.timestamp) / 1000);\n if (kind == \"video\")\n effectiveFramesPerSecond =\n ((inboundStreamData as DefaultRTCStatsTypes.RTCInboundRTPVideoStreamStats).framesDecoded -\n (previousStat as WebRTCStatsParser.InboundRTPVideoStream).framesDecoded) /\n ((inboundStreamData.timestamp - previousStat.timestamp) / 1000);\n }\n\n const transport: WebRTCStatsParser.Transport = {\n ...transportData,\n localCertificate: this.FindByAttribute(\n rawData.certificates,\n \"id\",\n transportData.localCertificateId\n ) as DefaultRTCStatsTypes.RTCCertificateStats,\n remoteCertificate: this.FindByAttribute(\n rawData.certificates,\n \"id\",\n transportData.remoteCertificateId\n ) as DefaultRTCStatsTypes.RTCCertificateStats,\n selectedCandidatePair: {\n ...newLocal,\n localCandidate: this.FindByAttribute(\n rawData.iceCandidates.locals,\n \"id\",\n newLocal.localCandidateId\n ) as DefaultRTCStatsTypes.RTCIceCandidateLocalStats,\n remoteCandidate: this.FindByAttribute(\n rawData.iceCandidates.remotes,\n \"id\",\n newLocal.remoteCandidateId\n ) as DefaultRTCStatsTypes.RTCIceCandidateRemoteStats,\n bytesReceivedPerSeconds: bytesReceivedPerSeconds,\n },\n };\n return kind == \"video\"\n ? ({\n ...inboundStreamData,\n effectiveFramesPerSecond,\n codec: this.FindByAttribute(\n rawData.codecs,\n \"id\",\n inboundStreamData.codecId\n ) as DefaultRTCStatsTypes.RTCCodecStats,\n transport: transport,\n } as WebRTCStatsParser.InboundRTPVideoStream)\n : ({\n ...inboundStreamData,\n codec: this.FindByAttribute(\n rawData.codecs,\n \"id\",\n inboundStreamData.codecId\n ) as DefaultRTCStatsTypes.RTCCodecStats,\n transport: transport,\n } as WebRTCStatsParser.InboundRTPAudioStream);\n }\n\n public parse(rawStats: DefaultRTCStatsTypes.RTCStats[]): void {\n if (rawStats.length === 0) return;\n\n const rawData = this.parseRawData(rawStats);\n\n const parsedData: WebRTCStatsParser.ParsedWebRTCStats = {\n timestamp: rawStats[0].timestamp,\n date: new Date(rawStats[0].timestamp),\n dataChannel: rawData.dataChannel,\n rawData,\n };\n try {\n parsedData.inboundRTPVideoStream = this.parseInboundStream(\n rawData,\n \"video\"\n ) as WebRTCStatsParser.InboundRTPVideoStream;\n } catch (_) {\n parsedData.inboundRTPVideoStream = undefined;\n }\n try {\n parsedData.inboundRTPAudioStream = this.parseInboundStream(\n rawData,\n \"audio\"\n ) as WebRTCStatsParser.InboundRTPAudioStream;\n } catch (_) {\n parsedData.inboundRTPAudioStream = undefined;\n }\n this.history.unshift(parsedData);\n if (this.history.length > this.historyLimit) this.history.pop();\n this.emit(\"stats\", this.parsedStats);\n }\n\n public get parsedStats(): WebRTCStatsParser.ParsedWebRTCStats {\n return this.history[0];\n }\n}\n","import { EventEmitter } from \"events\";\n\nimport * as WebRTCStatsParser from \"./WebRTCStatsParser\";\nimport * as FirefoxRTCStatsTypes from \"./FirefoxRTCStatsTypes\";\nimport { RTCCodecStats } from \"./DefaultRTCStatsTypes\";\nimport { assertNever } from \"../../../../common/utils/utils\";\n\nexport interface FirefoxRawData {\n dataChannel: FirefoxRTCStatsTypes.RTCDataChannelStats;\n iceCandidatePairs: FirefoxRTCStatsTypes.RTCIceCandidatePairStats[];\n iceCandidates: {\n locals: FirefoxRTCStatsTypes.RTCIceCandidateLocalStats[];\n remotes: FirefoxRTCStatsTypes.RTCIceCandidateRemoteStats[];\n };\n inboundStreams: FirefoxRTCStatsTypes.RTCInboundRTPStreamStats[];\n remoteOutboundStreams: FirefoxRTCStatsTypes.RTCRemoteOutboundRTPStats[];\n}\n\nexport class FirefoxWebRTCStatsParser extends EventEmitter implements WebRTCStatsParser.IStatsParser {\n private readonly history: WebRTCStatsParser.ParsedWebRTCStats[];\n private readonly ping: number;\n private readonly historyLimit = 100;\n\n constructor(ping: number) {\n super();\n this.ping = ping;\n this.history = [];\n }\n\n private parseRawData(rawStats: FirefoxRTCStatsTypes.RTCStats[]): FirefoxRawData {\n const iceCandidatePairs: FirefoxRTCStatsTypes.RTCIceCandidatePairStats[] = [];\n const inboundStreams: FirefoxRTCStatsTypes.RTCInboundRTPStreamStats[] = [];\n const remoteOutboundStreams: FirefoxRTCStatsTypes.RTCRemoteOutboundRTPStats[] = [];\n const localIceCandidates: FirefoxRTCStatsTypes.RTCIceCandidateLocalStats[] = [];\n const remoteIceCandidates: FirefoxRTCStatsTypes.RTCIceCandidateRemoteStats[] = [];\n let dataChannel!: FirefoxRTCStatsTypes.RTCDataChannelStats;\n rawStats.forEach((s) => {\n switch (s.type) {\n case FirefoxRTCStatsTypes.RTCStatsType.CANDIDATE_PAIR:\n iceCandidatePairs?.push(s as FirefoxRTCStatsTypes.RTCIceCandidatePairStats);\n break;\n case FirefoxRTCStatsTypes.RTCStatsType.DATA_CHANNEL:\n dataChannel = s as FirefoxRTCStatsTypes.RTCDataChannelStats;\n break;\n case FirefoxRTCStatsTypes.RTCStatsType.INBOUND_RTP:\n inboundStreams?.push(s as FirefoxRTCStatsTypes.RTCInboundRTPStreamStats);\n break;\n case FirefoxRTCStatsTypes.RTCStatsType.LOCAL_CANDIDATE:\n localIceCandidates?.push(s as FirefoxRTCStatsTypes.RTCIceCandidateLocalStats);\n break;\n case FirefoxRTCStatsTypes.RTCStatsType.REMOTE_CANDIDATE:\n remoteIceCandidates?.push(s as FirefoxRTCStatsTypes.RTCIceCandidateRemoteStats);\n break;\n case FirefoxRTCStatsTypes.RTCStatsType.REMOTE_OUTBOUND_RTP:\n remoteOutboundStreams?.push(s as FirefoxRTCStatsTypes.RTCRemoteOutboundRTPStats);\n break;\n default:\n assertNever(s.type);\n }\n });\n return {\n dataChannel,\n iceCandidatePairs,\n iceCandidates: {\n locals: localIceCandidates,\n remotes: remoteIceCandidates,\n },\n inboundStreams,\n remoteOutboundStreams,\n };\n }\n\n /**\n * Create a fake codec stat element with data copied from existing stats on Kibana\n */\n private makeDummyCodec(rawData: FirefoxRawData, kind: \"audio\" | \"video\"): RTCCodecStats {\n if (kind === \"video\")\n return {\n id: \"dummyVideoID\",\n timestamp: rawData.inboundStreams[0].timestamp,\n type: \"codec\",\n payloadType: 96,\n mimeType: \"unknown\",\n clockRate: 90000,\n sdpFmtpLine: \"level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e015\",\n };\n else\n return {\n id: \"dummyAudioID\",\n timestamp: rawData.inboundStreams[0].timestamp,\n type: \"codec\",\n payloadType: 110,\n mimeType: \"audio/OPUS\",\n clockRate: 48000,\n sdpFmtpLine: \"minptime=10;useinbandfec=1\",\n };\n }\n\n private createTransport(rawData: FirefoxRawData, kind: \"audio\" | \"video\"): WebRTCStatsParser.Transport {\n const candidatePair = rawData.iceCandidatePairs.find((pair) => pair.selected);\n let previousCandidatePair;\n\n if (kind === \"audio\" && this.history[0].inboundRTPAudioStream) {\n previousCandidatePair = this.history[0].inboundRTPAudioStream.transport.selectedCandidatePair;\n } else if (kind === \"video\" && this.history[0].inboundRTPVideoStream) {\n previousCandidatePair = this.history[0].inboundRTPVideoStream.transport.selectedCandidatePair;\n }\n const localCandidate = candidatePair\n ? rawData.iceCandidates.locals.find((candidate) => candidate.id === candidatePair.localCandidateId)\n : undefined;\n const remoteCandidate = candidatePair\n ? rawData.iceCandidates.remotes.find((candidate) => candidate.id === candidatePair.remoteCandidateId)\n : undefined;\n const transport: WebRTCStatsParser.Transport = {\n id: \"dummyTransportID\",\n timestamp: rawData.inboundStreams[0].timestamp,\n bytesReceived: 0,\n bytesSent: 0,\n dtlsCipher: \"dummyCiper\",\n dtlsState: \"dummyState\",\n selectedCandidatePairChanges: 0,\n srtpCipher: \"dummyCiper\",\n tlsVersion: \"dummyVersion\",\n type: \"transport\",\n localCertificate: {\n id: \"dummyCert\",\n timestamp: rawData.inboundStreams[0].timestamp,\n type: \"certificate\",\n base64Certificate: \"dummy64Cert\",\n fingerprint: \"dummyFingerPrint\",\n fingerprintAlgorithm: \"dummyAlgo\",\n },\n remoteCertificate: {\n id: \"dummyCert\",\n timestamp: rawData.inboundStreams[0].timestamp,\n type: \"certificate\",\n base64Certificate: \"dummy64Cert\",\n fingerprint: \"dummyFingerPrint\",\n fingerprintAlgorithm: \"dummyAlgo\",\n },\n selectedCandidatePair: {\n id: \"dummyPair\",\n timestamp: rawData.inboundStreams[0].timestamp,\n availableIncomingBitrate: (rawData.inboundStreams[0] as FirefoxRTCStatsTypes.RTCInboundRTPVideoStreamStats)\n .bitrateMean,\n availableOutgoingBitrate: 0,\n bytesReceived: 0,\n bytesSent: 0,\n consentRequestsSent: 0,\n currentRoundTripTime: this.ping / 1000,\n nominated: true,\n priority: 0,\n requestsReceived: 0,\n requestsSent: 0,\n responsesReceived: 0,\n responsesSent: 0,\n state: \"failed\",\n totalRoundTripTime: 0,\n type: FirefoxRTCStatsTypes.RTCStatsType.CANDIDATE_PAIR,\n writable: true,\n bytesReceivedPerSeconds: 0,\n localCandidate: {\n id: \"dummyLocalCandidate\",\n timestamp: rawData.inboundStreams[0].timestamp,\n candidateType: \"host\",\n deleted: false,\n ip: \"dummyIP\",\n isRemote: false,\n port: 0,\n priority: 0,\n protocol: \"udp\",\n networkType: \"unknown\",\n type: FirefoxRTCStatsTypes.RTCStatsType.LOCAL_CANDIDATE,\n transportId: \"dummyTransportID\",\n },\n remoteCandidate: {\n id: \"dummyRemoteCandidate\",\n timestamp: rawData.inboundStreams[0].timestamp,\n candidateType: \"host\",\n deleted: false,\n ip: \"dummyIP\",\n isRemote: true,\n port: 0,\n priority: 0,\n protocol: \"udp\",\n type: FirefoxRTCStatsTypes.RTCStatsType.REMOTE_CANDIDATE,\n transportId: \"dummyTransportID\",\n },\n },\n };\n if (candidatePair) {\n if (previousCandidatePair) {\n transport.selectedCandidatePair.bytesReceivedPerSeconds =\n (candidatePair.bytesReceived - previousCandidatePair.bytesReceived) /\n ((candidatePair.timestamp - previousCandidatePair.timestamp) / 1000);\n }\n transport.bytesReceived = candidatePair.bytesReceived;\n transport.bytesSent = candidatePair.bytesSent;\n transport.selectedCandidatePair.id = candidatePair.id;\n transport.selectedCandidatePair.timestamp = candidatePair.timestamp;\n transport.selectedCandidatePair.bytesReceived = candidatePair.bytesReceived;\n transport.selectedCandidatePair.bytesSent = candidatePair.bytesSent;\n transport.selectedCandidatePair.priority = candidatePair.priority;\n transport.selectedCandidatePair.state = candidatePair.state;\n transport.selectedCandidatePair.writable = candidatePair.writable;\n }\n if (localCandidate) {\n transport.selectedCandidatePair.localCandidate.id = localCandidate.id;\n transport.selectedCandidatePair.localCandidate.timestamp = localCandidate.timestamp;\n transport.selectedCandidatePair.localCandidate.candidateType = localCandidate.candidateType;\n transport.selectedCandidatePair.localCandidate.ip = localCandidate.address;\n transport.selectedCandidatePair.localCandidate.port = localCandidate.port;\n transport.selectedCandidatePair.localCandidate.priority = localCandidate.priority;\n transport.selectedCandidatePair.localCandidate.protocol = localCandidate.protocol;\n }\n if (remoteCandidate) {\n transport.selectedCandidatePair.remoteCandidate.id = remoteCandidate.id;\n transport.selectedCandidatePair.remoteCandidate.timestamp = remoteCandidate.timestamp;\n transport.selectedCandidatePair.remoteCandidate.candidateType = remoteCandidate.candidateType;\n transport.selectedCandidatePair.remoteCandidate.ip = remoteCandidate.address;\n transport.selectedCandidatePair.remoteCandidate.port = remoteCandidate.port;\n transport.selectedCandidatePair.remoteCandidate.priority = remoteCandidate.priority;\n transport.selectedCandidatePair.remoteCandidate.protocol = remoteCandidate.protocol;\n }\n\n return transport;\n }\n\n private createInboundStream(\n rawData: FirefoxRawData,\n kind: \"audio\" | \"video\",\n codec: RTCCodecStats,\n transport: WebRTCStatsParser.Transport\n ): WebRTCStatsParser.InboundRTPVideoStream | WebRTCStatsParser.InboundRTPAudioStream {\n if (kind === \"video\") {\n const inboundRTPVideoStream = rawData.inboundStreams[0] as FirefoxRTCStatsTypes.RTCInboundRTPVideoStreamStats;\n const prev = rawData.inboundStreams[1] as FirefoxRTCStatsTypes.RTCInboundRTPVideoStreamStats;\n let effectiveFramesPerSecond = 0;\n if (prev) {\n effectiveFramesPerSecond = (inboundRTPVideoStream.framesDecoded - prev.framesDecoded) / ((inboundRTPVideoStream.timestamp - prev.timestamp) / 1000);\n }\n return {\n id: inboundRTPVideoStream.id,\n timestamp: inboundRTPVideoStream.timestamp,\n type: FirefoxRTCStatsTypes.RTCStatsType.INBOUND_RTP,\n bytesReceived: inboundRTPVideoStream.bytesReceived,\n estimatedPlayoutTimestamp: 0,\n headerBytesReceived: 0,\n isRemote: true,\n kind: \"video\",\n lastPacketReceivedTimestamp: 0,\n mediaType: \"video\",\n packetsLost: inboundRTPVideoStream.packetsLost,\n packetsReceived: inboundRTPVideoStream.packetsReceived,\n ssrc: inboundRTPVideoStream.ssrc,\n decoderImplementation: \"\",\n firCount: inboundRTPVideoStream.firCount,\n framesDecoded: inboundRTPVideoStream.framerateMean,\n effectiveFramesPerSecond,\n keyFramesDecoded: 0,\n nackCount: inboundRTPVideoStream.nackCount,\n pliCount: inboundRTPVideoStream.pliCount,\n totalDecodeTime: 1,\n totalInterFrameDelay: 1,\n totalSquaredInterFrameDelay: 0,\n codec,\n transport,\n frameHeight: inboundRTPVideoStream.frameHeight,\n frameWidth: inboundRTPVideoStream.frameWidth,\n framesDropped: inboundRTPVideoStream.framesDropped,\n jitterBufferDelay: inboundRTPVideoStream.jitterBufferDelay,\n jitterBufferEmittedCount: inboundRTPVideoStream.jitterBufferEmittedCount,\n };\n } else {\n const inboundStream = rawData.inboundStreams[0] as FirefoxRTCStatsTypes.RTCInboundRTPAudioStreamStats;\n return {\n id: inboundStream.id,\n timestamp: inboundStream.timestamp,\n fecPacketsDiscarded: inboundStream.fecPacketsDiscarded,\n fecPacketsReceived: inboundStream.fecPacketsReceived,\n jitter: inboundStream.jitter,\n kind: \"audio\",\n mediaType: \"audio\",\n bytesReceived: inboundStream.bytesReceived,\n estimatedPlayoutTimestamp: 0,\n headerBytesReceived: 0,\n isRemote: true,\n lastPacketReceivedTimestamp: 0,\n packetsLost: inboundStream.packetsLost,\n packetsReceived: inboundStream.packetsReceived,\n ssrc: inboundStream.ssrc,\n type: FirefoxRTCStatsTypes.RTCStatsType.INBOUND_RTP,\n codec,\n transport,\n jitterBufferDelay: inboundStream.jitterBufferDelay,\n jitterBufferEmittedCount: inboundStream.jitterBufferEmittedCount,\n };\n }\n }\n\n /**\n * This function transpose raw data from firefox to the format used by the default stat parser.\n */\n private parseInboundStream(\n rawData: FirefoxRawData,\n kind: \"audio\" | \"video\"\n ): WebRTCStatsParser.InboundRTPAudioStream | WebRTCStatsParser.InboundRTPVideoStream {\n const codec = this.makeDummyCodec(rawData, kind);\n const transport = this.createTransport(rawData, kind);\n return this.createInboundStream(rawData, kind, codec, transport);\n }\n\n public parse(rawStats: FirefoxRTCStatsTypes.RTCStats[]): void {\n if (rawStats.length === 0) return;\n\n const rawData = this.parseRawData(rawStats);\n\n const dataChannel = {\n ...rawData.dataChannel,\n datachannelid: rawData.dataChannel?.dataChannelIdentifier,\n };\n const parsedData: WebRTCStatsParser.ParsedWebRTCStats = {\n timestamp: rawStats[0].timestamp,\n date: new Date(rawStats[0].timestamp),\n dataChannel,\n rawData,\n };\n try {\n parsedData.inboundRTPVideoStream = this.parseInboundStream(\n rawData,\n \"video\"\n ) as WebRTCStatsParser.InboundRTPVideoStream;\n } catch (e) {\n console.debug(`Could not create InboundStream:`, e.stack);\n parsedData.inboundRTPVideoStream = undefined;\n }\n try {\n parsedData.inboundRTPAudioStream = this.parseInboundStream(\n rawData,\n \"audio\"\n ) as WebRTCStatsParser.InboundRTPAudioStream;\n } catch (e) {\n console.debug(`Could not create InboundStream:`, e.stack);\n parsedData.inboundRTPAudioStream = undefined;\n }\n this.history.unshift(parsedData);\n if (this.history.length > this.historyLimit) this.history.pop();\n this.emit(\"stats\", this.parsedStats);\n }\n\n public get parsedStats(): WebRTCStatsParser.ParsedWebRTCStats {\n return this.history[0];\n }\n}\n","import { BrowserType } from \"../old-client-stuff/MobileManager\";\nimport { EventEmitter } from \"events\";\n\nimport {\n RTCCertificateStats,\n RTCCodecStats,\n RTCDataChannelStats,\n RTCIceCandidateLocalStats,\n RTCIceCandidatePairStatsData,\n RTCIceCandidateRemoteStats,\n RTCInboundRTPAudioStreamStatsData,\n RTCInboundRTPVideoStreamStatsData,\n RTCStats,\n RTCTransportStatsData,\n} from \"./DefaultRTCStatsTypes\";\n\nimport { DefaultRawData, DefaultWebRTCStatsParser } from \"./DefaultWebRTCStatsParser\";\nimport { FirefoxRawData, FirefoxWebRTCStatsParser } from \"./FirefoxWebRTCStatsParser\";\n\ntype RawData = DefaultRawData | FirefoxRawData;\n\nexport interface IceCandidatePair extends RTCIceCandidatePairStatsData {\n localCandidate: RTCIceCandidateLocalStats;\n remoteCandidate: RTCIceCandidateRemoteStats;\n bytesReceivedPerSeconds: number;\n}\n\nexport interface Transport extends RTCTransportStatsData {\n localCertificate: RTCCertificateStats;\n remoteCertificate: RTCCertificateStats;\n selectedCandidatePair: IceCandidatePair;\n}\nexport interface InboundRTPAudioStream extends RTCInboundRTPAudioStreamStatsData {\n codec: RTCCodecStats;\n transport: Transport;\n}\n\nexport interface InboundRTPVideoStream extends RTCInboundRTPVideoStreamStatsData {\n codec: RTCCodecStats;\n transport: Transport;\n effectiveFramesPerSecond: number;\n quality?: string;\n encoderBitrate?: number;\n encoderSpecificBitrate?: number;\n}\n\nexport interface ParsedWebRTCStats {\n timestamp: number;\n date: Date;\n rawData?: RawData;\n inboundRTPAudioStream?: InboundRTPAudioStream;\n inboundRTPVideoStream?: InboundRTPVideoStream;\n dataChannel?: RTCDataChannelStats;\n events?: string[];\n}\n\nexport declare interface WebRTCStatsParser extends EventEmitter {\n on(event: \"rawStats\", listener: (rawStats: RTCStats[]) => void): this;\n on(event: \"stats\", listener: (stats: ParsedWebRTCStats) => void): this;\n}\n\nexport interface IStatsParser {\n on(event: \"stats\", listener: (stats: ParsedWebRTCStats) => void): this;\n\n parse(rawStats: RTCStats[]): void;\n}\n\nexport interface LightParsedWebRTCVideoStats {\n timestamp: DOMHighResTimeStamp;\n date: Date;\n dataChannel?: {\n bytesReceived: number;\n bytesSent: number;\n };\n inboundRTPVideoStream: {\n mediaType: string;\n jitter?: number;\n packetsLost: number;\n packetsReceived: number;\n bytesReceived: number;\n firCount: number;\n effectiveFramesPerSecond: number;\n frameHeight: number;\n frameWidth: number;\n framesDecoded: number;\n framesDropped: number;\n framesPerSecond?: number;\n framesReceived?: number;\n freezeCount?: number;\n jitterBufferDelay: number;\n jitterBufferEmittedCount: number;\n keyFramesDecoded: number;\n pliCount: number;\n totalDecodeTime: number;\n totalFreezesDuration?: number;\n totalInterFrameDelay: number;\n totalProcessingDelay?: number;\n totalSquaredInterFrameDelay: number;\n quality?: string;\n encoderBitrate?: number;\n encoderSpecificBitrate?: number;\n codec: {\n sdpFmtpLine: string;\n };\n transport: {\n selectedCandidatePair: {\n availableIncomingBitrate: number;\n currentRoundTripTime: number;\n localCandidate: {\n candidateType: RTCIceCandidateType;\n };\n remoteCandidate: {\n candidateType: RTCIceCandidateType;\n };\n bytesReceivedPerSeconds: number;\n };\n };\n };\n events?: string[];\n}\n\nexport function convertToLightParsedWebRTCVideoStats(stat: ParsedWebRTCStats): LightParsedWebRTCVideoStats | undefined {\n if (!stat.inboundRTPVideoStream) return undefined;\n const lightStat: LightParsedWebRTCVideoStats = {\n timestamp: stat.timestamp,\n date: stat.date,\n dataChannel: undefined,\n inboundRTPVideoStream: {\n mediaType: stat.inboundRTPVideoStream.mediaType,\n jitter: stat.inboundRTPVideoStream.jitter,\n packetsLost: stat.inboundRTPVideoStream.packetsLost,\n packetsReceived: stat.inboundRTPVideoStream.packetsReceived,\n bytesReceived: stat.inboundRTPVideoStream.bytesReceived,\n firCount: stat.inboundRTPVideoStream.firCount,\n frameHeight: stat.inboundRTPVideoStream.frameHeight,\n frameWidth: stat.inboundRTPVideoStream.frameWidth,\n framesDecoded: stat.inboundRTPVideoStream.framesDecoded,\n framesDropped: stat.inboundRTPVideoStream.framesDropped,\n framesPerSecond: stat.inboundRTPVideoStream.effectiveFramesPerSecond,\n framesReceived: stat.inboundRTPVideoStream.framesReceived,\n freezeCount: stat.inboundRTPVideoStream.freezeCount,\n jitterBufferDelay: stat.inboundRTPVideoStream.jitterBufferDelay,\n jitterBufferEmittedCount: stat.inboundRTPVideoStream.jitterBufferEmittedCount,\n keyFramesDecoded: stat.inboundRTPVideoStream.keyFramesDecoded,\n pliCount: stat.inboundRTPVideoStream.pliCount,\n totalDecodeTime: stat.inboundRTPVideoStream.totalDecodeTime,\n totalFreezesDuration: stat.inboundRTPVideoStream.totalFreezesDuration,\n totalInterFrameDelay: stat.inboundRTPVideoStream.totalInterFrameDelay,\n totalProcessingDelay: stat.inboundRTPVideoStream.totalProcessingDelay,\n totalSquaredInterFrameDelay: stat.inboundRTPVideoStream.totalSquaredInterFrameDelay,\n codec: {\n sdpFmtpLine: stat.inboundRTPVideoStream.codec.sdpFmtpLine,\n },\n transport: {\n selectedCandidatePair: {\n availableIncomingBitrate: stat.inboundRTPVideoStream.transport.selectedCandidatePair.availableIncomingBitrate,\n currentRoundTripTime: stat.inboundRTPVideoStream.transport.selectedCandidatePair.currentRoundTripTime,\n localCandidate: {\n candidateType: stat.inboundRTPVideoStream.transport.selectedCandidatePair.localCandidate.candidateType,\n },\n remoteCandidate: {\n candidateType: stat.inboundRTPVideoStream.transport.selectedCandidatePair.remoteCandidate.candidateType,\n },\n bytesReceivedPerSeconds: stat.inboundRTPVideoStream.transport.selectedCandidatePair.bytesReceivedPerSeconds,\n },\n },\n effectiveFramesPerSecond: stat.inboundRTPVideoStream.effectiveFramesPerSecond,\n quality: stat.inboundRTPVideoStream.quality,\n encoderBitrate: stat.inboundRTPVideoStream.encoderBitrate,\n encoderSpecificBitrate: stat.inboundRTPVideoStream.encoderSpecificBitrate,\n },\n events: stat.events,\n };\n if (stat.dataChannel) {\n lightStat.dataChannel = {\n bytesReceived: stat.dataChannel.bytesReceived,\n bytesSent: stat.dataChannel.bytesSent,\n };\n }\n return lightStat;\n}\n\nexport class WebRTCStatsParser extends EventEmitter {\n private readonly rtcPeerConnection: RTCPeerConnection;\n private readonly parser: IStatsParser;\n private readonly delay: number = 1000;\n private readonly historyLimit = 100;\n private readonly rawHistory: RTCStats[][];\n\n private intervalHandle: number;\n\n constructor(rtcPeerConnection: RTCPeerConnection, delay = 1000, browserType: BrowserType, ping: number) {\n super();\n this.rtcPeerConnection = rtcPeerConnection;\n this.delay = delay;\n this.rawHistory = [];\n if (browserType === BrowserType.FIREFOX) this.parser = new FirefoxWebRTCStatsParser(ping);\n else this.parser = new DefaultWebRTCStatsParser();\n\n this.parser.on(\"stats\", (stats: ParsedWebRTCStats) => this.emit(\"stats\", stats));\n this.start();\n }\n\n public start(): void {\n this.intervalHandle = setInterval(() => this.run(), this.delay);\n }\n\n public stop(): void {\n clearInterval(this.intervalHandle);\n }\n\n private async run(): Promise {\n if (!this.rtcPeerConnection) return;\n if (this.rtcPeerConnection.connectionState !== \"connected\") return;\n\n const report = await this.rtcPeerConnection.getStats();\n this.rawHistory.unshift(Array.from(report.values()));\n\n if (this.rawHistory.length > this.historyLimit) this.rawHistory.pop();\n\n this.emit(\"rawStats\", this.rawStats);\n\n this.parser.parse(this.rawStats);\n }\n\n public get rawStats(): RTCStats[] {\n return this.rawHistory[0];\n }\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"green100\":\"#c8fbd7\",\"green200\":\"#94f7ba\",\"green300\":\"#5ce79f\",\"green400\":\"#33cf8e\",\"green500\":\"#00af77\",\"green600\":\"#009675\",\"green700\":\"#007d6e\",\"green800\":\"#006562\",\"green900\":\"#004d53\",\"green1000\":\"#003f44\",\"purple100\":\"#e7e7f5\",\"purple200\":\"#d0d0eb\",\"purple300\":\"#a2a2c3\",\"purple400\":\"#6b6b88\",\"purple500\":\"#292939\",\"purple600\":\"#1d1d31\",\"purple700\":\"#141429\",\"purple800\":\"#0d0d21\",\"purple900\":\"#07071b\",\"purple1000\":\"#040411\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"green100\":\"#c8fbd7\",\"green200\":\"#94f7ba\",\"green300\":\"#5ce79f\",\"green400\":\"#33cf8e\",\"green500\":\"#00af77\",\"green600\":\"#009675\",\"green700\":\"#007d6e\",\"green800\":\"#006562\",\"green900\":\"#004d53\",\"green1000\":\"#003f44\",\"purple100\":\"#e7e7f5\",\"purple200\":\"#d0d0eb\",\"purple300\":\"#a2a2c3\",\"purple400\":\"#6b6b88\",\"purple500\":\"#292939\",\"purple600\":\"#1d1d31\",\"purple700\":\"#141429\",\"purple800\":\"#0d0d21\",\"purple900\":\"#07071b\",\"purple1000\":\"#040411\"};","var map = {\n\t\"./en.json\": \"edd4\",\n\t\"./fr.json\": \"f693\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"49f8\";","import { isValidHttpUrl as ShareUtils } from \"../utils/utils\";\n\nexport interface ShareData {\n title: string;\n text: string;\n url: string;\n}\n\nexport interface ShareOptions {\n referralCode?: string;\n title: string;\n text: string;\n url?: string;\n}\n\n/**\n * Get the URL to share\n * @param user\n * @param defaultURL\n */\nexport function GetShareURL(options: ShareOptions): string {\n const defaultURL = options.url || \"FALSE\";\n\n let url: URL;\n // If the share URL is an absolute URL, use it as is\n if (ShareUtils(defaultURL)) url = new URL(defaultURL);\n else {\n // If the share URL is FALSE, use the current URL\n if (defaultURL.match(/^FALSE$/i)) url = new URL(window.location.href);\n // Else, use the share URL as a relative URL to the current URL\n else url = new URL(defaultURL, window.location.href);\n }\n\n url.searchParams.set(\"share\", \"true\");\n if (options.referralCode) url.searchParams.set(\"referrer\", options.referralCode);\n url.searchParams.delete(\"cgtoken\");\n return url.toString();\n}\n\n/**\n * Get the data to share\n * @param user The current user\n * @param game The game to share\n * @param defaultURL The default URL to share\n */\nexport function ShareData(options: ShareOptions): ShareData {\n return {\n title: options.title,\n text: options.text,\n url: GetShareURL(options),\n };\n}\n\n/**\n * Check if the browser can share\n * @param user The current user\n * @param defaultURL The default URL to share\n */\nexport function CanShare(options: ShareOptions): boolean {\n // Check if the browser supports the Web Share API\n if (!(navigator as any).canShare) return false;\n\n // Cast to any because typescript doesn't know about canShare yet\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (navigator as any).canShare(ShareData(options));\n}\n\n/**\n * Open the share dialog\n * @param game The game to share\n * @param user The current user\n * @param defaultURL The default URL to share\n */\nexport async function Share(options: ShareOptions): Promise {\n return navigator.share(ShareData(options));\n}\n","import { defineModule } from \"direct-vuex\";\nimport { UAParser } from \"ua-parser-js\";\nimport mergeWith from \"lodash/mergeWith\";\nimport isArray from \"lodash/isArray\";\n\nimport { moduleActionContext, moduleGetterContext, axiosInstance as axios } from \"@/store\";\nimport router from \"@/router\";\nimport i18n from \"@/plugins/i18n\";\n\nimport { isValidHttpUrl } from \"@/../common/utils/utils\";\nimport * as ShareUtils from \"@/../common/share\";\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\n\nimport { Manifest } from \"@/interfaces/manifest\";\nimport { Game } from \"./games\";\n\nexport enum OrientationMode {\n PORTRAIT,\n LANDSCAPE,\n}\n\nexport enum SERVICE_WORKER_OUTGOING_MESSAGE_TYPE {\n UPDATE_MANIFEST = \"UPDATE_MANIFEST\",\n UPDATE_ENDPOINT = \"UPDATE_ENDPOINT\",\n UPDATE_STATS_INFO = \"UPDATE_STATS_INFO\",\n}\n\nexport async function SendMessageToServiceWorker(\n type: SERVICE_WORKER_OUTGOING_MESSAGE_TYPE,\n data: unknown\n): Promise {\n await navigator?.serviceWorker?.ready;\n if (navigator?.serviceWorker?.controller)\n navigator.serviceWorker.controller.postMessage({\n type,\n data,\n });\n}\n\nconst parser = new UAParser();\n\ninterface Add2HomeAndroidIntercept {\n show: boolean;\n onSkip?: () => void;\n onClose?: () => void;\n}\n\nexport interface MobileState {\n orientation: OrientationMode;\n manifest: Manifest | undefined;\n pushNotifEnabled: boolean;\n defferedPWAPrompt: BeforeInstallPromptEvent | undefined;\n isBigScreenResolution: boolean;\n lastModified: Date | undefined; // Date Last-Modified from the server\n showUpdateModal: boolean; // Flag to show the refresh modal\n add2HomeAndroidIntercept: Add2HomeAndroidIntercept;\n showAgreementPopup: boolean;\n showSubscribeTutoPopup: boolean;\n showRenewTutoPopup: boolean;\n showSharePopup: boolean;\n showSubscribeBannerPopup: boolean;\n showLoginPopup: boolean;\n loginPopupCloseToWelcome: boolean;\n showRegisterPopup: boolean;\n showTvCodePopup: boolean;\n}\n\nconst LOCAL_STORAGE_COUNT_PWA_LAUNCHES = \"pwaLaunches\";\n\nconst module = defineModule({\n namespaced: true as const,\n state: {\n orientation: OrientationMode.PORTRAIT,\n manifest: undefined,\n pushNotifEnabled: false,\n defferedPWAPrompt: undefined,\n isBigScreenResolution: true,\n lastModified: undefined,\n showUpdateModal: false,\n add2HomeAndroidIntercept: {\n show: false,\n },\n showAgreementPopup: false,\n showSubscribeTutoPopup: false,\n showRenewTutoPopup: false,\n showSharePopup: false,\n showSubscribeBannerPopup: false,\n showLoginPopup: false,\n loginPopupCloseToWelcome: false,\n showRegisterPopup: false,\n showTvCodePopup: false,\n } as MobileState,\n getters: {\n isWebApp: (): boolean =>\n window.navigator.standalone == true ||\n window.matchMedia(\"(display-mode: standalone)\").matches ||\n window.matchMedia(\"(display-mode: fullscreen)\").matches,\n isiOS: (): boolean => parser.getOS().name === \"iOS\",\n isAndroid: (): boolean => parser.getOS().name === \"Android\",\n isChrome: (): boolean => parser.getBrowser().name === \"Chrome\",\n isSafari: (): boolean => parser.getBrowser().name === \"Mobile Safari\",\n isBrowserValid: (): boolean => {\n if (/^true$/i.test(process.env.VUE_APP_SKIP_BROWSER_CHECK)) return true;\n if (parser.getOS().name === \"Android\") {\n switch (parser.getBrowser().name) {\n case \"Chrome\": // Also matches Vivaldi\n case \"Samsung Browser\":\n case \"Opera\":\n case \"Edge\":\n case \"Facebook\":\n case \"Chrome WebView\":\n return true;\n default:\n return false;\n }\n }\n if (parser.getOS().name === \"iOS\") {\n switch (parser.getBrowser().name) {\n case \"Mobile Safari\":\n return true;\n default:\n return false;\n }\n }\n return false;\n },\n getBrowser: (): string | undefined => {\n return parser.getBrowser().name;\n },\n getOS: (): string | undefined => {\n return parser.getOS().name;\n },\n shareOptions: (...args) => (game?: Game): ShareUtils.ShareOptions => {\n const { rootState } = mod1GetterContext(args);\n\n let url = process.env.VUE_APP_SHARE_URL;\n\n if (!isValidHttpUrl(url) && router.currentRoute.name === \"Home\") {\n url = `/`;\n }\n\n let title = i18n.t(\"share.app.title\").toString();\n let text = i18n.t(\"share.app.text\").toString();\n if (game) {\n const gameName = i18n.t(`games.${game._id}.name`).toString() || \"\";\n title = gameName;\n text = i18n.t(\"share.game.text\", { game: gameName }).toString();\n }\n\n return {\n title,\n text,\n referralCode: rootState.authentication.user?.referralCode,\n url,\n };\n },\n isBigScreenResolution: (state): boolean => {\n return state.isBigScreenResolution;\n },\n canShare: (...args): boolean => {\n const { getters } = mod1GetterContext(args);\n\n return ShareUtils.CanShare(getters.shareOptions());\n },\n canDeferPWAPrompt: (state): boolean => state.defferedPWAPrompt !== undefined,\n isAbleNotification: (): boolean => window.Notification !== undefined,\n gaveAgreement: (...args): boolean => {\n const { rootState } = mod1GetterContext(args);\n return rootState.authentication.user?.gaveAgreement ?? true;\n },\n countPWALaunches: (): number => {\n const count = localStorage.getItem(LOCAL_STORAGE_COUNT_PWA_LAUNCHES);\n if (count) return parseInt(count);\n return 0;\n },\n },\n mutations: {\n SET_BIGSCREEN_RESOLUTION(state, value: boolean) {\n state.isBigScreenResolution = value;\n },\n SET_ORIENTATION(state) {\n state.orientation = window.innerHeight > window.innerWidth ? OrientationMode.PORTRAIT : OrientationMode.LANDSCAPE;\n },\n SET_MANIFEST(state, manifest: Manifest) {\n state.manifest = mergeWith(state.manifest, manifest, (objValue, srcValue) =>\n isArray(objValue) ? srcValue : undefined\n );\n // Set the custom manifest, for iOS\n if (parser.getOS().name === \"iOS\") {\n // Prepare the custom manifest as blob (raw-data)\n const stringManifest = JSON.stringify(state.manifest);\n const blob = new Blob([stringManifest], { type: \"application/json\" });\n const manifestURL = URL.createObjectURL(blob);\n // Create the manifest link element if it doesn't exist\n if (!document.head.querySelector(\"link[rel='manifest']\")) {\n const customManifest = document.createElement(\"link\");\n customManifest.setAttribute(\"rel\", \"manifest\");\n customManifest.setAttribute(\"id\", \"custom-manifest\");\n document.head.appendChild(customManifest);\n }\n // Set the custom manifest data\n document.querySelector(\"#custom-manifest\")?.setAttribute(\"href\", manifestURL);\n }\n // Set the manifest used by the service worker, for Android\n else {\n // Wait for the service worker to be ready\n navigator?.serviceWorker?.ready.then(() => {\n // Send the custom manifest data to the service worker\n SendMessageToServiceWorker(SERVICE_WORKER_OUTGOING_MESSAGE_TYPE.UPDATE_MANIFEST, manifest);\n // Create the manifest link element if it doesn't exist\n if (!document.head.querySelector(\"link[rel='manifest']\")) {\n const customManifest = document.createElement(\"link\");\n customManifest.setAttribute(\"rel\", \"manifest\");\n customManifest.setAttribute(\"href\", \"manifest.webmanifest\");\n document.head.appendChild(customManifest);\n }\n });\n }\n },\n SET_PUSH_NOTIF_ENABLED(state, enabled: boolean) {\n state.pushNotifEnabled = enabled;\n },\n SET_DEFERRED_PWA_PROMPT(state, event: BeforeInstallPromptEvent) {\n state.defferedPWAPrompt = event;\n },\n SHOW_DEFERRED_PWA_PROMPT(state) {\n state.defferedPWAPrompt?.prompt();\n state.defferedPWAPrompt = undefined;\n },\n SET_LAST_MODIFIED(state, lastModified: Date) {\n state.lastModified = lastModified;\n },\n SET_SHOW_UPDATE_MODAL(state, show: boolean) {\n state.showUpdateModal = show;\n StatsManager.SendNavigationStats(location.href, \"UPDATE_POPUP\");\n },\n SHOW_ADD2HOME_ANDROID_INTERCEPT(state, { onSkip, onClose }: { onSkip?: () => void; onClose?: () => void }) {\n state.add2HomeAndroidIntercept.onSkip = onSkip;\n state.add2HomeAndroidIntercept.onClose = onClose;\n state.add2HomeAndroidIntercept.show = true;\n document.querySelector(\"html\")?.classList.add(\"noscroll\");\n window.scrollTo(0, 0);\n StatsManager.SendNavigationStats(location.href, \"ADD2HOME_ANDROID_INTERCEPT\");\n },\n CLOSE_SHOW_ADD2HOME_ANDROID_INTERCEPT(state) {\n if (state.add2HomeAndroidIntercept.show) {\n state.add2HomeAndroidIntercept.onClose?.();\n state.add2HomeAndroidIntercept.show = false;\n document.querySelector(\"html\")?.classList.remove(\"noscroll\");\n StatsManager.SendNavigationStats(\"ADD2HOME_ANDROID_INTERCEPT\", location.href);\n }\n },\n SHOW_AGREEMENT_POPUP(state) {\n state.showAgreementPopup = true;\n document.querySelector(\"html\")?.classList.add(\"noscroll\");\n window.scrollTo(0, 0);\n StatsManager.SendNavigationStats(window.location.href, \"AGREEMENT_POPUP\");\n },\n CLOSE_AGREEMENT_POPUP(state) {\n state.showAgreementPopup = false;\n document.querySelector(\"html\")?.classList.remove(\"noscroll\");\n StatsManager.SendNavigationStats(\"AGREEMENT_POPUP\", window.location.href);\n },\n SHOW_RENEW_TUTO_POPUP(state) {\n state.showRenewTutoPopup = true;\n document.querySelector(\"html\")?.classList.add(\"noscroll\");\n window.scrollTo(0, 0);\n StatsManager.SendNavigationStats(window.location.href, \"RENEW_TUTO_POPUP\");\n },\n CLOSE_RENEW_TUTO_POPUP(state) {\n state.showRenewTutoPopup = false;\n document.querySelector(\"html\")?.classList.remove(\"noscroll\");\n StatsManager.SendNavigationStats(\"RENEW_TUTO_POPUP\", window.location.href);\n },\n SHOW_TV_CODE_POPUP(state) {\n state.showTvCodePopup = true;\n document.querySelector(\"html\")?.classList.add(\"noscroll\");\n window.scrollTo(0, 0);\n StatsManager.SendNavigationStats(window.location.href, \"TV_CODE_POPUP\");\n },\n CLOSE_TV_CODE_POPUP(state) {\n state.showTvCodePopup = false;\n document.querySelector(\"html\")?.classList.remove(\"noscroll\");\n StatsManager.SendNavigationStats(\"TV_CODE_POPUP\", window.location.href);\n },\n SHOW_SUBSCRIBE_TUTO_POPUP(state) {\n state.showSubscribeTutoPopup = true;\n document.querySelector(\"html\")?.classList.add(\"noscroll\");\n window.scrollTo(0, 0);\n StatsManager.SendNavigationStats(window.location.href, \"SUBSCRIBE_TUTO_POPUP\");\n },\n CLOSE_SUBSCRIBE_TUTO_POPUP(state) {\n state.showSubscribeTutoPopup = false;\n document.querySelector(\"html\")?.classList.remove(\"noscroll\");\n StatsManager.SendNavigationStats(\"SUBSCRIBE_TUTO_POPUP\", window.location.href);\n },\n SHOW_SHARE_POPUP(state) {\n state.showSharePopup = true;\n document.querySelector(\"html\")?.classList.add(\"noscroll\");\n window.scrollTo(0, 0);\n StatsManager.SendNavigationStats(window.location.href, \"SHARE_POPUP\");\n },\n CLOSE_SHARE_POPUP(state) {\n state.showSharePopup = false;\n document.querySelector(\"html\")?.classList.remove(\"noscroll\");\n StatsManager.SendNavigationStats(\"SHARE_POPUP\", window.location.href);\n },\n INCREMENT_PWA_LAUNCHES() {\n const count = localStorage.getItem(LOCAL_STORAGE_COUNT_PWA_LAUNCHES);\n if (count) localStorage.setItem(LOCAL_STORAGE_COUNT_PWA_LAUNCHES, (parseInt(count) + 1).toString());\n else localStorage.setItem(LOCAL_STORAGE_COUNT_PWA_LAUNCHES, \"1\");\n },\n SHOW_SUBSCRIBE_BANNER_POPUP(state) {\n state.showSubscribeBannerPopup = true;\n document.querySelector(\"html\")?.classList.add(\"noscroll\");\n window.scrollTo(0, 0);\n StatsManager.SendNavigationStats(window.location.href, \"SUBSCRIBE_BANNER_POPUP\");\n },\n CLOSE_SUBSCRIBE_BANNER_POPUP(state) {\n state.showSubscribeBannerPopup = false;\n document.querySelector(\"html\")?.classList.remove(\"noscroll\");\n StatsManager.SendNavigationStats(\"SUBSCRIBE_BANNER_POPUP\", window.location.href);\n },\n SHOW_LOGIN_POPUP(state, closeToWelcome: boolean) {\n state.showLoginPopup = true;\n state.loginPopupCloseToWelcome = closeToWelcome;\n document.querySelector(\"html\")?.classList.add(\"noscroll\");\n window.scrollTo(0, 0);\n StatsManager.SendNavigationStats(window.location.href, \"LOGIN_POPUP\");\n },\n CLOSE_LOGIN_POPUP(state) {\n state.showLoginPopup = false;\n document.querySelector(\"html\")?.classList.remove(\"noscroll\");\n StatsManager.SendNavigationStats(\"LOGIN_POPUP\", window.location.href);\n },\n SHOW_REGISTER_POPUP(state) {\n state.showRegisterPopup = true;\n document.querySelector(\"html\")?.classList.add(\"noscroll\");\n window.scrollTo(0, 0);\n StatsManager.SendNavigationStats(window.location.href, \"REGISTER_POPUP\");\n },\n CLOSE_REGISTER_POPUP(state) {\n state.showRegisterPopup = false;\n document.querySelector(\"html\")?.classList.remove(\"noscroll\");\n StatsManager.SendNavigationStats(\"REGISTER_POPUP\", window.location.href);\n },\n },\n actions: {\n async init(context) {\n const { commit, dispatch, getters } = moduleActionContext(context, module);\n commit.SET_ORIENTATION();\n window.addEventListener(\"resize\", () => commit.SET_ORIENTATION());\n dispatch.updateAndSetManifest();\n\n if (getters.isAbleNotification) {\n if (Notification?.permission === \"denied\") commit.SET_PUSH_NOTIF_ENABLED(false);\n else {\n const serviceWorker = await navigator.serviceWorker.ready;\n const sub = await serviceWorker.pushManager.getSubscription();\n if (sub) commit.SET_PUSH_NOTIF_ENABLED(true);\n }\n }\n\n SendMessageToServiceWorker(\n SERVICE_WORKER_OUTGOING_MESSAGE_TYPE.UPDATE_ENDPOINT,\n process.env.VUE_APP_API_ENDPOINT\n );\n },\n updateAndSetManifest(context) {\n const { commit, rootGetters } = moduleActionContext(context, module);\n\n const dynamicManifest: Manifest = {\n name: process.env.VUE_APP_PWA_NAME || `CareGame`,\n short_name: process.env.VUE_APP_PWA_NAME || \"CareGame\",\n description: \"Mobile Gaming, One Click Away\",\n display: \"fullscreen\",\n start_url: `${location.origin}/`,\n orientation: \"any\",\n background_color: \"#07071B\",\n theme_color: \"#00AF77\",\n icons: [\n {\n src: \"/pwa/android-chrome-maskable-192x192.png\",\n sizes: \"192x192\",\n type: \"image/png\",\n purpose: \"maskable any\",\n },\n {\n src: \"/pwa/android-chrome-maskable-512x512.png\",\n sizes: \"512x512\",\n type: \"image/png\",\n purpose: \"maskable any\",\n },\n {\n src: \"/pwa/android-chrome-192x192.png\",\n sizes: \"192x192\",\n type: \"image/png\",\n purpose: \"any\",\n },\n {\n src: \"/pwa/android-chrome-512x512.png\",\n sizes: \"512x512\",\n type: \"image/png\",\n purpose: \"any\",\n },\n ],\n related_applications: [\n {\n platform: \"webapp\",\n url: `/manifest.webmanifest`,\n },\n ],\n };\n if (rootGetters.authentication.jwt) dynamicManifest.start_url += rootGetters.authentication.jwt;\n commit.SET_MANIFEST(dynamicManifest);\n },\n async setBigScreenResolution(context, value: boolean): Promise {\n const { commit } = moduleActionContext(context, module);\n\n const body = {\n bigscreen_resolution: value ? \"BIGSCREEN\" : \"MOBILE\",\n };\n const response = await axios.post(`/api/v1/userPrefs`, body);\n if (response.status === 200) {\n commit.SET_BIGSCREEN_RESOLUTION(value);\n return value;\n }\n return !value;\n },\n async fetchBigScreenResolution(context): Promise {\n const { commit } = moduleActionContext(context, module);\n const response = await axios.get(`/api/v1/userPrefs/bigscreen_resolution`);\n if (response.status === 200) {\n if (response.data === \"MOBILE\") {\n commit.SET_BIGSCREEN_RESOLUTION(false);\n return false;\n }\n if (response.data === \"BIGSCREEN\") {\n commit.SET_BIGSCREEN_RESOLUTION(true);\n return true;\n }\n }\n return false;\n },\n async createNotificationSubscription(context): Promise {\n const { commit } = moduleActionContext(context, module);\n //wait for service worker installation to be ready, and then\n\n const serviceWorker = await navigator.serviceWorker.ready;\n // subscribe and return the subscription\n const subscription = await serviceWorker.pushManager.subscribe({\n userVisibleOnly: true,\n applicationServerKey: process.env.VUE_APP_PUSH_VAPID_PUBLIC_KEY,\n });\n\n await axios.post(`/api/v1/pushsubscribtion/subscribe`, subscription);\n commit.SET_PUSH_NOTIF_ENABLED(true);\n return subscription;\n },\n async removeNotificationSubscription(context): Promise {\n const { commit } = moduleActionContext(context, module);\n const serviceWorker = await navigator.serviceWorker.ready;\n const sub = await serviceWorker.pushManager.getSubscription();\n sub?.unsubscribe();\n await axios.delete(`/api/v1/pushsubscribtion/subscribe`);\n commit.SET_PUSH_NOTIF_ENABLED(false);\n },\n async share(context, { game }: { game?: Game } = { game: undefined }): Promise {\n const { getters } = moduleActionContext(context, module);\n\n return ShareUtils.Share(getters.shareOptions(game));\n },\n /**\n * Check if the PWA has changed since the last reload\n */\n async checkPWAChanged(context) {\n const { commit } = moduleActionContext(context, module);\n try {\n // Add a random query string to the URL to avoid caching.\n const url = new URL(location.origin);\n // Use both random and Date.now()\n const random = Math.round(Date.now() * Math.random())\n .toString(10)\n .substring(2, 15);\n url.searchParams.set(\"c\", random);\n\n // Fetch the Last-Modified date from the server\n const response = await fetch(url.href, {\n method: \"HEAD\",\n cache: \"no-cache\",\n });\n const lastModified = response.headers.get(\"Last-Modified\") || \"\";\n // const lastModified = \"Thu, 21 Sep 3028 15:35:46 GMT\";\n\n // Convert the Last-Modified string to a Date object\n const lastModifiedDate = new Date(lastModified);\n\n // If there is no Last-Modified date or if it is invalid, return\n if (!lastModified || isNaN(lastModifiedDate.getTime())) return;\n // Store the new Last-Modified date\n commit.SET_LAST_MODIFIED(lastModifiedDate);\n\n // Get the last PWA reload date from the local storage\n const lastPwaReload = localStorage.getItem(\"lastPwaReload\") || \"\";\n // Convert the last PWA reload string to a Date object\n let lastPwaReloadDate = new Date(parseInt(lastPwaReload));\n\n // If there is no last PWA reload date, store the new Last-Modified date as the last PWA reload date\n // This is to avoid showing the refresh popup on the first load of the PWA\n if (!lastPwaReload || isNaN(lastPwaReloadDate.getTime())) {\n lastPwaReloadDate = lastModifiedDate;\n localStorage.setItem(\"lastPwaReload\", lastPwaReloadDate.getTime().toString());\n }\n\n // Show the refresh popup if needed if the new Last-Modified date is more recent than the last PWA reload date\n if (lastModifiedDate > lastPwaReloadDate) {\n commit.SET_SHOW_UPDATE_MODAL(true);\n }\n } catch (error) {\n console.error(\"Error fetching Last-Modified date:\", error);\n }\n },\n /**\n * Reload the PWA to apply updates\n */\n async reloadPWA(context) {\n const { state } = moduleActionContext(context, module);\n\n // Store the new Last-Modified date as the last PWA reload date\n // We don't store the current date as the last PWA reload date in case the Last-Modified date is in the future\n if (state.lastModified) localStorage.setItem(\"lastPwaReload\", state.lastModified.getTime().toString());\n // Reload the PWA to apply updates\n window.location.reload();\n },\n },\n});\n\nexport default module;\nconst mod1GetterContext = (args: [any, any, any, any]) => moduleGetterContext(args, module);\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GoUltimateButton.vue?vue&type=style&index=0&id=b0ae9066&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubscribeBanner.vue?vue&type=style&index=1&lang=scss&\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"green100\":\"#c8fbd7\",\"green200\":\"#94f7ba\",\"green300\":\"#5ce79f\",\"green400\":\"#33cf8e\",\"green500\":\"#00af77\",\"green600\":\"#009675\",\"green700\":\"#007d6e\",\"green800\":\"#006562\",\"green900\":\"#004d53\",\"green1000\":\"#003f44\",\"purple100\":\"#e7e7f5\",\"purple200\":\"#d0d0eb\",\"purple300\":\"#a2a2c3\",\"purple400\":\"#6b6b88\",\"purple500\":\"#292939\",\"purple600\":\"#1d1d31\",\"purple700\":\"#141429\",\"purple800\":\"#0d0d21\",\"purple900\":\"#07071b\",\"purple1000\":\"#040411\"};","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AgreementPopup.vue?vue&type=style&index=0&id=50c77754&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/icon.3c5e6785.png\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./bookmark_add_FILL0_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=055b5941&lang=scss&scoped=true&\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NeedPartnerAuthenticationPopup.vue?vue&type=style&index=0&id=2245ace5&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryList.vue?vue&type=style&index=0&id=b625e0e0&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardGameVideo.vue?vue&type=style&index=0&id=2f66de60&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateModal.vue?vue&type=style&index=0&id=b71ed6a4&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-overlay',{attrs:{\"opacity\":\"0.75\",\"z-index\":\"2000\",\"color\":\"#000000\"}},[_c('div',{staticClass:\"tutoContainer\"},[_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"Enter code displayed on TV\")])]),_c('div',{staticClass:\"text\"},[(!_vm.hideSuccessMsg)?_c('div',{staticClass:\"flex\"},[_c('v-icon',[_vm._v(\"$validIcon\")]),_c('span',{staticClass:\"success-msg\"},[_vm._v(\"Success\")])],1):_vm._e(),(!_vm.hideFailMsg)?_c('div',{staticClass:\"flex\"},[_c('v-icon',[_vm._v(\"$failedIcon\")]),_c('span',{staticClass:\"fail-msg\"},[_vm._v(\"Wrong code\")])],1):_vm._e()]),_c('div',{staticClass:\"code-block\"},[_c('input',{staticClass:\"code-text\",attrs:{\"type\":\"number\",\"pattern\":\"\\\\d*\",\"min\":\"0\",\"max\":\"6\",\"maxlength\":\"6\",\"minlength\":\"0\",\"placeholder\":\"000000\",\"required\":\"\"},domProps:{\"value\":_vm.codeValue},on:{\"input\":_vm.checkInput}})]),_c('div',{staticClass:\"cta\"},[_c('span',{staticClass:\"button important\",on:{\"click\":_vm.close}},[_vm._v(\"Close\")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\n\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\nimport { Game } from \"@/store/modules/games\";\n\n@Component\nexport default class EnterCodePopup extends Vue {\n @Prop(Object) game: Game;\n\n codeValue = \"\";\n\n hideSuccessMsg = true;\n hideFailMsg = true;\n\n async play(playOnBigScreen: boolean): Promise {\n StatsManager.SendButtonClickStats(location.href, \"play\");\n\n if (!this.game) return;\n if (!this.$store.direct.getters.mobile.isBrowserValid) {\n this.$store.direct.commit.SHOW_ALERT({\n text: this.$t(\"alert.alerts.bad-browser.text\").toString(),\n title: this.$t(\"alert.alerts.bad-browser.title\").toString(),\n });\n StatsManager.SendNavigationStats(location.href, \"INVALID_BROWSER_ALERT\");\n return;\n }\n\n this.$store.direct.dispatch.games.play({ game: this.game, playOnBigScreen: playOnBigScreen });\n }\n\n async checkInput(event: Event) {\n if (event.target && (event.target as any).value.length <= 6) {\n this.codeValue = (event.target as any).value;\n }\n (event.target as any).value = this.codeValue;\n\n if (this.codeValue.length === 6) {\n const response = await this.$store.direct.dispatch.bigscreen.sendPairingCode(this.codeValue);\n if (response) {\n // Here display success message\n this.hideSuccessMsg = false;\n this.hideFailMsg = true;\n setTimeout(() => {\n this.play(true);\n this.codeValue = \"\";\n (event.target as any).value = this.codeValue;\n this.close();\n }, 1000);\n } else {\n // Here display failed message\n this.hideSuccessMsg = true;\n this.hideFailMsg = false;\n this.codeValue = \"\";\n (event.target as any).value = this.codeValue;\n }\n } else {\n this.hideSuccessMsg = true;\n this.hideFailMsg = true;\n }\n }\n\n close(): void {\n this.$store.direct.commit.mobile.CLOSE_TV_CODE_POPUP();\n StatsManager.SendButtonClickStats(\"TV_CODE_POPUP\", \"close\");\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnterCodePopup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnterCodePopup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EnterCodePopup.vue?vue&type=template&id=49afccd0&scoped=true&\"\nimport script from \"./EnterCodePopup.vue?vue&type=script&lang=ts&\"\nexport * from \"./EnterCodePopup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EnterCodePopup.vue?vue&type=style&index=0&id=49afccd0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"49afccd0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VIcon,VOverlay})\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Leaderboard.vue?vue&type=style&index=0&id=53713ed1&lang=scss&scoped=true&\"","import { generateId } from \"../utils/utils\";\n\n/**\n * Represents a User session for stats.\n */\nexport interface Session {\n /**\n * The ID of the session.\n */\n id: string;\n /**\n * The start time of the session.\n */\n start: Date;\n /**\n * The last active time of the session.\n *\n * This is updated every time the session is used.\n *\n * This is used to determine if the session is too idle and should expire.\n */\n lastActive: Date;\n}\n\n/**\n * Create a new session.\n * @returns The new session.\n */\nfunction newSession(): Session {\n return {\n id: generateId(),\n start: new Date(),\n lastActive: new Date(),\n };\n}\n\nlet _currentSession: Session | undefined = undefined;\nlet _cacheStorage: Cache | undefined = undefined;\n\n/**\n * The key used to store the session in local storage or cache storage.\n */\nconst LOCAL_STORAGE_KEY = \"cg_session\";\n/**\n * The maximum amount of time a session can be alive before it is considered expired.\n * In milliseconds.\n */\nconst SESSION_MAX_AGE = 1000 * 60 * 60 * 24 * 1; // 1 day\n/**\n * The maximum amount of time a session can be idle before it is considered expired.\n * In milliseconds.\n */\nconst SESSION_MAX_IDLE = 1000 * 60 * 10; // 10 minutes\n\n/**\n * Save the session to cache storage.\n * @param session The session to save.\n */\nasync function saveSessionToCacheStorage(session: Session): Promise {\n if (!window.caches) return;\n if (!_cacheStorage) _cacheStorage = await caches.open(\"cg_session\");\n\n const json = JSON.stringify(session);\n await _cacheStorage.put(LOCAL_STORAGE_KEY, new Response(json));\n}\n\n/**\n * Load the session from cache storage.\n * @returns The session, or undefined if no session exists.\n */\nasync function loadSessionFromCacheStorage(): Promise {\n if (!window.caches) return;\n if (!_cacheStorage) _cacheStorage = await caches.open(\"cg_session\");\n\n const response = await _cacheStorage.match(LOCAL_STORAGE_KEY);\n if (!response) return undefined;\n\n const res = await response.json();\n res.start = new Date(res.start);\n res.lastActive = new Date(res.lastActive);\n return res;\n}\n\n/**\n * Clear the session from cache storage.\n */\nasync function clearSessionFromCacheStorage(): Promise {\n if (!window.caches) return;\n if (!_cacheStorage) _cacheStorage = await caches.open(\"cg_session\");\n\n await _cacheStorage.delete(LOCAL_STORAGE_KEY);\n}\n\nloadSessionFromCacheStorage().then((session) => {\n if (session) _currentSession = session;\n});\n\n/**\n * Save the session to browser storage.\n * @param session The session to save.\n */\nfunction saveSession(session: Session): void {\n _currentSession = session;\n localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(session));\n saveSessionToCacheStorage(session);\n}\n\n/**\n * Load the session from browser storage.\n * @returns The session, or undefined if no session exists.\n */\nfunction loadSession(): Session | undefined {\n if (_currentSession) return _currentSession;\n\n const item = localStorage.getItem(LOCAL_STORAGE_KEY);\n if (!item) return undefined;\n\n const res = JSON.parse(item);\n res.start = new Date(res.start);\n res.lastActive = new Date(res.lastActive);\n return res;\n}\n\n/**\n * Get the current session.\n *\n * A new session is created if:\n * * If no session exists.\n * * If the session is too old or too idle.\n *\n * Will update the last active time of the session.\n * @returns The current or new session.\n */\nexport function getSession(): Session {\n // Get session from browser storage\n let session = loadSession();\n\n // If no session, create a new one\n if (!session) {\n session = newSession();\n saveSession(session);\n } else {\n // Check if session is too old\n const age = Date.now() - session.start.getTime();\n if (age > SESSION_MAX_AGE) {\n session = newSession();\n saveSession(session);\n }\n\n // Check if session is too idle\n const idle = Date.now() - session.lastActive.getTime();\n if (idle > SESSION_MAX_IDLE) {\n session = newSession();\n saveSession(session);\n }\n }\n\n // Update last active time for the current session\n session.lastActive = new Date();\n saveSession(session);\n\n return session;\n}\n\n/**\n * Clear the session from browser storage.\n */\nexport function clearSession(): void {\n localStorage.removeItem(LOCAL_STORAGE_KEY);\n clearSessionFromCacheStorage();\n}\n","import * as SessionManager from \"./SessionManager\";\n\nimport { User } from \"../models/User\";\nimport * as Utils from \"../utils/utils\";\n\nlet _APIEndpoint: string | undefined = undefined;\nlet _user: User | undefined = undefined;\nlet _cgToken: string | undefined = undefined;\nconst _pageLoadID: string = Utils.generateId();\n\nconst _attributes: { [key: string]: unknown } = {};\n\n/**\n * Set the API endpoint to send stats to.\n * @param endpoint The API endpoint to send stats to.\n * @throws If the API endpoint is not set.\n * @throws If the API endpoint is not a valid URL.\n * @throws If the API endpoint is not HTTPS.\n */\nexport function setAPIEndpoint(endpoint: string): void {\n if (!endpoint) throw new Error(\"API endpoint not set.\");\n const url = new URL(endpoint);\n const isLocal = /(^localhost$|^127\\.0\\.0\\.1$|^10\\.|^172\\.(1[6-9]|2[0-9]|31)\\.|^192\\.168)/.test(url.hostname);\n const isHTTPS = url.protocol === \"https:\";\n // API Endpoint must be HTTPS unless it's local\n if (!isLocal && !isHTTPS) throw new Error(\"API endpoint must be HTTPS.\");\n _APIEndpoint = endpoint;\n}\n\n/**\n * Set the user to send stats for.\n * @param user The user to set.\n */\nexport function setUser(user: User): void {\n _user = user;\n}\n\n/**\n * Set the token to use for the Authorization header.\n * @param token The token to use for the Authorization header.\n */\nexport function setCGToken(token: string): void {\n _cgToken = token;\n}\n\n/**\n * Set an attribute to send with every stat.\n * @param key The key of the attribute.\n * @param value The value of the attribute.\n */\nexport function setAttribute(key: string, value: unknown): void {\n _attributes[key] = value;\n}\n\ninterface UserAgentData {\n brands?: Brand[];\n mobile?: boolean;\n platform?: string;\n highEntropyValues?: Record;\n}\n\n/**\n * The base interface for stats.\n */\ninterface Stats {\n session?: SessionManager.Session;\n session_id?: string;\n log_type: string;\n date?: string;\n entrypoint_ip?: string;\n url?: string;\n sub_type?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data?: any;\n page_load_ID?: string;\n user_agent?: string;\n language?: string;\n orientation?: string;\n user_id?: string;\n isWebApp?: boolean;\n hostname?: string;\n userAgentData?: UserAgentData;\n}\n\ninterface NavigationStats extends Stats {\n log_type: \"navigation_stat\";\n from: string;\n to: string;\n}\n\ninterface EndSessionStats extends Stats {\n log_type: \"client_end_session_stat\";\n reason_of_leave: string;\n}\n\ninterface SessionStats extends Stats {\n log_type: \"client_session_stat\";\n network_score: number;\n webrtc_session_id: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n webrtc_stats: any;\n}\n\ninterface SpeedStats extends Stats {\n speed_test_pass: \"skip\" | \"fail\" | \"pass\";\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n result: any;\n}\n\n/**\n * Get the current date in the format YYYY-MM-DD HH:MM:SS.SSS.\n * @returns The current date in the format YYYY-MM-DD HH:MM:SS.SSS.\n */\nfunction GetDate(): string {\n const now = new Date();\n const dd = now.getUTCDate();\n const mm = now.getUTCMonth() + 1;\n const yyyy = now.getUTCFullYear();\n const hh = now.getUTCHours();\n const min = now.getUTCMinutes();\n const ss = now.getUTCSeconds();\n const SSS = now.getUTCMilliseconds();\n\n let timestamp = `${yyyy}-${mm < 10 ? `0${mm}` : mm}-${dd < 10 ? `0${dd}` : dd}`;\n timestamp = `${timestamp} ${hh < 10 ? `0${hh}` : hh}:${min < 10 ? `0${min}` : min}:${ss < 10 ? `0${ss}` : ss}.`;\n if (SSS < 10) {\n timestamp = `${timestamp}00`;\n } else if (SSS < 100) {\n timestamp = `${timestamp}0`;\n }\n timestamp = `${timestamp}${SSS}`;\n return timestamp;\n}\n\n/**\n * Enrich the stats with additional information.\n *\n * This includes the session ID, date, entrypoint IP, URL, page load ID, user agent, language, orientation, user ID, and whether the page is a web app.\n * @param stats The stats to enrich.\n * @returns The enriched stats.\n */\nasync function enrichStats(stats: Stats): Promise {\n stats.session = SessionManager.getSession();\n stats.session_id = stats.session.id;\n stats.date = GetDate();\n stats.entrypoint_ip = _APIEndpoint;\n stats.hostname = window.location.hostname;\n stats.url = window.location.href;\n stats.page_load_ID = _pageLoadID;\n stats.user_agent = navigator.userAgent;\n stats.language = navigator.language;\n if (_user) stats.user_id = _user.id;\n if (window.screen.orientation) stats.orientation = window.screen.orientation.type;\n else stats.orientation = window.innerHeight > window.innerWidth ? \"portrait\" : \"landscape\";\n if (navigator.userAgentData) {\n stats.userAgentData = {\n brands: navigator.userAgentData.brands,\n mobile: navigator.userAgentData.mobile,\n platform: navigator.userAgentData.platform,\n };\n\n try {\n const ua = await (navigator.userAgentData as any).getHighEntropyValues([\n \"architecture\",\n \"model\",\n \"bitness\",\n \"formFactor\",\n \"fullVersionList\",\n \"platformVersion\",\n \"uaFullVersion\",\n \"wow64\",\n ]);\n // requested hints available as attributes\n stats.userAgentData.highEntropyValues = ua;\n } catch (e) {\n console.error(\"Error getting high entropy user agent Data\", e);\n }\n }\n\n stats.isWebApp =\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (window.navigator as any).standalone ||\n window.matchMedia(\"(display-mode: standalone)\").matches ||\n window.matchMedia(\"(display-mode: fullscreen)\").matches;\n stats = { ...stats, ..._attributes };\n return stats;\n}\n\n/**\n * Send a stat to the API endpoint.\n * @param stats The stat to send.\n * @throws If the API endpoint is not set.\n */\nasync function SendStats(stats: Stats): Promise {\n if (!_APIEndpoint) throw new Error(\"API endpoint not set.\");\n\n const headers: Headers = new Headers();\n headers.append(\"Content-Type\", \"application/json;charset=UTF-8\");\n if (_cgToken) headers.append(\"Authorization\", `Bearer ${_cgToken}`);\n\n await fetch(`${_APIEndpoint}/send_stat/arbitrary`, {\n method: \"POST\",\n headers: headers,\n body: JSON.stringify(await enrichStats(stats)),\n });\n}\n\n/**\n * Send a stat to the API endpoint using an XMLHttpRequest.\n *\n * This is used for the session stats, as fetch makes the browser crash when doing too many requests.\n * @param stats The stat to send.\n */\nasync function sendStatsXhr(stats: Stats): Promise {\n if (!_APIEndpoint) throw new Error(\"API endpoint not set.\");\n\n const xhr = new XMLHttpRequest();\n xhr.open(\"POST\", `${_APIEndpoint}/send_stat/arbitrary`, true);\n xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n if (_cgToken) xhr.setRequestHeader(\"Authorization\", `Bearer ${_cgToken}`);\n xhr.send(JSON.stringify(await enrichStats(stats)));\n}\n\n/**\n * Send arbitrary stats to the API endpoint.\n * @param log_type The log type of the stats.\n * @param data Arbitrary data to send with the stats.\n * @param additional_attributes Additional attributes to send with the stats.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function SendArbitraryStats(\n log_type: string,\n data?: any,\n additional_attributes?: Record\n): Promise {\n let stats: Stats = {\n log_type: log_type,\n };\n stats = { ...stats, ...additional_attributes };\n if (data) stats.data = data;\n await SendStats(stats);\n}\n\n/**\n * Send navigation stats to the API endpoint.\n * @param from The page the user navigated from.\n * @param to The page the user navigated to.\n */\nexport async function SendNavigationStats(from: string, to: string): Promise {\n const stats: NavigationStats = {\n log_type: \"navigation_stat\",\n from,\n to,\n };\n await SendStats(stats);\n}\n\n/**\n * Send end session stats to the API endpoint.\n * @param reason_of_leave The reason the user left the session.\n * @param data Arbitrary data to send with the stats.\n * @param additional_attributes Inner data to send with the stats.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function SendEndSessionStats(\n reason_of_leave: string,\n data?: any,\n additional_attributes?: any\n): Promise {\n let stats: EndSessionStats = {\n log_type: \"client_end_session_stat\",\n reason_of_leave,\n };\n stats = { ...stats, ...additional_attributes };\n if (data) stats.data = data;\n await SendStats(stats);\n}\n\n/**\n * Send WebRTC session stats to the API endpoint.\n *\n * The stats will be sent using an XMLHttpRequest.\n * @param webrtc_session_id The WebRTC session ID.\n * @param network_score The network score.\n * @param webrtc_stats The WebRTC stats.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function SendSessionStats(\n webrtc_session_id: string,\n network_score: number,\n webrtc_stats: any\n): Promise {\n const stats: SessionStats = {\n log_type: \"client_session_stat\",\n webrtc_session_id,\n network_score,\n webrtc_stats,\n };\n await sendStatsXhr(stats);\n}\n\n/**\n * Send speed test stats to the API endpoint.\n * @param speed_test_pass Whether the speed test passed.\n * @param result The result of the speed test.\n */\nexport async function SendSpeedTestStats(speed_test_pass: \"skip\" | \"fail\" | \"pass\", result?: unknown): Promise {\n const stats: SpeedStats = {\n log_type: \"client_speedtest_stat\",\n speed_test_pass,\n result,\n };\n await SendStats(stats);\n}\n\n/**\n * Send a button click stat to the API endpoint.\n * @param location Where the button was clicked.\n * @param button The button that was clicked.\n * @param data Arbitrary data to send with the stats.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function SendButtonClickStats(\n location: string,\n button: string,\n data?: Record\n): Promise {\n await SendArbitraryStats(\"button_click\", { location, button, ...data });\n}\n","import { defineModule } from \"direct-vuex\";\n\nimport { apm, Transaction } from \"@elastic/apm-rum\";\nimport { LocaleMessageObject } from \"vue-i18n\";\nimport sortBy from \"lodash/sortBy\";\n\nimport { moduleActionContext, axiosInstance as axios } from \"@/store/\";\nimport VueI18n from \"@/plugins/i18n\";\n\nimport { Genre } from \"./genres\";\nimport { Publisher } from \"./publishers\";\n\nimport router from \"../../router\";\nimport { UserPermission } from \"./authentication\";\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\nimport { Tag } from \"./tags\";\nimport { RawLocation } from \"vue-router\";\nimport { StreamingMode } from \"./bigscreen\";\n\nlet gamingPageTab: Window | null;\n\ninterface GameLocalizedClientInfo {\n name: string;\n description: string;\n shortDescription: string;\n caregameBonuses: string;\n landingPageTos: string;\n}\n\ninterface BonusLocalizedClientInfo {\n description: string;\n}\n\nenum PegiRating {\n PEGI3 = 3,\n PEGI7 = 7,\n PEGI12 = 12,\n PEGI16 = 16,\n PEGI18 = 18,\n}\n\nenum PegiContentDescriptor {\n BAD_LANGUAGE,\n DISCRIMINATION,\n DRUGS,\n FEAR,\n GAMBLING,\n SEX,\n VIOLENCE,\n IN_GAME_PURCHASES,\n}\n\nexport enum SubscriptionAccess {\n UNKNOWN = \"unknown\",\n FULL = \"full\",\n DISCOVERY = \"discovery\",\n TRIAL = \"trial\",\n VISIBLE = \"visible\",\n}\n\nexport interface Subscription {\n access: SubscriptionAccess;\n type: string;\n endOfSubscriptionDate: Date;\n}\n\nclass Pegi {\n rating!: PegiRating;\n contentDescriptors!: PegiContentDescriptor[];\n}\n\nclass ContentRating {\n pegi!: Pegi;\n}\n\nexport class Bonus {\n icon: string;\n bonusLocalizedInfo: { [key in Locale]: BonusLocalizedClientInfo };\n}\n\nexport enum TriggerEvent {\n END_OF_MATCH = \"end_of_race\",\n}\n\nexport enum TriggerConditionPWA {\n PWA = \"PWA\",\n NOT_PWA = \"NOT_PWA\",\n}\n\nexport enum TriggerOutput {\n POPUP_TUTO_PWA = \"POPUP_TUTO_PWA\",\n POPUP_SHARE = \"POPUP_SHARE\",\n}\n\nexport interface Trigger {\n _id: string;\n\n /**\n * What event triggers the trigger\n */\n event: TriggerEvent;\n\n /**\n * Optional condition for the trigger based on the access type of the highest subscription of the user\n */\n conditionAccess: SubscriptionAccess;\n\n /**\n * Optional condition for the trigger based on the PWA status of the user\n */\n conditionPWA: TriggerConditionPWA;\n\n /**\n * What output the trigger will have\n */\n output: TriggerOutput;\n\n /**\n * Number of times the trigger should be fired for the output to be triggered. 0 will disable.\n */\n interval: number;\n\n /**\n * ax number of times the trigger can be fired. 0 for unlimited.\n */\n max: number;\n\n /**\n * Whether the trigger is enabled or not\n */\n enabled: boolean;\n\n /**\n * Priority of the trigger. Higher priority triggers will be fired first.\n */\n priority: number;\n\n /**\n * Whether the trigger should stop other triggers from being fired.\n */\n stopOtherTriggers: boolean;\n}\n\ninterface LoadingCarouselImage {\n url: string;\n}\n\ninterface BenefitLocalizedInfo {\n title: string;\n description: string;\n}\n\ninterface LandingPageBenefits {\n icon: string;\n benefitLocalizedInfo: { [key in Locale]: BenefitLocalizedInfo };\n}\n\nexport interface Game {\n _id: string;\n appID: string;\n bannerBigNoTitle: string;\n bannerBigWithTitle: string;\n bannerSmall: string;\n homeBannerSmall: string;\n headerVideo: string;\n name: string;\n orientation: string;\n isComingSoon: boolean;\n genre: string;\n tags: string[];\n publisher: string;\n canPlayOnTv: boolean;\n releasedAt: Date;\n contentRating: ContentRating;\n bonuses: Bonus[];\n localizedClientInfo: { [key in Locale]: GameLocalizedClientInfo };\n screenshots: Screenshot[];\n similarGames: string[];\n triggers: Trigger[];\n subscriptionAccess: SubscriptionAccess;\n loadingCarouselImages: LoadingCarouselImage[];\n landingPageBenefits: LandingPageBenefits[];\n}\n\ntype Locale = \"fr\" | \"en\" | string;\n\nenum ScreenshotType {\n IMAGE = \"IMAGE\",\n VIDEO = \"VIDEO\",\n}\n\nexport interface Screenshot {\n url: string;\n type: ScreenshotType;\n thumbnail?: string;\n}\n\nexport function sortGamesByName(games: Game[]): Game[] {\n return sortBy(games, [\"name\"]);\n}\n\nexport function sortGamesByDate(games: Game[]): Game[] {\n return games.slice().sort((a, b) => new Date(b.releasedAt).getTime() - new Date(a.releasedAt).getTime());\n}\n\ninterface GameCache {\n urlRequest: string;\n games: Game[];\n cacheDate: Date;\n}\n\nexport interface GamesState {\n games: Game[];\n favoriteGamesIds: string[];\n favoriteGames: Game[];\n lastPlayedGamesIds: string[];\n lastPlayedGames: Game[];\n subscriptions: Subscription[];\n expiredSubscriptions: Subscription[];\n cache: { [urlRequest: string]: GameCache | undefined };\n}\n\nconst module = defineModule({\n namespaced: true as const,\n state: {\n games: [],\n favoriteGamesIds: [],\n favoriteGames: [],\n lastPlayedGamesIds: [],\n lastPlayedGames: [],\n subscriptions: [],\n expiredSubscriptions: [],\n cache: {},\n } as GamesState,\n getters: {\n getGame: (state) => (appID: string): Game | undefined => state.games.find((g) => g.appID == appID),\n getGameById: (state) => (id: string): Game | undefined => state.games.find((g) => g._id == id),\n gamesSortedAlpha: (state): Game[] => sortGamesByName(state.games),\n gamesSortedDate: (state): Game[] => sortGamesByDate(state.games),\n getMaxTrialPlays: (_state): number => process.env.VUE_APP_MAX_TRIAL_PLAYS || 5,\n getGamesFromCache: (state) => (urlRequest: string): Game[] | undefined => {\n const cachedList = state.cache[urlRequest];\n if (!cachedList) return undefined;\n return cachedList.games;\n },\n /**\n * Returns the highest subscription the user has. FULL > DISCOVERY > TRIAL > VISIBLE\n * If the user has multiple subscriptions of the same type, the one that expires the latest is returned\n */\n getHighestSubscription: (state): Subscription | undefined => {\n // If the user has no subscription, return undefined\n if (state.subscriptions.length == 0) return undefined;\n\n // Take the first subscription\n let highestSub: Subscription | undefined = state.subscriptions[0];\n\n // If the user has only one subscription, return it\n if (state.subscriptions.length == 1) return highestSub;\n\n // Create a rank for each subscription type\n const subRanks = {\n [SubscriptionAccess.FULL]: 3,\n [SubscriptionAccess.DISCOVERY]: 2,\n [SubscriptionAccess.TRIAL]: 1,\n [SubscriptionAccess.VISIBLE]: 0,\n [SubscriptionAccess.UNKNOWN]: -1,\n };\n\n // Iterate over all subscriptions but the first one\n for (const sub of state.subscriptions.slice(1)) {\n // If the current subscription is higher than the highest one, replace it\n if (subRanks[sub.access] > subRanks[highestSub.access]) {\n highestSub = sub;\n continue;\n }\n\n // If the current subscription is of the same type as the highest one\n if (subRanks[sub.access] == subRanks[highestSub.access]) {\n // If the current subscription expires later than the highest one, replace it\n if (sub.endOfSubscriptionDate > highestSub.endOfSubscriptionDate) {\n highestSub = sub;\n }\n }\n }\n\n return highestSub;\n },\n /**\n * Returns the subscription the user has for a specific game.\n * If the user has no subscription for the game, the highest subscription is returned\n * @param game The game to get the subscription for\n * @returns The subscription the user has for the game or the highest subscription if the user has no subscription for the game or undefined if the user has no subscription at all\n */\n getGameSubscription: (state, getters) => (game: Game): SubscriptionAccess | undefined => {\n const gam = state.games.find((g) => g._id == game._id);\n if (gam && game.subscriptionAccess !== SubscriptionAccess.UNKNOWN) return game.subscriptionAccess;\n else if (getters.hasSubscription) return getters.getHighestSubscription.access;\n return undefined;\n },\n hasSubscription: (state): boolean => state.subscriptions.length > 0,\n getHighestExpiredSubscription: (state): Subscription | undefined => {\n // If the user has no subscription, return undefined\n if (state.expiredSubscriptions.length == 0) return undefined;\n\n // Take the first subscription\n let highestSub: Subscription | undefined = state.expiredSubscriptions[0];\n\n // If the user has only one subscription, return it\n if (state.expiredSubscriptions.length == 1) return highestSub;\n\n // Create a rank for each subscription type\n const subRanks = {\n [SubscriptionAccess.FULL]: 3,\n [SubscriptionAccess.DISCOVERY]: 2,\n [SubscriptionAccess.TRIAL]: 1,\n [SubscriptionAccess.VISIBLE]: 0,\n [SubscriptionAccess.UNKNOWN]: -1,\n };\n\n // Iterate over all subscriptions but the first one\n for (const sub of state.expiredSubscriptions.slice(1)) {\n // If the current subscription is higher than the highest one, replace it\n if (subRanks[sub.access] > subRanks[highestSub.access]) {\n highestSub = sub;\n continue;\n }\n\n // If the current subscription is of the same type as the highest one\n if (subRanks[sub.access] == subRanks[highestSub.access]) {\n // If the current subscription expires later than the highest one, replace it\n if (sub.endOfSubscriptionDate > highestSub.endOfSubscriptionDate) {\n highestSub = sub;\n }\n }\n }\n\n return highestSub;\n },\n },\n mutations: {\n ADD_GAMES(state, games: Game[]) {\n // don't add games that already exist\n const newGames = games.filter((g) => g).filter((g) => !state.games.find((g2) => g2._id == g._id));\n // initialize subscriptionAccess to unknown\n newGames.forEach((g) => (g.subscriptionAccess = SubscriptionAccess.UNKNOWN));\n state.games.push(...newGames);\n },\n SET_FAVORITE_GAMES_IDS(state, gameIds: string[]) {\n state.favoriteGamesIds = gameIds;\n },\n\n SET_FAVORITE_GAMES(state, games: Game[]) {\n state.favoriteGames = games;\n },\n SET_LAST_PLAYED_GAMES_IDS(state, gameIds: string[]) {\n state.lastPlayedGamesIds = gameIds;\n },\n SET_LAST_PLAYED_GAMES(state, games: Game[]) {\n state.lastPlayedGames = games;\n },\n ADD_GAME_TO_LAST_PLAYED(state, game: Game) {\n // remove game if already in list\n const index = state.lastPlayedGamesIds.indexOf(game._id);\n if (index > -1) {\n state.lastPlayedGamesIds.splice(index, 1);\n state.lastPlayedGames.splice(index, 1);\n }\n state.lastPlayedGamesIds.unshift(game._id);\n state.lastPlayedGames.unshift(game);\n },\n ADD_GAME_TO_FAVORITES(state, game: Game) {\n state.favoriteGamesIds.push(game._id);\n state.favoriteGames.push(game);\n },\n REMOVE_GAME_FROM_FAVORITES(state, game: Game) {\n state.favoriteGamesIds.splice(state.favoriteGamesIds.indexOf(game._id), 1);\n state.favoriteGames.splice(state.favoriteGames.indexOf(game), 1);\n },\n SET_SUBSCRIPTIONS(state, subscriptions: Subscription[]) {\n state.subscriptions = subscriptions;\n },\n SET_EXPIRED_SUBSCRIPTIONS(state, subscriptions: Subscription[]) {\n state.expiredSubscriptions = subscriptions;\n },\n CACHE_REQUEST(state, payload: { urlRequest: string; games: Game[] }) {\n state.cache[payload.urlRequest] = {\n urlRequest: payload.urlRequest,\n games: payload.games,\n cacheDate: new Date(),\n };\n },\n SET_GAME_SUBCRIPTION(state, payload: { game: Game; access: SubscriptionAccess }) {\n payload.game.subscriptionAccess = payload.access;\n },\n },\n actions: {\n async applyGamesLocales(context, games: Game[]): Promise {\n const { rootDispatch } = moduleActionContext(context, module);\n await rootDispatch.language.init();\n\n games.forEach((game) => {\n if (!game) return;\n const locales: Locale[] = Object.keys(game.localizedClientInfo);\n locales.forEach((locale) => {\n const messages: LocaleMessageObject = {};\n messages[`games.${game._id}.name`] = game?.localizedClientInfo?.[locale]?.name;\n messages[`games.${game._id}.description`] = game?.localizedClientInfo?.[locale]?.description;\n messages[`games.${game._id}.shortDescription`] = game?.localizedClientInfo?.[locale]?.shortDescription;\n messages[`games.${game._id}.caregameBonuses`] = game?.localizedClientInfo?.[locale]?.caregameBonuses || \"\";\n game?.bonuses?.forEach((bonus, index) => {\n messages[`games.${game._id}.bonuses.${index}.description`] = bonus.bonusLocalizedInfo?.[locale]?.description || \"\";\n });\n VueI18n.mergeLocaleMessage(locale, messages);\n });\n });\n },\n async getAllGames(context, force?: boolean): Promise {\n const { dispatch, state, commit } = moduleActionContext(context, module);\n try {\n const data = await dispatch.getGamesByQuery({ query: {}, force });\n commit.ADD_GAMES(data);\n dispatch.applyGamesLocales(data);\n return state.games;\n } catch (error) {\n console.error(error);\n return [];\n }\n },\n async getGamesByQuery(context, payload: { query: Record; force?: boolean }): Promise {\n const { dispatch, commit, getters } = moduleActionContext(context, module);\n try {\n const urlRequest = `/api/v1/games/${JSON.stringify(payload.query)}`;\n const cachedGames = getters.getGamesFromCache(urlRequest);\n if (cachedGames && !payload.force) return cachedGames;\n else {\n const res = await axios.get(`/api/v1/games`, { params: { query: payload.query, target: \"LOBBY\" } });\n commit.CACHE_REQUEST({\n urlRequest: urlRequest,\n games: res.data,\n });\n commit.ADD_GAMES(res.data);\n dispatch.applyGamesLocales(res.data);\n return res.data;\n }\n } catch (error) {\n console.error(error);\n return [];\n }\n },\n async getGamesByIds(context, ids: string[]): Promise {\n const { dispatch, state } = moduleActionContext(context, module);\n\n const gamesToFetch: string[] = [];\n const gamesAlreadyFetched: Game[] = [];\n ids.forEach((id) => {\n const game = state.games.find((g) => g._id == id);\n if (game) gamesAlreadyFetched.push(game);\n else gamesToFetch.push(id);\n });\n\n // if there are no games to fetch, return the games already in the store\n if (gamesToFetch.length == 0) return gamesAlreadyFetched;\n // must do this instead of { $id: { $in: gamesToFetch } } because of a bug in the backend\n const query = gamesToFetch.map((id) => ({ _id: id }));\n try {\n const res = await dispatch.getGamesByQuery({ query: { $or: query } });\n // returns the games fetched as well as the game already fetched\n return [...res, ...gamesAlreadyFetched];\n } catch (error) {\n console.error(error);\n return [];\n }\n },\n async getGameByAppID(context, appID: string): Promise {\n const { dispatch, getters, commit } = moduleActionContext(context, module);\n try {\n const gameInState = getters.getGame(appID);\n if (gameInState !== undefined) return gameInState;\n const res = await axios.get(`/api/v1/games`, {\n params: {\n query: {\n appID,\n },\n },\n });\n\n const game = res.data[0];\n if (!game) return;\n commit.ADD_GAMES([game]);\n dispatch.applyGamesLocales([game]);\n return game;\n } catch (error) {\n console.error(error);\n return undefined;\n }\n },\n async getGamesByGenre(context, genre: Genre): Promise {\n const { dispatch } = moduleActionContext(context, module);\n const res = await dispatch.getGamesByQuery({ query: { genre: genre._id } });\n return res;\n },\n async getGamesByTags(context, tag: Tag): Promise {\n const { dispatch } = moduleActionContext(context, module);\n return await dispatch.getGamesByQuery({ query: {tags: [tag._id] } });\n },\n async getGamesByPublisher(context, publisher: Publisher): Promise {\n const { dispatch } = moduleActionContext(context, module);\n const res = await dispatch.getGamesByQuery({ query: { publisher: publisher._id } });\n return res;\n },\n async getFavoriteGames(context): Promise {\n const { dispatch, commit, state } = moduleActionContext(context, module);\n if (state.favoriteGamesIds.length == 0) return [];\n const res = await dispatch.getGamesByIds(state.favoriteGamesIds);\n const sorted = res.sort((a, b) => {\n const aFavorite = state.favoriteGamesIds.indexOf(a._id);\n const bFavorite = state.favoriteGamesIds.indexOf(b._id);\n return aFavorite - bFavorite;\n });\n commit.SET_FAVORITE_GAMES(sorted);\n return res;\n },\n async getLastPlayedGames(context): Promise {\n const { dispatch, commit, state } = moduleActionContext(context, module);\n if (state.lastPlayedGamesIds.length == 0) return [];\n const res = await dispatch.getGamesByIds(state.lastPlayedGamesIds);\n const sorted = res.sort((a, b) => {\n const aLastPlayed = state.lastPlayedGamesIds.indexOf(a._id);\n const bLastPlayed = state.lastPlayedGamesIds.indexOf(b._id);\n return aLastPlayed - bLastPlayed;\n });\n commit.SET_LAST_PLAYED_GAMES(sorted);\n return res;\n },\n async init(context) {\n const { dispatch, rootDispatch } = moduleActionContext(context, module);\n await dispatch.getAllGames();\n await rootDispatch.genres.getGenres();\n await rootDispatch.publishers.getPublishers();\n await rootDispatch.homeSections.getHomeSections();\n await rootDispatch.gameLists.getGameLists();\n await dispatch.checkAllsubscriptions();\n await dispatch.getExpiredSubscriptions();\n },\n async addToFavorite(context, game: Game) {\n const { commit } = moduleActionContext(context, module);\n try {\n commit.ADD_GAME_TO_FAVORITES(game);\n await axios.post(`/api/v1/favorites/${game._id}`);\n } catch (err) {\n commit.REMOVE_GAME_FROM_FAVORITES(game);\n }\n },\n async removeFromFavorite(context, game: Game) {\n const { commit } = moduleActionContext(context, module);\n try {\n commit.REMOVE_GAME_FROM_FAVORITES(game);\n await axios.delete(`/api/v1/favorites/${game._id}`);\n } catch (err) {\n commit.ADD_GAME_TO_FAVORITES(game);\n }\n },\n\n async checkGameSubscription(context, payload: { game: Game; force?: boolean }): Promise {\n const { commit } = moduleActionContext(context, module);\n if (!payload.force && payload.game.subscriptionAccess !== SubscriptionAccess.UNKNOWN)\n return payload.game.subscriptionAccess;\n const response = await axios.get<{ access: SubscriptionAccess }>(`/api/v1/subscription/${payload.game._id}`);\n commit.SET_GAME_SUBCRIPTION({ game: payload.game, access: response.data.access });\n return response.data.access;\n },\n async checkAllsubscriptions(context): Promise {\n const { state, commit, rootDispatch } = moduleActionContext(context, module);\n const response = await axios.get(`/api/v1/subscription`);\n // if the new subscriptions are different from the current ones, we need to update the home sections\n if (JSON.stringify(state.subscriptions) != JSON.stringify(response.data))\n await rootDispatch.homeSections.getHomeSections(true);\n commit.SET_SUBSCRIPTIONS(response.data);\n return state.subscriptions;\n },\n async getExpiredSubscriptions(context): Promise {\n const { state, commit } = moduleActionContext(context, module);\n const response = await axios.get(`/api/v1/subscription/expired`);\n commit.SET_EXPIRED_SUBSCRIPTIONS(response.data);\n return state.expiredSubscriptions;\n },\n async getRemainingTrialPlays(context, game: Game): Promise {\n const { getters } = moduleActionContext(context, module);\n const tries = localStorage.getItem(`trial_plays_${game.appID}`);\n if (tries != null) return getters.getMaxTrialPlays - parseInt(tries);\n return 0;\n },\n openSubPopup(context) {\n const { dispatch, rootState } = moduleActionContext(context, module);\n\n const clickedSub = apm.startTransaction(\"Clicked-sub-button\", \"usage-tracking\");\n setTimeout(() => {\n clickedSub?.end();\n const isTempAccount = rootState.authentication.user?.tempAccount ?? true;\n const url = isTempAccount ? process.env.VUE_APP_POPUP_URL_SUB_TEMP_ACCOUNT : process.env.VUE_APP_POPUP_URL_SUB;\n\n StatsManager.SendNavigationStats(location.href, url);\n if (/^true$/i.test(process.env.VUE_APP_POPUP_PARTNER_REDIRECT)) {\n location.replace(url);\n return;\n }\n\n const popup = window.open(url, \"_blank\");\n const listener = async (event: MessageEvent): Promise => {\n if (((!event.source as unknown) as Window) === popup) return;\n if (event.data.type === \"subscribe\") {\n let subbed: undefined | Transaction;\n if (event.data.status === \"success\") {\n await dispatch.getAllGames(true);\n await dispatch.checkAllsubscriptions();\n subbed = apm.startTransaction(\"Subbed\", \"usage-tracking\");\n }\n setTimeout(() => {\n popup?.close();\n subbed?.end();\n window.removeEventListener(\"message\", listener);\n }, 10);\n }\n };\n window.addEventListener(\"message\", listener);\n }, 10);\n },\n async playUrl(context, payload: { game: Game; playOnBigScreen: boolean }): Promise {\n const { rootGetters } = moduleActionContext(context, module);\n\n // Create a new URL with the current URL as base\n const url = new URL(\n `/play/?appid=${payload.game.appID}&cgtoken=${rootGetters.authentication.jwt}&eula=true`,\n window.location.href\n );\n if (rootGetters.bigscreen.isBigscreenPaired && payload.playOnBigScreen)\n url.searchParams.append(\"streamingmode\", StreamingMode.BIGSCREEN);\n else url.searchParams.append(\"streamingmode\", StreamingMode.MOBILE);\n // Add all query parameters from the current URL to the new URL\n for (const [key, value] of new URLSearchParams(location.search).entries()) {\n url.searchParams.append(key, value as string);\n }\n return url.href;\n },\n async openPlay(context, payload: { game: Game; playOnBigScreen: boolean }): Promise {\n const { rootGetters, dispatch, commit } = moduleActionContext(context, module);\n const playIframeLocation: RawLocation = { path: `/playiframe/${payload.game.appID}` };\n\n if (payload.playOnBigScreen && rootGetters.bigscreen.isBigscreenPaired) {\n playIframeLocation.query = {\n streamingmode: StreamingMode.BIGSCREEN,\n };\n } else {\n playIframeLocation.query = {\n streamingmode: StreamingMode.MOBILE,\n };\n }\n if (rootGetters.mobile.isWebApp) router.push(playIframeLocation);\n else {\n if (rootGetters.mobile.isiOS) {\n gamingPageTab = window.open(await dispatch.playUrl(payload));\n } else {\n try {\n gamingPageTab?.location.origin;\n gamingPageTab = window.open(await dispatch.playUrl(payload), \"Game\");\n } catch (err) {\n gamingPageTab = window.open(await dispatch.playUrl(payload));\n }\n }\n if (!gamingPageTab) router.push(playIframeLocation);\n }\n\n commit.ADD_GAME_TO_LAST_PLAYED(payload.game);\n },\n async play(context, payload: { game: Game; playOnBigScreen: boolean }): Promise {\n const { state, getters, dispatch, rootGetters, rootCommit, rootDispatch } = moduleActionContext(context, module);\n\n rootCommit.payment.SET_LAST_REQUESTED_GAME(payload.game);\n const highestSub = getters.getHighestSubscription;\n // If the user has at most a subscription VISIBLE, then they can't play\n if (highestSub == null || highestSub.access == SubscriptionAccess.VISIBLE) {\n rootDispatch.authentication.needSubscription();\n return;\n // Otherwise, if the user has more than 1 subscription, we need to check the subscription differently\n } else if (state.subscriptions.length > 1) {\n // check if there is at least one VISIBLE subscription access type\n const atLeastOneVisible = state.subscriptions.some((sub) => sub.access == SubscriptionAccess.VISIBLE);\n\n // If there's at least one VISIBLE subscription, we need to check the subscription for the game specifically\n // If there's no visible subscription, they can play the game\n if (atLeastOneVisible) {\n const gameSub = await dispatch.checkGameSubscription({ game: payload.game });\n if (gameSub == SubscriptionAccess.VISIBLE) {\n rootDispatch.authentication.needSubscription();\n return;\n }\n }\n }\n\n const from = window.location.href;\n const playUrl = await dispatch.playUrl(payload);\n\n let pwaIsInstalled = false;\n if ((navigator as any).getInstalledRelatedApps) {\n const relatedApps = await (navigator as any).getInstalledRelatedApps();\n pwaIsInstalled = relatedApps.length > 0;\n }\n\n const envSkipPWACheckAndroid = /^true$/i.test(process.env.VUE_APP_SKIP_PWA_CHECK_ANDROID);\n const envSkipPWACheckiOS = /^true$/i.test(process.env.VUE_APP_SKIP_PWA_CHECK_IOS);\n const envSkipPWACheckSubAccessString: string = process.env.VUE_APP_SKIP_PWA_CHECK_SUB_ACCESS || \"\";\n // Split the env string into an array of strings\n const envSkipPWACheckSubAccessStringArray = envSkipPWACheckSubAccessString\n .split(\",\")\n // Trim and lowercase each string\n .map((s) => s.trim().toLowerCase());\n\n let envSkipPWACheck = false;\n // If we are on Android and the related env variable is set to true, we skip the PWA check\n if (rootGetters.mobile.isAndroid) envSkipPWACheck = envSkipPWACheckAndroid;\n // Else if we are on iOS and the related env variable is set to true, we skip the PWA check\n else if (rootGetters.mobile.isiOS) envSkipPWACheck = envSkipPWACheckiOS;\n // Else (not Android or iOS), if both env variables are set to true, we skip the PWA check anyway\n else if (envSkipPWACheckAndroid && envSkipPWACheckiOS) envSkipPWACheck = true;\n\n if (\n !envSkipPWACheck &&\n !rootGetters.mobile.isWebApp &&\n !rootGetters.authentication.hasPermission(UserPermission.SKIP_ADD2HOME) &&\n !pwaIsInstalled\n ) {\n if (rootGetters.mobile.isAndroid && rootGetters.mobile.canDeferPWAPrompt) {\n rootCommit.mobile.SHOW_ADD2HOME_ANDROID_INTERCEPT({\n onSkip: async () => {\n dispatch.openPlay(payload);\n StatsManager.SendNavigationStats(from, playUrl);\n },\n });\n } else {\n // Check if the highest subscription access type is in the list of access types to skip the PWA check for\n if (!envSkipPWACheckSubAccessStringArray.includes(highestSub.access)) {\n rootCommit.SHOW_ADD2HOME_TUTO({\n onSkip: async () => {\n dispatch.openPlay(payload);\n StatsManager.SendNavigationStats(from, playUrl);\n },\n });\n } else {\n dispatch.openPlay(payload);\n StatsManager.SendNavigationStats(from, playUrl);\n }\n }\n } else {\n dispatch.openPlay(payload);\n StatsManager.SendNavigationStats(from, playUrl);\n }\n },\n },\n});\n\nexport default module;\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TagScroller.vue?vue&type=style&index=0&id=7e06fc3e&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Categories.vue?vue&type=style&index=0&id=4cc8f67f&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaymentCompletedPopup.vue?vue&type=style&index=0&id=370c8531&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaymentFailedPopup.vue?vue&type=style&index=0&id=0d45174d&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./home_FILL1_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=4d8df3e4&lang=scss&scoped=true&\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"green100\":\"#c8fbd7\",\"green200\":\"#94f7ba\",\"green300\":\"#5ce79f\",\"green400\":\"#33cf8e\",\"green500\":\"#00af77\",\"green600\":\"#009675\",\"green700\":\"#007d6e\",\"green800\":\"#006562\",\"green900\":\"#004d53\",\"green1000\":\"#003f44\",\"purple100\":\"#e7e7f5\",\"purple200\":\"#d0d0eb\",\"purple300\":\"#a2a2c3\",\"purple400\":\"#6b6b88\",\"purple500\":\"#292939\",\"purple600\":\"#1d1d31\",\"purple700\":\"#141429\",\"purple800\":\"#0d0d21\",\"purple900\":\"#07071b\",\"purple1000\":\"#040411\"};","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HomeScroller.vue?vue&type=style&index=0&id=37a785a6&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubscribeBanner.vue?vue&type=style&index=0&id=e84d1b68&lang=scss&scoped=true&\"","import { defineModule } from \"direct-vuex\";\nimport { RawLocation } from \"vue-router\";\nimport { AxiosResponse } from \"axios\";\nimport jwtDecode, { JwtPayload } from \"jwt-decode\";\n\nimport Store, { moduleActionContext, axiosInstance as axios } from \"@/store/\";\nimport Router from \"@/router\";\nimport { SendMessageToServiceWorker, SERVICE_WORKER_OUTGOING_MESSAGE_TYPE } from \"@/store/modules/mobile\";\nimport i18n from \"@/plugins/i18n\";\n\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\nimport { SubscriptionAccess } from \"./games\";\n\nexport enum UserPermission {\n SEE_BASIC_WEBRTC_STATS = \"SEE_BASIC_WEBRTC_STATS\",\n SEE_FULL_WEBRTC_STATS = \"SEE_FULL_WEBRTC_STATS\",\n SKIP_ADD2HOME = \"SKIP_ADD2HOME\",\n SKIP_SPEEDTEST = \"SKIP_SPEEDTEST\",\n BIGSCREEN = \"BIGSCREEN\",\n}\n\nexport interface MeResponse {\n id: string;\n isRegistered: boolean;\n username?: string;\n favoriteGames: string[];\n lastPlayedGames: string[];\n permissions: UserPermission[];\n referralCode: string;\n hasReferrer: boolean;\n createdAt: string;\n gaveAgreement: boolean;\n tempAccount: boolean;\n}\n\nexport interface User {\n id: string;\n uUID?: string;\n username?: string;\n}\n\nexport interface CurrentUser extends User {\n isRegistered: boolean;\n permissions: UserPermission[];\n referralCode: string;\n hasReferrer: boolean;\n createdAt: Date;\n gaveAgreement: boolean;\n tempAccount: boolean;\n}\n\nclass CGToken {\n jwt: string;\n\n constructor(jwt: string) {\n this.jwt = jwt;\n }\n\n get expired(): boolean {\n try {\n const payload = jwtDecode(this.jwt);\n return payload.exp ? payload.exp * 1000 < Date.now() : false;\n } catch (e) {\n return true;\n }\n }\n\n get valid(): boolean {\n try {\n jwtDecode(this.jwt);\n return true;\n } catch (e) {\n return false;\n }\n }\n}\n\nexport interface AuthenticationState {\n user: CurrentUser | null;\n friendList: User[];\n jwt: string | undefined;\n cgtokens: CGToken[];\n showNeedAccessPopup: boolean;\n showNeedPartnerAuthenticationPopup: boolean;\n referralCode: string | undefined;\n}\n\nconst TOKEN_KEY = \"token\";\nconst CGTOKENS_KEY = \"cgtokens\";\nconst CACHE_KEY = \"auth\";\nconst LOCAL_STORAGE_REFERRAL_KEY = \"referral\";\nlet cacheStorage: Cache | undefined;\n\nlet whoamiPromise: Promise> | undefined = undefined;\n\nconst module = defineModule({\n namespaced: true as const,\n state: {\n user: null,\n jwt: undefined,\n cgtokens: [],\n showNeedAccessPopup: false,\n showNeedPartnerAuthenticationPopup: false,\n friendList: [],\n referralCode: undefined,\n } as AuthenticationState,\n getters: {\n isAuthenticated: (state): boolean => !!state.user,\n /**\n * Get the JWT token\n */\n jwt: (state): string | undefined => state.jwt || localStorage.getItem(TOKEN_KEY) || undefined,\n hasPermission: (state) => (permission: UserPermission): boolean =>\n state.user?.permissions.includes(permission) || false,\n isAuthPartner: (_state): boolean => {\n if (!process.env.VUE_APP_POPUP_URL_AUTH) return false;\n return !/^FALSE$/i.test(process.env.VUE_APP_POPUP_URL_AUTH);\n },\n isUrlSubPartner: (_state): boolean => {\n if (!process.env.VUE_APP_POPUP_URL_SUB) return false;\n return !/^FALSE$/i.test(process.env.VUE_APP_POPUP_URL_SUB);\n },\n isOtherSubPartner: (_state): boolean => {\n if (!process.env.VUE_APP_POPUP_HOW_TO_SUB) return false;\n return !/^FALSE$/i.test(process.env.VUE_APP_POPUP_HOW_TO_SUB);\n },\n referralCode: (state): string | undefined =>\n state.referralCode || localStorage.getItem(LOCAL_STORAGE_REFERRAL_KEY) || undefined,\n showSubscribeBanner: (_state): boolean => /^true$/i.test(process.env.VUE_APP_SHOW_SUBSCRIBE_BANNER),\n },\n mutations: {\n SET_JWT(state: AuthenticationState, jwt: string) {\n state.jwt = jwt;\n localStorage.setItem(TOKEN_KEY, jwt);\n StatsManager.setCGToken(jwt);\n },\n ADD_CGTOKEN(state: AuthenticationState, cgtoken: CGToken) {\n // add only new tokens\n if (state.cgtokens.find((t) => t.jwt === cgtoken.jwt)) return;\n // don't add expired and invalid tokens\n if (!cgtoken.valid || cgtoken.expired) return;\n\n state.cgtokens.push(cgtoken);\n\n localStorage.setItem(CGTOKENS_KEY, JSON.stringify(state.cgtokens.map((t) => t.jwt)));\n },\n REMOVE_CGTOKEN(state: AuthenticationState, cgtoken: CGToken) {\n state.cgtokens = state.cgtokens.filter((t) => t.jwt !== cgtoken.jwt);\n\n localStorage.setItem(CGTOKENS_KEY, JSON.stringify(state.cgtokens.map((t) => t.jwt)));\n },\n SET_CGTOKENS(state: AuthenticationState, cgtokens: CGToken[]) {\n // remove expired and invalid tokens\n state.cgtokens = cgtokens.filter((t) => t.valid && !t.expired);\n\n localStorage.setItem(CGTOKENS_KEY, JSON.stringify(state.cgtokens.map((t) => t.jwt)));\n },\n DELETE_JWT(state: AuthenticationState) {\n state.jwt = undefined;\n localStorage.removeItem(TOKEN_KEY);\n cacheStorage?.delete(TOKEN_KEY);\n },\n SET_USER(state: AuthenticationState, user: CurrentUser | null) {\n state.user = user;\n if (user) {\n StatsManager.setUser(user);\n SendMessageToServiceWorker(SERVICE_WORKER_OUTGOING_MESSAGE_TYPE.UPDATE_STATS_INFO, { user_id: user.id });\n }\n },\n SET_SHOW_NEED_ACCESS_POPUP(state: AuthenticationState, show: boolean) {\n state.showNeedAccessPopup = show;\n if (show) StatsManager.SendNavigationStats(location.href, \"NEED_ACCESS_POPUP\");\n else StatsManager.SendNavigationStats(\"NEED_ACCESS_POPUP\", location.href);\n },\n SET_SHOW_NEED_PARTNER_AUTHENTICATION_POPUP(state: AuthenticationState, show: boolean) {\n state.showNeedPartnerAuthenticationPopup = show;\n if (show) StatsManager.SendNavigationStats(location.href, \"NEED_PARTNER_AUTHENTICATION_POPUP\");\n else StatsManager.SendNavigationStats(\"NEED_PARTNER_AUTHENTICATION_POPUP\", location.href);\n },\n SET_USERNAME(state: AuthenticationState, username: string) {\n if (!state.user) return;\n state.user.username = username;\n },\n ADD_FRIENDS(state: AuthenticationState, friends: User[]) {\n // add only new friends\n state.friendList = friends.filter((newFriend) => !state.friendList.find((friend) => friend.id === newFriend.id));\n },\n REMOVE_FRIEND(state: AuthenticationState, friend: User) {\n state.friendList = state.friendList.filter((f) => f.id !== friend.id);\n },\n SET_REFERRAL_CODE(state: AuthenticationState, referralCode: string) {\n state.referralCode = referralCode;\n localStorage.setItem(LOCAL_STORAGE_REFERRAL_KEY, referralCode);\n },\n GIVE_AGREEMENT(state: AuthenticationState) {\n if (!state.user) return;\n state.user.gaveAgreement = true;\n },\n },\n actions: {\n logout(context) {\n const { state, getters, commit } = moduleActionContext(context, module);\n if (getters.jwt) commit.REMOVE_CGTOKEN(new CGToken(getters.jwt));\n cacheStorage?.put(CGTOKENS_KEY, new Response(JSON.stringify(state.cgtokens.map((t) => t.jwt))));\n\n commit.SET_USER(null);\n commit.DELETE_JWT();\n },\n async createTempAccount(context) {\n const { getters, dispatch } = moduleActionContext(context, module);\n try {\n const body: any = {};\n if (getters.referralCode) body.referralCode = getters.referralCode;\n const urlParams: { [key: string]: string } = {};\n // Get the current URK params, and transform them into a key-value object\n for (const [key, value] of new URLSearchParams(window.location.search).entries()) urlParams[key] = value;\n body.urlParams = urlParams;\n const response = await axios.post<{ token: string }>(`/auth/user/temp`, body);\n await dispatch.setJWT(response.data.token);\n await dispatch.whoami(true);\n } catch (e) {\n console.error(e);\n }\n },\n async tempRegister(context, { login, password, username }: { login: string; password: string; username?: string }) {\n const { dispatch } = moduleActionContext(context, module);\n try {\n const response = await axios.post<{ token: string }>(`/auth/user/temp/register`, { login, password, username });\n await dispatch.setJWT(response.data.token);\n await dispatch.whoami(true);\n StatsManager.SendArbitraryStats(\"auth\", { event: \"register\", status: \"success\" });\n } catch (e) {\n StatsManager.SendArbitraryStats(\"auth\", { event: \"register\", status: \"fail\" });\n console.error(e);\n }\n },\n async login(context, { login, password }: { login: string; password: string }): Promise {\n const { dispatch, rootDispatch } = moduleActionContext(context, module);\n try {\n const response = await axios.post<{ token: string }>(`/auth/user/login`, { login, password });\n await dispatch.setJWT(response.data.token);\n await dispatch.whoami(true);\n await rootDispatch.games.checkAllsubscriptions();\n StatsManager.SendArbitraryStats(\"auth\", { event: \"login\", status: \"success\" });\n return true;\n } catch (e) {\n StatsManager.SendArbitraryStats(\"auth\", { event: \"login\", status: \"fail\" });\n console.error(e);\n return false;\n }\n },\n async loginValidity(_context, { login }: { login: string }): Promise {\n try {\n await axios.post(`/auth/user/login/validity`, { login });\n return true;\n } catch (e) {\n console.error(e);\n return false;\n }\n },\n async usernameValidity(_context, { username }: { username: string }): Promise {\n try {\n await axios.post(`/auth/user/username/validity`, { username });\n return true;\n } catch (e) {\n console.error(e);\n return false;\n }\n },\n async whoami(context, force?: boolean): Promise | undefined> {\n const { state, commit, getters, dispatch, rootCommit, rootDispatch } = moduleActionContext(context, module);\n\n await dispatch.initCacheStorage();\n if (!getters.jwt) return;\n try {\n if (whoamiPromise && !force) return whoamiPromise;\n\n // check if current cgtoken is expired, or invalid, and if yes don't even try it\n const currentCGToken = new CGToken(getters.jwt);\n if (currentCGToken.expired || !currentCGToken.valid) {\n throw { message: \"Expired or Invalid token\", response: { status: 403 } };\n }\n\n await (whoamiPromise = axios.get(`/auth/user/me`));\n const response = await whoamiPromise;\n commit.SET_USER({\n id: response.data.id,\n isRegistered: response.data.isRegistered,\n username: response.data.username,\n permissions: response.data.permissions,\n referralCode: response.data.referralCode,\n hasReferrer: response.data.hasReferrer,\n createdAt: new Date(response.data.createdAt),\n gaveAgreement: response.data.gaveAgreement,\n tempAccount: response.data.tempAccount,\n });\n rootCommit.games.SET_FAVORITE_GAMES_IDS(response.data.favoriteGames);\n rootDispatch.games.getFavoriteGames();\n rootCommit.games.SET_LAST_PLAYED_GAMES_IDS(response.data.lastPlayedGames);\n rootDispatch.games.getLastPlayedGames();\n dispatch.getFriends();\n\n // wait 5 seconds\n // await new Promise((resolve) => setTimeout(resolve, 5000));\n\n const accountAge = new Date().getTime() - new Date(response.data.createdAt).getTime();\n const maxAgeForReferrer = 1000 * 60 * 60 * 24 * 7; // 7 days\n // if the user has no referrer and is not too old\n if (!state.user?.hasReferrer && accountAge < maxAgeForReferrer) {\n if (getters.referralCode) {\n try {\n dispatch.updateReferrer();\n } catch (e) {\n console.error(e);\n }\n }\n }\n } catch (e) {\n if (e.response.status === 403) {\n dispatch.logout();\n whoamiPromise = undefined;\n // use the cgtokens to try to login again\n if (state.cgtokens.length > 0) {\n const latestToken = state.cgtokens[state.cgtokens.length - 1];\n commit.SET_JWT(latestToken.jwt);\n await dispatch.whoami(true);\n }\n }\n }\n return;\n },\n async initCacheStorage(context): Promise {\n const { state, commit } = moduleActionContext(context, module);\n\n const cgTokens = localStorage.getItem(CGTOKENS_KEY);\n if (cgTokens && state.cgtokens.length === 0) {\n commit.SET_CGTOKENS(JSON.parse(cgTokens).map((t: string) => new CGToken(t)));\n }\n\n if (!window.caches) return;\n if (!cacheStorage) cacheStorage = await caches.open(CACHE_KEY);\n const cacheResponse = await cacheStorage.match(TOKEN_KEY);\n if (cacheResponse) {\n const token: string = await cacheResponse.json();\n // Don't commit if the token is already set\n if (!state.jwt) commit.SET_JWT(token);\n }\n const cacheResponse2 = await cacheStorage.match(CGTOKENS_KEY);\n if (cacheResponse2) {\n const cgtokens: string[] = await cacheResponse2.json();\n // Don't commit if the cgtokens are already set\n if (state.cgtokens.length === 0) {\n commit.SET_CGTOKENS(cgtokens.map((t: string) => new CGToken(t)));\n }\n }\n },\n async setJWT(context, jwt: string) {\n const { state, getters, commit, dispatch } = moduleActionContext(context, module);\n\n // if there's already a token and it's not the same\n if (getters.jwt && getters.jwt !== jwt) {\n // call the new function to convert the account\n const result = await dispatch.convertAccount(jwt);\n // if the account was converted, we remove the new token from the url and return without setting it\n if (result) {\n // remove the token from the url without reloading the page\n const currentURL = new URL(window.location.href);\n currentURL.searchParams.delete(\"cgtoken\");\n const newRoute: RawLocation = { path: location.pathname, query: Object.fromEntries(currentURL.searchParams) };\n Router.replace(newRoute);\n // return without setting the token\n return;\n }\n // if the account was not converted, we continue and set the token as usual\n }\n\n await dispatch.initCacheStorage();\n commit.SET_JWT(jwt);\n commit.ADD_CGTOKEN(new CGToken(jwt));\n await cacheStorage?.put(TOKEN_KEY, new Response(JSON.stringify(jwt)));\n await cacheStorage?.put(CGTOKENS_KEY, new Response(JSON.stringify(state.cgtokens.map((t) => t.jwt))));\n },\n async updateUsername(context, username: string) {\n const { commit } = moduleActionContext(context, module);\n try {\n await (whoamiPromise = axios.post(`/auth/user/updateUsername`, { username: username }));\n commit.SET_USERNAME(username);\n } catch (e) {\n console.error(e);\n }\n },\n async getFriends(context) {\n const { commit } = moduleActionContext(context, module);\n try {\n const response = await axios.get<\n {\n _id: string;\n username: string;\n uUID: string;\n }[]\n >(`/api/v1/friends`);\n const users = [];\n for (const user of response.data) {\n users.push({\n id: user._id,\n username: user.username,\n uUID: user.uUID,\n });\n }\n commit.ADD_FRIENDS(users);\n } catch (e) {\n console.error(e);\n }\n },\n async addFriend(context, user: User) {\n const { commit } = moduleActionContext(context, module);\n try {\n await axios.post(`/api/v1/friends/${user.id}`);\n commit.ADD_FRIENDS([user]);\n } catch (e) {\n console.error(e);\n }\n },\n async removeFriend(context, user: User) {\n const { commit } = moduleActionContext(context, module);\n try {\n await axios.delete(`/api/v1/friends/${user.id}`);\n commit.REMOVE_FRIEND(user);\n } catch (e) {\n console.error(e);\n }\n },\n async needAccess(context) {\n const { commit, dispatch, getters } = moduleActionContext(context, module);\n const partnerAccess = getters.isAuthPartner;\n if (partnerAccess) {\n const onClose: () => void = () => {\n if (getters.isAuthenticated) {\n commit.SET_SHOW_NEED_PARTNER_AUTHENTICATION_POPUP(false);\n Router.replace(\"/\");\n } else dispatch.openAuthPopup({ onClose });\n };\n const popupOpened = await dispatch.openAuthPopup({ onClose });\n if (!popupOpened) commit.SET_SHOW_NEED_PARTNER_AUTHENTICATION_POPUP(true);\n } else {\n commit.SET_SHOW_NEED_ACCESS_POPUP(true);\n }\n },\n async needSubscription(context) {\n const { commit, getters, rootDispatch, rootCommit, rootGetters } = moduleActionContext(context, module);\n const partnerUrlAccess = getters.isUrlSubPartner;\n const partnerOtherAccess = getters.isOtherSubPartner;\n\n // Use CG Payment is the user is a temp account or a registered (has CG login/password) user.\n // If the user is none of these, it's a user coming from a partner and they will subscribe through the partner.\n if (rootGetters.payment.enabled && rootGetters.payment.shouldUseCGPayement) {\n rootCommit.payment.SHOW_PAY_POPUP();\n } else if (partnerUrlAccess) {\n await rootDispatch.games.openSubPopup();\n } else if (partnerOtherAccess) {\n const highestExpiredSub = rootGetters.games.getHighestExpiredSubscription;\n if (highestExpiredSub?.access === SubscriptionAccess.FULL) {\n rootCommit.mobile.SHOW_RENEW_TUTO_POPUP();\n } else {\n rootCommit.mobile.SHOW_SUBSCRIBE_TUTO_POPUP();\n }\n } else {\n commit.SET_SHOW_NEED_ACCESS_POPUP(true);\n }\n },\n async setReferrer(context, referralCode: string) {\n const { commit } = moduleActionContext(context, module);\n commit.SET_REFERRAL_CODE(referralCode);\n },\n async updateReferrer(context) {\n const { getters } = moduleActionContext(context, module);\n if (!getters.referralCode) return;\n await axios.post(`/auth/user/setReferrer`, { referralCode: getters.referralCode });\n },\n async giveAgreement(context) {\n const { commit } = moduleActionContext(context, module);\n try {\n await axios.post(`/auth/user/giveAgreement`);\n commit.GIVE_AGREEMENT();\n } catch (e) {\n console.error(e);\n }\n },\n async convertAccount(_context, token): Promise {\n try {\n await axios.patch(`/auth/user/convertAccount`, { token });\n return true;\n } catch (e) {\n console.error(e);\n return false;\n }\n },\n openAuthPopup(\n context,\n {\n onCGToken,\n onClose,\n onError,\n }: { onCGToken?: (cgToken: string) => void; onClose?: () => void; onError?: (error: string) => void }\n ): Window | null {\n onPopupCGToken = onCGToken;\n onPopupClose = onClose;\n onPopupError = onError;\n\n StatsManager.SendNavigationStats(location.href, process.env.VUE_APP_POPUP_URL_AUTH);\n if (/^true$/i.test(process.env.VUE_APP_POPUP_PARTNER_REDIRECT)) {\n location.replace(process.env.VUE_APP_POPUP_URL_AUTH);\n return null;\n }\n\n const popup = window.open(process.env.VUE_APP_POPUP_URL_AUTH);\n\n checkPopupClose(popup);\n return popup;\n },\n openUnsubPopup(\n context,\n onSuccess?: (success: boolean) => void,\n onClose?: () => void,\n onError?: (error: string) => void\n ): Window | null {\n onPopupSubUnsubSuccess = onSuccess;\n onPopupClose = onClose;\n onPopupError = onError;\n\n StatsManager.SendNavigationStats(location.href, process.env.VUE_APP_POPUP_URL_UNSUB);\n if (/^true$/i.test(process.env.VUE_APP_POPUP_PARTNER_REDIRECT)) {\n location.replace(process.env.VUE_APP_POPUP_URL_UNSUB);\n return null;\n }\n\n const popup = window.open(process.env.VUE_APP_POPUP_URL_UNSUB);\n\n checkPopupClose(popup);\n return popup;\n },\n },\n});\n\nfunction checkPopupClose(popup: Window | null): void {\n const popupInterval = setInterval(() => {\n if (popup?.closed) {\n if (!popupClosedProgrammatically) onPopupClose?.();\n clearInterval(popupInterval);\n }\n }, 100);\n}\n\nlet onPopupCGToken: ((cgToken: string) => void) | undefined = undefined;\nlet onPopupError: ((error: string) => void) | undefined = undefined;\nlet onPopupSubUnsubSuccess: ((success: boolean) => void) | undefined = undefined;\nlet onPopupClose: (() => void) | undefined = undefined;\nlet popupClosedProgrammatically = false;\n\nwindow.addEventListener(\n \"message\",\n async (event: MessageEvent) => {\n const authorizedOrigins = (process.env.VUE_APP_POPUP_URL_ORIGIN as string).split(\";\");\n\n if (authorizedOrigins.every((origin) => !new RegExp(event.origin).test(origin))) return;\n\n // An error has occured\n if (event.data.error) {\n popupClosedProgrammatically = true;\n (event.source as Window).close();\n\n if (event.data.error === \"auth_fail\") {\n console.error(event.data.error);\n Store.commit.SHOW_ALERT({\n text: i18n.t(\"popups.errors.auth_fail.text\").toString(),\n onClose: () =>\n Store.dispatch.authentication.openAuthPopup({\n onCGToken: onPopupCGToken,\n onClose: onPopupClose,\n onError: onPopupError,\n }),\n });\n return;\n }\n\n console.error(event.data.error);\n onPopupError?.(event.data.error);\n onPopupClose?.();\n return;\n }\n\n // We received the token\n if (event.data.cgtoken) {\n popupClosedProgrammatically = true;\n (event.source as Window).close();\n\n await Store.dispatch.authentication.setJWT(event.data.cgtoken);\n await Store.dispatch.authentication.whoami(true);\n await Store.dispatch.games.init();\n\n onPopupCGToken?.(event.data.cgtoken);\n onPopupClose?.();\n return;\n }\n\n if (event.data.success !== undefined) {\n popupClosedProgrammatically = true;\n (event.source as Window).close();\n\n await Store.dispatch.games.init();\n\n onPopupSubUnsubSuccess?.(event.data.success);\n onPopupClose?.();\n }\n },\n false\n);\n\nexport default module;\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./play_circle_FILL1_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=65b4a04a&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/incomp_browser.b9ea3243.png\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayButton.vue?vue&type=style&index=0&id=bfd8de7a&lang=scss&scoped=true&\"","import { defineModule } from \"direct-vuex\";\n\nimport { LocaleMessageObject } from \"vue-i18n\";\n\nimport { moduleActionContext, axiosInstance as axios } from \"@/store/\";\nimport VueI18n from \"@/plugins/i18n\";\nimport { AxiosResponse } from \"axios\";\n\ntype Locale = \"fr\" | \"en\" | string;\n\ninterface HomeSectionLocalizedClientInfo {\n title?: string;\n subTitle?: string;\n}\n\nexport interface HomeSectionGame {\n game: string;\n order: number;\n}\n\nexport interface HomeSectionListedCategory {\n title: string;\n order: number;\n link: string;\n image: string;\n colorGradient1?: string;\n colorGradient2?: string;\n colorGradient3?: string;\n}\n\nexport enum Type {\n OLD = \"OLD\",\n BIG = \"BIG\",\n LAST_PLAYED = \"LAST_PLAYED\",\n FAVORITE = \"FAVORITE\",\n NORMAL = \"NORMAL\",\n CATEGORY_SINGLE = \"CATEGORY_SINGLE\",\n CATEGORY_LIST = \"CATEGORY_LIST\",\n GAME_SINGLE = \"GAME_SINGLE\",\n GAME_VIDEO = \"GAME_VIDEO\",\n}\n\nexport interface HomeSection {\n _id: string;\n name: string;\n link?: string;\n games: HomeSectionGame[];\n type: Type;\n localizedClientInfo: { [key in Locale]: HomeSectionLocalizedClientInfo };\n image?: string;\n showPlayButton?: boolean;\n}\n\nexport interface HomeSectionCategoryList extends HomeSection {\n listedCategories: HomeSectionListedCategory[];\n}\n\nconst singleGameSections: Type[] = [Type.GAME_SINGLE, Type.GAME_VIDEO];\n\nlet homeSectionsPromise: Promise> | undefined = undefined;\n\nexport interface HomeSectionsState {\n homeSections: HomeSection[];\n}\n\nconst module = defineModule({\n namespaced: true as const,\n state: {\n homeSections: [\n { _id: \"0\", name: \"$fake\", link: \"\", games: [], localizedClientInfo: { fr: { title: \"\" } }, type: Type.NORMAL },\n { _id: \"1\", name: \"$fake\", link: \"\", games: [], localizedClientInfo: { fr: { title: \"\" } }, type: Type.NORMAL },\n { _id: \"2\", name: \"$fake\", link: \"\", games: [], localizedClientInfo: { fr: { title: \"\" } }, type: Type.NORMAL },\n { _id: \"3\", name: \"$fake\", link: \"\", games: [], localizedClientInfo: { fr: { title: \"\" } }, type: Type.NORMAL },\n { _id: \"4\", name: \"$fake\", link: \"\", games: [], localizedClientInfo: { fr: { title: \"\" } }, type: Type.NORMAL },\n { _id: \"5\", name: \"$fake\", link: \"\", games: [], localizedClientInfo: { fr: { title: \"\" } }, type: Type.NORMAL },\n { _id: \"6\", name: \"$fake\", link: \"\", games: [], localizedClientInfo: { fr: { title: \"\" } }, type: Type.NORMAL },\n { _id: \"7\", name: \"$fake\", link: \"\", games: [], localizedClientInfo: { fr: { title: \"\" } }, type: Type.NORMAL },\n { _id: \"8\", name: \"$fake\", link: \"\", games: [], localizedClientInfo: { fr: { title: \"\" } }, type: Type.NORMAL },\n { _id: \"9\", name: \"$fake\", link: \"\", games: [], localizedClientInfo: { fr: { title: \"\" } }, type: Type.NORMAL },\n ],\n } as HomeSectionsState,\n mutations: {\n SET_HOME_SECTIONS(state, homeSections: HomeSection[]) {\n const _homeSections = homeSections.slice();\n // If the home section is a single game, we need to put the game in the games array\n // We do that because it's simplier to always use an array of games\n for (const homeSection of _homeSections) {\n if (singleGameSections.includes(homeSection.type)) {\n const game = (homeSection as any).game;\n if (game) homeSection.games = [{ game, order: 0 }];\n }\n }\n state.homeSections = _homeSections;\n },\n },\n actions: {\n async getHomeSections(context, force?: boolean): Promise {\n const { rootGetters, state, commit } = moduleActionContext(context, module);\n try {\n // if we are not authenticated, we don't need to fetch the home sections\n if (!rootGetters.authentication.isAuthenticated) return state.homeSections;\n if (!force && state.homeSections.length > 0 && state.homeSections[0].games.length > 0)\n return state.homeSections;\n if (!homeSectionsPromise || force) homeSectionsPromise = axios.get(`/api/v1/homesections`);\n const { data } = await homeSectionsPromise;\n commit.SET_HOME_SECTIONS(data);\n const locales: Locale[] = rootGetters.language.availableLanguageCodes;\n locales.forEach((locale) => {\n const messages: LocaleMessageObject = {};\n state.homeSections.forEach((a) => {\n const title = a?.localizedClientInfo?.[locale]?.title;\n if (title) messages[`homeSections.${a._id}.title`] = title;\n const subTitle = a?.localizedClientInfo?.[locale]?.subTitle;\n if (subTitle) messages[`homeSections.${a._id}.subTitle`] = subTitle;\n });\n VueI18n.mergeLocaleMessage(locale, messages);\n });\n return state.homeSections;\n } catch (error) {\n console.error(error);\n return state.homeSections;\n }\n },\n },\n});\n\nexport default module;\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./keyboard_arrow_down_FILL0_wght0_GRAD0_opszNaN.vue?vue&type=style&index=0&id=5ef5f9ab&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnterCodePopup.vue?vue&type=style&index=0&id=49afccd0&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OGLTapBar.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./more_horiz_FILL0_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=437f224d&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Add2HomeTuto.vue?vue&type=style&index=0&id=61ad20b7&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OneGameProfile.vue?vue&type=style&index=0&id=e8721862&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HorizontalScroll.vue?vue&type=style&index=0&id=24d60b1e&scoped=true&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OneGameLobby.vue?vue&type=style&index=0&id=19e7239c&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegisterForm.vue?vue&type=style&index=0&id=1d9ca7a3&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./arrow_back_ios_white_24dp.vue?vue&type=style&index=0&id=bdda68ce&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PayPopup.vue?vue&type=style&index=0&id=c0102fac&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"container no-gutters\",class:{ 'non-subscribed': !_vm.subscribed },attrs:{\"fluid\":\"\"}},[(_vm.$store.direct.state.mobile.showTvCodePopup)?_c('EnterCodePopup',{attrs:{\"game\":_vm.game}}):_vm._e(),_c('div',{staticClass:\"header\"},[_c('CardGameVideo',{staticClass:\"cardvideo\",attrs:{\"game\":_vm.game,\"disableLink\":\"\"}},[_c('PlayButton',{staticClass:\"landscapeOnly\",attrs:{\"game\":_vm.game,\"height\":42,\"stretch\":true}})],1),_c('div',{staticClass:\"text\"},[_c('div',{staticClass:\"third\"},[_c('GameTags',{attrs:{\"game\":_vm.game}}),_c('span',{staticClass:\"pegi\"},[_vm._v(\" \"+_vm._s(_vm.contentRating))]),_c('div',{staticClass:\"actions landscapeOnly\"},[_c('ShareButton',{attrs:{\"game\":_vm.game}})],1)],1),(_vm.game.canPlayOnTv && _vm.hasBigScreenPermission)?_c('div',{staticClass:\"actions landscapeOnly\"},[_c('button',{staticClass:\"play-on-tv\",attrs:{\"elevation\":\"0\"},on:{\"click\":_vm.playOnTv}},[_c('v-icon',[_vm._v(\"$tvButton\")]),_c('div',[_vm._v(_vm._s(_vm.$t(\"game.buttons.playOnTv\")))])],1)]):_vm._e()])],1),_c('CoolLightBox',{attrs:{\"items\":_vm.screenshots,\"index\":_vm.currentSShot,\"effect\":\"fade\",\"slideshow\":false,\"gallery\":false,\"closeOnClickOutsideMobile\":true,\"srcName\":\"url\",\"srcThumb\":\"thumbnail\"},on:{\"close\":function($event){_vm.currentSShot = null},\"on-open\":function($event){return _vm.lightBoxOpened()}}}),_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"actions portraitOnly\"},[_c('PlayButton',{attrs:{\"game\":_vm.game,\"height\":42,\"stretch\":true}}),_c('ShareButton',{attrs:{\"game\":_vm.game}})],1),(!_vm.noActiveSub && _vm.game.canPlayOnTv && _vm.hasBigScreenPermission)?_c('div',{staticClass:\"actions portraitOnly\"},[_c('button',{staticClass:\"play-on-tv\",attrs:{\"elevation\":\"0\"},on:{\"click\":_vm.playOnTv}},[_c('v-icon',[_vm._v(\"$tvButton\")]),_c('div',[_vm._v(_vm._s(_vm.$t(\"game.buttons.playOnTv\")))])],1)]):_vm._e(),(_vm.game.bonuses && _vm.game.bonuses.length > 0)?_c('div',{staticClass:\"descriptionSection section\"},[_c('div',{staticClass:\"title\",staticStyle:{\"display\":\"flex\",\"gap\":\"6px\",\"align-items\":\"center\"}},[_c('v-icon',[_vm._v(\"$bonusIcon\")]),_c('div',[_vm._v(_vm._s(_vm.$t(\"game.sections.bonuses.sectionTitle\")))])],1),_c('BonusScroller',{attrs:{\"game\":_vm.game}})],1):(_vm.$t((\"games.\" + (_vm.game._id) + \".caregameBonuses\")).length)?_c('div',{staticClass:\"descriptionSection section\"},[_c('div',{staticClass:\"title\",staticStyle:{\"display\":\"flex\",\"gap\":\"6px\",\"align-items\":\"center\"}},[_c('v-icon',[_vm._v(\"$bonusIcon\")]),_c('div',[_vm._v(_vm._s(_vm.$t(\"game.sections.bonuses.sectionTitle\")))])],1),_c('div',{staticClass:\"description short\",domProps:{\"innerHTML\":_vm._s(_vm.$t((\"games.\" + (_vm.game._id) + \".caregameBonuses\")))}})]):_vm._e(),(_vm.screenshots.length > 0)?_c('HomeScroller',{staticClass:\"screenshotsSection section\",attrs:{\"title\":_vm.$t('game.sections.gallery.sectionTitle')}},_vm._l((_vm.screenshots),function(screenshot,i){return _c('CardScreenshot',{key:i,class:{ portrait: _vm.isPortrait },attrs:{\"image\":screenshot.thumbnail || screenshot.url,\"video\":screenshot.type === 'VIDEO'},on:{\"click\":function($event){return _vm.clickedScreenshot(screenshot, i)}}})}),1):_vm._e(),_c('div',{staticClass:\"descriptionSection section\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t(\"game.sections.description.sectionTitle\")))]),_c('div',{staticClass:\"description\",class:{ short: !_vm.fullDescription },domProps:{\"innerHTML\":_vm._s(_vm.$t((\"games.\" + (_vm.game._id) + \".description\")))}}),_c('div',{staticClass:\"seeMoreLess\"},[_c('v-btn',{attrs:{\"text\":\"\",\"ripple\":false},on:{\"click\":function($event){_vm.fullDescription = !_vm.fullDescription}}},[(!_vm.fullDescription)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(\"game.sections.description.showMore\"))+\" \"),_c('v-icon',[_vm._v(\"$showMore\")])],1):_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(\"game.sections.description.showLess\"))+\" \"),_c('v-icon',[_vm._v(\"$showLess\")])],1)])],1)]),_c('div',{staticClass:\"separator\"}),_c('div',{staticClass:\"data section\"},_vm._l((_vm.info),function(i){return _c('div',{key:i.key,staticClass:\"dataline\"},[_c('div',{staticClass:\"key\"},[_vm._v(_vm._s(i.key))]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(i.value))])])}),0),(_vm.similarGames.length > 0)?_c('div',{staticClass:\"separator\"}):_vm._e(),(_vm.similarGames.length > 0)?_c('HomeScroller',{staticClass:\"section\",attrs:{\"title\":_vm.$t(\"game.sections.morelike.sectionTitle\", { game: _vm.$t((\"games.\" + (_vm.game._id) + \".name\")) })}},_vm._l((_vm.similarGames),function(game){return _c('CardGameL',{key:game._id,attrs:{\"game\":game}})}),1):_vm._e()],1),_c('v-btn',{staticClass:\"back\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.$router.back()}}},[_c('v-icon',[_vm._v(\"$backButton\")])],1),_c('TapBar',{attrs:{\"bordered\":\"\",\"showSubBanner\":_vm.$store.direct.getters.authentication.showSubscribeBanner}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-img',{staticClass:\"card\",attrs:{\"src\":_vm.image},on:{\"click\":function($event){return _vm.$emit('click')}},scopedSlots:_vm._u([{key:\"placeholder\",fn:function(){return [_c('v-skeleton-loader',{attrs:{\"type\":\"image\",\"min-width\":\"154\"}})]},proxy:true}])},[(_vm.video)?_c('v-icon',[_vm._v(\"$playCircleButton\")]):_vm._e(),_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\n\n@Component\nexport default class CardScreenShot extends Vue {\n @Prop(String) readonly image: string;\n\n @Prop(Boolean) readonly video: boolean;\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardScreenshot.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardScreenshot.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CardScreenshot.vue?vue&type=template&id=cb2a7c9e&scoped=true&\"\nimport script from \"./CardScreenshot.vue?vue&type=script&lang=ts&\"\nexport * from \"./CardScreenshot.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CardScreenshot.vue?vue&type=style&index=0&id=cb2a7c9e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cb2a7c9e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VIcon,VImg,VSkeletonLoader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.loaded)?_c('router-link',{attrs:{\"to\":_vm.to}},[_c('CardL',{attrs:{\"image\":_vm.game.bannerSmall}},[(_vm.showFavoriteButton)?_c('v-btn',{staticClass:\"favorite\",attrs:{\"min-width\":0},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.toggleFavorite.apply(null, arguments)}}},[(_vm.favorite)?_c('v-icon',{staticClass:\"fav-icon toggled\"},[_vm._v(\"$favoriteIcon\")]):_c('v-icon',{staticClass:\"fav-icon\"},[_vm._v(\"$unFavoriteIcon\")])],1):_vm._e(),(_vm.showPlayButton)?_c('v-btn',{staticClass:\"playBtn\",attrs:{\"fab\":\"\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.clickPlayButton.apply(null, arguments)}}},[_c('v-icon',[_vm._v(\"$playButton\")])],1):_vm._e()],1)],1):_c('v-skeleton-loader',{staticClass:\"card\",attrs:{\"type\":\"image\",\"min-width\":\"154\",\"height\":\"126\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\nimport { Game } from \"@/store/modules/games\";\n\n@Component\nexport default class CardGame extends Vue {\n @Prop(Object) readonly game: Game;\n\n get loaded(): boolean {\n return !!this.game;\n }\n\n get to(): string {\n return `/game/${this.game.appID}`;\n }\n}\n","var render, staticRenderFns\nimport script from \"./CardGame.vue?vue&type=script&lang=ts&\"\nexport * from \"./CardGame.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardGame.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardGame.vue?vue&type=script&lang=ts&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-img',{staticClass:\"card\",attrs:{\"src\":_vm.image},on:{\"click\":function($event){return _vm.$emit('click')}},scopedSlots:_vm._u([{key:\"placeholder\",fn:function(){return [_c('v-skeleton-loader',{attrs:{\"type\":\"image\",\"min-width\":\"154\"}})]},proxy:true}])},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\n\n@Component\nexport default class CardL extends Vue {\n @Prop(String) readonly image: string;\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardL.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardL.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CardL.vue?vue&type=template&id=d5737d46&scoped=true&\"\nimport script from \"./CardL.vue?vue&type=script&lang=ts&\"\nexport * from \"./CardL.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CardL.vue?vue&type=style&index=0&id=d5737d46&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d5737d46\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VImg,VSkeletonLoader})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop } from \"vue-property-decorator\";\nimport CardGame from \"./CardGame.vue\";\nimport CardL from \"./CardL.vue\";\n\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\n\n@Component({\n components: {\n CardL,\n },\n})\nexport default class CardGameL extends CardGame {\n @Prop({ type: Boolean, default: false }) showPlayButton: boolean;\n @Prop({ type: Boolean, default: false }) showFavoriteButton: boolean;\n\n get favorite(): boolean {\n if (!this.game) return false;\n return this.$store.direct.state.games.favoriteGamesIds.includes(this.game._id);\n }\n\n async toggleFavorite(): Promise {\n \n if (!this.game) return;\n if (this.favorite) await this.$store.direct.dispatch.games.removeFromFavorite(this.game);\n else await this.$store.direct.dispatch.games.addToFavorite(this.game);\n StatsManager.SendButtonClickStats(location.href, \"favorite\", { newValue: !this.favorite });\n }\n\n clickPlayButton(): void {\n StatsManager.SendButtonClickStats(location.href, \"play\", {\n game: {\n id: this.game._id,\n name: this.game.name,\n appID: this.game.appID,\n },\n });\n\n if (!this.$store.direct.getters.mobile.isBrowserValid) {\n this.$store.direct.commit.SHOW_ALERT({\n text: this.$t(\"alert.alerts.bad-browser.text\").toString(),\n title: this.$t(\"alert.alerts.bad-browser.title\").toString(),\n });\n StatsManager.SendNavigationStats(location.href, \"INVALID_BROWSER_ALERT\");\n return;\n }\n\n this.$store.direct.dispatch.games.play({ game: this.game, playOnBigScreen: false });\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardGameL.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardGameL.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CardGameL.vue?vue&type=template&id=412a11d4&scoped=true&\"\nimport script from \"./CardGameL.vue?vue&type=script&lang=ts&\"\nexport * from \"./CardGameL.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CardGameL.vue?vue&type=style&index=0&id=412a11d4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"412a11d4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VBtn,VIcon,VSkeletonLoader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"box\"},[(_vm.title)?_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.title))]):_vm._e(),(_vm.subTitle)?_c('div',{staticClass:\"subTitle\"},[_vm._v(_vm._s(_vm.subTitle))]):_vm._e(),(_vm.stepper && _vm.stepperArray.length > 1)?_c('div',{staticClass:\"stepper\"},_vm._l((_vm.stepperArray),function(i,k){return _c('span',{key:k,staticClass:\"step\",class:{ active: _vm.activeStepper == i }})}),0):_vm._e(),_c('HorizontalScroll',{ref:\"horizontalScroll\",class:{ notitle: !_vm.title }},[_vm._t(\"default\")],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"d-flex flex-row\"},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component } from \"vue-property-decorator\";\n\n@Component\nexport default class HorizontalScroll extends Vue {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HorizontalScroll.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HorizontalScroll.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HorizontalScroll.vue?vue&type=template&id=24d60b1e&scoped=true&\"\nimport script from \"./HorizontalScroll.vue?vue&type=script&lang=ts&\"\nexport * from \"./HorizontalScroll.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HorizontalScroll.vue?vue&type=style&index=0&id=24d60b1e&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"24d60b1e\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\n\nimport HorizontalScroll from \"@/components/HorizontalScroll.vue\";\n\n@Component({\n components: {\n HorizontalScroll,\n },\n})\nexport default class HomeScroller extends Vue {\n @Prop(String) readonly title: string;\n @Prop(String) readonly subTitle: string;\n @Prop({ type: Boolean, default: false }) readonly stepper: boolean;\n\n activeStepper = 0;\n\n $refs!: {\n horizontalScroll: Vue;\n };\n\n get stepperArray(): number[] {\n return Array.from(Array(this.childrenCount).keys());\n }\n\n childrenCount = 0;\n\n calculateStepper(): void {\n const el = this.$refs.horizontalScroll.$el;\n const maxScroll = el.scrollWidth - el.clientWidth;\n this.activeStepper = Math.floor(el.scrollLeft / (maxScroll / this.childrenCount));\n this.activeStepper = Math.min(this.activeStepper, this.childrenCount - 1);\n this.activeStepper = Math.max(this.activeStepper, 0);\n }\n\n mounted(): void {\n if (this.stepper) {\n this.childrenCount = this.$refs.horizontalScroll.$children.length;\n const el = this.$refs.horizontalScroll.$el;\n\n el.addEventListener(\"scroll\", () => this.calculateStepper());\n el.addEventListener(\"touchend\", () => this.calculateStepper());\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HomeScroller.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HomeScroller.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HomeScroller.vue?vue&type=template&id=37a785a6&scoped=true&\"\nimport script from \"./HomeScroller.vue?vue&type=script&lang=ts&\"\nexport * from \"./HomeScroller.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HomeScroller.vue?vue&type=style&index=0&id=37a785a6&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"37a785a6\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('v-bottom-navigation',{staticClass:\"tapbar\",class:{ bordered: _vm.bordered, notSubscribed: !_vm.subscribed }},[(!_vm.subscribed && _vm.showSubBanner)?_c('SubscribeBanner',{staticClass:\"subBanner\"}):_vm._e(),_c('div',{staticClass:\"tapbarBottom\"},[_c('v-btn',{staticClass:\"button\",class:_vm.$router.currentRoute.name === 'Home' ? 'v-btn--active' : '',attrs:{\"to\":\"/\",\"ripple\":false,\"active-class\":\"\"}},[_c('v-icon',[_vm._v(\"$tapBarHome\")]),_c('span',[_vm._v(_vm._s(_vm.$t(\"tapBar.home\")))])],1),_c('v-btn',{staticClass:\"button\",attrs:{\"to\":\"/category/\",\"ripple\":false}},[_c('v-icon',[_vm._v(\"$tapBarCategory\")]),_c('span',[_vm._v(_vm._s(_vm.$t(\"tapBar.category\")))])],1),_c('v-btn',{staticClass:\"button\",attrs:{\"to\":\"/mygames\",\"ripple\":false}},[_c('v-icon',[_vm._v(\"$unFavoriteIcon\")]),_c('span',[_vm._v(_vm._s(_vm.$t(\"tapBar.mygames\")))])],1),_c('v-btn',{staticClass:\"button\",attrs:{\"to\":\"/profile\",\"ripple\":false}},[_c('v-badge',{attrs:{\"dot\":\"\",\"value\":_vm.isConnected}},[_c('v-icon',[_vm._v(\"$tapBarProfile\")])],1),_c('span',[_vm._v(_vm._s(_vm.$t(\"tapBar.profile\")))])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"box\"},[_c('div',{staticClass:\"text\"},[_vm._v(_vm._s(_vm.$t(\"subscribeBanner.text\")))]),_c('button',{attrs:{\"elevation\":\"0\"},on:{\"click\":_vm.click}},[_c('v-icon',[_vm._v(\"$unlockIcon\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"subscribeBanner.button.text\"))+\" \")],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\n\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\n\n@Component\nexport default class SubscribeBanner extends Vue {\n @Prop(Boolean) readonly morePadding: boolean;\n\n click(): void {\n StatsManager.SendButtonClickStats(location.href, \"subBanner\");\n const openPopup = /^true$/i.test(process.env.VUE_APP_SUBSCRIBE_BANNER_POPUP);\n if (this.$store.direct.getters.payment.enabled && this.$store.direct.getters.payment.shouldUseCGPayement)\n this.$store.direct.commit.payment.SHOW_PAY_POPUP();\n else if (openPopup) this.$store.direct.commit.mobile.SHOW_SUBSCRIBE_BANNER_POPUP();\n else this.$store.direct.dispatch.games.openSubPopup();\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubscribeBanner.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubscribeBanner.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SubscribeBanner.vue?vue&type=template&id=e84d1b68&scoped=true&\"\nimport script from \"./SubscribeBanner.vue?vue&type=script&lang=ts&\"\nexport * from \"./SubscribeBanner.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SubscribeBanner.vue?vue&type=style&index=0&id=e84d1b68&lang=scss&scoped=true&\"\nimport style1 from \"./SubscribeBanner.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e84d1b68\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\n\nimport SubscribeBanner from \"@/components/SubscribeBanner.vue\";\nimport { SubscriptionAccess } from \"@/store/modules/games\";\n\n@Component({\n components: {\n SubscribeBanner,\n },\n})\nexport default class TapBar extends Vue {\n @Prop({ type: Boolean, default: false }) bordered: boolean;\n @Prop({ type: Boolean, default: false }) showSubBanner: boolean;\n\n get isConnected(): boolean {\n return !this.$store.direct.state.authentication.user?.tempAccount;\n }\n\n get subscribed(): boolean {\n const sub = this.$store.direct.getters.games.getHighestSubscription;\n return !sub || sub.access === SubscriptionAccess.FULL;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TapBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TapBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TapBar.vue?vue&type=template&id=0f8464c4&scoped=true&\"\nimport script from \"./TapBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./TapBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TapBar.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./TapBar.vue?vue&type=style&index=1&id=0f8464c4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0f8464c4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBadge } from 'vuetify/lib/components/VBadge';\nimport { VBottomNavigation } from 'vuetify/lib/components/VBottomNavigation';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBadge,VBottomNavigation,VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.loaded)?_c('div',{staticClass:\"box\"},[_c('router-link',{staticClass:\"link\",class:{ 'disabled-link': _vm.disableLink },attrs:{\"to\":_vm.to}},[_c('div',{staticClass:\"parent\"},[_c('img',{staticClass:\"image1 pic\",attrs:{\"src\":_vm.game.bannerBigNoTitle}}),(_vm.videoURL)?_c('video',{staticClass:\"image2 pic lazy need-load\",attrs:{\"preload\":\"metadata\",\"loop\":\"\",\"playsinline\":\"\",\"autoplay\":\"\",\"muted\":\"\",\"hidden\":_vm.hidden},domProps:{\"muted\":true},on:{\"playing\":function($event){_vm.hidden = false},\"pause\":function($event){_vm.hidden = true}}},[_c('source',{attrs:{\"data-src\":_vm.videoURL,\"type\":\"video/mp4\"}})]):_vm._e()]),_c('ListedGame',{staticClass:\"gameInfo\",attrs:{\"game\":_vm.game,\"disableLink\":_vm.disableLink,\"showFavoriteButton\":\"\",\"showPlayButton\":_vm.showPlayButton}},[_vm._t(\"default\")],2)],1)],1):_c('v-skeleton-loader',{staticClass:\"card\",attrs:{\"type\":\"image\",\"min-width\":\"240\",\"height\":\"256\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.loaded)?_c('router-link',{class:{ disableLink: _vm.disableLink },attrs:{\"to\":_vm.to}},[_c('div',{staticClass:\"box\"},[_c('CardGameL',{attrs:{\"game\":_vm.game,\"showFavoriteButton\":_vm.showFavoriteButton,\"showPlayButton\":_vm.showPlayButton}}),_c('div',{staticClass:\"text\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t((\"games.\" + (_vm.game._id) + \".name\"))))]),_c('div',{staticClass:\"description\"},[_vm._v(_vm._s(_vm.$t((\"games.\" + (_vm.game._id) + \".shortDescription\"))))])]),_vm._t(\"default\")],2)]):_c('v-skeleton-loader',{staticClass:\"card\",attrs:{\"type\":\"card\",\"min-width\":\"88\",\"height\":\"72\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\n\nimport CardGameL from \"./CardGameL.vue\";\n\nimport { Game } from \"@/store/modules/games\";\n\n@Component({\n components: {\n CardGameL,\n },\n})\nexport default class ListedGame extends Vue {\n @Prop(Boolean) readonly fake: boolean;\n @Prop(Object) readonly game: Game;\n @Prop(Boolean) readonly disableLink: boolean;\n @Prop(Boolean) readonly showPlayButton: boolean;\n @Prop({type: Boolean, default: false}) readonly showFavoriteButton: boolean;\n\n get loaded(): boolean {\n return !this.fake || !!this.game;\n }\n\n get to(): string {\n return `/game/${this.game.appID}`;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListedGame.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListedGame.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ListedGame.vue?vue&type=template&id=5ca76ea2&scoped=true&\"\nimport script from \"./ListedGame.vue?vue&type=script&lang=ts&\"\nexport * from \"./ListedGame.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ListedGame.vue?vue&type=style&index=0&id=5ca76ea2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5ca76ea2\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VSkeletonLoader})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop } from \"vue-property-decorator\";\n\nimport CardGame from \"@/components/CardGame.vue\";\nimport ListedGame from \"@/components/ListedGame.vue\";\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\n\n@Component({\n components: {\n ListedGame,\n },\n})\nexport default class CardGameVideo extends CardGame {\n @Prop(Boolean) readonly disableLink: boolean;\n @Prop(Boolean) readonly showPlayButton: boolean;\n\n hidden = true;\n\n get videoURL(): string {\n return this.game.headerVideo;\n }\n\n deactivated() {\n this.$el.querySelector(\"video\")?.pause();\n }\n\n activated(): void {\n // reload and play video after a page change\n //this.$el.querySelector(\"video\")?.load();\n const video = this.$el.querySelector(\"video\");\n if (video) {\n video.currentTime = 0;\n video.play();\n }\n }\n\n mounted() {\n const video = this.$el.querySelector(\"video\");\n\n if (video && video.classList.contains(\"need-load\")) {\n for (var source in video.children) {\n var videoSource = video.children[source];\n if (typeof videoSource.tagName === \"string\" && videoSource.tagName === \"SOURCE\") {\n (videoSource as any).src = (videoSource as any).dataset.src;\n }\n }\n video.load();\n video.play();\n video.classList.remove(\"need-load\");\n }\n\n const t = this.$el.querySelector(\"video\");\n t?.addEventListener(\"canplay\", (event) => {\n StatsManager.SendArbitraryStats(\"gamedesc-video-canplay\", { appId: this.game.appID, videoUrl: this.game.headerVideo });\n });\n t?.addEventListener(\"canplaythrough\", (event) => {\n StatsManager.SendArbitraryStats(\"gamedesc-video-canplaythrough\", { appId: this.game.appID, videoUrl: this.game.headerVideo });\n });\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardGameVideo.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardGameVideo.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CardGameVideo.vue?vue&type=template&id=2f66de60&scoped=true&\"\nimport script from \"./CardGameVideo.vue?vue&type=script&lang=ts&\"\nexport * from \"./CardGameVideo.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CardGameVideo.vue?vue&type=style&index=0&id=2f66de60&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2f66de60\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VSkeletonLoader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.gameSubscription)?_c('button',{staticClass:\"button play\",class:{ lock: _vm.noActiveSub, 'coming-soon': _vm.game.isComingSoon },style:(_vm.buttonStyle),attrs:{\"elevation\":\"0\"},on:{\"click\":_vm.play}},[_c('div',[(!_vm.noActiveSub && !_vm.game.isComingSoon)?_c('v-icon',[_vm._v(\"$playButton\")]):(!_vm.game.isComingSoon)?_c('v-icon',{staticStyle:{\"padding-right\":\"2px\"}},[_vm._v(\"$lockIcon\")]):_vm._e()],1),_vm._v(\" \"+_vm._s(_vm.playButtonText)+\" \")]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Game, SubscriptionAccess } from \"@/store/modules/games\";\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\n\n@Component\nexport default class PlayButton extends Vue {\n @Prop({ type: Boolean, default: true }) showPlayButton: boolean;\n @Prop({ type: Object }) game: Game | undefined;\n @Prop({ type: Number, default: 42 }) height: number;\n @Prop({ type: Number, default: 120 }) width: number;\n @Prop({ type: Number, default: 0 }) minWidth: number;\n @Prop({ type: Boolean }) stretch: boolean;\n @Prop({ type: String, default: \"big\" }) fontSize: \"small\" | \"big\";\n\n get playButtonText() {\n if (this.game?.isComingSoon) return this.$t(`game.buttons.play.coming-soon`).toString();\n if (!this.gameSubscription) return \"\";\n return this.$t(`game.buttons.play.${this.gameSubscription}`).toString();\n }\n\n get gameSubscription(): SubscriptionAccess | undefined {\n if (!this.game) return undefined;\n return this.$store.direct.getters.games.getGameSubscription(this.game) || SubscriptionAccess.VISIBLE;\n }\n\n get noActiveSub(): boolean {\n return this.gameSubscription === SubscriptionAccess.VISIBLE;\n }\n\n get buttonStyle() {\n let styles: any = {\n width: `${this.width}px`,\n height: `${this.height}px`,\n \"min-width\": `${this.minWidth}px`,\n \"font-size\": \"12px\",\n };\n if (this.stretch) styles[\"width\"] = \"100%\";\n if (this.fontSize === \"small\") styles[\"font-size\"] = \"10px\";\n return styles;\n }\n\n async play(e: Event): Promise {\n e.preventDefault();\n e.stopPropagation();\n\n StatsManager.SendButtonClickStats(location.href, \"play\");\n\n if (!this.game) return;\n if (this.game?.isComingSoon) return;\n if (!this.$store.direct.getters.mobile.isBrowserValid) {\n this.$store.direct.commit.SHOW_ALERT({\n text: this.$t(\"alert.alerts.bad-browser.text\").toString(),\n title: this.$t(\"alert.alerts.bad-browser.title\").toString(),\n });\n StatsManager.SendNavigationStats(location.href, \"INVALID_BROWSER_ALERT\");\n return;\n }\n\n this.$store.direct.dispatch.games.play({game: this.game, playOnBigScreen: false});\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PlayButton.vue?vue&type=template&id=bfd8de7a&scoped=true&\"\nimport script from \"./PlayButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./PlayButton.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PlayButton.vue?vue&type=style&index=0&id=bfd8de7a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bfd8de7a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"button\",attrs:{\"elevation\":\"0\"},on:{\"click\":_vm.toggleFavorite}},[_c('div',[(_vm.favorite)?_c('v-icon',{staticClass:\"favorite\"},[_vm._v(\"$favoriteIcon\")]):_c('v-icon',{staticClass:\"unfavorite\"},[_vm._v(\"$unFavoriteIcon\")])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Game } from \"@/store/modules/games\";\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\n\n@Component\nexport default class FavButton extends Vue {\n @Prop({ type: Object }) game: Game | undefined;\n @Prop({ type: Boolean, default: false }) stretch: boolean;\n\n get favorite(): boolean {\n if (!this.game) return false;\n return this.$store.direct.state.games.favoriteGamesIds.includes(this.game._id);\n }\n\n async toggleFavorite(): Promise {\n if (!this.game) return;\n if (this.favorite) await this.$store.direct.dispatch.games.removeFromFavorite(this.game);\n else await this.$store.direct.dispatch.games.addToFavorite(this.game);\n StatsManager.SendButtonClickStats(location.href, \"favorite\", { newValue: !this.favorite });\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FavButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FavButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FavButton.vue?vue&type=template&id=fad95862&scoped=true&\"\nimport script from \"./FavButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./FavButton.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FavButton.vue?vue&type=style&index=0&id=fad95862&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fad95862\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (true)?_c('button',{staticClass:\"button\",attrs:{\"elevation\":\"0\"},on:{\"click\":_vm.share}},[_c('v-icon',[_vm._v(\"$shareIcon\")]),_c('div',{staticClass:\"share-text\"},[_vm._v(_vm._s(_vm.$t(\"game.buttons.share\")))])],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Game } from \"@/store/modules/games\";\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\n\n@Component\nexport default class ShareButton extends Vue {\n @Prop({ type: Object }) game: Game | undefined;\n\n shareIsToggled = false;\n\n get canShare(): boolean {\n return this.$store.direct.getters.mobile.canShare;\n }\n\n async share(): Promise {\n if (!this.game) return;\n this.$store.direct.dispatch.mobile.share({ game: this.game });\n StatsManager.SendButtonClickStats(location.href, \"share\");\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ShareButton.vue?vue&type=template&id=4ad20a86&scoped=true&\"\nimport script from \"./ShareButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./ShareButton.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ShareButton.vue?vue&type=style&index=0&id=4ad20a86&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4ad20a86\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"bonus-scroller\"},_vm._l((_vm.game.bonuses),function(bonus,index){return _c('BonusCard',{key:index,attrs:{\"bonus\":{ bonus: bonus, index: index },\"game\":_vm.game}})}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"bonus-card\"},[_c('img',{staticClass:\"bonus-icon\",attrs:{\"src\":_vm.bonus.bonus.icon}}),_c('span',{staticClass:\"bonus-description\"},[_vm._v(_vm._s(_vm.$t((\"games.\" + (_vm.game._id) + \".bonuses.\" + (_vm.bonus.index) + \".description\"))))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Bonus, Game } from \"@/store/modules/games\";\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\n\n@Component\nexport default class BonusCard extends Vue {\n @Prop({ type: Object, required: true }) bonus: { bonus: Bonus, index: number };\n @Prop({ type: Object, required: true }) game: Game;\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BonusCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BonusCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BonusCard.vue?vue&type=template&id=3176478c&scoped=true&\"\nimport script from \"./BonusCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./BonusCard.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BonusCard.vue?vue&type=style&index=0&id=3176478c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3176478c\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Game } from \"@/store/modules/games\";\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport BonusCard from \"./BonusCard.vue\";\n\n@Component({\n components: {\n BonusCard,\n },\n})\nexport default class BonusScroller extends Vue {\n @Prop({ type: Object, required: true }) game: Game;\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BonusScroller.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BonusScroller.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BonusScroller.vue?vue&type=template&id=5c2a5ae8&scoped=true&\"\nimport script from \"./BonusScroller.vue?vue&type=script&lang=ts&\"\nexport * from \"./BonusScroller.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BonusScroller.vue?vue&type=style&index=0&id=5c2a5ae8&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5c2a5ae8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"scroller\"},_vm._l((_vm.tags),function(tag,index){return _c('div',{key:index},[_c('TagComponent',{attrs:{\"tag\":tag,\"isSelected\":false},nativeOn:{\"click\":function($event){return _vm.tagClicked(tag)}}})],1)}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tag\",class:{ selected: _vm.isSelected }},[_c('span',{staticClass:\"svg\",domProps:{\"innerHTML\":_vm._s(_vm.svgData)}}),_c('span',[_vm._v(_vm._s(_vm.$t((\"tags.\" + (_vm.tag._id) + \".name\"))))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Tag } from \"@/store/modules/tags\";\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\n\n@Component\nexport default class TagComponent extends Vue {\n @Prop({ type: Object }) tag: Tag;\n @Prop({ type: Boolean, default: false }) isSelected: boolean;\n\n svgData = \"\";\n\n async mounted(): Promise {\n const response = await fetch(this.tag.icon);\n this.svgData = await response.text();\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tag.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tag.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Tag.vue?vue&type=template&id=2335a4f6&scoped=true&\"\nimport script from \"./Tag.vue?vue&type=script&lang=ts&\"\nexport * from \"./Tag.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Tag.vue?vue&type=style&index=0&id=2335a4f6&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2335a4f6\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Component from \"vue-class-component\";\nimport Vue from \"vue\";\nimport { Prop } from \"vue-property-decorator\";\n\nimport { Tag } from \"@/store/modules/tags\";\nimport { Game } from \"@/store/modules/games\";\n\nimport TagComponent from \"@/components/Common/Tag.vue\";\n\n@Component({\n components: {\n TagComponent,\n },\n})\nexport default class GameTags extends Vue {\n @Prop({ type: Object, required: true }) game: Game;\n\n get tags(): Tag[] {\n const gameTags = this.$store.direct.state.tags.tags.filter((t1) => this.game.tags.find((t2) => t1._id === t2));\n return gameTags;\n }\n\n tagClicked(tag: Tag): void {\n if (!tag.enabled) return;\n const url = `/category/${tag?.urlSegment || tag?.name.toLowerCase()}`;\n this.$router.push(url);\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GameTags.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GameTags.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GameTags.vue?vue&type=template&id=0c9407e8&scoped=true&\"\nimport script from \"./GameTags.vue?vue&type=script&lang=ts&\"\nexport * from \"./GameTags.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GameTags.vue?vue&type=style&index=0&id=0c9407e8&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0c9407e8\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component } from \"vue-property-decorator\";\nimport CoolLightBox from \"vue-cool-lightbox\";\nimport \"vue-cool-lightbox/dist/vue-cool-lightbox.min.css\";\n\nimport { Game, Screenshot, SubscriptionAccess } from \"@/store/modules/games\";\n\nimport CardScreenshot from \"@/components/CardScreenshot.vue\";\nimport CardGameL from \"@/components/CardGameL.vue\";\nimport HomeScroller from \"@/components/HomeScroller.vue\";\nimport TapBar from \"@/components/TapBar.vue\";\nimport { Genre } from \"@/store/modules/genres\";\nimport CardGameVideo from \"@/components/Home/HomeSections/CardGameVideo.vue\";\n\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\nimport PlayButton from \"@/components/Common/PlayButton.vue\";\nimport FavButton from \"@/components/GameDesc/FavButton.vue\";\nimport ShareButton from \"@/components/GameDesc/ShareButton.vue\";\nimport BonusScroller from \"@/components/GameDesc/Bonuses/BonusScroller.vue\";\nimport GameTags from \"@/components/GameDesc/GameTags.vue\";\nimport EnterCodePopup from \"@/components/Bigscreen/EnterCodePopup.vue\";\nimport { UserPermission } from \"@/store/modules/authentication\";\n\n@Component({\n components: {\n CardScreenshot,\n CardGameL,\n CoolLightBox,\n HomeScroller,\n TapBar,\n CardGameVideo,\n PlayButton,\n FavButton,\n ShareButton,\n BonusScroller,\n GameTags,\n EnterCodePopup,\n },\n})\nexport default class GameView extends Vue {\n currentSShot: number | null = null;\n fullDescription = false;\n accessUpdateInterval: number | null = null;\n\n get info() {\n return [\n {\n key: this.$t(\"game.sections.info.publisher\"),\n value: this.publisher,\n },\n ];\n }\n\n get screenshots(): Screenshot[] {\n return (\n this.game?.screenshots\n ?.filter((s) => s)\n .map((s) => ({\n ...s,\n thumbnail: s.thumbnail || s.url,\n autoplay: true,\n })) || []\n );\n }\n\n get favorite(): boolean {\n if (!this.game) return false;\n return this.$store.direct.state.games.favoriteGamesIds.includes(this.game._id);\n }\n\n get isPortrait(): boolean {\n return this.game?.orientation === \"PORTRAIT\";\n }\n\n get gameSubscription(): SubscriptionAccess | undefined {\n if (!this.game) return undefined;\n return this.$store.direct.getters.games.getGameSubscription(this.game) || SubscriptionAccess.VISIBLE;\n }\n\n async play(e: Event, playOnBigScreen = false): Promise {\n e.preventDefault();\n e.stopPropagation();\n\n if (!this.game) return;\n\n StatsManager.SendButtonClickStats(location.href, \"play\", {\n game: {\n name: this.game.name,\n appID: this.game.appID,\n isComingSoon: this.game.isComingSoon,\n },\n gameSubscription: this.gameSubscription,\n });\n\n if (this.game?.isComingSoon) return;\n if (!this.$store.direct.getters.mobile.isBrowserValid) {\n this.$store.direct.commit.SHOW_ALERT({\n text: this.$t(\"alert.alerts.bad-browser.text\").toString(),\n title: this.$t(\"alert.alerts.bad-browser.title\").toString(),\n });\n StatsManager.SendNavigationStats(location.href, \"INVALID_BROWSER_ALERT\");\n return;\n }\n\n this.$store.direct.dispatch.games.play({ game: this.game, playOnBigScreen: playOnBigScreen });\n }\n\n async playOnTv(e: Event): Promise {\n await this.$store.direct.dispatch.bigscreen.isPairedToBigScreen();\n if (!this.$store.direct.getters.bigscreen.isBigscreenPaired) {\n e.preventDefault();\n e.stopPropagation();\n this.$store.direct.commit.mobile.SHOW_TV_CODE_POPUP();\n } else {\n this.play(e, true);\n this.$store.direct.commit.mobile.CLOSE_TV_CODE_POPUP();\n }\n }\n\n async toggleFavorite(): Promise {\n if (!this.game) return;\n if (this.favorite) await this.$store.direct.dispatch.games.removeFromFavorite(this.game);\n else await this.$store.direct.dispatch.games.addToFavorite(this.game);\n StatsManager.SendButtonClickStats(location.href, \"favorite\", { newValue: !this.favorite });\n }\n\n get pegiRating(): number {\n return this.game?.contentRating?.pegi?.rating || 3;\n }\n\n get game(): Game | undefined {\n return this.$store.direct.getters.games.getGame(this.$route.params.game);\n }\n\n get similarGames(): Game[] {\n return (\n this.game?.similarGames\n ?.map((gameID) => this.$store.direct.state.games.games.find((game) => game._id === gameID) as Game)\n .filter((g) => g) || []\n );\n }\n\n get publisher(): string {\n return this.$store.direct.state.publishers.publishers.find((p) => p._id === this.game?.publisher)?.name || \"\";\n }\n\n get contentRating(): string {\n if (this.game?.contentRating.pegi.rating)\n return this.$t(\"game.contentRating.simple\", { age: this.game?.contentRating.pegi.rating }).toString();\n return \"\";\n }\n\n get canShare(): boolean {\n return this.$store.direct.getters.mobile.canShare;\n }\n\n get hasBigScreenPermission(): boolean {\n return this.$store.direct.getters.authentication.hasPermission(UserPermission.BIGSCREEN);\n }\n\n get subscribed(): boolean {\n const sub = this.$store.direct.getters.games.getHighestSubscription;\n return !sub || sub.access === SubscriptionAccess.FULL;\n }\n\n playButtonText(): string {\n if (this.game?.isComingSoon) return this.$t(`game.buttons.play.coming-soon`).toString();\n if (!this.gameSubscription) return \"\";\n return this.$t(`game.buttons.play.${this.gameSubscription}`).toString();\n }\n\n get noActiveSub(): boolean {\n return this.gameSubscription === SubscriptionAccess.VISIBLE;\n }\n\n async share(): Promise {\n if (!this.game) return;\n this.$store.direct.dispatch.mobile.share({ game: this.game });\n StatsManager.SendButtonClickStats(location.href, \"share\");\n }\n\n async lightBoxOpened(): Promise {\n const video = document.querySelector(\".cool-lightbox__iframe video\") as HTMLVideoElement;\n if (video) {\n // Add attributes to the video element to make it autoplay on iOS\n video.setAttribute(\"playsinline\", \"\");\n video.setAttribute(\"muted\", \"\");\n video.setAttribute(\"loop\", \"\");\n\n // remove controls?\n // video.removeAttribute(\"controls\");\n\n // play the video\n video.play();\n }\n }\n\n clickedScreenshot(screenshot: Screenshot, index: number): void {\n this.currentSShot = index;\n StatsManager.SendButtonClickStats(location.href, \"screenshot\", { index, screenshot: screenshot.url });\n }\n\n async created(): Promise {\n await this.$store.direct.dispatch.games.getGameByAppID(this.$route.params.game);\n if (!this.game) return;\n this.$store.direct.dispatch.games.checkGameSubscription({ game: this.game });\n await this.$store.direct.dispatch.games.getGamesByIds(this.game.similarGames);\n await this.$store.direct.dispatch.tags.getTags();\n await this.$store.direct.dispatch.publishers.getPublishers();\n this.$store.direct.dispatch.homeSections.getHomeSections();\n }\n\n setupAccessUpdate(): void {\n if (this.accessUpdateInterval) return;\n this.accessUpdateInterval = setInterval(() => {\n if (this.game) this.$store.direct.dispatch.games.checkGameSubscription({ game: this.game, force: true });\n }, parseInt(process.env.VUE_APP_GAME_ACCESS_UPDATE_INTERVAL) || 1000 * 60);\n }\n\n activated(): void {\n if (this.game) this.$store.direct.dispatch.games.checkGameSubscription({ game: this.game, force: true });\n this.setupAccessUpdate();\n }\n\n deactivated(): void {\n if (this.accessUpdateInterval) {\n clearInterval(this.accessUpdateInterval);\n this.accessUpdateInterval = null;\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Game.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Game.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Game.vue?vue&type=template&id=5e25d623&scoped=true&\"\nimport script from \"./Game.vue?vue&type=script&lang=ts&\"\nexport * from \"./Game.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Game.vue?vue&type=style&index=0&id=5e25d623&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5e25d623\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VContainer,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"playView\"}},[_c('iframe',{attrs:{\"id\":\"playIframe\",\"title\":\"CareGame\",\"src\":_vm.playUrl,\"width\":\"100%\",\"height\":\"100%\",\"frameborder\":0,\"scrolling\":'no',\"allowfullscreen\":true}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component } from \"vue-property-decorator\";\n\nimport { Game } from \"@/store/modules/games\";\nimport { StreamingMode } from \"@/store/modules/bigscreen\";\n\n@Component({\n components: {},\n})\nexport default class Play extends Vue {\n get game(): Game | undefined {\n return this.$store.direct.getters.games.getGame(this.$route.params.game);\n }\n\n get isBigScreen(): boolean {\n return this.$route.query.streamingmode === StreamingMode.BIGSCREEN;\n }\n\n get playUrl(): string {\n let url = `/play/?appid=${this.$route.params.game}&cgtoken=${this.$store.direct.getters.authentication.jwt}&eula=true`;\n if (this.isBigScreen) url += `&streamingmode=${StreamingMode.BIGSCREEN}`;\n else url += `&streamingmode=${StreamingMode.MOBILE}`;\n return url;\n }\n\n init(): void {\n var body = document.body;\n body.classList.add(\"no-handle-notch\");\n }\n\n reset(): void {\n var body = document.body;\n body.classList.remove(\"no-handle-notch\");\n }\n\n activated(): void {\n this.init();\n }\n\n deactivated(): void {\n this.reset();\n }\n\n mounted(): void {\n this.init();\n }\n\n beforeDestroy(): void {\n this.reset();\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayIframe.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayIframe.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PlayIframe.vue?vue&type=template&id=d8184c7c&\"\nimport script from \"./PlayIframe.vue?vue&type=script&lang=ts&\"\nexport * from \"./PlayIframe.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PlayIframe.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"no-gutters\":\"\",\"fluid\":\"\"}},[_c('div',{staticClass:\"radial\"}),_c('div',{staticClass:\"header\"},[_c('div',{staticClass:\"top\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t(\"category.title\")))]),(!_vm.subscribed)?_c('GoUltimateButton',{staticClass:\"goUltimateButton\"}):_vm._e()],1),_c('div',{staticClass:\"tags\"},[_c('TagScroller',{staticClass:\"tag-scroller\",on:{\"update-selected-tag\":_vm.updatedSelectedTag}})],1)]),_c('div',{staticClass:\"content\",class:{ subscribed: _vm.subscribed }},[(_vm.loaded)?_c('div',{staticClass:\"gamelist\"},_vm._l((_vm.sortedGames),function(game){return _c('ListedGame',{key:game._id,attrs:{\"game\":game,\"showFavoriteButton\":\"\"}})}),1):_c('div',{staticClass:\"gamelist\"},_vm._l(([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]),function(i){return _c('ListedGame',{key:i,attrs:{\"fake\":\"\"}})}),1)]),_c('TapBar',{attrs:{\"bordered\":\"\",\"showSubBanner\":_vm.$store.direct.getters.authentication.showSubscribeBanner}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"scroller\"},_vm._l((_vm.tagList),function(tag,index){return _c('div',{key:index},[_c('TagComponent',{attrs:{\"tag\":tag.tag,\"isSelected\":tag.selected},nativeOn:{\"click\":function($event){return _vm.tagClicked(index)}}})],1)}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Component from \"vue-class-component\";\nimport Vue from \"vue\";\n\nimport TagComponent from \"@/components/Common/Tag.vue\";\nimport { Tag } from \"@/store/modules/tags\";\n\ninterface TagElement {\n tag: Tag;\n selected: boolean;\n}\n\n@Component({\n components: {\n TagComponent,\n },\n})\nexport default class TagScroller extends Vue {\n private isInit = false;\n tagList: TagElement[] = [];\n\n get tags(): Tag[] {\n return this.$store.direct.state.tags.tags.filter((v) => v.enabled);\n }\n\n createTags(): void {\n this.tagList = this.tags.map((tag: Tag) => ({ tag, selected: false }));\n }\n\n async tagClicked(index: number): Promise {\n const previousStatus = this.tagList[index].selected;\n // De-select all tags\n this.tagList.forEach((t) => (t.selected = false));\n // Select the clicked tag\n this.tagList[index].selected = !previousStatus;\n\n // Emit the selected tag or undefined if the tag was deselected\n this.$emit(\"update-selected-tag\", this.tagList[index].selected ? this.tagList[index].tag : undefined);\n // Use scrollIntoView to make sure the selected tag is visible\n await this.$nextTick();\n if (this.tagList[index].selected) {\n document.querySelector(\".tag.selected\")?.scrollIntoView();\n // Scroll again after a short delay to make sure the scrollIntoView is executed even on page load\n window.setTimeout(() => {\n // Re-check if the tag is still selected to avoid scrolling to the wrong tag\n if (this.tagList[index].selected) document.querySelector(\".tag.selected\")?.scrollIntoView();\n }, 100);\n }\n }\n\n selectUrlTag(): void {\n const tabName = (this.$route.params.tab as string) || process.env.VUE_APP_DEFAULT_CATEGORY || \"all\";\n const index = this.tagList.findIndex((t) => t.tag.urlSegment === tabName || t.tag.name.toLowerCase() === tabName);\n if (index !== -1) this.tagClicked(index);\n else this.$emit(\"update-selected-tag\", undefined);\n }\n\n async init(): Promise {\n if (this.isInit) return;\n this.isInit = true;\n if (this.$store.direct.state.tags.tags.length === 0) await this.$store.direct.dispatch.tags.getTags();\n this.createTags();\n this.selectUrlTag();\n }\n\n async created(): Promise {\n this.init();\n }\n\n async activated(): Promise {\n this.init();\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TagScroller.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TagScroller.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TagScroller.vue?vue&type=template&id=7e06fc3e&scoped=true&\"\nimport script from \"./TagScroller.vue?vue&type=script&lang=ts&\"\nexport * from \"./TagScroller.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TagScroller.vue?vue&type=style&index=0&id=7e06fc3e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7e06fc3e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"button\",attrs:{\"elevation\":\"0\"},on:{\"click\":_vm.click}},[_c('v-icon',[_vm._v(\"$unlockIcon\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"subscribeBanner.button.text\"))+\" \")],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\n\n@Component\nexport default class GoUltimateButton extends Vue {\n click(): void {\n StatsManager.SendButtonClickStats(location.href, \"subBanner\");\n const openPopup = /^true$/i.test(process.env.VUE_APP_SUBSCRIBE_BANNER_POPUP);\n if (this.$store.direct.getters.payment.enabled && this.$store.direct.getters.payment.shouldUseCGPayement)\n this.$store.direct.commit.payment.SHOW_PAY_POPUP();\n else if (openPopup) this.$store.direct.commit.mobile.SHOW_SUBSCRIBE_BANNER_POPUP();\n else this.$store.direct.dispatch.games.openSubPopup();\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GoUltimateButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GoUltimateButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GoUltimateButton.vue?vue&type=template&id=b0ae9066&scoped=true&\"\nimport script from \"./GoUltimateButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./GoUltimateButton.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GoUltimateButton.vue?vue&type=style&index=0&id=b0ae9066&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b0ae9066\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component } from \"vue-property-decorator\";\n\nimport ListedGame from \"@/components/ListedGame.vue\";\nimport TapBar from \"@/components/TapBar.vue\";\nimport TagScroller from \"@/components/Discover/TagScroller.vue\";\n\nimport { Game, SubscriptionAccess } from \"@/store/modules/games\";\n\nimport { Tag } from \"@/store/modules/tags\";\nimport GoUltimateButton from \"@/components/Common/GoUltimateButton.vue\";\n\n@Component({\n components: {\n ListedGame,\n TapBar,\n TagScroller,\n GoUltimateButton,\n },\n})\nexport default class GameListView extends Vue {\n isInit = false;\n loaded = false;\n allGames: Game[] = [];\n\n games: Game[] = [];\n\n get subscribed(): boolean {\n const sub = this.$store.direct.getters.games.getHighestSubscription;\n return !sub || sub.access === SubscriptionAccess.FULL;\n }\n\n /**\n * Check if there is a tag in the URL\n */\n get hasTagInUrl(): boolean {\n // split the URL by slashes, remove empty strings, and check if there are more than 1 segments\n return window.location.pathname.split(\"/\").filter((v) => v).length > 1;\n }\n\n /**\n * Modify the URL according to the selected tag\n * @param tag The tag to modify the URL with\n */\n modifyUrl(tag: Tag | undefined): void {\n let newUrl: URL;\n // If the tag is defined, use the tag's urlSegment or name to create the new URL\n if (tag) {\n const tagUrlSegment = tag.urlSegment || tag.name.toLowerCase();\n newUrl = new URL(tagUrlSegment, window.location.href);\n }\n // If the tag is undefined, remove the tag from the URL\n else newUrl = new URL(\".\", window.location.href);\n\n // Use history.replaceState and not $router.replace to avoid re-rendering the component\n history.replaceState(null, \"\", newUrl.toString());\n }\n\n /**\n * Get all games sorted by name\n */\n get sortedGames(): Game[] {\n return this.games.slice().sort((a, b) => {\n if (a.name < b.name) return -1;\n else if (a.name > b.name) return 1;\n else return 0;\n });\n }\n\n /**\n * Fetch all games from the API with the option to force a fetch to make sure we get all the games.\n * The games are cached so they are retrieved only once for the lifetime of the component.\n */\n async fetchAllGames(): Promise {\n if (this.allGames.length > 0) return this.allGames;\n this.allGames = await this.$store.direct.dispatch.games.getAllGames(true);\n return this.allGames;\n }\n\n /**\n * Fetch games by tag from the API\n * @param tag The tag to fetch the games for\n */\n async fetchGamesByTag(tag: Tag): Promise {\n return await this.$store.direct.dispatch.games.getGamesByTags(tag);\n }\n\n /**\n * Fetch tags from the API\n */\n async initTags(): Promise {\n await this.$store.direct.dispatch.tags.getTags();\n }\n\n /**\n * Update the game list based on the selected tag\n * @param selectedTag The selected tag to filter the games by\n */\n async updatedSelectedTag(selectedTag: Tag | undefined): Promise {\n this.modifyUrl(selectedTag);\n\n this.loaded = false;\n if (selectedTag) this.games = await this.fetchGamesByTag(selectedTag);\n else this.games = await this.fetchAllGames();\n this.loaded = true;\n }\n\n async init(): Promise {\n if (this.isInit) return;\n this.isInit = true;\n\n await this.initTags();\n\n // If there is no tag in the URL, set the selected tag to undefined to reuse the updatedSelectedTag method\n if (!this.hasTagInUrl) this.updatedSelectedTag(undefined);\n // Else fetch all games in the background\n else this.fetchAllGames();\n\n // Fetch the home sections in the background\n this.$store.direct.dispatch.homeSections.getHomeSections();\n }\n\n async created(): Promise {\n await this.init();\n }\n\n async activated(): Promise {\n await this.init();\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Categories.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Categories.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Categories.vue?vue&type=template&id=4cc8f67f&scoped=true&\"\nimport script from \"./Categories.vue?vue&type=script&lang=ts&\"\nexport * from \"./Categories.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Categories.vue?vue&type=style&index=0&id=4cc8f67f&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4cc8f67f\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VContainer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"no-gutters\":\"\",\"fluid\":\"\"}},[_c('div',{staticClass:\"radial\"}),_c('div',{staticClass:\"header\"},[_c('div',{staticClass:\"top\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t(\"mygames.title\")))]),(!_vm.subscribed)?_c('GoUltimateButton',{staticClass:\"goUltimateButton\"}):_vm._e()],1),_c('div',{staticClass:\"subtitle\"},[_vm._v(\" \"+_vm._s(_vm.$t('mygames.subtitle'))+\" \")])]),_c('div',{staticClass:\"content\"},[_c('HomeScroller',{staticClass:\"lastPlayed\",attrs:{\"title\":_vm.$t('mygames.lastPlayed.title')}},_vm._l((_vm.lastPlayedGames),function(game){return _c('CardGameL',{key:game._id,attrs:{\"game\":game,\"showPlayButton\":false}})}),1),_c('div',{staticClass:\"subtitle\"},[_vm._v(_vm._s(_vm.$t(\"mygames.favorites.title\")))]),(_vm.loaded && _vm.games.length > 0)?_c('div',{staticClass:\"gamelist\"},_vm._l((_vm.games),function(game){return _c('ListedGame',{key:game._id,attrs:{\"game\":game,\"showFavoriteButton\":\"\"}})}),1):(!_vm.loaded)?_c('div',{staticClass:\"gamelist\"},_vm._l(([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]),function(i){return _c('ListedGame',{key:i,attrs:{\"fake\":\"\"}})}),1):_c('div',{staticClass:\"empty\"},[_c('div',{staticClass:\"helpText\"},[_vm._v(_vm._s(_vm.$t(\"profile.library.empty.helpText\")))]),_c('v-btn',{staticClass:\"addGamesButton\",attrs:{\"to\":\"/category\"}},[_c('v-icon',[_vm._v(\"$profileAddGames\")]),_vm._v(_vm._s(_vm.$t(\"profile.library.empty.button\")))],1)],1)],1),_c('TapBar',{attrs:{\"bordered\":\"\",\"showSubBanner\":_vm.$store.direct.getters.authentication.showSubscribeBanner}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component } from \"vue-property-decorator\";\n\nimport ListedGame from \"@/components/ListedGame.vue\";\nimport TapBar from \"@/components/TapBar.vue\";\n\nimport { Game, SubscriptionAccess } from \"@/store/modules/games\";\nimport HomeScroller from \"@/components/HomeScroller.vue\";\nimport CardGameL from \"@/components/CardGameL.vue\";\nimport GoUltimateButton from \"@/components/Common/GoUltimateButton.vue\";\n\nenum ListType {\n GENRE,\n ALL_GAMES,\n}\n\ninterface Tab {\n name: string;\n urlSegment: string;\n type: ListType;\n imageLink: string;\n colorGradient1?: string;\n colorGradient2?: string;\n}\n\n@Component({\n components: {\n ListedGame,\n TapBar,\n HomeScroller,\n CardGameL,\n GoUltimateButton,\n },\n})\nexport default class MyGames extends Vue {\n loaded = false;\n\n get games(): Game[] {\n return this.$store.direct.state.games.favoriteGames;\n }\n\n get lastPlayedGames(): Game[] {\n return this.$store.direct.state.games.lastPlayedGames.slice(0, 10);\n }\n\n get subscribed(): boolean {\n const sub = this.$store.direct.getters.games.getHighestSubscription;\n return !sub || sub.access === SubscriptionAccess.FULL;\n }\n\n\n get backgroundColor(): string {\n return `radial-gradient(74.53% 76.79% at 10% 10%, #3C2920, #3A1B19, #07071b 100%)`;\n }\n\n async init(): Promise {\n await this.$store.direct.dispatch.games.getFavoriteGames();\n await this.$store.direct.dispatch.games.getLastPlayedGames();\n this.loaded = true;\n }\n\n async created(): Promise {\n await this.init();\n }\n\n async activated(): Promise {\n await this.init();\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MyGames.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MyGames.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MyGames.vue?vue&type=template&id=5b7dd155&scoped=true&\"\nimport script from \"./MyGames.vue?vue&type=script&lang=ts&\"\nexport * from \"./MyGames.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MyGames.vue?vue&type=style&index=0&id=5b7dd155&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5b7dd155\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VContainer,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"no-gutters\":\"\",\"fluid\":\"\"}},[_c('div',{staticClass:\"topBlock\"},[_c('div',{staticClass:\"profile\"},[_c('div',{staticClass:\"left\"},[_c('v-icon',[_vm._v(\"$tapBarProfile\")]),_c('span',[_vm._v(_vm._s(_vm.$t(\"profile.title\")))])],1)]),_c('div',{staticClass:\"separator\"}),_c('div',{staticClass:\"topBlockLine\"},[_c('span',{staticClass:\"left\"},[_vm._v(_vm._s(_vm.$t(\"profile.subscription.title\")))]),(_vm.highestSubscription)?_c('span',{staticClass:\"right\"},[(_vm.highestSubscription.access != 'visible')?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(\"profile.subscription.status.until\", { access: _vm.$t((\"profile.subscription.status.access.\" + (_vm.highestSubscription.access))), date: _vm.endSubDate, }))+\" \")]):_c('span',[_c('span',{staticClass:\"subscriptionStatus\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"profile.subscription.status.inactive\"))+\" \")])]):_vm._e()]),(_vm.showAsterisk)?_c('span',{staticClass:\"asterisk\",domProps:{\"innerHTML\":_vm._s(_vm.$t('profile.subscription.asterisk'))}}):_vm._e(),(_vm.showSupportEmail)?_c('div',{staticClass:\"topBlockLine link\"},[_c('a',{staticClass:\"left\",attrs:{\"href\":_vm.$t('profile.supportemail.link').toString(),\"target\":\"_blank\"},domProps:{\"innerHTML\":_vm._s(_vm.$t('profile.supportemail.text'))},on:{\"click\":function($event){return _vm.clickedLink('supportemail')}}})]):_vm._e(),(_vm.showFaq)?_c('div',{staticClass:\"topBlockLine link\"},[_c('a',{staticClass:\"left\",attrs:{\"href\":_vm.$t('profile.faq.link').toString(),\"target\":\"_blank\"},domProps:{\"innerHTML\":_vm._s(_vm.$t('profile.faq.text'))},on:{\"click\":function($event){return _vm.clickedLink('faq')}}})]):_vm._e(),(_vm.showTnC)?_c('div',{staticClass:\"topBlockLine link\"},[_c('a',{staticClass:\"left\",attrs:{\"href\":_vm.$t('profile.tnc.link').toString(),\"target\":\"_blank\"},domProps:{\"innerHTML\":_vm._s(_vm.$t('profile.tnc.text'))},on:{\"click\":function($event){return _vm.clickedLink('tnc')}}})]):_vm._e(),(_vm.showLoginLink)?_c('div',{staticClass:\"topBlockLine link\"},[_c('a',{staticClass:\"left\",attrs:{\"target\":\"_blank\"},domProps:{\"innerHTML\":_vm._s(_vm.$t('profile.alreadyGotPartnerAccount.text'))},on:{\"click\":function($event){return _vm.needAccess()}}})]):_vm._e(),(_vm.showILostMySub)?_c('div',{staticClass:\"topBlockLine link\"},[_c('a',{staticClass:\"left\",attrs:{\"target\":\"_blank\"},domProps:{\"innerHTML\":_vm._s(_vm.$t('profile.lostMySub.text'))},on:{\"click\":function($event){return _vm.lostMySub()}}})]):_vm._e(),(_vm.isAbleNotification)?_c('div',{staticClass:\"topBlockLine\"},[_c('span',{staticClass:\"left\"},[_vm._v(_vm._s(_vm.$t(\"profile.notification.title\")))]),_c('v-switch',{attrs:{\"color\":_vm.switchColor},model:{value:(_vm.hasNotif),callback:function ($$v) {_vm.hasNotif=$$v},expression:\"hasNotif\"}})],1):_vm._e(),(_vm.hasBigScreenPermission)?_c('div',{staticClass:\"topBlockLine\"},[_c('span',{staticClass:\"left\"},[_vm._v(_vm._s(_vm.$t(\"profile.resolution.title\")))]),_c('v-switch',{attrs:{\"color\":_vm.switchColor},model:{value:(_vm.isBigscreenResolution),callback:function ($$v) {_vm.isBigscreenResolution=$$v},expression:\"isBigscreenResolution\"}})],1):_vm._e()]),_c('TapBar')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component } from \"vue-property-decorator\";\nimport { format } from \"date-fns\";\nimport { green300 } from \"../../common/styles/colors.scss\";\n\nimport { Game, SubscriptionAccess, Subscription } from \"@/store/modules/games\";\nimport ListedGame from \"@/components/ListedGame.vue\";\nimport TapBar from \"@/components/TapBar.vue\";\n\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\nimport { UserPermission } from \"@/store/modules/authentication\";\n\n@Component({\n components: { ListedGame, TapBar },\n})\nexport default class ProfileView extends Vue {\n loaded = false;\n\n get games(): Game[] {\n return this.$store.direct.state.games.favoriteGames;\n }\n\n get isAbleNotification(): boolean {\n return this.$store.direct.getters.mobile.isAbleNotification;\n }\n\n get hasFullSubscription(): boolean {\n return this.highestSubscription?.access === SubscriptionAccess.FULL;\n }\n\n get hasDiscoverySubscription(): boolean {\n return this.highestSubscription?.access === SubscriptionAccess.DISCOVERY;\n }\n\n get highestSubscription(): Subscription | undefined {\n return this.$store.direct.getters.games.getHighestSubscription;\n }\n\n get switchColor(): string {\n return green300;\n }\n\n get showAsterisk(): boolean {\n return (\n /^true$/i.test(process.env.VUE_APP_PROFILE_SHOW_ASTERISK) &&\n !!this.highestSubscription &&\n !this.hasDiscoverySubscription &&\n this.highestSubscription?.access != \"visible\"\n );\n }\n\n get showSupportEmail(): boolean {\n return (\n /^true$/i.test(process.env.VUE_APP_PROFILE_SHOW_SUPPORT_EMAIL) &&\n !!this.highestSubscription &&\n !this.hasDiscoverySubscription\n );\n }\n\n get showFaq(): boolean {\n return /^true$/i.test(process.env.VUE_APP_SHOW_FAQ) && !!this.highestSubscription && !this.hasDiscoverySubscription;\n }\n\n get showTnC(): boolean {\n return /^true$/i.test(process.env.VUE_APP_PROFILE_SHOW_TNC);\n }\n\n get showLoginLink(): boolean {\n return (this.paymentEnabled || this.isAuthPartner) && this.isTempAccount && /^true$/i.test(process.env.VUE_APP_PROFILE_SHOW_LOGIN);\n }\n\n get showILostMySub(): boolean {\n return this.paymentEnabled && this.isTempAccount;\n }\n\n get isBigscreenResolution(): boolean {\n return this.$store.direct.state.mobile.isBigScreenResolution;\n }\n\n set isBigscreenResolution(value: boolean) {\n this.$store.direct.dispatch.mobile.setBigScreenResolution(value);\n }\n\n get hasBigScreenPermission(): boolean {\n return this.$store.direct.getters.authentication.hasPermission(UserPermission.BIGSCREEN);\n }\n\n get hasNotif(): boolean {\n return this.$store.direct.state.mobile.pushNotifEnabled;\n }\n\n set hasNotif(value: boolean) {\n if (value) {\n if (Notification.permission == \"denied\") {\n // TODO: something\n }\n this.$store.direct.dispatch.mobile.createNotificationSubscription();\n } else {\n this.$store.direct.dispatch.mobile.removeNotificationSubscription();\n }\n StatsManager.SendButtonClickStats(location.href, \"toggle_push_notification\", {\n newValue: value,\n });\n }\n\n get endSubDate(): string {\n if (!this.highestSubscription) return \"\";\n try {\n return format(\n new Date(this.highestSubscription.endOfSubscriptionDate),\n this.$t(\"profile.subscription.status.dateFormat\").toString()\n );\n } catch (e) {\n console.error(e);\n return new Date(this.highestSubscription.endOfSubscriptionDate).toLocaleDateString();\n }\n }\n\n get isTempAccount(): boolean {\n return this.$store.direct.state.authentication.user?.tempAccount ?? false;\n }\n\n get isAuthPartner(): boolean {\n return this.$store.direct.getters.authentication.isAuthPartner ?? false;\n }\n\n get paymentEnabled(): boolean {\n return this.$store.direct.getters.payment.enabled || this.$store.direct.getters.payment.fallbackEnabled;\n }\n\n needAccess(): void {\n if (this.paymentEnabled) {\n this.$store.direct.commit.mobile.SHOW_LOGIN_POPUP(false);\n this.clickedLink(\"login\");\n } else {\n this.$store.direct.dispatch.authentication.needAccess();\n this.clickedLink(\"alreadyGotPartnerAccount\");\n }\n }\n\n lostMySub(): void {\n this.$store.direct.dispatch.popup.showLostMySubPopup();\n this.clickedLink(\"lostMySub\");\n }\n\n clickedLink(link: string): void {\n StatsManager.SendButtonClickStats(location.href, link);\n }\n\n async created(): Promise {\n await this.$store.direct.dispatch.games.getFavoriteGames();\n await this.$store.direct.dispatch.mobile.fetchBigScreenResolution();\n this.loaded = true;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Profile.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Profile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Profile.vue?vue&type=template&id=3317b6e6&scoped=true&\"\nimport script from \"./Profile.vue?vue&type=script&lang=ts&\"\nexport * from \"./Profile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Profile.vue?vue&type=style&index=0&id=3317b6e6&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3317b6e6\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\ninstallComponents(component, {VContainer,VIcon,VSwitch})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"container no-gutters\",attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"leaderboard\"},[_c('div',{staticClass:\"leaderboardContainer\"},[_c('div',{staticClass:\"content\"},[_c('p',[_vm._v(_vm._s(_vm.$t(\"leaderboard.comingSoon\")))])])])]),_c('OGLTapBar',{attrs:{\"bordered\":\"\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-bottom-navigation',{staticClass:\"tapbar\",class:{ bordered: _vm.bordered }},[_c('div',{staticClass:\"tapbarBottom\"},[_c('v-btn',{staticClass:\"button\",class:_vm.$router.currentRoute.name === 'Home' ? 'active' : '',attrs:{\"ripple\":false,\"active-class\":\"\"},on:{\"click\":function($event){return _vm.move('/')}}},[_c('v-icon',[_vm._v(\"$tapBarHome\")]),_c('span',[_vm._v(_vm._s(_vm.$t(\"tapBar.home\")))])],1),_c('v-btn',{staticClass:\"button\",class:_vm.$router.currentRoute.name === 'Leaderboard' ? 'active' : '',attrs:{\"ripple\":false,\"active-class\":\"\"},on:{\"click\":function($event){return _vm.move('/leaderboard')}}},[_c('v-icon',[_vm._v(\"$tapBarLeaderboard\")]),_c('span',[_vm._v(_vm._s(_vm.$t(\"tapBar.leaderboard\")))])],1),_c('v-btn',{staticClass:\"button\",class:_vm.$router.currentRoute.name === 'Profile' ? 'active' : '',attrs:{\"ripple\":false,\"active-class\":\"\"},on:{\"click\":function($event){return _vm.move('/profile')}}},[_c('v-icon',[_vm._v(\"$tapBarProfile\")]),_c('span',[_vm._v(_vm._s(_vm.$t(\"tapBar.profile\")))])],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\n\n@Component\nexport default class TapBar extends Vue {\n @Prop({ type: Boolean, default: false }) bordered: boolean;\n @Prop({ type: Boolean, default: false }) checkBeforeMove: boolean;\n\n async move(location: string): Promise {\n // don't move if we are already there\n if (this.$router.currentRoute.path === location) return;\n let doMove = true;\n if (this.checkBeforeMove) {\n doMove = await new Promise((res, _rej) => {\n this.$emit(\"beforeMove\", location, res);\n });\n }\n if (doMove) this.$router.push(location);\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OGLTapBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OGLTapBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OGLTapBar.vue?vue&type=template&id=52b1db22&scoped=true&\"\nimport script from \"./OGLTapBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./OGLTapBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OGLTapBar.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./OGLTapBar.vue?vue&type=style&index=1&id=52b1db22&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"52b1db22\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBottomNavigation } from 'vuetify/lib/components/VBottomNavigation';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBottomNavigation,VBtn,VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component } from \"vue-property-decorator\";\nimport OGLTapBar from \"@/components/OGLTapBar.vue\";\n\n@Component({\n components: {\n OGLTapBar,\n },\n})\nexport default class Leaderboard extends Vue {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Leaderboard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Leaderboard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Leaderboard.vue?vue&type=template&id=53713ed1&scoped=true&\"\nimport script from \"./Leaderboard.vue?vue&type=script&lang=ts&\"\nexport * from \"./Leaderboard.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Leaderboard.vue?vue&type=style&index=0&id=53713ed1&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"53713ed1\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VContainer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component } from \"vue-property-decorator\";\n\n@Component\nexport default class Play extends Vue {\n mounted(): void {\n this.$store.direct.dispatch.authentication.logout();\n // reload page to home\n window.location.href = \"/\";\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Logout.vue?vue&type=template&id=bb371312&\"\nimport script from \"./Logout.vue?vue&type=script&lang=ts&\"\nexport * from \"./Logout.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"handle-status-bar\",class:{ 'non-subscribed': !_vm.subscribed },attrs:{\"no-gutters\":\"\",\"fluid\":\"\"}},[_c('div',{staticClass:\"logoBox\"},[_c('v-img',{staticClass:\"logo\",attrs:{\"alt\":\"CareGame Logo\",\"src\":require('@/assets/logo.png'),\"eager\":\"\",\"contain\":\"\"},scopedSlots:_vm._u([{key:\"placeholder\",fn:function(){return [_c('v-skeleton-loader',{attrs:{\"type\":\"image\",\"width\":\"250px\",\"min-height\":\"30.75\"}})]},proxy:true}])}),(!_vm.subscribed)?_c('GoUltimateButton',{staticClass:\"goUltimateButton\"}):_vm._e()],1),_c('span',{staticClass:\"tagline\"},[_vm._v(_vm._s(_vm.$t(\"home.subtitle\")))]),_vm._l((_vm.filteredHomeSections),function(section){return _c('HomeSectionComponent',{key:section._id,staticClass:\"homesection\",attrs:{\"data\":section},on:{\"video-card-ready\":_vm.observeVideoCard}})}),_c('TapBar',{attrs:{\"showSubBanner\":_vm.$store.direct.getters.authentication.showSubscribeBanner}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.loaded)?_c('div',{class:{ firstSection: _vm.isFirst }},[(_vm.isTypeBig && _vm.atLeastOneGame)?_c('HomeScroller',{staticClass:\"bigTitle\",attrs:{\"title\":_vm.title,\"subTitle\":_vm.subTitle,\"stepper\":\"\"}},_vm._l((_vm.games),function(game){return _c('CardGameXL',{key:game._id,attrs:{\"game\":game,\"showPlayButton\":_vm.showPlayButton}})}),1):(_vm.isTypeNormal && _vm.atLeastOneGame)?_c('HomeScroller',{attrs:{\"title\":_vm.title,\"subTitle\":_vm.subTitle}},_vm._l((_vm.games),function(game){return _c('CardGameL',{key:game._id,attrs:{\"game\":game,\"showPlayButton\":_vm.showPlayButton}})}),1):(_vm.isTypeFavorite && _vm.atLeastOneGame)?_c('HomeScroller',{attrs:{\"title\":_vm.title,\"subTitle\":_vm.subTitle}},_vm._l((_vm.games),function(game){return _c('CardGameL',{key:game._id,attrs:{\"game\":game,\"showPlayButton\":_vm.showPlayButton}})}),1):(_vm.isTypeLastPlayed && _vm.atLeastOneGame)?_c('HomeScroller',{attrs:{\"title\":_vm.title,\"subTitle\":_vm.subTitle}},_vm._l((_vm.games),function(game){return _c('CardGameL',{key:game._id,attrs:{\"game\":game,\"showPlayButton\":_vm.showPlayButton}})}),1):(_vm.isTypeGameSingle && _vm.atLeastOneGame)?_c('HomeScroller',{staticClass:\"bigTitle\",attrs:{\"title\":_vm.title,\"stepper\":\"\"}},[_c('CardGameXL',{staticClass:\"solo\",attrs:{\"subTitle\":_vm.subTitle,\"game\":_vm.games[0],\"showPlayButton\":_vm.showPlayButton}})],1):(_vm.isTypeCategorySingle)?_c('CardShowtime',{attrs:{\"title\":_vm.title,\"subTitle\":_vm.subTitle,\"link\":_vm.data.link,\"imageLink\":_vm.data.image}}):(_vm.isTypeGameVideo && _vm.atLeastOneGame)?_c('HomeCardGameVideo',{ref:\"videoCard\",attrs:{\"game\":_vm.games[0],\"subTitle\":_vm.subTitle,\"showPlayButton\":_vm.showPlayButton},on:{\"hook:updated\":_vm.transmitVideoCardUpdate,\"hook:mounted\":_vm.transmitVideoCard}}):(_vm.isTypeCategoryList)?_c('CategoryList',{attrs:{\"title\":_vm.title,\"data\":_vm.data}}):_vm._e()],1):_c('HomeScroller',{attrs:{\"title\":\"‎\"}},_vm._l(([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]),function(game){return _c('Banner',{key:game,attrs:{\"game\":undefined}})}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.loaded)?_c('router-link',{staticClass:\"card\",attrs:{\"to\":_vm.to}},[_c('v-img',{staticClass:\"banner rounded-sm\",attrs:{\"src\":_vm.game.bannerSmall},scopedSlots:_vm._u([{key:\"placeholder\",fn:function(){return [_c('v-skeleton-loader',{attrs:{\"type\":\"image\",\"min-width\":\"150\"}})]},proxy:true}],null,false,3885132061)}),_c('div',{staticClass:\"name rounded\"},[_vm._v(_vm._s(_vm.$t((\"games.\" + (_vm.game._id) + \".name\"))))])],1):_c('v-skeleton-loader',{staticClass:\"card\",attrs:{\"type\":\"card\",\"min-width\":\"150\",\"height\":\"105\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\nimport { Game } from \"@/store/modules/games\";\n\n@Component\nexport default class Banner extends Vue {\n @Prop(Object) readonly game: Game;\n @Prop(String) readonly to: string | undefined;\n\n get loaded(): boolean {\n return !!this.game;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Banner.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Banner.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Banner.vue?vue&type=template&id=3cd4a59c&scoped=true&\"\nimport script from \"./Banner.vue?vue&type=script&lang=ts&\"\nexport * from \"./Banner.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Banner.vue?vue&type=style&index=0&id=3cd4a59c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3cd4a59c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VImg,VSkeletonLoader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.loaded)?_c('router-link',{attrs:{\"to\":_vm.to}},[_c('div',{staticClass:\"box\"},[_c('v-img',{staticClass:\"card\",attrs:{\"src\":_vm.game.bannerBigWithTitle},scopedSlots:_vm._u([{key:\"placeholder\",fn:function(){return [_c('v-skeleton-loader',{attrs:{\"type\":\"image\",\"min-width\":\"240\"}})]},proxy:true}],null,false,1267472767)},[(_vm.showPlayButton)?_c('v-btn',{attrs:{\"fab\":\"\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.clickPlayButton.apply(null, arguments)}}},[_c('v-icon',[_vm._v(\"$playButton\")])],1):_vm._e()],1),_c('div',{staticClass:\"text\"},[_c('div',{staticClass:\"description\",domProps:{\"innerHTML\":_vm._s(_vm.description)}})])],1)]):_c('v-skeleton-loader',{staticClass:\"card\",attrs:{\"type\":\"image\",\"min-width\":\"240\",\"height\":\"256\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop } from \"vue-property-decorator\";\n\nimport CardGame from \"../../CardGame.vue\";\n\n@Component\nexport default class CardGameXL extends CardGame {\n @Prop(String) readonly subTitle: string;\n\n get description(): string {\n return this.subTitle ?? (this.$t(`games.${this.game._id}.shortDescription`) as string);\n }\n\n @Prop({ type: Boolean, default: false }) showPlayButton: boolean;\n\n clickPlayButton(): void {\n if (!this.$store.direct.getters.mobile.isBrowserValid) {\n this.$store.direct.commit.SHOW_ALERT({\n text: this.$t(\"alert.alerts.bad-browser.text\").toString(),\n title: this.$t(\"alert.alerts.bad-browser.title\").toString(),\n });\n return;\n }\n this.$store.direct.dispatch.games.play({ game: this.game, playOnBigScreen: false });\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardGameXL.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardGameXL.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CardGameXL.vue?vue&type=template&id=30c297de&scoped=true&\"\nimport script from \"./CardGameXL.vue?vue&type=script&lang=ts&\"\nexport * from \"./CardGameXL.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CardGameXL.vue?vue&type=style&index=0&id=30c297de&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"30c297de\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VBtn,VIcon,VImg,VSkeletonLoader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-link',{attrs:{\"to\":_vm.to}},[_c('v-img',{staticClass:\"card\",attrs:{\"src\":_vm.imageLink,\"contain\":\"\",\"position\":\"right\"},scopedSlots:_vm._u([{key:\"placeholder\",fn:function(){return [_c('v-skeleton-loader',{attrs:{\"type\":\"image\",\"min-width\":\"150\"}})]},proxy:true}])},[_c('div',{staticClass:\"box\"},[_c('div',{staticClass:\"text\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.title))]),_c('div',{staticClass:\"subTitle\"},[_vm._v(_vm._s(_vm.subTitle))])])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\n\n@Component({\n components: {},\n})\nexport default class CardShowtime extends Vue {\n @Prop(String) readonly title: string;\n @Prop(String) readonly subTitle: string;\n @Prop(String) readonly link: string;\n @Prop(String) readonly imageLink: string;\n\n get to(): string {\n return this.link ?? \"\";\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardShowtime.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardShowtime.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CardShowtime.vue?vue&type=template&id=78f79f02&scoped=true&\"\nimport script from \"./CardShowtime.vue?vue&type=script&lang=ts&\"\nexport * from \"./CardShowtime.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CardShowtime.vue?vue&type=style&index=0&id=78f79f02&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"78f79f02\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VImg,VSkeletonLoader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.title))]),_c('div',{staticClass:\"list\"},_vm._l((_vm.categories),function(cat,index){return _c('CardCategory',{key:index,attrs:{\"data\":cat}})}),1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-link',{attrs:{\"to\":_vm.to}},[_c('v-img',{staticClass:\"card\",attrs:{\"src\":_vm.data.image,\"contain\":\"\",\"position\":\"right\"}},[_c('div',{staticClass:\"box\",style:({ backgroundImage: _vm.backgroundColor })},[_c('div',{staticClass:\"text\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.data.title))])])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\n\nimport { HomeSectionListedCategory } from \"@/store/modules/homesections\";\n\n@Component({\n components: {},\n})\nexport default class CardCategory extends Vue {\n @Prop(Object) readonly data: HomeSectionListedCategory;\n\n get to(): string {\n return this.data.link ?? \"\";\n }\n\n get backgroundColor(): string {\n return `radial-gradient(\n 49.03% 62.83% at 68.14% 68.02%,\n ${this.data.colorGradient1} 15.07%,\n ${this.data.colorGradient2} 59.18%,\n ${this.data.colorGradient3} 100%\n ),\n linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(14, 15, 24, 0.78) 73.01%)`;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardCategory.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardCategory.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CardCategory.vue?vue&type=template&id=d79be916&scoped=true&\"\nimport script from \"./CardCategory.vue?vue&type=script&lang=ts&\"\nexport * from \"./CardCategory.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CardCategory.vue?vue&type=style&index=0&id=d79be916&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d79be916\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VImg } from 'vuetify/lib/components/VImg';\ninstallComponents(component, {VImg})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\n\nimport { HomeSectionCategoryList, HomeSectionListedCategory } from \"@/store/modules/homesections\";\n\nimport CardCategory from \"@/components/CardCategory.vue\";\n\n@Component({\n components: {\n CardCategory,\n },\n})\nexport default class CategoryList extends Vue {\n @Prop(Object) readonly data: HomeSectionCategoryList;\n @Prop(String) readonly title: string;\n\n get categories(): HomeSectionListedCategory[] {\n return this.data.listedCategories.slice().sort((a, b) => a.order - b.order);\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CategoryList.vue?vue&type=template&id=b625e0e0&scoped=true&\"\nimport script from \"./CategoryList.vue?vue&type=script&lang=ts&\"\nexport * from \"./CategoryList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CategoryList.vue?vue&type=style&index=0&id=b625e0e0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b625e0e0\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.loaded)?_c('div',{staticClass:\"box\"},[_c('router-link',{staticClass:\"link\",class:{ 'disabled-link': _vm.disableLink },attrs:{\"to\":_vm.to}},[_c('div',{staticClass:\"parent\"},[_c('img',{staticClass:\"image1 pic\",attrs:{\"src\":_vm.game.bannerBigNoTitle}}),(_vm.videoURL)?_c('video',{staticClass:\"image2 pic lazy need-load\",attrs:{\"preload\":\"metadata\",\"loop\":\"\",\"playsinline\":\"\",\"muted\":\"\",\"hidden\":_vm.hidden},domProps:{\"muted\":true},on:{\"playing\":function($event){_vm.hidden = false},\"pause\":function($event){_vm.hidden = true}}},[_c('source',{attrs:{\"data-src\":_vm.videoURL,\"type\":\"video/mp4\"}})]):_vm._e()]),_c('HomeListedGame',{staticClass:\"gameInfo\",attrs:{\"game\":_vm.game,\"disableLink\":_vm.disableLink,\"subTitle\":_vm.subTitle}},[_c('PlayButton',{staticClass:\"button-slot\",attrs:{\"game\":_vm.game,\"width\":120,\"height\":42,\"stretch\":false,\"font-size\":\"small\"}}),_vm._t(\"default\")],2)],1)],1):_c('v-skeleton-loader',{staticClass:\"card\",attrs:{\"type\":\"image\",\"min-width\":\"240\",\"height\":\"256\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.loaded)?_c('router-link',{class:{ disableLink: _vm.disableLink },attrs:{\"to\":_vm.to}},[_c('div',{staticClass:\"box\"},[_c('CardGameM',{attrs:{\"game\":_vm.game}}),_c('div',{staticClass:\"text\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t((\"games.\" + (_vm.game._id) + \".name\"))))]),_c('div',{staticClass:\"description\"},[_vm._v(_vm._s(_vm.subTitle && _vm.subTitle.length > 0 ? _vm.subTitle : _vm.$t((\"games.\" + (_vm.game._id) + \".shortDescription\"))))])]),_vm._t(\"default\")],2)]):_c('v-skeleton-loader',{staticClass:\"card\",attrs:{\"type\":\"card\",\"min-width\":\"88\",\"height\":\"72\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.loaded)?_c('router-link',{attrs:{\"to\":_vm.to}},[_c('CardM',{attrs:{\"image\":_vm.game.bannerSmall}},[(_vm.showPlayButton)?_c('v-btn',{attrs:{\"fab\":\"\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.clickPlayButton.apply(null, arguments)}}},[_c('v-icon',[_vm._v(\"$playButton\")])],1):_vm._e()],1)],1):_c('v-skeleton-loader',{staticClass:\"card\",attrs:{\"type\":\"image\",\"min-width\":\"96\",\"height\":\"54\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-img',{staticClass:\"card\",attrs:{\"src\":_vm.image},on:{\"click\":function($event){return _vm.$emit('click')}},scopedSlots:_vm._u([{key:\"placeholder\",fn:function(){return [_c('v-skeleton-loader',{attrs:{\"type\":\"image\",\"min-width\":\"96\"}})]},proxy:true}])},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\n\n@Component\nexport default class CardM extends Vue {\n @Prop(String) readonly image: string;\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardM.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardM.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CardM.vue?vue&type=template&id=003f2973&scoped=true&\"\nimport script from \"./CardM.vue?vue&type=script&lang=ts&\"\nexport * from \"./CardM.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CardM.vue?vue&type=style&index=0&id=003f2973&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"003f2973\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VImg,VSkeletonLoader})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop } from \"vue-property-decorator\";\nimport CardGame from \"./CardGame.vue\";\nimport CardM from \"./CardM.vue\";\n\n@Component({\n components: {\n CardM,\n },\n})\nexport default class CardGameM extends CardGame {\n @Prop({ type: Boolean, default: false }) showPlayButton: boolean;\n\n clickPlayButton(): void {\n if (!this.$store.direct.getters.mobile.isBrowserValid) {\n this.$store.direct.commit.SHOW_ALERT({\n text: this.$t(\"alert.alerts.bad-browser.text\").toString(),\n title: this.$t(\"alert.alerts.bad-browser.title\").toString(),\n });\n return;\n }\n this.$store.direct.dispatch.games.play({ game: this.game, playOnBigScreen: false });\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardGameM.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardGameM.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CardGameM.vue?vue&type=template&id=336222be&scoped=true&\"\nimport script from \"./CardGameM.vue?vue&type=script&lang=ts&\"\nexport * from \"./CardGameM.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CardGameM.vue?vue&type=style&index=0&id=336222be&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"336222be\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VBtn,VIcon,VSkeletonLoader})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\n\nimport CardGameM from \"./CardGameM.vue\";\n\nimport { Game } from \"@/store/modules/games\";\n\n@Component({\n components: {\n CardGameM,\n },\n})\nexport default class HomeListedGame extends Vue {\n @Prop(Boolean) readonly fake: boolean;\n @Prop(Object) readonly game: Game;\n @Prop(Boolean) readonly disableLink: boolean;\n @Prop(String) readonly subTitle: string;\n\n get loaded(): boolean {\n return !this.fake || !!this.game;\n }\n\n get to(): string {\n return `/game/${this.game.appID}`;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HomeListedGame.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HomeListedGame.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HomeListedGame.vue?vue&type=template&id=6c8fd126&scoped=true&\"\nimport script from \"./HomeListedGame.vue?vue&type=script&lang=ts&\"\nexport * from \"./HomeListedGame.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HomeListedGame.vue?vue&type=style&index=0&id=6c8fd126&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6c8fd126\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VSkeletonLoader})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop } from \"vue-property-decorator\";\n\nimport CardGame from \"@/components/CardGame.vue\";\nimport HomeListedGame from \"@/components/HomeListedGame.vue\";\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\nimport { SubscriptionAccess } from \"@/store/modules/games\";\nimport PlayButton from \"@/components/Common/PlayButton.vue\";\n\n@Component({\n components: {\n HomeListedGame,\n PlayButton,\n },\n})\nexport default class HomeCardGameVideo extends CardGame {\n @Prop(Boolean) readonly disableLink: boolean;\n @Prop(Boolean) readonly small: boolean;\n\n accessUpdateInterval: number | null = null;\n @Prop(String) readonly subTitle: string;\n hidden = true;\n\n get videoURL(): string {\n return this.game.headerVideo;\n }\n\n playButtonText(): string {\n if (this.game.isComingSoon) return this.$t(`game.buttons.play.coming-soon`).toString();\n if (!this.gameSubscription) return \"\";\n return this.$t(`game.buttons.play.${this.gameSubscription}`).toString();\n }\n\n get noActiveSub(): boolean {\n return this.gameSubscription === SubscriptionAccess.VISIBLE;\n }\n\n get gameSubscription(): SubscriptionAccess | undefined {\n if (!this.game) return undefined;\n return this.$store.direct.getters.games.getGameSubscription(this.game) || undefined;\n }\n\n async play(e: Event): Promise {\n e.preventDefault();\n e.stopPropagation();\n\n if (!this.game) return;\n\n StatsManager.SendButtonClickStats(location.href, \"play\", {\n game: {\n name: this.game.name,\n appID: this.game.appID,\n isComingSoon: this.game.isComingSoon,\n },\n gameSubscription: this.gameSubscription,\n });\n\n if (this.game?.isComingSoon) return;\n\n if (!this.$store.direct.getters.mobile.isBrowserValid) {\n this.$store.direct.commit.SHOW_ALERT({\n text: this.$t(\"alert.alerts.bad-browser.text\").toString(),\n title: this.$t(\"alert.alerts.bad-browser.title\").toString(),\n });\n return;\n }\n this.$store.direct.dispatch.games.play({ game: this.game, playOnBigScreen: false });\n }\n\n setupAccessUpdate(): void {\n if (this.accessUpdateInterval) return;\n this.accessUpdateInterval = setInterval(() => {\n if (this.game) this.$store.direct.dispatch.games.checkGameSubscription({ game: this.game, force: true });\n }, parseInt(process.env.VUE_APP_GAME_ACCESS_UPDATE_INTERVAL) || 1000 * 60);\n }\n\n activated(): void {\n if (this.game) this.$store.direct.dispatch.games.checkGameSubscription({ game: this.game, force: true });\n this.setupAccessUpdate();\n }\n\n deactivated(): void {\n this.$el.querySelector(\"video\")?.pause();\n if (this.accessUpdateInterval) {\n clearInterval(this.accessUpdateInterval);\n this.accessUpdateInterval = null;\n }\n }\n\n async created(): Promise {\n if (this.game) await this.$store.direct.dispatch.games.checkGameSubscription({ game: this.game });\n this.setupAccessUpdate();\n }\n\n mounted(): void {\n const t = this.$el.querySelector(\"video\");\n t?.addEventListener(\"canplay\", (event) => {\n StatsManager.SendArbitraryStats(\"home-video-canplay\", {\n appId: this.game.appID,\n videoUrl: this.game.headerVideo,\n });\n });\n t?.addEventListener(\"canplaythrough\", (event) => {\n StatsManager.SendArbitraryStats(\"home-video-canplaythrough\", {\n appId: this.game.appID,\n videoUrl: this.game.headerVideo,\n });\n });\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HomeCardGameVideo.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HomeCardGameVideo.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HomeCardGameVideo.vue?vue&type=template&id=020b2e84&scoped=true&\"\nimport script from \"./HomeCardGameVideo.vue?vue&type=script&lang=ts&\"\nexport * from \"./HomeCardGameVideo.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HomeCardGameVideo.vue?vue&type=style&index=0&id=020b2e84&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"020b2e84\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VSkeletonLoader})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\n\nimport HomeScroller from \"@/components/HomeScroller.vue\";\nimport Banner from \"@/components/Banner.vue\";\n\nimport { Game } from \"@/store/modules/games\";\nimport { HomeSection, Type } from \"@/store/modules/homesections\";\nimport CardGameXL from \"@/components/Home/HomeSections/CardGameXL.vue\";\nimport CardGameL from \"@/components/CardGameL.vue\";\nimport CardShowtime from \"@/components/Home/HomeSections/CardShowtime.vue\";\nimport CategoryList from \"@/components/CategoryList.vue\";\nimport HomeCardGameVideo from \"./HomeSections/HomeCardGameVideo.vue\";\n\n@Component({\n components: {\n CardGameXL,\n CardGameL,\n CardShowtime,\n CategoryList,\n HomeScroller,\n Banner,\n HomeCardGameVideo,\n },\n})\nexport default class HomeSectionComponent extends Vue {\n @Prop(Object) readonly data: HomeSection;\n loaded = false;\n\n getGamesFromHomeSection(): Game[] {\n // Get a copy of the HomeSection games\n let homeSectionGames = this.data.games.slice();\n // Sort them based on the order defined in database\n homeSectionGames = homeSectionGames.sort((a, b) => a.order - b.order);\n\n // Fetch the actual games from the IDs\n let res = homeSectionGames.map(\n (g) => this.$store.direct.state.games.games.find((game) => game._id === g.game) as Game\n );\n // Remove null references (games that would have been deleted for example)\n res = res.filter((g) => g);\n return res;\n }\n\n get games(): Game[] {\n switch (this.data.type) {\n case Type.FAVORITE:\n return this.$store.direct.state.games.favoriteGames.slice(0, 10);\n case Type.LAST_PLAYED:\n return this.$store.direct.state.games.lastPlayedGames.slice(0, 10);\n default:\n return this.getGamesFromHomeSection();\n }\n }\n\n get atLeastOneGame(): boolean {\n return this.games.length > 0;\n }\n\n get isTypeBig(): boolean {\n return this.data.type === Type.BIG;\n }\n\n get isTypeFavorite(): boolean {\n return this.data.type === Type.FAVORITE;\n }\n\n get isTypeLastPlayed(): boolean {\n return this.data.type === Type.LAST_PLAYED;\n }\n\n get isTypeNormal(): boolean {\n return this.data.type === Type.NORMAL;\n }\n\n get isTypeCategoryList(): boolean {\n return this.data.type === Type.CATEGORY_LIST;\n }\n\n get isTypeCategorySingle(): boolean {\n return this.data.type === Type.CATEGORY_SINGLE;\n }\n\n get isTypeGameSingle(): boolean {\n return this.data.type === Type.GAME_SINGLE;\n }\n\n get isTypeGameVideo(): boolean {\n return this.data.type === Type.GAME_VIDEO;\n }\n\n get title(): string {\n return this.$te(`homeSections.${this.data._id}.title`)\n ? this.$t(`homeSections.${this.data._id}.title`).toString()\n : \"\";\n }\n\n get subTitle(): string {\n return this.$te(`homeSections.${this.data._id}.subTitle`)\n ? this.$t(`homeSections.${this.data._id}.subTitle`).toString()\n : \"\";\n }\n\n get isFirst(): boolean {\n return this.$store.direct.state.homeSections.homeSections[0]._id === this.data._id;\n }\n\n get showPlayButton(): boolean {\n return this.data.showPlayButton || false;\n }\n\n async created(): Promise {\n if (this.data.name === \"$fake\") return;\n if (this.data.games.length > 0)\n await this.$store.direct.dispatch.games.getGamesByIds(this.data.games.map((g) => g.game));\n this.loaded = true;\n }\n\n transmitVideoCard() {\n let videoCard = this.$refs.videoCard;\n if (videoCard) {\n this.$emit('video-card-ready', (videoCard as Vue).$el);\n }\n }\n\n transmitVideoCardUpdate() {\n let videoCard = this.$refs.videoCard;\n if (videoCard) {\n this.$emit('video-card-update', (videoCard as Vue).$el);\n }\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HomeSection.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HomeSection.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HomeSection.vue?vue&type=template&id=853da194&\"\nimport script from \"./HomeSection.vue?vue&type=script&lang=ts&\"\nexport * from \"./HomeSection.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component, Watch } from \"vue-property-decorator\";\n\nimport HomeSectionComponent from \"@/components/Home/HomeSection.vue\";\nimport TapBar from \"@/components/TapBar.vue\";\nimport { HomeSection, Type } from \"@/store/modules/homesections\";\nimport { SubscriptionAccess } from \"@/store/modules/games\";\nimport GoUltimateButton from \"@/components/Common/GoUltimateButton.vue\";\n\nlet everyVideoElement: Element[] = [];\nconst intersectSquareHeight = 20;\nconst screenMiddle = (window.innerHeight / 2) - 40;\n\nfunction videoNeedsLoading(videoElement: HTMLVideoElement): boolean {\n return videoElement.classList.contains(\"need-load\");\n}\n\nfunction loadVideo(videoElement: HTMLVideoElement): void {\n if (videoElement.classList.contains(\"need-load\")) {\n for (var source in videoElement.children) {\n var videoSource = videoElement.children[source];\n if (typeof videoSource.tagName === \"string\" && videoSource.tagName === \"SOURCE\") {\n (videoSource as any).src = (videoSource as any).dataset.src;\n }\n }\n videoElement.load();\n videoElement.classList.remove(\"need-load\");\n }\n}\n\nfunction pauseVideo(videoElement: HTMLVideoElement) {\n videoElement.pause();\n}\n\nfunction playVideo(videoElement: HTMLVideoElement) {\n videoElement.pause();\n videoElement.play();\n}\n\nfunction restartVideo(videoElement: HTMLVideoElement) {\n videoElement.currentTime = 0;\n}\n\nfunction checkIntersection() {\n const top = screenMiddle;\n const bottom = top + intersectSquareHeight;\n\n let intersectingVideos: Element[] = [];\n let firstVideo: Element | null = null;\n\n // Get video intersecting with middle and get the first video element\n for (const elem of everyVideoElement) {\n const videoRect = elem.getBoundingClientRect();\n if (!firstVideo) firstVideo = elem;\n else {\n const firstVideoRect = firstVideo.getBoundingClientRect();\n if (videoRect.y < firstVideoRect.y) firstVideo = elem;\n }\n const rectA = { y1: top, y2: bottom };\n const rectB = { y1: videoRect.y, y2: videoRect.bottom };\n if ((rectA.y1 > rectB.y1 && rectA.y1 < rectB.y2) || (rectA.y2 > rectB.y1 && rectA.y2 < rectB.y2)) {\n intersectingVideos.push(elem);\n }\n }\n\n // If the client is scrolled less than 20 pixels, play the first video and return\n if (window.scrollY <= 20 && firstVideo) {\n const video = firstVideo.querySelector(\"video\");\n if (video) {\n if (video === playing) return;\n if (videoNeedsLoading(video)) {\n loadVideo(video);\n playVideo(video);\n } else {\n playVideo(video);\n }\n if (playing) {\n restartVideo(playing)\n pauseVideo(playing);\n }\n playing = video;\n return;\n }\n }\n\n // If no video is intersecting, stop playing video and return\n if (intersectingVideos.length === 0) {\n if (playing) {\n restartVideo(playing);\n pauseVideo(playing);\n playing === null;\n }\n return;\n }\n\n // Play first intersecting video, play old playing video\n const video = intersectingVideos[0].querySelector(\"video\");\n if (video) {\n if (video === playing) return;\n if (videoNeedsLoading(video)) {\n loadVideo(video);\n playVideo(video);\n } else {\n playVideo(video);\n }\n if (playing) {\n restartVideo(playing)\n pauseVideo(playing);\n }\n playing = video;\n }\n}\n\nlet playing: HTMLVideoElement | null = null;\n\nwindow.addEventListener(\"scroll\", (event) => {\n checkIntersection();\n});\n\n@Component({\n components: {\n HomeSectionComponent,\n GoUltimateButton,\n TapBar,\n },\n})\nexport default class HomeView extends Vue {\n\n get anonymous(): boolean {\n return this.username === \"\";\n }\n\n get username(): string {\n return this.$store.direct.state.authentication.user?.username ?? \"\";\n }\n\n get filteredHomeSections(): HomeSection[] {\n return this.$store.direct.state.homeSections.homeSections.filter((h) => h.type && h.type !== Type.OLD);\n }\n\n get subscribed(): boolean {\n const sub = this.$store.direct.getters.games.getHighestSubscription;\n return !sub || sub.access === SubscriptionAccess.FULL;\n }\n\n async created(): Promise {\n this.$store.direct.dispatch.homeSections.getHomeSections();\n if (this.$store.direct.getters.mobile.isWebApp)\n await this.$store.direct.dispatch.mobile.createNotificationSubscription();\n }\n\n mounted() {\n checkIntersection();\n }\n\n unmounted() {\n if (playing) {\n restartVideo(playing)\n pauseVideo(playing);\n playing = null;\n }\n everyVideoElement = [];\n }\n\n // When come back to this page, restart and pause every video, then start intersecting video\n activated() {\n playing = null;\n everyVideoElement.forEach((element: Element) => {\n const video = element.querySelector(\"video\");\n if (video) {\n restartVideo(video);\n pauseVideo(video);\n }\n });\n checkIntersection();\n }\n\n // When we quit this page, restart and pause every video\n deactivated() {\n playing = null;\n everyVideoElement.forEach((element: Element) => {\n const video = element.querySelector(\"video\");\n if (video) {\n restartVideo(video);\n pauseVideo(video);\n }\n });\n }\n\n // Observe video for playing / pause\n observeVideoCard(element: Element) {\n if (!everyVideoElement.includes(element)) {\n everyVideoElement.push(element);\n }\n if (everyVideoElement.length > 2) {\n checkIntersection();\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=06c3f37a&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=ts&\"\nexport * from \"./Home.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=06c3f37a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"06c3f37a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VContainer,VImg,VSkeletonLoader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"container no-gutters\",attrs:{\"fluid\":\"\"}},[_c('v-img',{staticClass:\"logo\",attrs:{\"alt\":\"CareGame Logo\",\"src\":require('@/assets/logo.png'),\"eager\":\"\",\"contain\":\"\",\"position\":\"left\"},scopedSlots:_vm._u([{key:\"placeholder\",fn:function(){return [_c('v-skeleton-loader',{attrs:{\"type\":\"image\",\"height\":\"64px\"}})]},proxy:true}])}),_c('div',{staticClass:\"header\"},[_c('v-img',{staticClass:\"card\",attrs:{\"src\":_vm.game.bannerBigNoTitle},scopedSlots:_vm._u([{key:\"placeholder\",fn:function(){return [_c('v-skeleton-loader',{attrs:{\"type\":\"image\"}})]},proxy:true}])},[_c('div',{staticClass:\"fill-height gradient\"})]),_c('div',{staticClass:\"text\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t((\"games.\" + (_vm.game._id) + \".name\"))))]),_c('div',{staticClass:\"description\"},[_vm._v(_vm._s(_vm.$t((\"games.\" + (_vm.game._id) + \".shortDescription\"))))]),_c('div',{staticClass:\"third\"},[_c('v-btn',{staticClass:\"category\"},[_vm._v(_vm._s(_vm.genreName))]),_c('span',{staticClass:\"pegi\"},[_vm._v(\" \"+_vm._s(_vm.contentRating))])],1)])],1),_c('CoolLightBox',{attrs:{\"items\":_vm.screenshots,\"index\":_vm.currentSShot,\"effect\":\"fade\",\"slideshow\":false,\"gallery\":false,\"closeOnClickOutsideMobile\":true},on:{\"close\":function($event){_vm.currentSShot = null}}}),_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"actions\"},[_c('v-btn',{staticClass:\"play\",on:{\"click\":_vm.play}},[_c('v-icon',[_vm._v(\"$playButton\")]),_vm._v(_vm._s(_vm.$t(\"game.playbutton\")))],1),(_vm.canShare)?_c('v-btn',{on:{\"click\":_vm.share}},[_c('v-icon',[_vm._v(\"$shareButton\")])],1):_vm._e()],1),_c('div',{staticClass:\"welcome section\",domProps:{\"innerHTML\":_vm._s(_vm.$t('game.oneGameLobby.welcome'))}}),(_vm.screenshots.length > 0)?_c('HomeScroller',{staticClass:\"screenshotsSection section\",attrs:{\"title\":_vm.$t('game.sections.gallery.sectionTitle')}},_vm._l((_vm.game.screenshots),function(screenshot,i){return _c('CardScreenshot',{key:screenshot.url,class:{ portrait: _vm.isPortrait },attrs:{\"image\":screenshot.url},on:{\"click\":function($event){_vm.currentSShot = i}}})}),1):_vm._e(),_c('div',{staticClass:\"descriptionSection section\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t(\"game.sections.description.sectionTitle\")))]),_c('div',{staticClass:\"description\",class:{ short: !_vm.fullDescription },domProps:{\"innerHTML\":_vm._s(_vm.$t((\"games.\" + (_vm.game._id) + \".description\")))}}),_c('div',{staticClass:\"seeMoreLess\"},[_c('v-btn',{attrs:{\"text\":\"\",\"ripple\":false},on:{\"click\":function($event){_vm.fullDescription = !_vm.fullDescription}}},[(!_vm.fullDescription)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(\"game.sections.description.showMore\"))+\" \"),_c('v-icon',[_vm._v(\"$showMore\")])],1):_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(\"game.sections.description.showLess\"))+\" \"),_c('v-icon',[_vm._v(\"$showLess\")])],1)])],1)]),_c('div',{staticClass:\"separator\"}),_c('div',{staticClass:\"data section\"},_vm._l((_vm.info),function(i){return _c('div',{key:i.key,staticClass:\"dataline\"},[_c('div',{staticClass:\"key\"},[_vm._v(_vm._s(i.key))]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(i.value))])])}),0)],1),_c('OGLTapBar',{attrs:{\"bordered\":\"\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component } from \"vue-property-decorator\";\nimport CoolLightBox from \"vue-cool-lightbox\";\nimport \"vue-cool-lightbox/dist/vue-cool-lightbox.min.css\";\n\nimport { Game } from \"@/store/modules/games\";\n\nimport CardScreenshot from \"@/components/CardScreenshot.vue\";\nimport CardGameL from \"@/components/CardGameL.vue\";\nimport HomeScroller from \"@/components/HomeScroller.vue\";\nimport OGLTapBar from \"@/components/OGLTapBar.vue\";\nimport { Genre } from \"@/store/modules/genres\";\n\n@Component({\n components: {\n CardScreenshot,\n CardGameL,\n CoolLightBox,\n HomeScroller,\n OGLTapBar,\n },\n})\nexport default class GameView extends Vue {\n currentSShot = null;\n fullDescription = false;\n\n get info() {\n return [\n {\n key: this.$t(\"game.sections.info.publisher\"),\n value: this.publisher,\n },\n ];\n }\n\n get screenshots(): string[] {\n return this.game?.screenshots?.map((screenshot) => screenshot.url) || [];\n }\n\n get favorite(): boolean {\n if (!this.game) return false;\n return this.$store.direct.state.games.favoriteGamesIds.includes(this.game._id);\n }\n\n get isPortrait(): boolean {\n return this.game?.orientation === \"PORTRAIT\";\n }\n\n async play(): Promise {\n if (!this.game) return;\n if (!this.$store.direct.getters.mobile.isBrowserValid) {\n this.$store.direct.commit.SHOW_ALERT({\n text: this.$t(\"alert.alerts.bad-browser.text\").toString(),\n title: this.$t(\"alert.alerts.bad-browser.title\").toString(),\n });\n return;\n }\n this.$store.direct.dispatch.games.play({ game: this.game, playOnBigScreen: false });\n }\n\n async toggleFavorite(): Promise {\n if (!this.game) return;\n if (this.favorite) await this.$store.direct.dispatch.games.removeFromFavorite(this.game);\n else await this.$store.direct.dispatch.games.addToFavorite(this.game);\n }\n\n get pegiRating(): number {\n return this.game?.contentRating?.pegi?.rating || 3;\n }\n\n get game(): Game | undefined {\n return this.$store.direct.getters.games.getGame(process.env.VUE_APP_ONE_GAME_LOBBY);\n }\n\n get publisher(): string {\n return this.$store.direct.state.publishers.publishers.find((p) => p._id === this.game?.publisher)?.name || \"\";\n }\n\n get genre(): Genre | undefined {\n return this.$store.direct.state.genres.genres.find((p) => p._id === this.game?.genre);\n }\n\n get genreName(): string {\n return this.$te(`genres.${this.genre?._id}.name`) ? this.$t(`genres.${this.genre?._id}.name`).toString() : \"\";\n }\n\n get genreLink(): string {\n return `/category/${this.genre?.urlSegment || this.genre?.name.toLowerCase()}`;\n }\n\n get contentRating(): string {\n if (this.game?.contentRating.pegi.rating) return `PEGI ${this.game?.contentRating.pegi.rating}`;\n return \"\";\n }\n\n get canShare(): boolean {\n return this.$store.direct.getters.mobile.canShare;\n }\n\n async share(): Promise {\n if (!this.game) return;\n return this.$store.direct.dispatch.mobile.share({ game: this.game });\n }\n\n async created(): Promise {\n await this.$store.direct.dispatch.games.getGameByAppID(process.env.VUE_APP_ONE_GAME_LOBBY);\n if (!this.game) return;\n await this.$store.direct.dispatch.genres.getGenres();\n await this.$store.direct.dispatch.publishers.getPublishers();\n\n if (this.$store.direct.getters.mobile.isWebApp)\n await this.$store.direct.dispatch.mobile.createNotificationSubscription();\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OneGameLobby.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OneGameLobby.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OneGameLobby.vue?vue&type=template&id=19e7239c&scoped=true&\"\nimport script from \"./OneGameLobby.vue?vue&type=script&lang=ts&\"\nexport * from \"./OneGameLobby.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OneGameLobby.vue?vue&type=style&index=0&id=19e7239c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"19e7239c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VBtn,VContainer,VIcon,VImg,VSkeletonLoader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"no-gutters\":\"\",\"fluid\":\"\"}},[_c('div',{staticClass:\"topBlock\"},[_c('div',{staticClass:\"profile\"},[_c('div',{staticClass:\"left\"},[_c('v-icon',[_vm._v(\"$tapBarProfile\")]),_c('span',[_vm._v(_vm._s(_vm.isRegistered ? _vm.username : _vm.$t(\"profile.title\")))])],1)]),_c('div',{staticClass:\"separator\"}),_c('div',{staticClass:\"subscription\"},[_c('span',{staticClass:\"left\"},[_vm._v(_vm._s(_vm.$t(\"profile.subscription.title\")))]),_c('span',{staticClass:\"right\"},[_c('span',{staticClass:\"active\"}),_vm._v(_vm._s(_vm.$t(\"profile.subscription.status.active\")))])]),_c('div',{staticClass:\"subscription\"},[_c('span',{staticClass:\"left\"},[_vm._v(_vm._s(_vm.$t(\"profile.settings.pushNotifs.label\")))]),_c('v-switch',{model:{value:(_vm.hasNotif),callback:function ($$v) {_vm.hasNotif=$$v},expression:\"hasNotif\"}})],1)]),(!_vm.isRegistered)?_c('div',[(_vm.showLogin)?_c('LoginForm',{staticClass:\"login\",on:{\"close\":function($event){_vm.showLogin = false}}}):(_vm.showRegister)?_c('RegisterForm',{staticClass:\"register\",on:{\"close\":function($event){_vm.showRegister = false}}}):_c('div',{staticClass:\"welcome\"},[_c('div',{staticClass:\"content\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('profile.registration.newUser.text'))}})]),_c('div',{staticClass:\"cta\"},[_c('span',{staticClass:\"button\",on:{\"click\":function($event){_vm.showLogin = true}}},[_vm._v(_vm._s(_vm.$t(\"profile.registration.newUser.buttons.login\")))]),_c('span',{staticClass:\"button important\",on:{\"click\":function($event){_vm.showRegister = true}}},[_vm._v(_vm._s(_vm.$t(\"profile.registration.newUser.buttons.register\")))])])])],1):_c('div'),(_vm.showBeforeMoveWarning)?_c('TapBarMoveWarning',{on:{\"leave\":_vm.beforeMoveLeave,\"continue\":_vm.beforeMoveContinue}}):_vm._e(),_c('OGLTapBar',{attrs:{\"checkBeforeMove\":!_vm.isRegistered && (_vm.showLogin || _vm.showRegister)},on:{\"beforeMove\":_vm.beforeMove}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-overlay',{attrs:{\"opacity\":\"0.75\",\"z-index\":\"200\",\"color\":\"#000000\"}},[_c('div',{staticClass:\"tutoContainer\"},[_c('div',{staticClass:\"content\"},[_vm._v(\" Are you sure you want to leave this page? \"),_c('br'),_vm._v(\"Your changes won't be saved. \")]),_c('div',{staticClass:\"cta\"},[_c('span',{staticClass:\"button\",on:{\"click\":function($event){return _vm.$emit('leave')}}},[_vm._v(\"Leave\")]),_c('span',{staticClass:\"button important\",on:{\"click\":function($event){return _vm.$emit('continue')}}},[_vm._v(\"Continue\")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component } from \"vue-property-decorator\";\n\n@Component\nexport default class TapParMoveWarning extends Vue {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TapBarMoveWarning.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TapBarMoveWarning.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TapBarMoveWarning.vue?vue&type=template&id=b0939d12&scoped=true&\"\nimport script from \"./TapBarMoveWarning.vue?vue&type=script&lang=ts&\"\nexport * from \"./TapBarMoveWarning.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TapBarMoveWarning.vue?vue&type=style&index=0&id=b0939d12&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b0939d12\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VOverlay})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component } from \"vue-property-decorator\";\n\nimport { User } from \"@/store/modules/authentication\";\nimport { Game } from \"@/store/modules/games\";\nimport ListedGame from \"@/components/ListedGame.vue\";\nimport OGLTapBar from \"@/components/OGLTapBar.vue\";\nimport TapBarMoveWarning from \"../components/TapBarMoveWarning.vue\";\nimport LoginForm from \"../components/Profile/LoginForm.vue\";\nimport RegisterForm from \"../components/Profile/RegisterForm.vue\";\n\n@Component({\n components: { ListedGame, OGLTapBar, LoginForm, RegisterForm, TapBarMoveWarning },\n})\nexport default class ProfileView extends Vue {\n loaded = false;\n // username: string | undefined = \"\";\n friendID = \"\";\n showLogin = false;\n showRegister = false;\n beforeMovePromise?: (value: boolean | PromiseLike) => void = undefined;\n showBeforeMoveWarning = false;\n\n get games(): Game[] {\n return this.$store.direct.state.games.favoriteGames;\n }\n\n get hasNotif(): boolean {\n return this.$store.direct.state.mobile.pushNotifEnabled;\n }\n\n set hasNotif(value: boolean) {\n if (value) {\n if (Notification.permission == \"denied\") {\n // TODO: something\n }\n this.$store.direct.dispatch.mobile.createNotificationSubscription();\n } else {\n this.$store.direct.dispatch.mobile.removeNotificationSubscription();\n }\n }\n\n get friendList(): User[] {\n return this.$store.direct.state.authentication.friendList || [];\n }\n\n get isRegistered(): boolean {\n return this.$store.direct.state.authentication.user?.isRegistered || false;\n }\n\n get username(): string {\n return this.$store.direct.state.authentication.user?.username || \"Anonymous\";\n }\n\n /*\n updateUsername(): void {\n if (!this.username) return;\n this.$store.direct.dispatch.authentication.updateUsername(this.username);\n }\n */\n\n async addFriend(): Promise {\n await this.$store.direct.dispatch.authentication.addFriend({\n id: this.friendID,\n });\n }\n\n async removeFriend(friend: User): Promise {\n await this.$store.direct.dispatch.authentication.removeFriend(friend);\n }\n\n async created(): Promise {\n // await this.$store.direct.dispatch.games.getFavoriteGames();\n // this.username = this.$store.direct.state.authentication.user?.username;\n this.loaded = true;\n }\n\n deactivated(): void {\n this.showLogin = false;\n this.showRegister = false;\n }\n\n beforeMoveLeave(): void {\n this.showBeforeMoveWarning = false;\n this.beforeMovePromise?.(true);\n }\n\n beforeMoveContinue(): void {\n this.showBeforeMoveWarning = false;\n this.beforeMovePromise?.(false);\n }\n\n beforeMove(location: string, res: (value: boolean | PromiseLike) => void): void {\n this.beforeMovePromise = res;\n this.showBeforeMoveWarning = true;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OneGameProfile.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OneGameProfile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OneGameProfile.vue?vue&type=template&id=e8721862&scoped=true&\"\nimport script from \"./OneGameProfile.vue?vue&type=script&lang=ts&\"\nexport * from \"./OneGameProfile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OneGameProfile.vue?vue&type=style&index=0&id=e8721862&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e8721862\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\ninstallComponents(component, {VContainer,VIcon,VSwitch})\n","import { RouteConfig } from \"vue-router\";\n\nimport { isValidAndroidAppID } from \"@/../common/utils/utils\";\nimport Game from \"@/views/Game.vue\";\nimport PlayIframe from \"@/views/PlayIframe.vue\";\nimport Categories from \"@/views/Categories.vue\";\nimport MyGames from \"@/views/MyGames.vue\";\nimport Profile from \"@/views/Profile.vue\";\nimport Leaderboard from \"@/views/Leaderboard.vue\";\nimport Logout from \"@/views/Logout.vue\";\nimport Home from \"@/views/Home.vue\";\nimport OneGameLobby from \"@/views/OneGameLobby.vue\";\nimport OneGameProfile from \"@/views/OneGameProfile.vue\";\n\ninterface MyRouteConfigInterface {\n meta?: {\n noHandleNotch?: boolean;\n skipAuth?: boolean;\n };\n}\n\ntype MyRouteConfig = MyRouteConfigInterface & RouteConfig;\n\nconst routes: MyRouteConfig[] = [];\n\nroutes.push(\n ...[\n {\n path: \"/game/:game\",\n name: \"Game\",\n component: Game,\n meta: {\n noHandleNotch: false,\n },\n },\n {\n path: \"/playiframe/:game\",\n name: \"PlayIframe\",\n component: PlayIframe,\n meta: {\n noHandleNotch: true,\n },\n },\n {\n path: \"/category/:tab?\",\n name: \"Categories\",\n component: Categories,\n meta: {\n noHandleNotch: true,\n },\n },\n {\n path: \"/mygames\",\n name: \"My Games\",\n component: MyGames,\n meta: {\n noHandleNotch: true,\n },\n },\n {\n path: \"/profile/\",\n name: \"Profile\",\n component: isValidAndroidAppID(process.env.VUE_APP_ONE_GAME_LOBBY) ? OneGameProfile : Profile,\n },\n {\n path: \"/leaderboard/\",\n name: \"Leaderboard\",\n component: Leaderboard,\n },\n {\n path: \"/logout/\",\n name: \"Logout\",\n component: Logout,\n },\n {\n path: \"/fakepartnerauth\",\n name: \"FakePartnerAuth\",\n component: () => import(\"@/views/FakePartnerAuth.vue\"),\n meta: {\n skipAuth: true,\n },\n },\n {\n path: \"/fakepartnersub\",\n name: \"FakePartnerSub\",\n component: () => import(\"@/views/FakePartnerSub.vue\"),\n meta: {\n title: \"Subscribe\",\n subscription: {\n type: \"subscribe\",\n },\n },\n },\n {\n path: \"/fakepartnersubtemp\",\n name: \"FakePartnerSubTemp\",\n component: () => import(\"@/views/FakePartnerSub.vue\"),\n meta: {\n title: \"Subscribe (New)\",\n subscription: {\n type: \"subscribe\",\n },\n },\n },\n {\n path: \"/fakepartnerunsub\",\n name: \"FakePartnerUnsub\",\n component: () => import(\"@/views/FakePartnerSub.vue\"),\n meta: {\n title: \"Unsubscribe\",\n subscription: {\n type: \"unsubscribe\",\n },\n },\n },\n {\n path: \"/:cgtoken?\",\n name: \"Home\",\n component: isValidAndroidAppID(process.env.VUE_APP_ONE_GAME_LOBBY) ? OneGameLobby : Home,\n },\n ]\n);\n\nroutes.push(\n ...[\n {\n path: \"*\",\n redirect: { name: \"Home\" },\n },\n ]\n);\n\nexport default routes;\n","import Vue from \"vue\";\nimport VueRouter, { Route, RouterOptions, RawLocation, Location } from \"vue-router\";\n\nimport Store from \"@/store/\";\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\nimport routes from \"@/router/routes\";\nimport { LAST_SEEN_DATE_KEY } from \"../apm\";\nimport { delay } from \"@/../common/utils/utils\";\n\nVue.use(VueRouter);\n\nclass MyRouter extends VueRouter {\n private routeHistory: Route[] = [];\n private get hasMoved(): boolean {\n return this.routeHistory.length > 1;\n }\n\n constructor(options?: RouterOptions) {\n super(options);\n\n this.afterEach((to, _from) => {\n this.routeHistory.push(to);\n });\n }\n\n /**\n * Go back to the previous route in the history.\n * @param fallback The fallback route to go to if there is no history. Default is \"/\".\n */\n public async back(fallback: RawLocation = \"/\"): Promise {\n const routeBeforeBack = this.currentRoute.fullPath;\n\n const MAX_BACK_ATTEMPTS = 10;\n let attempts = 0;\n\n let backWorked = false;\n do {\n this.hasMoved ? this.go(-1) : this.push(fallback);\n await delay(100);\n const routeAfterBack = this.currentRoute.fullPath;\n\n backWorked = routeBeforeBack !== routeAfterBack;\n\n attempts++;\n } while (!backWorked && attempts < MAX_BACK_ATTEMPTS);\n }\n}\n\nconst router = new MyRouter({\n mode: \"history\",\n base: process.env.BASE_URL,\n routes,\n scrollBehavior(to, from, savedPosition) {\n if (savedPosition) return savedPosition;\n else return { x: 0, y: 0 };\n },\n});\n\nrouter.beforeEach(async (to, _from, next) => {\n if (to.meta.skipAuth) return next();\n if (to.params.cgtoken) await Store.dispatch.authentication.setJWT(to.params.cgtoken);\n if (to.query.cgtoken) await Store.dispatch.authentication.setJWT(to.query.cgtoken as string);\n if (to.query.referrer) await Store.dispatch.authentication.setReferrer(to.query.referrer as string);\n\n if (!Store.getters.authentication.isAuthenticated) {\n // Need to retrieve the cgtoken here because it is deleted in whoami() if it's invalid.\n const hadCGToken = !!Store.getters.authentication.jwt;\n await Store.dispatch.authentication.whoami();\n if (!Store.getters.authentication.isAuthenticated) {\n // Only create a temp account if there's no cgtoken. If it's expired or invalid (if it exists) we show needAccess.\n if (/^TRUE$/i.test(process.env.VUE_APP_CREATE_TEMP_ACCOUNT) && !hadCGToken)\n await Store.dispatch.authentication.createTempAccount();\n else Store.dispatch.authentication.needAccess();\n }\n }\n next();\n});\n\nfunction hasQueryParams(route: Route): boolean {\n return !!Object.keys(route.query).length;\n}\n\nrouter.beforeEach((to, from, next) => {\n if (to.path === from.path) return next();\n if (!hasQueryParams(to) && hasQueryParams(from)) {\n const location: Location = { query: from.query };\n next(Object.assign({}, to, location));\n } else next();\n});\n\nrouter.afterEach((to, from) => {\n localStorage.setItem(LAST_SEEN_DATE_KEY, new Date().toISOString());\n StatsManager.SendNavigationStats(from.fullPath, to.fullPath);\n});\n\nrouter.afterEach(() => {\n Store.dispatch.mobile.updateAndSetManifest();\n});\n\nexport default router;\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Game.vue?vue&type=style&index=0&id=5e25d623&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./unlockIcon.vue?vue&type=style&index=0&id=0ed79b70&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardGameL.vue?vue&type=style&index=0&id=412a11d4&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WrongBrowserPopup.vue?vue&type=style&index=0&id=a3aa9d36&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./search_FILL0_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=4b94b3d0&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HomeCardGameVideo.vue?vue&type=style&index=0&id=020b2e84&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TapBar.vue?vue&type=style&index=1&id=0f8464c4&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./live_tv_24dp_FILL0_wght400_GRAD0_opsz24.vue?vue&type=style&index=0&id=42b04bba&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardGameXL.vue?vue&type=style&index=0&id=30c297de&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardCategory.vue?vue&type=style&index=0&id=d79be916&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Banner.vue?vue&type=style&index=0&id=3cd4a59c&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',{staticClass:\"gp-full-height\",class:{ noHandleNotch: _vm.$route.meta.noHandleNotch }},[_c('v-main',[_c('keep-alive',{attrs:{\"exclude\":_vm.shouldKeepAlive}},[(!_vm.$store.direct.state.isLoading)?_c('router-view',{key:_vm.$route.fullPath}):_vm._e()],1),_c('AlertDialog',{attrs:{\"dialog\":_vm.$store.direct.state.alert.show,\"title\":_vm.$store.direct.state.alert.title,\"text\":_vm.$store.direct.state.alert.text,\"buttonText\":_vm.$t('alert.buttons.close')},on:{\"close\":_vm.$store.direct.commit.CLOSE_ALERT}}),_c('NeedAccessPopup',{attrs:{\"show\":_vm.$store.direct.state.authentication.showNeedAccessPopup}}),_c('NeedPartnerAuthenticationPopup',{attrs:{\"show\":_vm.$store.direct.state.authentication.showNeedPartnerAuthenticationPopup},on:{\"close\":true}}),_c('WrongBrowserPopup',{attrs:{\"show\":_vm.$store.state.showWrongBrowserPopup}}),(_vm.$store.direct.state.add2HomeTuto.show)?_c('Add2HomeTuto'):_vm._e(),(_vm.$store.direct.state.mobile.add2HomeAndroidIntercept.show)?_c('Add2HomeAndroidIntercept'):_vm._e(),(_vm.$store.direct.state.mobile.showUpdateModal && _vm.$route.name !== 'PlayIframe')?_c('UpdateModal'):_vm._e(),(_vm.$store.direct.state.mobile.showSubscribeTutoPopup)?_c('SubscribeTutoPopup'):_vm._e(),(_vm.$store.direct.state.mobile.showRenewTutoPopup)?_c('RenewTutoPopup'):_vm._e(),(_vm.$store.direct.state.mobile.showAgreementPopup)?_c('AgreementPopup'):_vm._e(),(_vm.$store.direct.state.mobile.showSharePopup)?_c('SharePopup'):_vm._e(),(_vm.$store.direct.state.mobile.showSubscribeBannerPopup)?_c('SubscribeBannerPopup'):_vm._e(),(_vm.$store.direct.state.payment.showPayPopup)?_c('PayPopup'):_vm._e(),(_vm.$store.direct.state.mobile.showLoginPopup)?_c('LoginPopup'):_vm._e(),(_vm.$store.direct.state.mobile.showRegisterPopup)?_c('RegisterPopup'):_vm._e(),(_vm.$store.direct.state.payment.showPaymentCompletedPopup)?_c('PaymentCompletedPopup'):_vm._e(),(_vm.$store.direct.state.payment.showPaymentFailedPopup)?_c('PaymentFailedPopup'):_vm._e(),(_vm.$store.direct.state.popup.showPopup)?_c('GenericPopup'):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"persistent\":\"\",\"overlay-color\":\"#07071B\",\"overlay-opacity\":\"0.93\"},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',[_c('div',{staticClass:\"text\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.title))]),_c('div',{staticClass:\"description\",domProps:{\"innerHTML\":_vm._s(_vm.text)}})]),_c('div',{staticClass:\"cta\"},[(_vm.showCloseButton)?_c('div',{staticClass:\"button\",on:{\"click\":function($event){_vm.show = false}}},[_vm._v(\" \"+_vm._s(_vm.buttonText)+\" \")]):_vm._e()])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\n\n@Component\nexport default class AlertDialog extends Vue {\n @Prop(Boolean) dialog: boolean;\n\n @Prop({ type: String }) title: string;\n @Prop({ type: String }) text: string;\n @Prop({ type: String, default: \"Ok\" }) buttonText: string;\n @Prop({ type: Boolean, default: true }) showCloseButton: boolean;\n\n get show(): boolean {\n return this.dialog;\n }\n\n set show(value: boolean) {\n this.$emit(\"close\");\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlertDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlertDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AlertDialog.vue?vue&type=template&id=5e9b5ee5&scoped=true&\"\nimport script from \"./AlertDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./AlertDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AlertDialog.vue?vue&type=style&index=0&id=5e9b5ee5&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5e9b5ee5\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\ninstallComponents(component, {VCard,VDialog})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"hide-overlay\":\"\",\"fullscreen\":\"\",\"transition\":\"\"},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('v-container',{staticClass:\"fill-height\"},[_c('v-row',{staticClass:\"text-center\",attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-img',{staticClass:\"logo\",attrs:{\"alt\":\"CareGame Logo\",\"src\":require('@/assets/logo.png'),\"eager\":\"\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-img',{staticClass:\"picture\",attrs:{\"alt\":\"Incompatible browser\",\"src\":require('@/assets/incomp_browser.png'),\"eager\":\"\"}}),_c('h1',[_vm._v(_vm._s(_vm.$t(\"wrongBrowser.title\")))])],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('p',{staticClass:\"px-5\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"wrongBrowser.text.start\"))+\" \"),_c('span',{staticClass:\"imp\"},[_vm._v(\"Safari iOS\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"wrongBrowser.text.or\"))+\" \"),_c('span',{staticClass:\"imp\"},[_vm._v(\"Chrome Android\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"wrongBrowser.text.end\"))+\" \")])])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\n\n@Component\nexport default class WrongBrowserPopup extends Vue {\n @Prop(Boolean) show: boolean;\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WrongBrowserPopup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WrongBrowserPopup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WrongBrowserPopup.vue?vue&type=template&id=a3aa9d36&scoped=true&\"\nimport script from \"./WrongBrowserPopup.vue?vue&type=script&lang=ts&\"\nexport * from \"./WrongBrowserPopup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./WrongBrowserPopup.vue?vue&type=style&index=0&id=a3aa9d36&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a3aa9d36\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VDialog,VImg,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"hide-overlay\":\"\",\"fullscreen\":\"\",\"transition\":\"\"},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('div',{staticClass:\"box\"},[_c('div',[_c('v-img',{staticClass:\"caregame-icon\",attrs:{\"alt\":\"CareGame Icon\",\"src\":require('@/assets/icon.png'),\"eager\":\"\"}}),_c('span',[_c('p',[_vm._v(_vm._s(_vm.$t(\"needAccess.text.first\")))]),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('needAccess.text.second'))}})])],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\n\n@Component\nexport default class AccountLimitReachedPopup extends Vue {\n @Prop(Boolean) show: boolean;\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NeedAccessPopup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NeedAccessPopup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NeedAccessPopup.vue?vue&type=template&id=c0222c96&scoped=true&\"\nimport script from \"./NeedAccessPopup.vue?vue&type=script&lang=ts&\"\nexport * from \"./NeedAccessPopup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NeedAccessPopup.vue?vue&type=style&index=0&id=c0222c96&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c0222c96\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VImg } from 'vuetify/lib/components/VImg';\ninstallComponents(component, {VDialog,VImg})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"fullscreen\":\"\",\"transition\":\"\"},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('v-container',{staticClass:\"fill-height\"},[_c('v-row',{staticClass:\"text-center\",attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-img',{staticClass:\"logo\",attrs:{\"alt\":\"CareGame Logo\",\"src\":require('@/assets/logo.png'),\"eager\":\"\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-card-actions',{staticClass:\"pa-3 px-10\"},[_c('v-btn',{staticClass:\"caregame-background rounded-lg\",attrs:{\"block\":\"\",\"depressed\":\"\",\"disabled\":_vm.disabled},on:{\"click\":_vm.openAuthPopup}},[_vm._v(_vm._s(_vm.$t(\"need-auth-popup.text\")))])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\n\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\n\n@Component\nexport default class AccountSuspendedPopup extends Vue {\n @Prop(Boolean) show: boolean;\n disabled = false;\n\n openAuthPopup(): void {\n this.disabled = true;\n this.$store.direct.dispatch.authentication.openAuthPopup({\n onClose: () => {\n this.disabled = false;\n if (this.$store.direct.getters.authentication.isAuthenticated) this.$emit(\"close\");\n },\n });\n StatsManager.SendButtonClickStats(\"NEED_PARTNER_AUTHENTICATION_POPUP\", \"open\");\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NeedPartnerAuthenticationPopup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NeedPartnerAuthenticationPopup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NeedPartnerAuthenticationPopup.vue?vue&type=template&id=2245ace5&scoped=true&\"\nimport script from \"./NeedPartnerAuthenticationPopup.vue?vue&type=script&lang=ts&\"\nexport * from \"./NeedPartnerAuthenticationPopup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NeedPartnerAuthenticationPopup.vue?vue&type=style&index=0&id=2245ace5&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2245ace5\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCardActions,VCol,VContainer,VDialog,VImg,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-overlay',{attrs:{\"opacity\":\"0.75\",\"z-index\":\"200\",\"color\":\"#000000\"}},[_c('div',{staticClass:\"tutoContainer\"},[_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"title\"},[_c('i18n',{attrs:{\"path\":\"add2hometuto.title\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('v-img',{staticClass:\"icon\",attrs:{\"alt\":\"CareGame Icon\",\"src\":require('@/assets/icon.png'),\"eager\":\"\",\"contain\":\"\",\"width\":\"26px\"},scopedSlots:_vm._u([{key:\"placeholder\",fn:function(){return [_c('v-skeleton-loader',{attrs:{\"type\":\"image\",\"width\":\"26px\"}})]},proxy:true}])})]},proxy:true}])})],1),_c('div',{staticClass:\"tutoPanel\"},_vm._l((_vm.tutoLines),function(step,index){return _c('div',{key:index,staticClass:\"step\"},[_c('span',{staticClass:\"icon\"},[(step.icon)?_c('v-icon',[_vm._v(_vm._s(step.icon))]):(step.useLogo)?_c('v-img',{attrs:{\"alt\":\"CareGame Icon\",\"src\":require('@/assets/icon.png'),\"eager\":\"\",\"contain\":\"\",\"width\":\"24px\"},scopedSlots:_vm._u([{key:\"placeholder\",fn:function(){return [_c('v-skeleton-loader',{attrs:{\"type\":\"image\"}})]},proxy:true}],null,true)}):_vm._e()],1),_c('div',{staticClass:\"text\"},[_c('span',{staticClass:\"stepTitle\"},[_vm._v(_vm._s(_vm.$t(\"add2hometuto.tuto.stepWord\"))+\" \"+_vm._s(index + 1))]),_c('span',{staticClass:\"stepDescription\",domProps:{\"innerHTML\":_vm._s(step.text)}})])])}),0)]),_c('div',{staticClass:\"cta\"},[(_vm.showButtonSkip)?_c('span',{staticClass:\"button\",on:{\"click\":_vm.skip}},[_vm._v(_vm._s(_vm.$t(\"add2hometuto.skip\")))]):_vm._e(),(_vm.showButtonClose)?_c('span',{staticClass:\"button\",on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t(\"add2hometuto.close\")))]):_vm._e()])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component } from \"vue-property-decorator\";\n\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\n\ninterface TutoLine {\n icon?: string;\n useLogo?: boolean;\n text: string;\n}\n\n@Component\nexport default class Add2HomeTuto extends Vue {\n showButtonClose = true;\n\n get isChrome(): boolean {\n return this.$store.direct.getters.mobile.isChrome;\n }\n\n get isAndroid(): boolean {\n return this.$store.direct.getters.mobile.isAndroid;\n }\n\n get isSafari(): boolean {\n return this.$store.direct.getters.mobile.isSafari;\n }\n\n get isiOS(): boolean {\n return this.$store.direct.getters.mobile.isiOS;\n }\n\n get showButtonSkip(): boolean {\n if (this.isAndroid) return /^true$/i.test(process.env.VUE_APP_PWA_TUTO_SKIP_BUTTON_ANDROID);\n if (this.isiOS) return /^true$/i.test(process.env.VUE_APP_PWA_TUTO_SKIP_BUTTON_IOS);\n return false;\n }\n\n get tutoLines(): TutoLine[] {\n const res: TutoLine[] = [];\n if (this.isAndroid) {\n res.push(\n {\n icon: \"$add2HomeTutoAndroidChromeStep1\",\n text: this.$t(\"add2hometuto.tuto.android.chrome.step1\").toString(),\n },\n {\n icon: \"$add2HomeTutoAndroidChromeStep2\",\n text: this.$t(\"add2hometuto.tuto.android.chrome.step2\").toString(),\n }\n );\n } else if (this.isiOS) {\n res.push(\n {\n icon: \"$add2HomeTutoOtherStep1\",\n text: this.$t(\"add2hometuto.tuto.other.step1\").toString(),\n },\n {\n icon: \"$add2HomeTutoOtherStep2\",\n text: this.$t(\"add2hometuto.tuto.other.step2\").toString(),\n }\n );\n }\n res.push({\n useLogo: true,\n text: this.$t(\"add2hometuto.tuto.lastStep\").toString(),\n });\n return res;\n }\n\n skip(): void {\n this.$store.direct.state.add2HomeTuto.onSkip?.();\n this.$store.direct.commit.CLOSE_ADD2HOME_TUTO();\n StatsManager.SendButtonClickStats(\"ADD2HOME_TUTO\", \"skip\");\n }\n\n close(): void {\n StatsManager.SendButtonClickStats(\"ADD2HOME_TUTO\", \"close\");\n this.$store.direct.commit.CLOSE_ADD2HOME_TUTO();\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Add2HomeTuto.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Add2HomeTuto.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Add2HomeTuto.vue?vue&type=template&id=61ad20b7&scoped=true&\"\nimport script from \"./Add2HomeTuto.vue?vue&type=script&lang=ts&\"\nexport * from \"./Add2HomeTuto.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Add2HomeTuto.vue?vue&type=style&index=0&id=61ad20b7&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"61ad20b7\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VIcon,VImg,VOverlay,VSkeletonLoader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-overlay',{attrs:{\"opacity\":\"0.75\",\"z-index\":\"200\",\"color\":\"#000000\"}},[_c('div',{staticClass:\"tutoContainer\"},[_c('div',{staticClass:\"content\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('add2homeAndroidIntercept.text'))}})]),_c('div',{staticClass:\"cta\"},[(_vm.showButtonSkip)?_c('span',{staticClass:\"button\",on:{\"click\":_vm.skip}},[_vm._v(\" \"+_vm._s(_vm.$t(\"add2homeAndroidIntercept.buttons.skip\"))+\" \")]):_c('span',{staticClass:\"button\",on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t(\"add2homeAndroidIntercept.buttons.close\"))+\" \")]),_c('span',{staticClass:\"button important\",on:{\"click\":_vm.install}},[_vm._v(_vm._s(_vm.$t(\"add2homeAndroidIntercept.buttons.install\"))+\" \")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component } from \"vue-property-decorator\";\n\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\n\ninterface TutoLine {\n icon?: string;\n useLogo?: boolean;\n text: string;\n}\n\n@Component\nexport default class Add2HomeTuto extends Vue {\n showButtonClose = true;\n\n get showButtonSkip(): boolean {\n return /^true$/i.test(process.env.VUE_APP_PWA_TUTO_SKIP_BUTTON_ANDROID);\n }\n\n skip(): void {\n this.$store.direct.state.mobile.add2HomeAndroidIntercept.onSkip?.();\n this.$store.direct.commit.mobile.CLOSE_SHOW_ADD2HOME_ANDROID_INTERCEPT();\n StatsManager.SendButtonClickStats(\"ADD2HOME_ANDROID_INTERCEPT\", \"skip\");\n }\n\n close(): void {\n this.$store.direct.state.mobile.add2HomeAndroidIntercept.onClose?.();\n this.$store.direct.commit.mobile.CLOSE_SHOW_ADD2HOME_ANDROID_INTERCEPT();\n StatsManager.SendButtonClickStats(\"ADD2HOME_ANDROID_INTERCEPT\", \"close\");\n }\n\n install(): void {\n this.$store.direct.commit.mobile.SHOW_DEFERRED_PWA_PROMPT();\n this.$store.direct.commit.mobile.CLOSE_SHOW_ADD2HOME_ANDROID_INTERCEPT();\n StatsManager.SendButtonClickStats(\"ADD2HOME_ANDROID_INTERCEPT\", \"install\");\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Add2HomeAndroidIntercept.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Add2HomeAndroidIntercept.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Add2HomeAndroidIntercept.vue?vue&type=template&id=5b854ce2&scoped=true&\"\nimport script from \"./Add2HomeAndroidIntercept.vue?vue&type=script&lang=ts&\"\nexport * from \"./Add2HomeAndroidIntercept.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Add2HomeAndroidIntercept.vue?vue&type=style&index=0&id=5b854ce2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5b854ce2\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VOverlay})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-overlay',{attrs:{\"opacity\":\"0.75\",\"z-index\":\"200\",\"color\":\"#000000\"}},[_c('div',{staticClass:\"tutoContainer\"},[_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"title\"},[_c('i18n',{attrs:{\"path\":\"updateModal.title\"}})],1)]),_c('div',{staticClass:\"cta\"},[_c('span',{staticClass:\"button\",on:{\"click\":_vm.reload}},[_vm._v(_vm._s(_vm.$t(\"updateModal.reload\")))])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component } from \"vue-property-decorator\";\n\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\n\n@Component\nexport default class UpdateModal extends Vue {\n async reload(): Promise {\n await this.$store.direct.dispatch.mobile.reloadPWA();\n StatsManager.SendButtonClickStats(\"UPDATE_POPUP\", \"reload\");\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UpdateModal.vue?vue&type=template&id=b71ed6a4&scoped=true&\"\nimport script from \"./UpdateModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./UpdateModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UpdateModal.vue?vue&type=style&index=0&id=b71ed6a4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b71ed6a4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VOverlay})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-overlay',{attrs:{\"opacity\":\"0.75\",\"z-index\":\"2000000\",\"color\":\"#000000\"}},[_c('div',{staticClass:\"tutoContainer\",class:{ showLogin: _vm.showLogin }},[_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t(\"agreementPopup.title\")))]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('agreementPopup.text'))}})]),_c('div',{staticClass:\"cta\"},[_c('span',{staticClass:\"button important\",on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t(\"agreementPopup.buttons.close\"))+\" \")])]),(_vm.isPaymentEnabled && _vm.showLogin)?_c('div',{staticClass:\"loginPart\"},[_c('div',{staticClass:\"content\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('agreementPopup.textLogin'))}})]),_c('div',{staticClass:\"cta\"},[_c('span',{staticClass:\"button\",on:{\"click\":_vm.login}},[_vm._v(_vm._s(_vm.$t(\"agreementPopup.buttons.login\")))])])]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component } from \"vue-property-decorator\";\n\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\n\n@Component\nexport default class SharePopup extends Vue {\n close(): void {\n this.$store.direct.dispatch.authentication.giveAgreement();\n this.$store.direct.commit.mobile.CLOSE_AGREEMENT_POPUP();\n StatsManager.SendButtonClickStats(\"AGREEMENT_POPUP\", \"close\");\n }\n\n login(): void {\n this.$store.direct.commit.mobile.CLOSE_AGREEMENT_POPUP();\n this.$store.direct.commit.mobile.SHOW_LOGIN_POPUP(true);\n StatsManager.SendButtonClickStats(\"AGREEMENT_POPUP\", \"login\");\n }\n\n get showLogin(): boolean {\n return /^true$/i.test(process.env.VUE_APP_WELCOME_POPUP_SHOW_LOGIN);\n }\n\n get isPaymentEnabled(): boolean {\n return this.$store.direct.getters.payment.enabled || this.$store.direct.getters.payment.fallbackEnabled;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AgreementPopup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AgreementPopup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AgreementPopup.vue?vue&type=template&id=50c77754&scoped=true&\"\nimport script from \"./AgreementPopup.vue?vue&type=script&lang=ts&\"\nexport * from \"./AgreementPopup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AgreementPopup.vue?vue&type=style&index=0&id=50c77754&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"50c77754\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VOverlay})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-overlay',{attrs:{\"opacity\":\"0.75\",\"z-index\":\"200\",\"color\":\"#000000\"}},[_c('div',{staticClass:\"tutoContainer\"},[_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t(\"sharePopup.title\")))]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sharePopup.text'))}})]),_c('div',{staticClass:\"cta\"},[_c('span',{staticClass:\"button\",on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t(\"sharePopup.buttons.close\"))+\" \")]),_c('span',{staticClass:\"button important\",on:{\"click\":_vm.share}},[_vm._v(_vm._s(_vm.$t(\"sharePopup.buttons.share\"))+\" \")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component } from \"vue-property-decorator\";\n\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\n\n@Component\nexport default class SharePopup extends Vue {\n close(): void {\n this.$store.direct.commit.mobile.CLOSE_SHARE_POPUP();\n StatsManager.SendButtonClickStats(\"SHARE_POPUP\", \"close\");\n }\n\n share(): void {\n this.$store.direct.dispatch.mobile.share();\n this.$store.direct.commit.mobile.CLOSE_SHARE_POPUP();\n StatsManager.SendButtonClickStats(\"SHARE_POPUP\", \"share\");\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharePopup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharePopup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SharePopup.vue?vue&type=template&id=31bd09a6&scoped=true&\"\nimport script from \"./SharePopup.vue?vue&type=script&lang=ts&\"\nexport * from \"./SharePopup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SharePopup.vue?vue&type=style&index=0&id=31bd09a6&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"31bd09a6\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VOverlay})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-overlay',{attrs:{\"opacity\":\"0.75\",\"z-index\":\"200\",\"color\":\"#000000\"}},[_c('div',{staticClass:\"tutoContainer\"},[_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t(\"subscribeTutoPopup.title\")))]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('subscribeTutoPopup.text'))}})]),_c('div',{staticClass:\"cta\"},[_c('span',{staticClass:\"button\",on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t(\"subscribeTutoPopup.buttons.close\"))+\" \")]),_c('span',{staticClass:\"button important\",on:{\"click\":_vm.subscribe}},[_vm._v(_vm._s(_vm.$t(\"subscribeTutoPopup.buttons.subscribe\"))+\" \")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component } from \"vue-property-decorator\";\n\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\n\n@Component\nexport default class SubscribeTutoPopup extends Vue {\n close(): void {\n this.$store.direct.commit.mobile.CLOSE_SUBSCRIBE_TUTO_POPUP();\n StatsManager.SendButtonClickStats(\"SUBSCRIBE_TUTO_POPUP\", \"close\");\n }\n\n subscribe(): void {\n this.$store.direct.commit.mobile.CLOSE_SUBSCRIBE_TUTO_POPUP();\n StatsManager.SendButtonClickStats(\"SUBSCRIBE_TUTO_POPUP\", \"subscribe\");\n if (\n !process.env.VUE_APP_POPUP_HOW_TO_SUB_REDIRECT_URL ||\n /^FALSE$/i.test(process.env.VUE_APP_POPUP_HOW_TO_SUB_REDIRECT_URL)\n )\n return;\n const url = process.env.VUE_APP_POPUP_HOW_TO_SUB_REDIRECT_URL;\n StatsManager.SendNavigationStats(location.href, url);\n location.replace(url);\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubscribeTutoPopup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubscribeTutoPopup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SubscribeTutoPopup.vue?vue&type=template&id=48bcc126&scoped=true&\"\nimport script from \"./SubscribeTutoPopup.vue?vue&type=script&lang=ts&\"\nexport * from \"./SubscribeTutoPopup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SubscribeTutoPopup.vue?vue&type=style&index=0&id=48bcc126&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"48bcc126\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VOverlay})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-overlay',{attrs:{\"opacity\":\"0.75\",\"z-index\":\"200\",\"color\":\"#000000\"}},[_c('div',{staticClass:\"tutoContainer\"},[_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t(\"renewTutoPopup.title\")))]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('renewTutoPopup.text'))}})]),_c('div',{staticClass:\"cta\"},[_c('span',{staticClass:\"button\",on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t(\"renewTutoPopup.buttons.close\"))+\" \")]),_c('span',{staticClass:\"button important\",on:{\"click\":_vm.subscribe}},[_vm._v(_vm._s(_vm.$t(\"renewTutoPopup.buttons.subscribe\"))+\" \")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component } from \"vue-property-decorator\";\n\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\n\n@Component\nexport default class RenewTutoPopup extends Vue {\n close(): void {\n this.$store.direct.commit.mobile.CLOSE_RENEW_TUTO_POPUP();\n StatsManager.SendButtonClickStats(\"RENEW_TUTO_POPUP\", \"close\");\n }\n\n subscribe(): void {\n this.$store.direct.commit.mobile.CLOSE_RENEW_TUTO_POPUP();\n StatsManager.SendButtonClickStats(\"RENEW_TUTO_POPUP\", \"subscribe\");\n if (\n !process.env.VUE_APP_POPUP_HOW_TO_RENEW_REDIRECT_URL ||\n /^FALSE$/i.test(process.env.VUE_APP_POPUP_HOW_TO_RENEW_REDIRECT_URL)\n )\n return;\n const url = process.env.VUE_APP_POPUP_HOW_TO_RENEW_REDIRECT_URL;\n StatsManager.SendNavigationStats(location.href, url);\n location.replace(url);\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RenewTutoPopup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RenewTutoPopup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RenewTutoPopup.vue?vue&type=template&id=1b217f14&scoped=true&\"\nimport script from \"./RenewTutoPopup.vue?vue&type=script&lang=ts&\"\nexport * from \"./RenewTutoPopup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RenewTutoPopup.vue?vue&type=style&index=0&id=1b217f14&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1b217f14\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VOverlay})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-overlay',{attrs:{\"opacity\":\"0.75\",\"z-index\":\"200\",\"color\":\"#000000\"}},[_c('div',{staticClass:\"tutoContainer\"},[_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t(\"subscribeBannerPopup.title\")))]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('subscribeBannerPopup.text'))}})]),_c('div',{staticClass:\"cta\"},[_c('span',{staticClass:\"button\",on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t(\"subscribeBannerPopup.buttons.close\"))+\" \")]),_c('span',{staticClass:\"button important\",on:{\"click\":_vm.subscribe}},[_vm._v(_vm._s(_vm.$t(\"subscribeBannerPopup.buttons.subscribe\"))+\" \")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component } from \"vue-property-decorator\";\n\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\n\n@Component\nexport default class SubscribeBannerPopup extends Vue {\n close(): void {\n StatsManager.SendButtonClickStats(\"SUBSCRIBE_BANNER_POPUP\", \"close\");\n this.$store.direct.commit.mobile.CLOSE_SUBSCRIBE_BANNER_POPUP();\n }\n\n subscribe(): void {\n StatsManager.SendButtonClickStats(\"SUBSCRIBE_BANNER_POPUP\", \"subscribe\");\n this.$store.direct.dispatch.games.openSubPopup();\n this.$store.direct.commit.mobile.CLOSE_SUBSCRIBE_BANNER_POPUP();\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubscribeBannerPopup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubscribeBannerPopup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SubscribeBannerPopup.vue?vue&type=template&id=1be7917b&scoped=true&\"\nimport script from \"./SubscribeBannerPopup.vue?vue&type=script&lang=ts&\"\nexport * from \"./SubscribeBannerPopup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SubscribeBannerPopup.vue?vue&type=style&index=0&id=1be7917b&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1be7917b\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VOverlay})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-overlay',{attrs:{\"opacity\":\"0.75\",\"z-index\":\"2000000\",\"color\":\"#000000\"}},[_c('div',{staticClass:\"tutoContainer\"},[_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t(\"loginPopup.title\")))]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('loginPopup.text'))}}),_c('LoginForm',{attrs:{\"showCloseButton\":false},on:{\"logged\":_vm.logged}}),_c('br'),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('loginPopup.text2'))}})],1),_c('div',{staticClass:\"cta\"},[_c('span',{staticClass:\"button almostImportant\",on:{\"click\":_vm.loginToPartner}},[_vm._v(_vm._s(_vm.$t(\"loginPopup.buttons.loginToPartner\")))])]),_c('div',{staticClass:\"cta\"},[_c('span',{staticClass:\"button\",on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t(\"loginPopup.buttons.close\")))])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component } from \"vue-property-decorator\";\n\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\n\nimport LoginForm from \"@/components/Profile/LoginForm.vue\";\n\n@Component({\n components: {\n LoginForm,\n },\n})\nexport default class SharePopup extends Vue {\n close(): void {\n this.$store.direct.commit.mobile.CLOSE_LOGIN_POPUP();\n if (this.$store.direct.state.mobile.loginPopupCloseToWelcome)\n this.$store.direct.commit.mobile.SHOW_AGREEMENT_POPUP();\n StatsManager.SendButtonClickStats(\"LOGIN_POPUP\", \"close\");\n }\n\n loginToPartner(): void {\n this.$store.direct.dispatch.authentication.needAccess();\n StatsManager.SendButtonClickStats(\"LOGIN_POPUP\", \"loginToPartner\");\n }\n\n logged(): void {\n this.$store.direct.commit.mobile.CLOSE_LOGIN_POPUP();\n StatsManager.SendButtonClickStats(\"LOGIN_POPUP\", \"login\");\n this.$store.direct.dispatch.games.checkAllsubscriptions();\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginPopup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginPopup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LoginPopup.vue?vue&type=template&id=45ada790&scoped=true&\"\nimport script from \"./LoginPopup.vue?vue&type=script&lang=ts&\"\nexport * from \"./LoginPopup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LoginPopup.vue?vue&type=style&index=0&id=45ada790&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"45ada790\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VOverlay})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-overlay',{attrs:{\"opacity\":\"0.75\",\"z-index\":\"200\",\"color\":\"#000000\"}},[_c('div',{staticClass:\"tutoContainer\"},[_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t(\"payPopup.title\")))]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('payPopup.text'))}})]),_c('div',{staticClass:\"cta\"},[_c('span',{staticClass:\"button\",on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t(\"payPopup.buttons.close\")))]),_c('span',{staticClass:\"button important\",on:{\"click\":_vm.subscribe}},[_vm._v(_vm._s(_vm.$t(\"payPopup.buttons.subscribe\")))])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component } from \"vue-property-decorator\";\n\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\n\n@Component\nexport default class SharePopup extends Vue {\n close(): void {\n this.$store.direct.commit.payment.CLOSE_PAY_POPUP();\n StatsManager.SendButtonClickStats(\"PAY_POPUP\", \"close\");\n }\n\n subscribe(): void {\n const tempAccount = this.$store.direct.state.authentication.user?.tempAccount;\n const skipRegister = this.$store.direct.getters.payment.skipRegister;\n\n // If the user has a temp account, we ask them to register\n if (tempAccount && !skipRegister) {\n this.$store.direct.commit.payment.CLOSE_PAY_POPUP();\n this.$store.direct.commit.mobile.SHOW_REGISTER_POPUP();\n }\n // Otherwise, they can purchase\n else {\n this.$store.direct.dispatch.payment.purchaseSubscription();\n this.$store.direct.commit.payment.CLOSE_PAY_POPUP();\n }\n\n StatsManager.SendButtonClickStats(\"PAY_POPUP\", \"subscribe\");\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PayPopup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PayPopup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PayPopup.vue?vue&type=template&id=c0102fac&scoped=true&\"\nimport script from \"./PayPopup.vue?vue&type=script&lang=ts&\"\nexport * from \"./PayPopup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PayPopup.vue?vue&type=style&index=0&id=c0102fac&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c0102fac\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VOverlay})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-overlay',{attrs:{\"opacity\":\"0.75\",\"z-index\":\"2000000\",\"color\":\"#000000\"}},[_c('div',{staticClass:\"tutoContainer\"},[_c('div',{staticClass:\"content\"},[(this.useRegister)?_c('span',[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t(\"registerPopup.title.register\")))]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('registerPopup.text.register'))}}),_c('RegisterForm',{attrs:{\"showCloseButton\":false,\"withUsername\":false},on:{\"registered\":_vm.registered}})],1):_c('span',[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t(\"registerPopup.title.login\")))]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('registerPopup.text.login'))}}),_c('LoginForm',{attrs:{\"showCloseButton\":false},on:{\"logged\":_vm.logged}})],1),_c('br'),_c('span',{staticClass:\"formToggle\",on:{\"click\":_vm.toggleForm}},[(_vm.useRegister)?_c('a',[_vm._v(_vm._s(_vm.$t(\"registerPopup.formToggle.toLogin\")))]):_c('a',[_vm._v(_vm._s(_vm.$t(\"registerPopup.formToggle.toRegister\")))])])]),_c('div',{staticClass:\"cta\"},[_c('span',{staticClass:\"button\",on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t(\"registerPopup.buttons.close\")))])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component } from \"vue-property-decorator\";\n\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\n\nimport RegisterForm from \"@/components/Profile/RegisterForm.vue\";\nimport LoginForm from \"@/components/Profile/LoginForm.vue\";\n\n@Component({\n components: {\n RegisterForm,\n LoginForm,\n },\n})\nexport default class SharePopup extends Vue {\n useRegister = true;\n\n toggleForm(): void {\n this.useRegister = !this.useRegister;\n StatsManager.SendButtonClickStats(\"REGISTER_POPUP\", \"toggleForm\");\n }\n\n close(): void {\n this.$store.direct.commit.mobile.CLOSE_REGISTER_POPUP();\n this.$store.direct.commit.payment.SHOW_PAY_POPUP();\n StatsManager.SendButtonClickStats(\"REGISTER_POPUP\", \"close\");\n }\n\n async afterConnected(): Promise {\n // Check if user is already subscribed\n const hasFullSub = this.$store.direct.state.games.subscriptions.some((sub) => sub.access === \"full\");\n\n this.$store.direct.commit.mobile.CLOSE_REGISTER_POPUP();\n\n if (!hasFullSub) this.$store.direct.dispatch.payment.purchaseSubscription();\n else this.$store.direct.dispatch.popup.showAlreadySubPopup();\n }\n\n async registered(): Promise {\n StatsManager.SendButtonClickStats(\"REGISTER_POPUP\", \"register\");\n await this.afterConnected();\n }\n\n async logged(): Promise {\n StatsManager.SendButtonClickStats(\"REGISTER_POPUP\", \"login\");\n await this.afterConnected();\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegisterPopup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegisterPopup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RegisterPopup.vue?vue&type=template&id=7f35b804&scoped=true&\"\nimport script from \"./RegisterPopup.vue?vue&type=script&lang=ts&\"\nexport * from \"./RegisterPopup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RegisterPopup.vue?vue&type=style&index=0&id=7f35b804&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7f35b804\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VOverlay})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-overlay',{attrs:{\"opacity\":\"0.75\",\"z-index\":\"200\",\"color\":\"#000000\"}},[_c('div',{staticClass:\"tutoContainer\"},[_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t(\"paymentCompletedPopup.title\")))]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('paymentCompletedPopup.text'))}})]),_c('div',{staticClass:\"cta\"},[_c('span',{staticClass:\"button important\",on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t(\"paymentCompletedPopup.buttons.close\")))])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component } from \"vue-property-decorator\";\n\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\n\n@Component\nexport default class SharePopup extends Vue {\n close(): void {\n this.$store.direct.commit.payment.CLOSE_PAYEMENT_COMPLETED_POPUP();\n StatsManager.SendButtonClickStats(\"PAYMENT_COMPLETED_POPUP\", \"close\");\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaymentCompletedPopup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaymentCompletedPopup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PaymentCompletedPopup.vue?vue&type=template&id=370c8531&scoped=true&\"\nimport script from \"./PaymentCompletedPopup.vue?vue&type=script&lang=ts&\"\nexport * from \"./PaymentCompletedPopup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PaymentCompletedPopup.vue?vue&type=style&index=0&id=370c8531&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"370c8531\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VOverlay})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-overlay',{attrs:{\"opacity\":\"0.75\",\"z-index\":\"200\",\"color\":\"#000000\"}},[_c('div',{staticClass:\"tutoContainer\"},[_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t(\"paymentFailedPopup.title\")))]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('paymentFailedPopup.text'))}})]),_c('div',{staticClass:\"cta\"},[_c('span',{staticClass:\"button important\",on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t(\"paymentFailedPopup.buttons.close\")))])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component } from \"vue-property-decorator\";\n\nimport * as StatsManager from \"@/../common/stats/StatsManager\";\n\n@Component\nexport default class SharePopup extends Vue {\n close(): void {\n this.$store.direct.commit.payment.CLOSE_PAYEMENT_FAILED_POPUP();\n StatsManager.SendButtonClickStats(\"PAYMENT_FAILED_POPUP\", \"close\");\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaymentFailedPopup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaymentFailedPopup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PaymentFailedPopup.vue?vue&type=template&id=0d45174d&scoped=true&\"\nimport script from \"./PaymentFailedPopup.vue?vue&type=script&lang=ts&\"\nexport * from \"./PaymentFailedPopup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PaymentFailedPopup.vue?vue&type=style&index=0&id=0d45174d&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0d45174d\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VOverlay})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-overlay',{attrs:{\"opacity\":\"0.75\",\"z-index\":\"200\",\"color\":\"#000000\"}},[_c('div',{staticClass:\"tutoContainer\"},[_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.title))]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.text)}})]),_c('div',{staticClass:\"cta\"},_vm._l((_vm.buttons),function(button,i){return _c('span',{key:i,staticClass:\"button\",class:{ important: button.important },on:{\"click\":button.onClick}},[_vm._v(_vm._s(button.text))])}),0)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component } from \"vue-property-decorator\";\n\nimport { Button } from \"@/store/modules/popup\";\n\n@Component\nexport default class GenericPopup extends Vue {\n get title(): string {\n return this.$store.direct.state.popup.title;\n }\n\n get text(): string {\n return this.$store.direct.state.popup.text;\n }\n\n get buttons(): Button[] {\n return this.$store.direct.state.popup.buttons;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GenericPopup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GenericPopup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GenericPopup.vue?vue&type=template&id=705a4104&scoped=true&\"\nimport script from \"./GenericPopup.vue?vue&type=script&lang=ts&\"\nexport * from \"./GenericPopup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GenericPopup.vue?vue&type=style&index=0&id=705a4104&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"705a4104\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VOverlay})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component } from \"vue-property-decorator\";\nimport debounce from \"lodash/debounce\";\n\nimport i18n from \"@/plugins/i18n\";\n\nimport AlertDialog from \"@/components/AlertDialog.vue\";\nimport WrongBrowserPopup from \"@/components/WrongBrowserPopup.vue\";\nimport NeedAccessPopup from \"@/components/NeedAccessPopup.vue\";\nimport NeedPartnerAuthenticationPopup from \"@/components/NeedPartnerAuthenticationPopup.vue\";\nimport Add2HomeTuto from \"@/components/Add2HomeTuto.vue\";\nimport Add2HomeAndroidIntercept from \"@/components/Add2HomeAndroidIntercept.vue\";\nimport UpdateModal from \"@/components/UpdateModal.vue\";\nimport AgreementPopup from \"@/components/AgreementPopup.vue\";\nimport SharePopup from \"@/components/SharePopup.vue\";\nimport SubscribeTutoPopup from \"./components/SubscribeTutoPopup.vue\";\nimport RenewTutoPopup from \"./components/RenewTutoPopup.vue\";\nimport SubscribeBannerPopup from \"./components/SubscribeBannerPopup.vue\";\nimport LoginPopup from \"./components/LoginPopup.vue\";\nimport PayPopup from \"./components/PayPopup.vue\";\nimport RegisterPopup from \"./components/RegisterPopup.vue\";\nimport PaymentCompletedPopup from \"./components/PaymentCompletedPopup.vue\";\nimport PaymentFailedPopup from \"./components/PaymentFailedPopup.vue\";\nimport EnterCodePopup from \"./components/Bigscreen/EnterCodePopup.vue\";\nimport GenericPopup from \"./components/GenericPopup.vue\";\n\nimport { axiosInstance } from \"./store\";\n\nimport { ErrorCode } from \"../sdk/src/engine/types/\";\nimport { ApmBase } from \"@elastic/apm-rum\";\nimport { initApm } from \"./apm\";\n\n@Component({\n name: \"App\",\n components: {\n AlertDialog,\n WrongBrowserPopup,\n NeedAccessPopup,\n NeedPartnerAuthenticationPopup,\n Add2HomeTuto,\n Add2HomeAndroidIntercept,\n UpdateModal,\n SubscribeTutoPopup,\n RenewTutoPopup,\n AgreementPopup,\n SharePopup,\n SubscribeBannerPopup,\n LoginPopup,\n PayPopup,\n RegisterPopup,\n PaymentCompletedPopup,\n PaymentFailedPopup,\n EnterCodePopup,\n GenericPopup,\n },\n})\nexport default class App extends Vue {\n showGetTempAccountPopup = false;\n apm: ApmBase;\n\n get shouldKeepAlive(): RegExp | string {\n const shouldKeepAlive = process.env.NODE_ENV === \"production\";\n return shouldKeepAlive ? \"Play\" : /.+/;\n }\n\n async handleRouterParameters(): Promise {\n const store = this.$store.direct;\n\n if (this.$route.params.cgtoken) await store.dispatch.authentication.setJWT(this.$route.params.cgtoken as string);\n if (this.$route.query.cgtoken) await store.dispatch.authentication.setJWT(this.$route.query.cgtoken as string);\n if (!store.getters.authentication.isAuthenticated) await store.dispatch.authentication.whoami();\n }\n\n async waitForRouterReady(): Promise {\n return new Promise((res, _rej) => {\n this.$router.onReady(res, (err) => {\n console.warn(err);\n res();\n });\n });\n }\n\n showError(exitCode: ErrorCode): void {\n switch (exitCode) {\n case ErrorCode.BROWSER_INCOMPATIBLE:\n this.Alert(\n this.$t(\"alert.alerts.bad-browser.text\").toString(),\n this.$t(\"alert.alerts.bad-browser.title\").toString()\n );\n break;\n case ErrorCode.CONNECTION_LOST:\n this.Alert(\n this.$t(\"alert.alerts.host-error.text\").toString(),\n this.$t(\"alert.alerts.host-error.title\").toString()\n );\n break;\n case ErrorCode.CONNECTION_TIMEOUT:\n this.Alert(\n this.$t(\"alert.alerts.connection-too-long.text\").toString(),\n this.$t(\"alert.alerts.connection-too-long.title\").toString()\n );\n break;\n case ErrorCode.NO_CAPACITY_AVAILABLE:\n this.Alert(this.$t(\"alert.alerts.full.text\").toString(), this.$t(\"alert.alerts.full.title\").toString());\n break;\n case ErrorCode.PWA_REQUIRED:\n this.Alert(\n this.$t(\"alert.alerts.pwa-required.text\").toString(),\n this.$t(\"alert.alerts.pwa-required.title\").toString()\n );\n break;\n case ErrorCode.SAVE_PENDING:\n this.Alert(\n this.$t(\"alert.alerts.previous-save-pending.text\").toString(),\n this.$t(\"alert.alerts.previous-save-pending.title\").toString()\n );\n break;\n case ErrorCode.SAVE_RESTORE_ERROR:\n this.Alert(\n this.$t(\"alert.alerts.save-restore-fail.text\").toString(),\n this.$t(\"alert.alerts.save-restore-fail.title\").toString()\n );\n break;\n case ErrorCode.SERVICE_NOT_AVAILABLE:\n this.Alert(\n this.$t(\"alert.alerts.server-error.text\").toString(),\n this.$t(\"alert.alerts.server-error.title\").toString()\n );\n break;\n case ErrorCode.SPEEDTEST_FAILED:\n this.Alert(\n this.$t(\"alert.alerts.speedtest-fail.text\").toString(),\n this.$t(\"alert.alerts.speedtest-fail.title\").toString()\n );\n break;\n case ErrorCode.BS_SPEEDTEST_FAILED:\n this.Alert(\n this.$t(\"alert.alerts.bs-speedtest-fail.text\").toString(),\n this.$t(\"alert.alerts.bs-speedtest-fail.title\").toString()\n );\n break;\n case ErrorCode.USER_AFK:\n this.Alert(this.$t(\"alert.alerts.afk.text\").toString(), this.$t(\"alert.alerts.afk.title\").toString());\n break;\n case ErrorCode.USER_ALREADY_PAIRED:\n this.Alert(\n this.$t(\"alert.alerts.user-already-paired.text\").toString(),\n this.$t(\"alert.alerts.user-already-paired.title\").toString()\n );\n break;\n case ErrorCode.USER_NOT_AUTHORIZED:\n this.Alert(\n this.$t(\"alert.alerts.not-authorized.text\").toString(),\n this.$t(\"alert.alerts.not-authorized.title\").toString()\n );\n break;\n case ErrorCode.USER_UNFOCUS_AFK:\n this.Alert(this.$t(\"alert.alerts.unfocus.text\").toString(), this.$t(\"alert.alerts.unfocus.title\").toString());\n break;\n case ErrorCode.USER_NEW_SESSION:\n this.Alert(\n this.$t(\"alert.alerts.new-session.text\").toString(),\n this.$t(\"alert.alerts.new-session.title\").toString()\n );\n break;\n case ErrorCode.QUEUE_TIMEOUT:\n this.Alert(\n this.$t(\"alert.alerts.queue-timeout.text\").toString(),\n this.$t(\"alert.alerts.queue-timeout.title\").toString()\n );\n break;\n case ErrorCode.BS_DISCONNECTED:\n this.Alert(\n this.$t(\"alert.alerts.bs-disconnected.text\").toString(),\n this.$t(\"alert.alerts.bs-disconnected.title\").toString()\n );\n break;\n case ErrorCode.END_TRIAL:\n this.$store.direct.commit.payment.SHOW_PAY_POPUP();\n }\n }\n\n async listenToMessages(): Promise {\n window.addEventListener(\n \"message\",\n (event) => {\n if (event.data.exitCode !== undefined) {\n this.showError(event.data.exitCode);\n const source = event.source as Window;\n const isIframe = source !== source.top;\n const isPopup = !!source.opener;\n if (isIframe) this.$router.back();\n source.close();\n }\n },\n false\n );\n }\n\n async created(): Promise {\n this.listenToMessages();\n this.dostuff();\n\n this.apm = await this.setUpApm();\n\n const pageLoadTransansaction = this.apm.getCurrentTransaction();\n const loadingSpan = pageLoadTransansaction?.startSpan(\"Loading Animation\");\n this.$store.direct.commit.SET_LOADING(true);\n await this.waitForRouterReady();\n await this.$store.direct.dispatch.language.init();\n this.$store.direct.commit.SET_LOADING(false);\n\n await this.$store.direct.dispatch.payment.setup();\n\n const promises: Promise[] = [];\n const subscriptionStatusPromise = this.$store.direct.dispatch.games.checkAllsubscriptions();\n const expiredSubscriptionsPromise = this.$store.direct.dispatch.games.getExpiredSubscriptions();\n setInterval(() => {\n this.$store.direct.dispatch.games.checkAllsubscriptions();\n }, parseInt(process.env.VUE_APP_GLOBAL_ACCESS_UPDATE_INTERVAL) || 1000 * 60);\n promises.push(subscriptionStatusPromise);\n promises.push(expiredSubscriptionsPromise);\n promises.push(this.$store.direct.dispatch.mobile.init());\n\n subscriptionStatusPromise.then(() => {\n if (!this.$store.direct.getters.games.hasSubscription)\n this.$store.direct.dispatch.authentication.needSubscription();\n });\n\n if (!this.$store.direct.getters.mobile.gaveAgreement) {\n this.$store.direct.commit.mobile.SHOW_AGREEMENT_POPUP();\n }\n\n axiosInstance.get(\"/server-status\").catch((err) => {\n if (!err.response) {\n this.$store.direct.commit.SHOW_ALERT({\n title: i18n.t(\"maintenance-alert.title\").toString(),\n text: i18n.t(\"maintenance-alert.text\").toString(),\n onClose: () => {\n location.reload();\n },\n });\n return;\n }\n });\n\n try {\n await Promise.all(promises);\n } catch (e) {\n console.error(e);\n }\n\n const exitCode = new URL(window.location.href).searchParams.get(\"exitCode\");\n if (exitCode) {\n this.showError(parseInt(exitCode, 10));\n let query = Object.assign({}, this.$route.query);\n delete query.exitCode;\n this.$router.replace({ query });\n }\n this.$store.direct.commit.SET_LOADING(false);\n loadingSpan?.end();\n const loadedLobby = this.apm.startTransaction(\"Loaded-lobby\", \"usage-tracking\");\n setTimeout(() => {\n loadedLobby?.end();\n }, 10);\n\n if (this.$store.direct.getters.mobile.isWebApp) {\n setInterval(this.checkPWANeedReload, 1000);\n this.checkPWANeedReload();\n\n this.$store.direct.commit.mobile.INCREMENT_PWA_LAUNCHES();\n const countPWALaunches = this.$store.direct.getters.mobile.countPWALaunches;\n\n if (process.env.VUE_APP_HIDE_NATIVE_PWA_BANNER > 0) {\n if (countPWALaunches > 0 && countPWALaunches % process.env.VUE_APP_PWA_LAUNCHES_FOR_SHARE_POPUP == 0) {\n this.$store.direct.commit.mobile.SHOW_SHARE_POPUP();\n }\n }\n }\n\n window.addEventListener(\"beforeinstallprompt\", (e: BeforeInstallPromptEvent) => {\n const hideNativePWABanner = /^true$/i.test(process.env.VUE_APP_HIDE_NATIVE_PWA_BANNER);\n if (hideNativePWABanner) e.preventDefault();\n this.$store.direct.commit.mobile.SET_DEFERRED_PWA_PROMPT(e);\n });\n }\n\n async checkPWANeedReload(): Promise {\n await this.$store.direct.dispatch.mobile.checkPWAChanged();\n }\n\n dostuff(): void {\n this.setViewHeight();\n\n const debouncedSetHeight = debounce(this.setViewHeight, 50);\n\n window.addEventListener(\"resize\", debouncedSetHeight);\n\n this.$once(\"destroyed\", () => {\n window.removeEventListener(\"resize\", debouncedSetHeight);\n });\n }\n\n setViewHeight(): void {\n const vh = window.innerHeight * 0.01;\n document.documentElement.style.setProperty(\"--vh\", `${vh}px`);\n }\n\n private Alert(message: string, title = \"\"): void {\n this.$store.direct.commit.SHOW_ALERT({\n title,\n text: message,\n });\n }\n\n private async setUpApm(): Promise {\n const sessionExpirationDuration = !isNaN(Number(process.env.VUE_APP_SESSION_EXPIRATION_DURATION))\n ? Number(process.env.VUE_APP_SESSION_EXPIRATION_DURATION)\n : 300;\n const apmEndpoint = process.env.VUE_APP_APM_ENDPOINT ? process.env.VUE_APP_APM_ENDPOINT : \"https://localhost:8200\";\n const active = process.env.VUE_APP_APM_ACTIVE ? process.env.VUE_APP_APM_ACTIVE : false;\n return initApm(apmEndpoint, sessionExpirationDuration, [this.$store.direct.state.apiEndpoint], active);\n }\n}\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=32de7282&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"height\":\"48\",\"viewBox\":\"0 96 960 960\",\"width\":\"48\"}},[_c('path',{attrs:{\"d\":\"M222 801q63-40 124.5-60.5T480 720q72 0 134 20.5T739 801q44-54 62.5-109T820 576q0-145-97.5-242.5T480 236q-145 0-242.5 97.5T140 576q0 61 19 116t63 109Zm257.814-195Q422 606 382.5 566.314q-39.5-39.686-39.5-97.5t39.686-97.314q39.686-39.5 97.5-39.5t97.314 39.686q39.5 39.686 39.5 97.5T577.314 566.5q-39.686 39.5-97.5 39.5Zm-.219 370q-83.146 0-156.275-31.5t-127.225-86Q142 804 111 731.159 80 658.319 80 575.5q0-82.819 31.5-155.659Q143 347 197.5 293t127.341-85.5Q397.681 176 480.5 176q82.819 0 155.659 31.5Q709 239 763 293t85.5 127Q880 493 880 575.734q0 82.734-31.5 155.5T763 858.5q-54 54.5-127.129 86T479.595 976Z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./account_circle_FILL1_wght400_GRAD0_opsz48.vue?vue&type=template&id=153a7d04&scoped=true&\"\nvar script = {}\nimport style0 from \"./account_circle_FILL1_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=153a7d04&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"153a7d04\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"height\":\"48\",\"viewBox\":\"0 96 960 960\",\"width\":\"48\"}},[_c('path',{attrs:{\"d\":\"M320 853V293l440 280-440 280Z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./play_arrow_FILL1_wght400_GRAD0_opsz48.vue?vue&type=template&id=3ba5c15b&scoped=true&\"\nvar script = {}\nimport style0 from \"./play_arrow_FILL1_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=3ba5c15b&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3ba5c15b\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"height\":\"48\",\"viewBox\":\"0 -960 960 960\",\"width\":\"48\"}},[_c('path',{attrs:{\"d\":\"m383-310 267-170-267-170v340Zm97 230q-82 0-155-31.5t-127.5-86Q143-252 111.5-325T80-480q0-83 31.5-156t86-127Q252-817 325-848.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 82-31.5 155T763-197.5q-54 54.5-127 86T480-80Z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./play_circle_FILL1_wght400_GRAD0_opsz48.vue?vue&type=template&id=65b4a04a&scoped=true&\"\nvar script = {}\nimport style0 from \"./play_circle_FILL1_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=65b4a04a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"65b4a04a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"height\":\"48\",\"viewBox\":\"0 96 960 960\",\"width\":\"48\"}},[_c('path',{attrs:{\"d\":\"M796 935 533 672q-30 26-69.959 40.5T378 727q-108.162 0-183.081-75Q120 577 120 471t75-181q75-75 181.5-75t181 75Q632 365 632 471.15 632 514 618 554q-14 40-42 75l264 262-44 44ZM377 667q81.25 0 138.125-57.5T572 471q0-81-56.875-138.5T377 275q-82.083 0-139.542 57.5Q180 390 180 471t57.458 138.5Q294.917 667 377 667Z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./search_FILL0_wght400_GRAD0_opsz48.vue?vue&type=template&id=4b94b3d0&scoped=true&\"\nvar script = {}\nimport style0 from \"./search_FILL0_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=4b94b3d0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4b94b3d0\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"height\":\"24px\",\"viewBox\":\"0 0 24 24\",\"width\":\"24px\",\"fill\":\"#FFFFFF\"}},[_c('path',{attrs:{\"d\":\"M0 0h24v24H0V0z\",\"fill\":\"none\",\"opacity\":\".87\"}}),_c('path',{attrs:{\"d\":\"M17.51 3.87L15.73 2.1 5.84 12l9.9 9.9 1.77-1.77L9.38 12l8.13-8.13z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./arrow_back_ios_white_24dp.vue?vue&type=template&id=bdda68ce&scoped=true&\"\nvar script = {}\nimport style0 from \"./arrow_back_ios_white_24dp.vue?vue&type=style&index=0&id=bdda68ce&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bdda68ce\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"height\":\"48\",\"viewBox\":\"0 96 960 960\",\"width\":\"48\"}},[_c('path',{attrs:{\"d\":\"M450 856V606H200v-60h250V296h60v250h250v60H510v250h-60Z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./add_FILL0_wght400_GRAD0_opsz48.vue?vue&type=template&id=4c3cfd58&scoped=true&\"\nvar script = {}\nimport style0 from \"./add_FILL0_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=4c3cfd58&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4c3cfd58\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"height\":\"48\",\"viewBox\":\"0 96 960 960\",\"width\":\"48\"}},[_c('path',{attrs:{\"d\":\"M480 712 240 472l43-43 197 197 197-197 43 43-240 240Z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./keyboard_arrow_down_FILL0_wght0_GRAD0_opszNaN.vue?vue&type=template&id=5ef5f9ab&scoped=true&\"\nvar script = {}\nimport style0 from \"./keyboard_arrow_down_FILL0_wght0_GRAD0_opszNaN.vue?vue&type=style&index=0&id=5ef5f9ab&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5ef5f9ab\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"height\":\"48\",\"viewBox\":\"0 96 960 960\",\"width\":\"48\"}},[_c('path',{attrs:{\"d\":\"m283 699-43-43 240-240 240 240-43 43-197-197-197 197Z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./keyboard_arrow_up_FILL0_wght0_GRAD0_opszNaN.vue?vue&type=template&id=72559e7a&scoped=true&\"\nvar script = {}\nimport style0 from \"./keyboard_arrow_up_FILL0_wght0_GRAD0_opszNaN.vue?vue&type=style&index=0&id=72559e7a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"72559e7a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"height\":\"48\",\"viewBox\":\"0 96 960 960\",\"width\":\"48\"}},[_c('path',{attrs:{\"d\":\"M200 936V271q0-24 18-42t42-18h290v60H260v574l220-93 220 93V511h60v425L480 816 200 936Zm60-665h290-290Zm440 180v-90h-90v-60h90v-90h60v90h90v60h-90v90h-60Z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./bookmark_add_FILL0_wght400_GRAD0_opsz48.vue?vue&type=template&id=055b5941&scoped=true&\"\nvar script = {}\nimport style0 from \"./bookmark_add_FILL0_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=055b5941&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"055b5941\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"height\":\"48\",\"viewBox\":\"0 96 960 960\",\"width\":\"48\"}},[_c('path',{attrs:{\"d\":\"M716 451 610 345l42-43 64 64 148-149 43 43-191 191ZM200 936V271q0-24 18-42t42-18h336q-23 26-34.5 55.5T550 331q0 67 43 117t107 61q17 2 30 2t30-2v427L480 816 200 936Z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./bookmark_added_FILL1_wght400_GRAD0_opsz48.vue?vue&type=template&id=50377930&scoped=true&\"\nvar script = {}\nimport style0 from \"./bookmark_added_FILL1_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=50377930&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"50377930\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"height\":\"48\",\"viewBox\":\"0 96 960 960\",\"width\":\"48\"}},[_c('path',{attrs:{\"d\":\"M160 936V456l320-240 320 240v480H560V656H400v280H160Z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./home_FILL1_wght400_GRAD0_opsz48.vue?vue&type=template&id=4d8df3e4&scoped=true&\"\nvar script = {}\nimport style0 from \"./home_FILL1_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=4d8df3e4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4d8df3e4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"height\":\"48\",\"viewBox\":\"0 96 960 960\",\"width\":\"48\"}},[_c('path',{attrs:{\"d\":\"M220 1016q-24 0-42-18t-18-42V447q0-24 18-42t42-18h169v60H220v509h520V447H569v-60h171q24 0 42 18t18 42v509q0 24-18 42t-42 18H220Zm229-307V252l-88 88-43-43 161-161 161 161-43 43-88-88v457h-60Z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ios_share_FILL0_wght400_GRAD0_opsz48.vue?vue&type=template&id=5eb0eae8&scoped=true&\"\nvar script = {}\nimport style0 from \"./ios_share_FILL0_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=5eb0eae8&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5eb0eae8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"height\":\"48\",\"viewBox\":\"0 96 960 960\",\"width\":\"48\"}},[_c('path',{attrs:{\"d\":\"M207.858 624Q188 624 174 609.858q-14-14.141-14-34Q160 556 174.142 542q14.141-14 34-14Q228 528 242 542.142q14 14.141 14 34Q256 596 241.858 610q-14.141 14-34 14Zm272 0Q460 624 446 609.858q-14-14.141-14-34Q432 556 446.142 542q14.141-14 34-14Q500 528 514 542.142q14 14.141 14 34Q528 596 513.858 610q-14.141 14-34 14Zm272 0Q732 624 718 609.858q-14-14.141-14-34Q704 556 718.142 542q14.141-14 34-14Q772 528 786 542.142q14 14.141 14 34Q800 596 785.858 610q-14.141 14-34 14Z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./more_horiz_FILL0_wght400_GRAD0_opsz48.vue?vue&type=template&id=437f224d&scoped=true&\"\nvar script = {}\nimport style0 from \"./more_horiz_FILL0_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=437f224d&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"437f224d\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"height\":\"48\",\"viewBox\":\"0 96 960 960\",\"width\":\"48\"}},[_c('path',{attrs:{\"d\":\"M479.858 896Q460 896 446 881.858q-14-14.141-14-34Q432 828 446.142 814q14.141-14 34-14Q500 800 514 814.142q14 14.141 14 34Q528 868 513.858 882q-14.141 14-34 14Zm0-272Q460 624 446 609.858q-14-14.141-14-34Q432 556 446.142 542q14.141-14 34-14Q500 528 514 542.142q14 14.141 14 34Q528 596 513.858 610q-14.141 14-34 14Zm0-272Q460 352 446 337.858q-14-14.141-14-34Q432 284 446.142 270q14.141-14 34-14Q500 256 514 270.142q14 14.141 14 34Q528 324 513.858 338q-14.141 14-34 14Z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./more_vert_FILL0_wght400_GRAD0_opsz48.vue?vue&type=template&id=07de4529&scoped=true&\"\nvar script = {}\nimport style0 from \"./more_vert_FILL0_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=07de4529&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"07de4529\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"height\":\"48\",\"viewBox\":\"0 96 960 960\",\"width\":\"48\"}},[_c('path',{attrs:{\"d\":\"M450 776h60V606h170v-60H510V376h-60v170H280v60h170v170ZM180 936q-24 0-42-18t-18-42V276q0-24 18-42t42-18h600q24 0 42 18t18 42v600q0 24-18 42t-42 18H180Z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./add_box_FILL1_wght400_GRAD0_opsz48.vue?vue&type=template&id=06250b52&scoped=true&\"\nvar script = {}\nimport style0 from \"./add_box_FILL1_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=06250b52&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"06250b52\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"height\":\"48\",\"viewBox\":\"0 96 960 960\",\"width\":\"48\"}},[_c('path',{attrs:{\"d\":\"M300 1016q-24.75 0-42.375-17.625T240 956V810h60v56h440V286H300v56h-60V196q0-24.75 17.625-42.375T300 136h440q24.75 0 42.375 17.625T800 196v760q0 24.75-17.625 42.375T740 1016H300ZM163 763l-43-43 245-244H200v-60h269v269h-60V518L163 763Z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./add_to_home_screen_FILL1_wght400_GRAD0_opsz48.vue?vue&type=template&id=4c1ee3ee&scoped=true&\"\nvar script = {}\nimport style0 from \"./add_to_home_screen_FILL1_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=4c1ee3ee&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4c1ee3ee\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"height\":\"48\",\"viewBox\":\"0 -960 960 960\",\"width\":\"48\"}},[_c('path',{attrs:{\"d\":\"M480.118-330Q551-330 600.5-379.618q49.5-49.617 49.5-120.5Q650-571 600.382-620.5q-49.617-49.5-120.5-49.5Q409-670 359.5-620.382q-49.5 49.617-49.5 120.5Q310-429 359.618-379.5q49.617 49.5 120.5 49.5Zm-.353-58Q433-388 400.5-420.735q-32.5-32.736-32.5-79.5Q368-547 400.735-579.5q32.736-32.5 79.5-32.5Q527-612 559.5-579.265q32.5 32.736 32.5 79.5Q592-453 559.265-420.5q-32.736 32.5-79.5 32.5ZM480-200q-146 0-264-83T40-500q58-134 176-217t264-83q146 0 264 83t176 217q-58 134-176 217t-264 83Z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./visibility_FILL1_wght400_GRAD0_opsz48.vue?vue&type=template&id=d8fa4484&scoped=true&\"\nvar script = {}\nimport style0 from \"./visibility_FILL1_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=d8fa4484&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d8fa4484\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"height\":\"48\",\"viewBox\":\"0 -960 960 960\",\"width\":\"48\"}},[_c('path',{attrs:{\"d\":\"M816-64 648-229q-35 14-79 21.5t-89 7.5q-146 0-265-81.5T40-500q20-52 55.5-101.5T182-696L56-822l42-43 757 757-39 44ZM480-330q14 0 30-2.5t27-7.5L320-557q-5 12-7.5 27t-2.5 30q0 72 50 121t120 49Zm278 40L629-419q10-16 15.5-37.5T650-500q0-71-49.5-120.5T480-670q-22 0-43 5t-38 16L289-760q35-16 89.5-28T485-800q143 0 261.5 81.5T920-500q-26 64-67 117t-95 93ZM585-463 443-605q29-11 60-4.5t54 28.5q23 23 32 51.5t-4 66.5Z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./visibility_off_FILL1_wght400_GRAD0_opsz48.vue?vue&type=template&id=7d2b005d&scoped=true&\"\nvar script = {}\nimport style0 from \"./visibility_off_FILL1_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=7d2b005d&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7d2b005d\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"height\":\"48\",\"viewBox\":\"0 -960 960 960\",\"width\":\"48\"}},[_c('path',{attrs:{\"d\":\"M150-190h180v-340H150v340Zm240 0h180v-580H390v580Zm240 0h180v-260H630v260ZM90-130v-460h240v-240h300v320h240v380H90Z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./leaderboard_FILL0_wght400_GRAD0_opsz48.vue?vue&type=template&id=34424502&scoped=true&\"\nvar script = {}\nimport style0 from \"./leaderboard_FILL0_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=34424502&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"34424502\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"height\":\"48\",\"viewBox\":\"0 -960 960 960\",\"width\":\"48\"}},[_c('path',{attrs:{\"d\":\"M727-80q-47.5 0-80.75-33.346Q613-146.693 613-194.331q0-6.669 1.5-16.312T619-228L316-404q-15 17-37 27.5T234-366q-47.5 0-80.75-33.25T120-480q0-47.5 33.25-80.75T234-594q23 0 44 9t38 26l303-174q-3-7.071-4.5-15.911Q613-757.75 613-766q0-47.5 33.25-80.75T727-880q47.5 0 80.75 33.25T841-766q0 47.5-33.25 80.75T727-652q-23.354 0-44.677-7.5T646-684L343-516q2 8 3.5 18.5t1.5 17.741q0 7.242-1.5 15Q345-457 343-449l303 172q15-14 35-22.5t46-8.5q47.5 0 80.75 33.25T841-194q0 47.5-33.25 80.75T727-80Zm.035-632Q750-712 765.5-727.535q15.5-15.535 15.5-38.5T765.465-804.5q-15.535-15.5-38.5-15.5T688.5-804.465q-15.5 15.535-15.5 38.5t15.535 38.465q15.535 15.5 38.5 15.5Zm-493 286Q257-426 272.5-441.535q15.5-15.535 15.5-38.5T272.465-518.5q-15.535-15.5-38.5-15.5T195.5-518.465q-15.5 15.535-15.5 38.5t15.535 38.465q15.535 15.5 38.5 15.5Zm493 286Q750-140 765.5-155.535q15.5-15.535 15.5-38.5T765.465-232.5q-15.535-15.5-38.5-15.5T688.5-232.465q-15.5 15.535-15.5 38.5t15.535 38.465q15.535 15.5 38.5 15.5ZM727-766ZM234-480Zm493 286Z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./share_FILL0_wght400_GRAD0_opsz48.vue?vue&type=template&id=18cd8ef8&scoped=true&\"\nvar script = {}\nimport style0 from \"./share_FILL0_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=18cd8ef8&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"18cd8ef8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"22\",\"height\":\"22\",\"viewBox\":\"0 0 22 22\",\"fill\":\"none\"}},[_c('mask',{staticStyle:{\"mask-type\":\"alpha\"},attrs:{\"id\":\"mask0_1635_2291\",\"maskUnits\":\"userSpaceOnUse\",\"x\":\"0\",\"y\":\"0\",\"width\":\"22\",\"height\":\"22\"}},[_c('rect',{attrs:{\"width\":\"22\",\"height\":\"22\",\"fill\":\"#D9D9D9\"}})]),_c('g',{attrs:{\"mask\":\"url(#mask0_1635_2291)\"}},[_c('path',{attrs:{\"d\":\"M19.8714 10.1953L11.8047 2.12856C11.6637 1.98758 11.484 1.89158 11.2884 1.85269C11.0929 1.8138 10.8902 1.83377 10.7059 1.91007C10.5217 1.98637 10.3642 2.11558 10.2534 2.28136C10.1426 2.44715 10.0835 2.64206 10.0834 2.84146V6.41604C7.32894 6.67094 4.76869 7.94455 2.90372 9.98762C1.03875 12.0307 0.00329903 14.6962 0 17.4624V18.975C0.000159173 19.1843 0.0654513 19.3883 0.18682 19.5589C0.308189 19.7294 0.479618 19.8579 0.67733 19.9267C0.875043 19.9954 1.08924 20.0009 1.29021 19.9423C1.49117 19.8838 1.66895 19.7642 1.79889 19.6001C2.78676 18.4254 3.99885 17.4593 5.36433 16.7582C6.72982 16.0572 8.22132 15.6354 9.75169 15.5174C9.80211 15.5113 9.92816 15.5012 10.0834 15.4911V18.975C10.0835 19.1744 10.1426 19.3693 10.2534 19.5351C10.3642 19.7008 10.5217 19.83 10.7059 19.9063C10.8902 19.9826 11.0929 20.0026 11.2884 19.9637C11.484 19.9248 11.6637 19.8288 11.8047 19.6879L19.8714 11.6211C20.0605 11.432 20.1667 11.1756 20.1667 10.9082C20.1667 10.6408 20.0605 10.3844 19.8714 10.1953ZM12.1001 16.5408V14.4374C12.1001 14.17 11.9939 13.9135 11.8048 13.7244C11.6157 13.5353 11.3592 13.4291 11.0918 13.4291C10.8347 13.4291 9.78497 13.4795 9.51675 13.5148C6.79913 13.7652 4.21227 14.7977 2.06912 16.4874C2.31238 14.2634 3.3674 12.2073 5.0322 10.7128C6.69699 9.2182 8.85455 8.39022 11.0918 8.38735C11.3592 8.38735 11.6157 8.28111 11.8048 8.09201C11.9939 7.90291 12.1001 7.64644 12.1001 7.37901V5.2756L17.7327 10.9082L12.1001 16.5408Z\",\"fill\":\"#6B6B88\"}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./shareIcon.vue?vue&type=template&id=3dc89122&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"height\":\"20px\",\"viewBox\":\"0 -960 960 960\",\"width\":\"20px\",\"fill\":\"#000000\"}},[_c('path',{attrs:{\"d\":\"m380-340 280-180-280-180v360Zm-60 220v-80H160q-33 0-56.5-23.5T80-280v-480q0-33 23.5-56.5T160-840h640q33 0 56.5 23.5T880-760v480q0 33-23.5 56.5T800-200H640v80H320ZM160-280h640v-480H160v480Zm0 0v-480 480Z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./live_tv_24dp_FILL0_wght400_GRAD0_opsz24.vue?vue&type=template&id=42b04bba&scoped=true&\"\nvar script = {}\nimport style0 from \"./live_tv_24dp_FILL0_wght400_GRAD0_opsz24.vue?vue&type=style&index=0&id=42b04bba&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"42b04bba\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"height\":\"20px\",\"viewBox\":\"0 -960 960 960\",\"width\":\"20px\",\"fill\":\"#FF4500\"}},[_c('path',{attrs:{\"d\":\"m339-288 141-141 141 141 51-51-141-141 141-141-51-51-141 141-141-141-51 51 141 141-141 141 51 51ZM480-96q-79 0-149-30t-122.5-82.5Q156-261 126-331T96-480q0-80 30-149.5t82.5-122Q261-804 331-834t149-30q80 0 149.5 30t122 82.5Q804-699 834-629.5T864-480q0 79-30 149t-82.5 122.5Q699-156 629.5-126T480-96Zm0-72q130 0 221-91t91-221q0-130-91-221t-221-91q-130 0-221 91t-91 221q0 130 91 221t221 91Zm0-312Z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./cancel_20dp_FILL0_wght400_GRAD0_opsz20.vue?vue&type=template&id=5b0097c3&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"height\":\"20px\",\"viewBox\":\"0 -960 960 960\",\"width\":\"20px\",\"fill\":\"#33CF8E\"}},[_c('path',{attrs:{\"d\":\"m429-336 238-237-51-51-187 186-85-84-51 51 136 135Zm51 240q-79 0-149-30t-122.5-82.5Q156-261 126-331T96-480q0-80 30-149.5t82.5-122Q261-804 331-834t149-30q80 0 149.5 30t122 82.5Q804-699 834-629.5T864-480q0 79-30 149t-82.5 122.5Q699-156 629.5-126T480-96Zm0-72q130 0 221-91t91-221q0-130-91-221t-221-91q-130 0-221 91t-91 221q0 130 91 221t221 91Zm0-312Z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./check_circle_20dp_FILL0_wght400_GRAD0_opsz20.vue?vue&type=template&id=244b9f86&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"20\",\"height\":\"20\",\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M17,9V7c0-2.8-2.2-5-5-5S7,4.2,7,7v2c-1.7,0-3,1.3-3,3v7c0,1.7,1.3,3,3,3h10c1.7,0,3-1.3,3-3v-7C20,10.3,18.7,9,17,9z M9,7\\n\\tc0-1.7,1.3-3,3-3s3,1.3,3,3v2H9V7z M13.1,15.5c0,0-0.1,0.1-0.1,0.1V17c0,0.6-0.4,1-1,1s-1-0.4-1-1v-1.4c-0.6-0.6-0.7-1.5-0.1-2.1\\n\\tc0.6-0.6,1.5-0.7,2.1-0.1C13.6,13.9,13.7,14.9,13.1,15.5z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./lockIcon.vue?vue&type=template&id=6fa0d682&scoped=true&\"\nvar script = {}\nimport style0 from \"./lockIcon.vue?vue&type=style&index=0&id=6fa0d682&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6fa0d682\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"20\",\"height\":\"20\",\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,13a1.49,1.49,0,0,0-1,2.61V17a1,1,0,0,0,2,0V15.61A1.49,1.49,0,0,0,12,13Zm5-4H9V7a3,3,0,0,1,5.12-2.13,3.08,3.08,0,0,1,.78,1.38,1,1,0,1,0,1.94-.5,5.09,5.09,0,0,0-1.31-2.29A5,5,0,0,0,7,7V9a3,3,0,0,0-3,3v7a3,3,0,0,0,3,3H17a3,3,0,0,0,3-3V12A3,3,0,0,0,17,9Zm1,10a1,1,0,0,1-1,1H7a1,1,0,0,1-1-1V12a1,1,0,0,1,1-1H17a1,1,0,0,1,1,1Z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./unlockIcon.vue?vue&type=template&id=0ed79b70&scoped=true&\"\nvar script = {}\nimport style0 from \"./unlockIcon.vue?vue&type=style&index=0&id=0ed79b70&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0ed79b70\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"28\",\"height\":\"28\",\"viewBox\":\"0 0 28 28\",\"fill\":\"none\"}},[_c('path',{attrs:{\"d\":\"M14 24.5L12.3083 22.9833C10.3444 21.2139 8.72083 19.6875 7.4375 18.4042C6.15416 17.1208 5.13333 15.9688 4.37499 14.9479C3.61666 13.9271 3.0868 12.9889 2.78541 12.1333C2.48402 11.2778 2.33333 10.4028 2.33333 9.50834C2.33333 7.68056 2.94583 6.15417 4.17083 4.92917C5.39583 3.70417 6.92222 3.09167 8.75 3.09167C9.76111 3.09167 10.7236 3.30556 11.6375 3.73334C12.5514 4.16112 13.3389 4.7639 14 5.54167C14.6611 4.7639 15.4486 4.16112 16.3625 3.73334C17.2764 3.30556 18.2389 3.09167 19.25 3.09167C21.0778 3.09167 22.6042 3.70417 23.8292 4.92917C25.0542 6.15417 25.6667 7.68056 25.6667 9.50834C25.6667 10.4028 25.516 11.2778 25.2146 12.1333C24.9132 12.9889 24.3833 13.9271 23.625 14.9479C22.8667 15.9688 21.8458 17.1208 20.5625 18.4042C19.2792 19.6875 17.6556 21.2139 15.6917 22.9833L14 24.5Z\",\"fill\":\"currentColor\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./favoriteIcon.vue?vue&type=template&id=4d79fefc&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"28\",\"height\":\"28\",\"viewBox\":\"0 0 28 28\",\"fill\":\"none\"}},[_c('path',{attrs:{\"d\":\"M14 24.5L12.3083 22.9833C10.3444 21.2139 8.72083 19.6875 7.4375 18.4042C6.15416 17.1208 5.13333 15.9688 4.37499 14.9479C3.61666 13.9271 3.0868 12.9889 2.78541 12.1333C2.48402 11.2778 2.33333 10.4028 2.33333 9.50834C2.33333 7.68056 2.94583 6.15417 4.17083 4.92917C5.39583 3.70417 6.92222 3.09167 8.75 3.09167C9.76111 3.09167 10.7236 3.30556 11.6375 3.73334C12.5514 4.16112 13.3389 4.7639 14 5.54167C14.6611 4.7639 15.4486 4.16112 16.3625 3.73334C17.2764 3.30556 18.2389 3.09167 19.25 3.09167C21.0778 3.09167 22.6042 3.70417 23.8292 4.92917C25.0542 6.15417 25.6667 7.68056 25.6667 9.50834C25.6667 10.4028 25.516 11.2778 25.2146 12.1333C24.9132 12.9889 24.3833 13.9271 23.625 14.9479C22.8667 15.9688 21.8458 17.1208 20.5625 18.4042C19.2792 19.6875 17.6556 21.2139 15.6917 22.9833L14 24.5ZM14 21.35C15.8667 19.6778 17.4028 18.2438 18.6083 17.0479C19.8139 15.8521 20.7667 14.8118 21.4667 13.9271C22.1667 13.0424 22.6528 12.2549 22.925 11.5646C23.1972 10.8743 23.3333 10.1889 23.3333 9.50834C23.3333 8.34167 22.9444 7.36945 22.1667 6.59167C21.3889 5.8139 20.4167 5.42501 19.25 5.42501C18.3361 5.42501 17.4903 5.68265 16.7125 6.19792C15.9347 6.7132 14.5361 7.88094 14 8.45831C13.4226 7.86719 12.0653 6.7132 11.2875 6.19792C10.5097 5.68265 9.66388 5.42501 8.75 5.42501C7.58333 5.42501 6.61111 5.8139 5.83333 6.59167C5.05555 7.36945 4.66666 8.34167 4.66666 9.50834C4.66666 10.1889 4.80277 10.8743 5.075 11.5646C5.34722 12.2549 5.83333 13.0424 6.53333 13.9271C7.23333 14.8118 8.18611 15.8521 9.39166 17.0479C10.5972 18.2438 12.1333 19.6778 14 21.35Z\",\"fill\":\"currentColor\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./unfavoriteIcon.vue?vue&type=template&id=92cf344a&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\"}},[_c('path',{attrs:{\"d\":\"M19.2 6.99999H18.81C18.9299 6.67992 18.9941 6.34172 19 5.99999C18.979 5.18658 18.637 4.41452 18.0487 3.85242C17.4604 3.29033 16.6735 2.98387 15.86 2.99999C15.0606 3.01726 14.2804 3.24915 13.6013 3.67138C12.9223 4.09361 12.3692 4.69066 12 5.4C11.6309 4.69066 11.0778 4.09361 10.3987 3.67138C9.7196 3.24915 8.93949 3.01726 8.14002 2.99999C7.3265 2.98387 6.53965 3.29033 5.95132 3.85242C5.36299 4.41452 5.021 5.18658 5.00002 5.99999C5.00593 6.34172 5.07019 6.67992 5.19002 6.99999H4.80002C4.53688 7.02498 4.2813 7.10188 4.04806 7.22625C3.81482 7.35062 3.60854 7.51999 3.44116 7.72456C3.27378 7.92914 3.14861 8.16487 3.07289 8.41812C2.99717 8.67137 2.9724 8.93711 3.00002 9.19999V12.8C2.9533 13.2842 3.0778 13.7695 3.35186 14.1715C3.62591 14.5734 4.03218 14.8666 4.50002 15V19.37C4.53089 19.8236 4.73707 20.2473 5.0749 20.5516C5.41273 20.8558 5.85569 21.0166 6.31002 21H17.69C18.1509 21.0163 18.5996 20.85 18.9385 20.5373C19.2774 20.2245 19.4792 19.7907 19.5 19.33V15C19.9679 14.8666 20.3741 14.5734 20.6482 14.1715C20.9222 13.7695 21.0467 13.2842 21 12.8V9.19999C21.0276 8.93711 21.0029 8.67137 20.9272 8.41812C20.8514 8.16487 20.7263 7.92914 20.5589 7.72456C20.3915 7.51999 20.1852 7.35062 19.952 7.22625C19.7187 7.10188 19.4632 7.02498 19.2 6.99999ZM19 9.19999V12.8C19.012 12.8661 19.012 12.9339 19 13H13V8.99999H19C19.012 9.06612 19.012 9.13387 19 9.19999ZM15.86 4.99999C16.1433 4.98349 16.4217 5.07914 16.635 5.26627C16.8484 5.4534 16.9795 5.71697 17 5.99999C16.9795 6.28302 16.8484 6.54659 16.635 6.73372C16.4217 6.92085 16.1433 7.0165 15.86 6.99999H13.4C13.575 6.46577 13.9 5.99315 14.3361 5.63853C14.7723 5.2839 15.3013 5.06225 15.86 4.99999ZM7.00002 5.99999C7.02056 5.71697 7.15167 5.4534 7.365 5.26627C7.57832 5.07914 7.85673 4.98349 8.14002 4.99999C8.69693 5.06406 9.22378 5.28654 9.65804 5.64104C10.0923 5.99554 10.4158 6.46718 10.59 6.99999H8.14002C7.85673 7.0165 7.57832 6.92085 7.365 6.73372C7.15167 6.54659 7.02056 6.28302 7.00002 5.99999ZM5.00002 9.19999C4.98802 9.13387 4.98802 9.06612 5.00002 8.99999H11V13H5.00002C4.98802 12.9339 4.98802 12.8661 5.00002 12.8V9.19999ZM6.50002 15H11V19H6.50002V15ZM13 19V15H17.5V19H13Z\",\"fill\":\"currentColor\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./bonusIcon.vue?vue&type=template&id=88437dfe&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\nimport Vuetify from \"vuetify/lib\";\nimport fr from \"vuetify/src/locale/fr\";\n\nimport account_circle from \"@/assets/icons/material_symbols/account_circle_FILL1_wght400_GRAD0_opsz48.vue\";\nimport play_arrow from \"@/assets/icons/material_symbols/play_arrow_FILL1_wght400_GRAD0_opsz48.vue\";\nimport play_circle_filled from \"@/assets/icons/material_symbols/play_circle_FILL1_wght400_GRAD0_opsz48.vue\";\nimport search from \"@/assets/icons/material_symbols/search_FILL0_wght400_GRAD0_opsz48.vue\";\n// import sports_esports from \"@/assets/icons/material_symbols/sports_esports_FILL1_wght400_GRAD0_opsz48.vue\";\nimport arrow_back_ios_white from \"@/assets/icons/material_icons/arrow_back_ios_white_24dp.vue\";\nimport add from \"@/assets/icons/material_symbols/add_FILL0_wght400_GRAD0_opsz48.vue\";\nimport keyboard_arrow_down from \"@/assets/icons/material_symbols/keyboard_arrow_down_FILL0_wght0_GRAD0_opszNaN.vue\";\nimport keyboard_arrow_up from \"@/assets/icons/material_symbols/keyboard_arrow_up_FILL0_wght0_GRAD0_opszNaN.vue\";\n// import bookmark from \"@/assets/icons/material_symbols/bookmark_FILL0_wght0_GRAD0_opszNaN.vue\";\n// import bookmark_filled from \"@/assets/icons/material_symbols/bookmark_FILL1_wght400_GRAD0_opsz48.vue\";\nimport bookmark_add from \"@/assets/icons/material_symbols/bookmark_add_FILL0_wght400_GRAD0_opsz48.vue\";\n// import bookmark_remove from \"@/assets/icons/material_symbols/bookmark_remove_FILL1_wght400_GRAD0_opsz48.vue\";\nimport bookmark_added from \"@/assets/icons/material_symbols/bookmark_added_FILL1_wght400_GRAD0_opsz48.vue\";\nimport home from \"@/assets/icons/material_symbols/home_FILL1_wght400_GRAD0_opsz48.vue\";\nimport ios_share from \"@/assets/icons/material_symbols/ios_share_FILL0_wght400_GRAD0_opsz48.vue\";\nimport more_horiz from \"@/assets/icons/material_symbols/more_horiz_FILL0_wght400_GRAD0_opsz48.vue\";\nimport more_vert from \"@/assets/icons/material_symbols/more_vert_FILL0_wght400_GRAD0_opsz48.vue\";\nimport add_box from \"@/assets/icons/material_symbols/add_box_FILL1_wght400_GRAD0_opsz48.vue\";\nimport add_to_home_screen from \"@/assets/icons/material_symbols/add_to_home_screen_FILL1_wght400_GRAD0_opsz48.vue\";\nimport visibility from \"@/assets/icons/material_symbols/visibility_FILL1_wght400_GRAD0_opsz48.vue\";\nimport visibility_off from \"@/assets/icons/material_symbols/visibility_off_FILL1_wght400_GRAD0_opsz48.vue\";\nimport leaderboard from \"@/assets/icons/material_symbols/leaderboard_FILL0_wght400_GRAD0_opsz48.vue\";\nimport share_material from \"@/assets/icons/material_symbols/share_FILL0_wght400_GRAD0_opsz48.vue\";\nimport share from \"@/assets/icons/material_symbols/shareIcon.vue\";\nimport tv from \"@/assets/icons/material_symbols/live_tv_24dp_FILL0_wght400_GRAD0_opsz24.vue\";\nimport failed from \"@/assets/icons/material_symbols/cancel_20dp_FILL0_wght400_GRAD0_opsz20.vue\";\nimport valid from \"@/assets/icons/material_symbols/check_circle_20dp_FILL0_wght400_GRAD0_opsz20.vue\";\nimport newShare from \"@/assets/icons/material_symbols/shareIcon.vue\";\nimport filledStar from \"@/assets/icons/material_symbols/star_24dp_FILL1_wght400_GRAD0_opsz24.vue\";\nimport notFilledStar from \"@/assets/icons/material_symbols/star_24dp_FILL0_wght400_GRAD0_opsz24.vue\";\nimport lock from \"@/assets/icons/material_symbols/lockIcon.vue\";\nimport unlock from \"@/assets/icons/material_symbols/unlockIcon.vue\";\nimport favorite from \"@/assets/icons/material_symbols/favoriteIcon.vue\";\nimport unfavorite from \"@/assets/icons/material_symbols/unfavoriteIcon.vue\";\nimport bonus from \"@/assets/icons/material_symbols/bonusIcon.vue\";\n\nVue.use(Vuetify);\n\nconst customIcons = {\n \"material-symbols-account-circle\": account_circle,\n \"material-symbols-play-arrow\": play_arrow,\n \"material-symbols-play-circle\": play_circle_filled,\n \"material-symbols-live-tv\": tv,\n \"material-symbols-search\": search,\n // \"material-symbols-sports-esports\": sports_esports,\n \"material-symbols-add\": add,\n \"material-symbols-keyboard-arrow-down\": keyboard_arrow_down,\n \"material-symbols-keyboard-arrow-up\": keyboard_arrow_up,\n // \"material-symbols-bookmark\": bookmark,\n // \"material-symbols-bookmark-filled\": bookmark_filled,\n \"material-symbols-bookmark-add\": bookmark_add,\n // \"material-symbols-bookmark-remove\": bookmark_remove,\n \"material-symbols-bookmark-added\": bookmark_added,\n \"material-symbols-home\": home,\n \"material-symbols-ios-share\": ios_share,\n \"material-symbols-more-horiz\": more_horiz,\n \"material-symbols-more-vert\": more_vert,\n \"material-symbols-add-box\": add_box,\n \"material-symbols-check-circle\": valid,\n \"material-symbols-cancel\": failed,\n \"mdi-back\": arrow_back_ios_white,\n \"material-symbols-add-to-home-screen\": add_to_home_screen,\n \"material-symbols-visibility\": visibility,\n \"material-symbols-visibility-off\": visibility_off,\n \"material-symbols-leaderboard\": leaderboard,\n \"material-symbols-share\": share_material,\n share: share,\n lock: lock,\n unlock: unlock,\n favorite: favorite,\n unfavorite: unfavorite,\n bonus: bonus,\n};\nexport default new Vuetify({\n icons: {\n iconfont: \"mdiSvg\",\n values: {\n tapBarHome: { component: customIcons[\"material-symbols-home\"] },\n tapBarCategory: { component: customIcons[\"material-symbols-search\"] },\n tapBarProfile: { component: customIcons[\"material-symbols-account-circle\"] },\n tapBarLeaderboard: { component: customIcons[\"material-symbols-leaderboard\"] },\n playButton: { component: customIcons[\"material-symbols-play-arrow\"] },\n playCircleButton: { component: customIcons[\"material-symbols-play-circle\"] },\n tvButton: { component: customIcons[\"material-symbols-live-tv\"] },\n backButton: { component: customIcons[\"mdi-back\"] },\n favoriteButton: { component: customIcons[\"material-symbols-bookmark-add\"] },\n favoriteButtonAdded: { component: customIcons[\"material-symbols-bookmark-added\"] },\n showMore: { component: customIcons[\"material-symbols-keyboard-arrow-down\"] },\n showLess: { component: customIcons[\"material-symbols-keyboard-arrow-up\"] },\n profileAddGames: { component: customIcons[\"material-symbols-add\"] },\n add2HomeTutoOtherStep1: { component: customIcons[\"material-symbols-ios-share\"] },\n add2HomeTutoOtherStep2: { component: customIcons[\"material-symbols-add-box\"] },\n add2HomeTutoAndroidChromeStep1: { component: customIcons[\"material-symbols-more-vert\"] },\n add2HomeTutoAndroidChromeStep2: { component: customIcons[\"material-symbols-add-to-home-screen\"] },\n visibility: { component: customIcons[\"material-symbols-visibility\"] },\n visibilityOff: { component: customIcons[\"material-symbols-visibility-off\"] },\n shareButton: { component: customIcons[\"material-symbols-share\"] },\n shareIcon: { component: customIcons[\"share\"] },\n lockIcon: { component: customIcons[\"lock\"] },\n unlockIcon: { component: customIcons[\"unlock\"] },\n favoriteIcon: { component: customIcons[\"favorite\"] },\n unFavoriteIcon: { component: customIcons[\"unfavorite\"] },\n bonusIcon: { component: customIcons[\"bonus\"] },\n validIcon: { component: customIcons[\"material-symbols-check-circle\"] },\n failedIcon: { component: customIcons[\"material-symbols-cancel\"] },\n },\n },\n theme: {\n dark: true,\n },\n lang: {\n current: \"fr\",\n locales: { fr },\n },\n});\n","import Vue from \"vue\";\n\nimport App from \"@/App.vue\";\n// import \"@/registerServiceWorker\";\nif (window.isSecureContext)\n navigator?.serviceWorker?.register(\"/serviceworker.js\").catch((err) => {\n console.warn(\"Service Worker Registration Failed: \", err);\n });\nelse console.warn(\"Service Worker Registration Failed: Not a secure context\");\n\nimport router from \"@/router\";\nimport store from \"@/store\";\n\nimport vuetify from \"@/plugins/vuetify\";\nimport i18n from \"@/plugins/i18n\";\n\nVue.config.productionTip = false;\n\nVue.config.errorHandler = function (err, _vm, _info) {\n console.error(err);\n};\n\nnew Vue({\n router,\n store: store.original,\n vuetify,\n i18n,\n render: (h) => h(App),\n}).$mount(\"#app\");\n","module.exports = __webpack_public_path__ + \"img/logo.420f80b7.png\";","import type { ApmBase } from \"@elastic/apm-rum\";\n\nimport { WebRTCStatsHandler } from \"../old-client-stuff/WebRTCController\";\nimport { ErrorCode } from \"./ErrorCodes\";\nimport { NetworkState } from \"./NetworkState\";\nimport { TrialEndReason } from \"./TrialEndReason\";\nimport { InAppPurchaseEvent, StreamingMode } from \"../old-client-stuff/WebSocketConnection\";\n\nexport { ErrorCode, NetworkState, TrialEndReason };\nexport * from \"../WebRTC/WebRTCStatsParser\";\nexport * from \"../WebRTC/DefaultRTCStatsTypes\";\n\nexport interface VirtualGamepadButton {\n pressed: boolean;\n touched: boolean;\n value: number;\n}\n\nexport interface VirtualGamepad {\n axes: number[];\n buttons: VirtualGamepadButton[];\n connected: boolean;\n id: string;\n index: number;\n}\n\nexport type SkipSpeedtest = {\n dl?: number;\n ping?: number;\n jitter?: number;\n};\n\nexport interface SDKSettings {\n debug?: boolean;\n skipPWACheck?: boolean;\n skipBrowserCheck?: boolean;\n apmActive?: boolean;\n touchRate?: number;\n queueEnabled?: boolean;\n skipSpeedtest?: SkipSpeedtest;\n speedTestDlUrl?: string;\n bigscreenWsToken?: string;\n}\n\nexport type TrialStatus =\n /**\n * @param isTrial - Whether or not the game has been launched in trial mode.\n * @param duration - The duration of the trial, **in seconds**. 0 for no duration.\n */\n {\n isTrial: boolean;\n duration?: number;\n };\n\nexport type ErrorHandler =\n /**\n * Handler for {@link onError}.\n *\n * @param errorCode - The error code defining the error.\n */\n (errorCode: ErrorCode) => void;\n\nexport type BsErrorHandler =\n /**\n * Handler for {@link onError}.\n *\n * @param string - The error.\n * @param unpair - Whether to unpair the BigScreen.\n */\n (errorCode: string, unpair: boolean) => void;\n\nexport type TrialEndHandler =\n /**\n * Handler for {@link onTrialEnd}.\n *\n * @param reason The reason for the trial end.\n */\n (reason: TrialEndReason) => void;\n\nexport type LoadingProgressHandler =\n /**\n * Handler for {@link onLoadingProgress}.\n *\n * @param progress - The current progress of the loading, **in percentage**, from 0 to 1.\n */\n (progress: number) => void;\n\nexport type BsPairingCodeHandler =\n /**\n * Handler for {@link onPairingCode}.\n *\n * @param code - The new 6 digits code to be displayed by the bigscreen and typed by the user on the mobile\n */\n (code: string) => void;\n\nexport type BsPairedToHostHandler =\n /**\n * Handler for {@link onPairedToHost}.\n *\n * @param gamingSessionId - The mobile gamingSessionId\n * @param host - The paired host id\n * @param game - The game app id\n */\n (gamingSessionId: string, host: string, game: string) => void;\n\nexport type BsPairedToMobileHandler =\n /**\n * Handler for {@link onPairedToMobile}.\n *\n * @param cgToken - The user cgtoken\n */\n (cgToken: string) => void;\n\nexport type BsDisconnectedHandler =\n /**\n * Handler for {@link onBsDisconnected}.\n *\n */\n () => void;\n\nexport type QueueProgressHandler =\n /**\n * Handler for {@link onQueueProgress}.\n *\n * @param remainingTime - The estimated remaining time before launching a session.\n * @param savePending - Whether the previous save is retrieved or not.\n */\n (remainingTime: number, savePending: boolean) => void;\n\nexport type NetworkStateHandler =\n /**\n * Handler for {@link onNetworkState}.\n *\n * @param progress - The current state of the network.\n */\n (networkState: NetworkState) => void;\n\nexport type DeviceRotationHandler =\n /**\n * Handler for {@link onDeviceRotation}.\n *\n * @param progress - Whether the current rotation of the device is the correct one for the game currently being played.\n *\n * @remark If no game is currently played, the parameter will always be true.\n */\n (isCurrentModeValid: boolean) => void;\n\nexport type ReservedHostHandler =\n /**\n * Handler for {@link onReservedHost}.\n *\n * @param hostId - The ID of the reserved Host.\n * @param game - The game that is still playing on the host.\n *\n */\n (hostId: string, game: string) => void;\n\nexport type VisualMonitorEventHandler =\n /**\n * Handler for {@link onVisualMonitorEvent}.\n *\n * @param event - The event.\n */\n (event: string) => void;\n\nexport type PurchaseEventHandler =\n /**\n * Handler for {@link onPurchaseEvent}.\n *\n * @param event - The event.\n */\n (event: InAppPurchaseEvent) => void;\n\nexport type QueuePositionHandler =\n /**\n * Handler for {@link onQueuePosition}.\n *\n * @param position - The user's position in the queue.\n *\n */\n (position: number) => void;\n\nexport interface SDKEngine {\n readonly isInit: boolean;\n\n init(\n partnerKey: string,\n videoElem: HTMLVideoElement,\n audioElem: HTMLAudioElement,\n settings?: SDKSettings\n ): Promise;\n\n connectBigscreen(): Promise;\n\n startPairing(): void;\n\n startGame(\n cgToken: string,\n appId: string,\n streamingMode?: StreamingMode,\n host?: string,\n fetchedData?: {\n gameData: any;\n userData: any;\n subStatus: any;\n }\n ): Promise;\n\n resumeGame(host: string, appId: string): void;\n\n killReservedHostAndStartNewSession(host: string, appId: string): void;\n\n stopGame(): void;\n\n isMuted(): boolean;\n\n toggleMute(): void;\n\n downgrade(): void;\n\n upgrade(): void;\n\n closeWS(): void;\n\n isFullscreen(): boolean;\n\n toggleFullscreen(): void;\n\n connectVirtualGamepad(virtualGamepad: VirtualGamepad): void;\n\n updateVirtualGamepad(virtualGamepad: VirtualGamepad): void;\n\n isPWA(): boolean;\n\n setOnError(handler: ErrorHandler): void;\n\n setOnBsError(handler: BsErrorHandler): void;\n\n setOnTrialEnd(handler: TrialEndHandler): void;\n\n setOnLoadingProgress(handler: LoadingProgressHandler): void;\n\n setOnPairingCode(handler: BsPairingCodeHandler): void;\n\n setOnPairedToHost(handler: BsPairedToHostHandler): void;\n\n setOnPairedToMobile(handler: BsPairedToMobileHandler): void;\n\n setOnBsDisconnected(handler: BsDisconnectedHandler): void;\n\n setOnQueueProgress(handler: QueueProgressHandler): void;\n\n setOnNetworkState(handler: NetworkStateHandler): void;\n\n setOnVideoWebRTCStats(handler: WebRTCStatsHandler): void;\n\n setOnAudioWebRTCStats(handler: WebRTCStatsHandler): void;\n\n setOnDeviceRotation(handler: DeviceRotationHandler): void;\n\n setOnReservedHost(handler: ReservedHostHandler): void;\n\n setOnVisualMonitorEvent(handler: VisualMonitorEventHandler): void;\n\n setOnPurchaseEvent(handler: PurchaseEventHandler): void;\n\n setOnQueuePosition(handler: QueuePositionHandler): void;\n\n isBrowserCompatible(): boolean;\n\n getWebRTCID(): string | undefined;\n\n getAPM(): ApmBase;\n\n sendTransaction(name: string, type: string, context?: Record, labels?: Labels): void;\n\n startPressToPlaySpan(): void;\n\n endPressToPlaySpan(): void;\n\n sendIAPSignal(signal: \"iframe_closed\"): void;\n}\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Add2HomeAndroidIntercept.vue?vue&type=style&index=0&id=5b854ce2&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-form',{ref:\"form\",model:{value:(_vm.form.valid),callback:function ($$v) {_vm.$set(_vm.form, \"valid\", $$v)},expression:\"form.valid\"}},[_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(_vm.$t(\"profile.registration.login.form.login.label\")))]),_c('div',{staticClass:\"desc\"},[_vm._v(_vm._s(_vm.$t(\"profile.registration.login.form.login.description\")))]),_c('v-text-field',{attrs:{\"rules\":[_vm.formRules.required],\"maxlength\":\"64\",\"error-messages\":_vm.form.error,\"solo\":\"\",\"dense\":\"\",\"placeholder\":_vm.$t('profile.registration.login.form.login.placeholder'),\"autocorrect\":\"off\",\"autocapitalize\":\"off\",\"autocomplete\":\"username\"},on:{\"input\":_vm.resetError},model:{value:(_vm.form.login),callback:function ($$v) {_vm.$set(_vm.form, \"login\", $$v)},expression:\"form.login\"}}),_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(_vm.$t(\"profile.registration.login.form.password.label\")))]),_c('div',{staticClass:\"desc\"},[_vm._v(_vm._s(_vm.$t(\"profile.registration.login.form.password.description\")))]),_c('v-text-field',{attrs:{\"append-outer-icon\":_vm.form.showPassword ? '$visibility' : '$visibilityOff',\"rules\":[_vm.formRules.required],\"type\":_vm.form.showPassword ? 'text' : 'password',\"maxlength\":\"64\",\"error-messages\":_vm.form.error,\"solo\":\"\",\"dense\":\"\",\"placeholder\":_vm.$t('profile.registration.login.form.password.placeholder'),\"autocorrect\":\"off\",\"autocapitalize\":\"off\",\"autocomplete\":\"current-password\"},on:{\"click:append-outer\":function($event){_vm.form.showPassword = !_vm.form.showPassword},\"input\":_vm.resetError},model:{value:(_vm.form.password),callback:function ($$v) {_vm.$set(_vm.form, \"password\", $$v)},expression:\"form.password\"}}),_c('div',{staticClass:\"cta\"},[(_vm.showCloseButton)?_c('span',{staticClass:\"button\",on:{\"click\":function($event){return _vm.$emit('close')}}},[_vm._v(_vm._s(_vm.$t(\"profile.registration.login.form.buttons.back\")))]):_vm._e(),_c('span',{staticClass:\"button important\",class:{ disabled: !_vm.form.valid || _vm.form.working },on:{\"click\":_vm.login}},[(_vm.form.working)?_c('v-progress-circular',{attrs:{\"indeterminate\":\"\"}}):_c('span',[_vm._v(_vm._s(_vm.$t(\"profile.registration.login.form.buttons.login\")))])],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\nimport i18n from \"@/plugins/i18n\";\n\n@Component\nexport default class LoginForm extends Vue {\n @Prop({ type: Boolean, default: true }) showCloseButton!: boolean;\n\n form = {\n valid: false,\n working: false,\n login: \"\",\n password: \"\",\n showPassword: false,\n error: \"\",\n };\n\n formRules = {\n required: (value: string) => !!value || i18n.t(\"profile.registration.login.form.errors.required\"),\n };\n\n $refs!: {\n form: HTMLFormElement;\n };\n\n resetError(): void {\n this.form.error = \"\";\n }\n\n async login(): Promise {\n this.$refs.form.validate();\n if (!this.form.valid) return;\n\n if (this.form.working) return;\n this.form.working = true;\n\n const [_, loginResult] = await Promise.all([\n new Promise((resolve) => setTimeout(resolve, 1000)),\n this.$store.direct.dispatch.authentication.login({\n login: this.form.login,\n password: this.form.password,\n }),\n ]);\n if (!loginResult) {\n this.form.error = this.$t(\"profile.registration.login.form.errors.invalid\").toString();\n } else {\n this.$emit(\"logged\");\n }\n this.form.working = false;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LoginForm.vue?vue&type=template&id=46ad5b85&scoped=true&\"\nimport script from \"./LoginForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./LoginForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LoginForm.vue?vue&type=style&index=0&id=46ad5b85&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"46ad5b85\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VForm,VProgressCircular,VTextField})\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./visibility_off_FILL1_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=7d2b005d&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlertDialog.vue?vue&type=style&index=0&id=5e9b5ee5&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./keyboard_arrow_up_FILL0_wght0_GRAD0_opszNaN.vue?vue&type=style&index=0&id=72559e7a&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RenewTutoPopup.vue?vue&type=style&index=0&id=1b217f14&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OGLTapBar.vue?vue&type=style&index=1&id=52b1db22&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TapBar.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./add_box_FILL1_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=06250b52&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./leaderboard_FILL0_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=34424502&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-form',{ref:\"form\",model:{value:(_vm.form.valid),callback:function ($$v) {_vm.$set(_vm.form, \"valid\", $$v)},expression:\"form.valid\"}},[(_vm.withUsername)?_c('span',[_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(_vm.$t(\"profile.registration.register.form.username.label\")))]),_c('div',{staticClass:\"desc\"},[_vm._v(_vm._s(_vm.$t(\"profile.registration.register.form.username.description\")))]),_c('v-text-field',{attrs:{\"rules\":[_vm.formRules.required, _vm.formRules.min(1), _vm.formRules.validationRegex],\"maxlength\":\"64\",\"error-messages\":_vm.form.userNameAlreadyTakenError,\"solo\":\"\",\"dense\":\"\",\"placeholder\":_vm.$t('profile.registration.register.form.username.placeholder'),\"autocorrect\":\"off\",\"autocapitalize\":\"off\"},on:{\"input\":_vm.checkUsernameDebounced},model:{value:(_vm.form.username),callback:function ($$v) {_vm.$set(_vm.form, \"username\", $$v)},expression:\"form.username\"}})],1):_vm._e(),_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(_vm.$t(\"profile.registration.register.form.login.label\")))]),_c('div',{staticClass:\"desc\"},[_vm._v(_vm._s(_vm.$t(\"profile.registration.register.form.login.description\")))]),_c('v-text-field',{attrs:{\"rules\":[_vm.formRules.required, _vm.formRules.min(3), _vm.formRules.validationRegex],\"maxlength\":\"64\",\"error-messages\":_vm.form.loginAlreadyTakenError,\"solo\":\"\",\"dense\":\"\",\"placeholder\":_vm.$t('profile.registration.register.form.login.placeholder'),\"autocorrect\":\"off\",\"autocapitalize\":\"off\",\"autocomplete\":\"username\"},on:{\"input\":_vm.checkLoginDebounced},model:{value:(_vm.form.login),callback:function ($$v) {_vm.$set(_vm.form, \"login\", $$v)},expression:\"form.login\"}}),_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(_vm.$t(\"profile.registration.register.form.password.label\")))]),_c('div',{staticClass:\"desc\"},[_vm._v(_vm._s(_vm.$t(\"profile.registration.register.form.password.description\")))]),_c('v-text-field',{attrs:{\"append-outer-icon\":_vm.form.showPassword ? '$visibility' : '$visibilityOff',\"rules\":[_vm.formRules.required, _vm.formRules.min(6)],\"type\":_vm.form.showPassword ? 'text' : 'password',\"maxlength\":\"64\",\"solo\":\"\",\"dense\":\"\",\"placeholder\":_vm.$t('profile.registration.register.form.password.placeholder'),\"autocorrect\":\"off\",\"autocapitalize\":\"off\",\"autocomplete\":\"new-password\"},on:{\"click:append-outer\":function($event){_vm.form.showPassword = !_vm.form.showPassword}},model:{value:(_vm.form.password),callback:function ($$v) {_vm.$set(_vm.form, \"password\", $$v)},expression:\"form.password\"}}),_c('div',{staticClass:\"cta\"},[(_vm.showCloseButton)?_c('span',{staticClass:\"button\",on:{\"click\":function($event){return _vm.$emit('close')}}},[_vm._v(_vm._s(_vm.$t(\"profile.registration.register.form.buttons.back\")))]):_vm._e(),_c('span',{staticClass:\"button important\",class:{ disabled: !_vm.form.valid || _vm.form.working },on:{\"click\":_vm.register}},[(_vm.form.working)?_c('v-progress-circular',{attrs:{\"indeterminate\":\"\"}}):_c('span',[_vm._v(_vm._s(_vm.$t(\"profile.registration.register.form.buttons.register\")))])],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\nimport i18n from \"@/plugins/i18n\";\n\n@Component\nexport default class LoginForm extends Vue {\n @Prop({ type: Boolean, default: true }) showCloseButton!: boolean;\n @Prop({ type: Boolean, default: true }) withUsername!: boolean;\n\n form = {\n valid: false,\n working: false,\n username: \"\",\n login: \"\",\n password: \"\",\n showPassword: false,\n userNameAlreadyTakenError: \"\",\n loginAlreadyTakenError: \"\",\n };\n\n formRules = {\n required: (value: string) => !!value || i18n.t(\"profile.registration.register.form.errors.required\"),\n min: (min: number) => (v: string) =>\n v.length >= min || i18n.t(\"profile.registration.register.form.errors.minCharacters\", { n: min }),\n validationRegex: (value: string) =>\n /^[A-Za-zÀ-ÖØ-öø-ÿ0-9_-]*$/.test(value) || i18n.t(\"profile.registration.register.form.errors.format\"),\n };\n\n $refs!: {\n form: HTMLFormElement;\n };\n\n timerId: number | null = null;\n\n intervalId: number | null = null;\n\n mounted(): void {\n this.intervalId = setInterval(() => {\n if (this.withUsername) this.checkUsername(this.form.username);\n this.checkLogin(this.form.login);\n }, 2000);\n }\n\n beforeDestroy(): void {\n if (this.intervalId) clearInterval(this.intervalId);\n }\n\n async checkUsernameDebounced(): Promise {\n if (this.timerId) clearTimeout(this.timerId);\n this.timerId = setTimeout(() => this.checkUsername(this.form.username), 200);\n }\n\n async checkUsername(username: string): Promise {\n if (!username) return;\n const valid = await this.$store.direct.dispatch.authentication.usernameValidity({ username });\n if (!valid)\n this.form.userNameAlreadyTakenError = this.$t(\n \"profile.registration.register.form.errors.usernameTaken\"\n ).toString();\n else this.form.userNameAlreadyTakenError = \"\";\n }\n\n async checkLoginDebounced(): Promise {\n if (this.timerId) clearTimeout(this.timerId);\n this.timerId = setTimeout(() => this.checkLogin(this.form.login), 200);\n }\n\n async checkLogin(login: string): Promise {\n if (!login) return;\n const valid = await this.$store.direct.dispatch.authentication.loginValidity({ login });\n if (!valid)\n this.form.loginAlreadyTakenError = this.$t(\"profile.registration.register.form.errors.loginTaken\").toString();\n else this.form.loginAlreadyTakenError = \"\";\n }\n\n async register(): Promise {\n this.$refs.form.validate();\n if (!this.form.valid) return;\n\n if (this.form.working) return;\n this.form.working = true;\n\n if (this.intervalId) clearInterval(this.intervalId);\n await Promise.all([\n new Promise((resolve) => setTimeout(resolve, 1000)),\n await this.$store.direct.dispatch.authentication.tempRegister({\n login: this.form.login,\n password: this.form.password,\n username: this.withUsername ? this.form.username : undefined,\n }),\n ]);\n this.$emit(\"registered\");\n this.form.working = false;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegisterForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegisterForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RegisterForm.vue?vue&type=template&id=1d9ca7a3&scoped=true&\"\nimport script from \"./RegisterForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./RegisterForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RegisterForm.vue?vue&type=style&index=0&id=1d9ca7a3&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1d9ca7a3\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VForm,VProgressCircular,VTextField})\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginPopup.vue?vue&type=style&index=0&id=45ada790&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BonusScroller.vue?vue&type=style&index=0&id=5c2a5ae8&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Profile.vue?vue&type=style&index=0&id=3317b6e6&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./bookmark_added_FILL1_wght400_GRAD0_opsz48.vue?vue&type=style&index=0&id=50377930&lang=scss&scoped=true&\"","export enum NetworkState {\n /**\n * The network is very good.\n *
The quality is at maximum.\n */\n MAX = 1,\n\n /**\n * The network is good.\n *
The quality is good but not at maximum.\n */\n GOOD = 0.66,\n\n /**\n * The network is bad.\n *
The quality is medium and the user should be alerted to check their internet connection.\n */\n MEDIUM = 0.33,\n\n /**\n * The network is very bad.\n *
The quality is at minimum and the user should be alerted to check their internet connection.\n */\n BAD = 0,\n}\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=06c3f37a&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NeedAccessPopup.vue?vue&type=style&index=0&id=c0222c96&lang=scss&scoped=true&\"","import Vue from \"vue\";\nimport VueI18n, { LocaleMessages } from \"vue-i18n\";\n\nVue.use(VueI18n);\n\nfunction loadLocaleMessages(): LocaleMessages {\n const locales = require.context(\"../locales\", true, /[A-Za-z0-9-_,\\s]+\\.json$/i);\n const messages: LocaleMessages = {};\n locales.keys().forEach((key) => {\n const matched = key.match(/([A-Za-z0-9-_]+)\\./i);\n if (matched && matched.length > 1) {\n const locale = matched[1];\n messages[locale] = locales(key);\n }\n });\n return messages;\n}\n\nexport default new VueI18n({\n locale: process.env.VUE_APP_I18N_LOCALE || \"en\",\n fallbackLocale: process.env.VUE_APP_I18N_FALLBACK_LOCALE || \"en\",\n messages: loadLocaleMessages(),\n});\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--20-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FavButton.vue?vue&type=style&index=0&id=fad95862&lang=scss&scoped=true&\""],"sourceRoot":""}