{"version":3,"sources":["webpack:///./src/renderer/modules/instant/views/InstantMatchCatalogMobile/InstantMatchCatalogMobile.vue?b03e","webpack:///./src/renderer/modules/instant/views/InstantMatchCatalogMobile/InstantMatchCatalogMobile.vue","webpack:///./src/renderer/modules/instant/views/InstantMatchCatalogMobile/InstantMatchCatalogMobile.vue?a05e","webpack:///./src/renderer/modules/instant/views/InstantMatchCatalogMobile/InstantMatchCatalogMobile.vue?f2f1","webpack:///./src/renderer/modules/instant/views/InstantMatchCatalogMobile/index.ts","webpack:///./src/renderer/modules/instant/views/InstantMatchCatalogMobile/InstantMatchCatalogMobile.vue?de23","webpack:///./src/renderer/modules/shared/components/AppButton/index.ts"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","regionSelectorList","$t","isTournamentCatalogLoading","isLoading","model","value","callback","$$v","currentRegion","expression","on","onInstantMatchListScroll","_l","tournament","key","Array","from","numOfPlaceholderItem","_","index","tournamentList","length","_v","_s","_e","staticRenderFns","sharedModule","$store","realtimeConnectionCancellationToken","$vuetify","breakpoint","mobile","$router","replace","name","applicationSupportedGames","game","page","fetchAutomatedTournamentCatalog","code","region","suggestedRegion","realtimeConnection","onAutomatedTournamentCatalogUpdated","onMobileViewChanged","onApplicationSupportedGamesChanged","onGameChanged","cancel","off","$toast","success","e","tournamentListElement","target","hasMorePage","scrollBottom","scrollHeight","scrollTop","find","toLowerCase","gameCode","Math","max","applicationRegions","text","map","InstantMatchCatalogLogic","required","components","InstantMatchListItem","component","VProgressCircular","VSelect"],"mappings":"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","file":"js/instant-match-catalog-mobile.dfaf39c9.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"px-4 py-2 pt-0\"},[_c('v-select',{attrs:{\"items\":_vm.regionSelectorList,\"label\":_vm.$t('InstantMatchCatalog.Region'),\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\",\"disabled\":_vm.isTournamentCatalogLoading || _vm.isLoading},model:{value:(_vm.currentRegion),callback:function ($$v) {_vm.currentRegion=$$v},expression:\"currentRegion\"}})],1),(_vm.isTournamentCatalogLoading || _vm.isLoading)?_c('div',{staticClass:\"mt-15 pt-15 d-flex align-center justify-center\"},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"size\":\"100\"}})],1):_c('div',{staticClass:\"scroller\",on:{\"scroll\":_vm.onInstantMatchListScroll}},[_vm._l((_vm.tournamentList),function(tournament){return _c('InstantMatchListItem',{key:(\"instant-match-item-\" + (tournament.tournamentId)),attrs:{\"tournament\":tournament}})}),_vm._l((Array.from(new Array(_vm.numOfPlaceholderItem))),function(_,index){return _c('InstantMatchListItem',{key:(\"instant-match-item-placeholder-\" + index),attrs:{\"coming-soon\":true,\"tournament\":_vm.tournamentList[index % _vm.tournamentList.length]}})}),(_vm.tournamentList.length === 0)?_c('div',{staticClass:\"coming-soon\"},[_c('span',{staticClass:\"glitch\",attrs:{\"data-text\":_vm.$t('InstantMatchCatalog.ComingSoon')}},[_vm._v(\" \"+_vm._s(_vm.$t('InstantMatchCatalog.ComingSoon'))+\" \")])]):_vm._e()],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\n\n\n\n\n\n\r\nimport { Vue, Component, Prop, Watch } from 'vue-property-decorator'\r\nimport { mixins } from 'vue-class-component'\r\nimport { getModule } from 'vuex-module-decorators'\r\nimport sharedStore from '@/modules/shared/shared.store'\r\nimport InstantMatchCatalogLogic from '@/modules/instant/mixins/InstantMatchCatalogLogic'\r\nimport InstantMatchListItem from '@/modules/instant/components/InstantMatchListItem'\r\nimport { HubConnection } from '@microsoft/signalr'\r\nimport { CancellationToken } from '@/utils/cancel'\r\nimport { getRealtimeConnection } from '@/utils/realtime'\r\n\r\n@Component({\r\n components: {\r\n InstantMatchListItem\r\n }\r\n})\r\nexport default class InstantMatchCatalogMobile extends mixins(\r\n InstantMatchCatalogLogic\r\n) {\r\n @Prop({ required: true })\r\n gameCode!: string\r\n\r\n @Prop({ required: true })\r\n region!: string\r\n\r\n sharedModule = getModule(sharedStore, this.$store)\r\n realtimeConnection!: HubConnection\r\n realtimeConnectionCancellationToken = new CancellationToken()\r\n\r\n isLoading: boolean = true\r\n currentRegion: string | null = null\r\n\r\n @Watch('$vuetify.breakpoint.mobile')\r\n onMobileViewChanged() {\r\n if (!this.$vuetify.breakpoint.mobile) {\r\n this.$router.replace({\r\n name: 'InstantMatchCatalog'\r\n })\r\n }\r\n }\r\n\r\n @Watch('sharedModule.applicationSupportedGames')\r\n onApplicationSupportedGamesChanged() {\r\n if (\r\n !this.sharedModule.applicationSupportedGames ||\r\n !this.sharedModule.applicationSupportedGames.length\r\n ) {\r\n return\r\n }\r\n\r\n // if the game is not exists, go back\r\n if (!this.game) {\r\n this.$router.replace({\r\n name: 'InstantMatchCatalog'\r\n })\r\n }\r\n }\r\n\r\n @Watch('game')\r\n async onGameChanged() {\r\n if (!this.game) return\r\n this.tournamentList = []\r\n this.page = 1\r\n await this.fetchAutomatedTournamentCatalog(\r\n this.page,\r\n this.game.code,\r\n this.currentRegion\r\n )\r\n }\r\n\r\n @Watch('currentRegion')\r\n async onCurrentRegionChanged() {\r\n if (!this.game) return\r\n this.tournamentList = []\r\n this.page = 1\r\n await this.fetchAutomatedTournamentCatalog(\r\n this.page,\r\n this.game.code,\r\n this.currentRegion\r\n )\r\n }\r\n\r\n async created() {\r\n this.currentRegion = this.region\r\n ? this.region\r\n : this.sharedModule.suggestedRegion\r\n\r\n // listen signalR events\r\n this.realtimeConnection = await getRealtimeConnection(\r\n this.realtimeConnectionCancellationToken\r\n )\r\n this.realtimeConnection.on(\r\n 'automatedTournamentCatalogUpdated',\r\n this.onAutomatedTournamentCatalogUpdated\r\n )\r\n\r\n this.onMobileViewChanged()\r\n this.onApplicationSupportedGamesChanged()\r\n await this.onGameChanged()\r\n\r\n this.isLoading = false\r\n }\r\n\r\n beforeDestroy() {\r\n this.realtimeConnectionCancellationToken.cancel()\r\n if (this.realtimeConnection) {\r\n this.realtimeConnection.off(\r\n 'automatedTournamentCatalogUpdated',\r\n this.onAutomatedTournamentCatalogUpdated\r\n )\r\n }\r\n }\r\n\r\n get game() {\r\n return this.sharedModule.applicationSupportedGames.find(\r\n game => game.code.toLowerCase() === this.gameCode.toLowerCase()\r\n )\r\n }\r\n\r\n get numOfPlaceholderItem() {\r\n return Math.max(1, 2 - this.tournamentList.length)\r\n }\r\n\r\n async onAutomatedTournamentCatalogUpdated() {\r\n if (!this.game) return\r\n\r\n this.tournamentList = []\r\n this.page = 1\r\n await this.fetchAutomatedTournamentCatalog(\r\n this.page,\r\n this.game!.code,\r\n this.currentRegion\r\n )\r\n this.$toast.success(this.$t('InstantMatchCatalog.CatalogUpdated'))\r\n }\r\n\r\n get regionList() {\r\n return this.sharedModule.applicationRegions\r\n }\r\n\r\n get regionSelectorList() {\r\n return [\r\n {\r\n value: null,\r\n text: this.$t('InstantMatchCatalog.AllRegion')\r\n },\r\n ...this.sharedModule.applicationRegions.map(region => ({\r\n value: region.code,\r\n text: region.name\r\n }))\r\n ]\r\n }\r\n\r\n async onInstantMatchListScroll(e: MouseEvent) {\r\n if (!this.game) return\r\n\r\n const tournamentListElement = e.target as HTMLDivElement\r\n\r\n if (!tournamentListElement || !this.hasMorePage) {\r\n return\r\n }\r\n\r\n const scrollBottom =\r\n tournamentListElement.scrollHeight - tournamentListElement.scrollTop\r\n\r\n if (scrollBottom < 100) {\r\n await this.fetchAutomatedTournamentCatalog(\r\n this.page + 1,\r\n this.game!.code,\r\n this.currentRegion\r\n )\r\n }\r\n }\r\n}\r\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/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../../../node_modules/webpack-preprocessor-loader/index.js??ref--16-0!./InstantMatchCatalogMobile.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/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../../../node_modules/webpack-preprocessor-loader/index.js??ref--16-0!./InstantMatchCatalogMobile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InstantMatchCatalogMobile.vue?vue&type=template&id=cc7372f4&scoped=true&\"\nimport script from \"./InstantMatchCatalogMobile.vue?vue&type=script&lang=ts&\"\nexport * from \"./InstantMatchCatalogMobile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InstantMatchCatalogMobile.vue?vue&type=style&index=0&id=cc7372f4&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 \"cc7372f4\",\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 { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VProgressCircular,VSelect})\n","import InstantMatchCatalogMobile from './InstantMatchCatalogMobile.vue'\r\nexport default InstantMatchCatalogMobile\r\nexport { InstantMatchCatalogMobile }\r\n","import mod 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/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../../../node_modules/webpack-preprocessor-loader/index.js??ref--16-0!./InstantMatchCatalogMobile.vue?vue&type=style&index=0&id=cc7372f4&lang=scss&scoped=true&\"; export default mod; 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/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../../../node_modules/webpack-preprocessor-loader/index.js??ref--16-0!./InstantMatchCatalogMobile.vue?vue&type=style&index=0&id=cc7372f4&lang=scss&scoped=true&\"","import AppButton from './AppButton.vue'\r\n\r\nexport { AppButton }\r\nexport default AppButton\r\n"],"sourceRoot":""}