From e4bcc7846d8e4ba879b448d13ff1310562e4a3fd Mon Sep 17 00:00:00 2001 From: David Golodetsky Date: Mon, 2 May 2022 22:38:13 +0300 Subject: [PATCH] release --- public/index.html | 2 +- public/js/{app.957f49da.js => app.359ff4ac.js} | 4 ++-- .../{app.957f49da.js.map => app.359ff4ac.js.map} | 2 +- ...31b7.a4e625c1.js => chunk-7b3231b7.5e02fd47.js} | 2 +- ...625c1.js.map => chunk-7b3231b7.5e02fd47.js.map} | 2 +- ...e-manifest.f30a340756427e11fc8ac2c18ad4b32f.js} | 14 +++++++------- public/service-worker.js | 2 +- 7 files changed, 14 insertions(+), 14 deletions(-) rename public/js/{app.957f49da.js => app.359ff4ac.js} (99%) rename public/js/{app.957f49da.js.map => app.359ff4ac.js.map} (99%) rename public/js/{chunk-7b3231b7.a4e625c1.js => chunk-7b3231b7.5e02fd47.js} (99%) rename public/js/{chunk-7b3231b7.a4e625c1.js.map => chunk-7b3231b7.5e02fd47.js.map} (58%) rename public/{precache-manifest.28e5a83aad137e8a3f65091accd991bb.js => precache-manifest.f30a340756427e11fc8ac2c18ad4b32f.js} (95%) diff --git a/public/index.html b/public/index.html index 3a7b77b..85f0d53 100644 --- a/public/index.html +++ b/public/index.html @@ -1 +1 @@ -Geek Score
\ No newline at end of file +Geek Score
\ No newline at end of file diff --git a/public/js/app.957f49da.js b/public/js/app.359ff4ac.js similarity index 99% rename from public/js/app.957f49da.js rename to public/js/app.359ff4ac.js index 1d9b11f..3285ada 100644 --- a/public/js/app.957f49da.js +++ b/public/js/app.359ff4ac.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var r,a,i=t[0],s=t[1],u=t[2],l=0,d=[];l1&&void 0!==arguments[1]?arguments[1]:null;t("ERROR",n)},setBackTitle:function(e){var t=e.commit,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;t("BACK_TITLE",n)},setLoading:function(e){var t=e.commit,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;t("LOADING",n)}},getters:{loading:function(e){return e.loading},error:function(e){return e.error},backTitle:function(e){return e.backTitle}}});t["a"]=h},"43d4":function(e,t,n){"use strict";n("1215")},7034:function(e,t,n){"use strict";n.r(t);var r,a,o=n("a6f4"),c=n("132d"),i=Object(o["h"])({name:"BaseBackBtn",functional:!0,props:{title:{type:String,default:"Back"}},render:function(e,t){var n=t.props.title,r=t.parent.$vuetify.breakpoint.xsOnly,a=t.parent.$router;return e("div",{class:"d-flex align-center go-back",on:{click:function(){return a.go(-1)}}},[e(c["a"],{class:"mr-2",props:{color:"secondary",dark:!0}},"mdi-arrow-left"),n?e("span",{class:["header-title",{truncate:r}]},n):""])}}),s=i,u=(n("43d4"),n("2877")),l=Object(u["a"])(s,r,a,!1,null,"596ed2bd",null);t["default"]=l.exports},"72dc":function(e,t,n){"use strict";n("cd84")},"96c7":function(e,t,n){},"98f1":function(e,t,n){var r={"./BaseBackBtn.vue":"7034","./BaseDialog.vue":"ea45"};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id="98f1"},a18c:function(e,t,n){"use strict";n("d3b7");var r=n("2b0e"),a=n("8c4f"),o=n("4360"),c=n("1da1"),i=(n("96cf"),n("3ca3"),n("ddb0"),[{path:"/",name:"home",component:function(){return n.e("home").then(n.bind(null,"bc13"))},meta:{title:"Geek Score - Homepage",metaTags:{name:"description",content:"A starting page where described the idea of Geek Score"}}},{path:"/games",name:"games",component:function(){return n.e("games").then(n.bind(null,"2d81"))},meta:{requiresAuth:!0,title:"Geek Score - Games page",metaTags:{name:"description",content:"A list of user's games"}}},{path:"/game/:gameId",name:"game",props:!0,component:function(){return n.e("game").then(n.bind(null,"9365"))},meta:{requiresAuth:!0,title:"Geek Score - Game page",metaTags:{name:"description",content:"Game details page"}},beforeEnter:function(e,t,n){return Object(c["a"])(regeneratorRuntime.mark((function t(){var r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(r=o["a"].state.games.games,null===r||void 0===r){t.next=5;break}t.next=7;break;case 5:return t.next=7,o["a"].dispatch("games/loadGames");case 7:return t.next=9,o["a"].getters["games/getGame"](e.params.gameId);case 9:a=t.sent,a?n():n({name:"NotFound"});case 11:case"end":return t.stop()}}),t)})))()}},{path:"/profile",name:"profile",component:function(){return n.e("profile").then(n.bind(null,"2ff9"))},meta:{requiresAuth:!0,title:"Geek Score - Profile page",metaTags:{name:"User Profile",content:"User Profile page"}}},{path:"/team/:teamId",name:"team",props:!0,component:function(){return Promise.all([n.e("chunk-485c46e5"),n.e("team")]).then(n.bind(null,"740d"))},meta:{requiresAuth:!0,title:"Geek Score - Team page",metaTags:{name:"description",content:"Team details page"}},beforeEnter:function(e,t,n){return Object(c["a"])(regeneratorRuntime.mark((function t(){var r,a,c;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(r=o["a"].state.games.games,null===r||void 0===r){t.next=5;break}t.next=7;break;case 5:return t.next=7,o["a"].dispatch("games/loadGames");case 7:if(a=o["a"].state.teams.teams,null===a||void 0===a){t.next=12;break}t.next=14;break;case 12:return t.next=14,o["a"].dispatch("teams/loadTeams");case 14:return t.next=16,o["a"].getters["teams/getTeam"](e.params.teamId);case 16:c=t.sent,c?n():n({name:"NotFound"});case 18:case"end":return t.stop()}}),t)})))()}},{path:"/sign-in",name:"signIn",component:function(){return n.e("signIn").then(n.bind(null,"4fc8"))},meta:{title:"Geek Score - Sign in page",metaTags:{name:"description",content:"A page for Signing In in"}}},{path:"/sign-up",name:"signUp",component:function(){return n.e("signUp").then(n.bind(null,"89a8"))},meta:{title:"Geek Score - Sign up page",metaTags:{name:"description",content:"A page for Signing up up"}}},{path:"/reset",name:"resetPass",component:function(){return Promise.all([n.e("chunk-07709945"),n.e("resetPass")]).then(n.bind(null,"f833"))},meta:{title:"Geek Score - Reset password page",metaTags:{name:"description",content:"A page for resetting a password"}}},{path:"/tools",name:"tools",component:function(){return Promise.all([n.e("chunk-07709945"),n.e("chunk-485c46e5"),n.e("tools")]).then(n.bind(null,"fb63"))},meta:{requiresAuth:!0,title:"Geek Score - Tools page",metaTags:{name:"description",content:"A list of tools for games"}}},{path:"/404",alias:"*",name:"NotFound",component:function(){return n.e("notFound").then(n.bind(null,"aa4b"))},meta:{title:"Geek Score - Not found page",metaTags:{name:"description",content:"An error page"}}}]),s=i;r["default"].use(a["a"]);var u=new a["a"]({routes:s,mode:"history",base:"/",scrollBehavior:function(e,t,n){var r={x:0,y:0};return n&&(r=n),new Promise((function(e){setTimeout((function(){e(r)}),300)}))}});u.beforeEach((function(e,t,n){return e.matched.some((function(e){return e.meta.requiresAuth}))?o["a"].state.user?n():n({name:"signIn"}):n()}));t["a"]=u},c1f4:function(e,t,n){},c30e:function(e,t,n){"use strict";n("96c7")},cd49:function(e,t,n){"use strict";n.r(t);n("e260"),n("e6cf"),n("cca6"),n("a79d"),n("159b"),n("d3b7"),n("ddb0"),n("b0c0"),n("ac1f"),n("5319");var r=n("2b0e"),a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("v-app",{directives:[{name:"scroll",rawName:"v-scroll",value:e.onScroll,expression:"onScroll"}],staticClass:"app"},[n("TheHeader"),n("v-main",[n("v-container",{staticClass:"app-container"},[e.isAlert?n("TheAlert",e._b({},"TheAlert",{alertType:e.alertType,alertText:e.alertText},!1)):e._e(),n("transition",{attrs:{name:"slide",mode:"out-in"}},[n("router-view")],1),e.isLoading?n("div",{staticClass:"loader-wrap"},[n("v-progress-circular",{attrs:{size:50,indeterminate:"",color:"secondary"}})],1):e._e(),e.isGoTopBtn?n("v-btn",{staticClass:"go-top",attrs:{"aria-label":"Go to top",dark:"",fab:""},on:{click:function(t){return e.$vuetify.goTo(0,e.GoTopBtnOtions)}}},[n("v-icon",{attrs:{dark:""}},[e._v("mdi-chevron-up")])],1):e._e()],1)],1),n("TheFooter")],1)},o=[],c=n("a6f4"),i=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"the-header"},[r("v-app-bar",{attrs:{app:"",color:"primary",dense:"",dark:""}},[r("v-container",{staticClass:"row_between app-container"},[e.backTitle?r("BaseBackBtn",{attrs:{title:e.backTitle}}):r("router-link",{staticClass:"d-flex align-center",attrs:{to:{name:"home"}}},[r("v-img",{staticClass:"logo",attrs:{src:n("1ae4"),alt:"Geek Score"}}),r("span",{staticClass:"header-title"},[e._v("Geek Score")])],1),r("v-spacer"),e.user?[r("nav",[r("ul",{staticClass:"d-none d-sm-flex"},[e._l(e.navItems,(function(t){var n=t.icon,a=t.text,o=t.link;return r("li",{key:a},[r("v-btn",{attrs:{small:e.$vuetify.breakpoint.smOnly,to:o,text:""}},[r("v-icon",{attrs:{left:""}},[e._v("mdi-"+e._s(n))]),e._v(" "+e._s(a)+" ")],1)],1)})),r("li",[r("v-btn",{attrs:{small:e.$vuetify.breakpoint.smOnly,text:""},on:{click:e.onLogout}},[r("v-icon",[e._v("mdi-logout")]),e._v("Log out ")],1)],1)],2)]),r("v-app-bar-nav-icon",{staticClass:"d-sm-none",on:{click:function(t){t.stopPropagation(),e.isSideNav=!e.isSideNav}}})]:e._e()],2)],1),r("v-navigation-drawer",{attrs:{app:"",right:"",dark:"",fixed:"",temporary:""},model:{value:e.isSideNav,callback:function(t){e.isSideNav=t},expression:"isSideNav"}},[r("v-list",[e._l(e.navItems,(function(t){var n=t.text,a=t.icon,o=t.link;return r("v-list-item",{key:n,attrs:{to:o}},[r("v-list-item-icon",[r("v-icon",[e._v("mdi-"+e._s(a))])],1),r("v-list-item-content",[e._v(e._s(n))])],1)})),r("v-list-item",{on:{click:e.onLogout}},[r("v-list-item-icon",[r("v-icon",[e._v("mdi-logout")])],1),r("v-list-item-content",[e._v("Log out")])],1)],2)],1)],1)},s=[],u=Object(c["h"])({name:"TheHeader",setup:function(e,t){var n=t.root,r=n.$store,a=n.$route,o=Object(c["b"])((function(){return r.state.user.user})),i=Object(c["b"])((function(){return r.getters["backTitle"]})),s=Object(c["J"])(!1),u=function(){return r.dispatch("user/logout")},l=function(){"/"===a.fullPath&&(s.value=!1),u()},d=[{text:"Games",icon:"dice-multiple-outline",link:"/games"},{text:"Tools",icon:"hammer-screwdriver",link:"/tools"},{text:"Profile",icon:"account-details-outline",link:"/profile"}];return{isSideNav:s,backTitle:i,user:o,navItems:d,onLogout:l}}}),l=u,d=(n("1627"),n("2877")),f=n("6544"),m=n.n(f),p=n("40dc"),g=n("5bc1"),v=n("8336"),h=n("a523"),b=n("132d"),k=n("adda"),O=n("8860"),w=n("da13"),E=n("5d23"),T=n("34c3"),_=n("f774"),A=n("2fa4"),x=Object(d["a"])(l,i,s,!1,null,"5c0a07d6",null),R=x.exports;m()(x,{VAppBar:p["a"],VAppBarNavIcon:g["a"],VBtn:v["a"],VContainer:h["a"],VIcon:b["a"],VImg:k["a"],VList:O["a"],VListItem:w["a"],VListItemContent:E["a"],VListItemIcon:T["a"],VNavigationDrawer:_["a"],VSpacer:A["a"]});var S=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("v-footer",{staticClass:"the-footer",attrs:{padless:""}},[n("v-layout",{attrs:{primary:"","white--text":""}},[n("v-container",[n("span",{staticClass:"mr-6",attrs:{"data-test-copy":""}},[e._v("© "+e._s(e.copyright))]),n("a",{staticClass:"link",attrs:{href:"https://github.com/DavidGolodetsky/GeekScore-2",rel:"noopener noreferrer",target:"_blank"}},[n("span",{staticClass:"mr-2"},[e._v("Repo")]),n("v-icon",{attrs:{size:"18",dark:""}},[e._v("mdi-code-tags")])],1)])],1)],1)},I=[],y=Object(c["h"])({name:"TheFooter",setup:function(){var e=(new Date).getFullYear(),t="2020 - ".concat(e);return{copyright:t}}}),G=y,j=(n("1211"),n("553a")),N=n("a722"),L=Object(d["a"])(G,S,I,!1,null,"94c7db3e",null),D=L.exports;m()(L,{VContainer:h["a"],VFooter:j["a"],VIcon:b["a"],VLayout:N["a"]});var C=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("section",{staticClass:"the-alert"},[n("transition",{attrs:{appear:"",name:"fade-down"}},[n("v-alert",{attrs:{dismissible:"",value:"",type:e.alertType},on:{input:function(t){return e.onClose()}}},[e._v(" "+e._s(e.alertText)+" ")])],1)],1)},P=[],V=n("d770"),B=Object(c["h"])({name:"TheAlert",props:{alertType:{type:String,required:!0},alertText:{type:String,required:!0}},setup:function(e,t){var n=t.root.$store,r=t.emit;Object(c["A"])((function(){return Object(V["c"])()}));var a=function(){return n.dispatch("setError")},o=function(){a(),r("dismissed")};return{onClose:o}}}),U=B,M=(n("e8ca"),n("0798")),F=Object(d["a"])(U,C,P,!1,null,null,null),$=F.exports;m()(F,{VAlert:M["a"]});var q=n("1ab6"),W=Object(c["h"])({name:"App",components:{TheHeader:R,TheFooter:D,TheAlert:$},setup:function(e,t){var n=t.root.$store,r=Object(c["J"])(!1),a=Object(c["J"])(!1),o=Object(c["J"])({duration:300,offset:0,easing:"easeInOutCubic"});Object(c["A"])((function(){return Object(q["b"])()}));var i=Object(c["b"])((function(){return n.getters["loading"]})),s=Object(c["b"])((function(){return n.getters["error"]})),u=Object(c["b"])((function(){return a.value||s.value})),l=function(){return n.dispatch("setError")};Object(c["Y"])(u,(function(e){e&&setTimeout((function(){return l()}),1e4)}));var d="Geek Score is offline. Some features might be disabled",f=Object(c["b"])((function(){return a.value?"warning":"error"})),m=Object(c["b"])((function(){return a.value?d:s.value.message})),p=function(){if(window.pageYOffset>500)return r.value=!0;r.value&&window.pageYOffset<500&&(r.value=!1)};return{alertType:f,alertText:m,isAlert:u,onScroll:p,isLoading:i,isGoTopBtn:r,isOffline:a,GoTopBtnOtions:o}}}),J=W,H=(n("c30e"),n("7496")),K=n("f6c4"),z=n("490a"),Y=n("269a"),X=n.n(Y),Q=n("f977"),Z=Object(d["a"])(J,a,o,!1,null,"47a4ed8c",null),ee=Z.exports;m()(Z,{VApp:H["a"],VBtn:v["a"],VContainer:h["a"],VIcon:b["a"],VMain:K["a"],VProgressCircular:z["a"]}),X()(Z,{Scroll:Q["b"]});var te=n("f309");r["default"].use(te["a"]);var ne=new te["a"]({theme:{themes:{light:{primary:"#3D3D3C",secondary:"#ff9900",accent:"#ffb84d",error:"#f44336",warning:"#ffc107",info:"#03a9f4",success:"#8bc34a",silver:"#d9d9d8",bg:"#50514f",lightgrey:"#d9d9d8",label:"#6C6C6B"}}}}),re=n("a18c"),ae=n("4360"),oe=n("bf4e"),ce=n.n(oe),ie=n("a584"),se=n("9483");Object(se["a"])("".concat("/","service-worker.js"),{ready:function(){console.log("App is being served from cache by a service worker.\nFor more details, visit https://goo.gl/AFskqB")},registered:function(){console.log("Service worker has been registered.")},cached:function(){console.log("Content has been cached for offline use.")},updatefound:function(){console.log("New content is downloading.")},updated:function(){console.log("New content is available; please refresh.")},offline:function(){console.log("No internet connection found. App is running in offline mode.")},error:function(e){console.error("Error during service worker registration:",e)}});var ue=!1;r["default"].config.productionTip=ue,r["default"].config.performance=ue,r["default"].config.errorHandler=function(e,t,n){console.error(e,t,n)},r["default"].prototype.$log=console.log,r["default"].use(c["f"]),r["default"].use(ie["a"],{config:{id:"G-K9MXTWVK3R"}}),r["default"].use(ce.a,{mixin:!1,storage:!1});var le=n("98f1");le.keys().forEach((function(e){var t=le(e);t=t.default||t;var n=t.name||e.replace(/^.+\//,"").replace(/\.\w+$/,"");r["default"].component(n,t)})),new r["default"]({vuetify:ne,router:re["a"],store:ae["a"],render:function(e){return e(ee)}}).$mount("#app")},cd84:function(e,t,n){},d770:function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"a",(function(){return a})),n.d(t,"b",(function(){return o}));n("ac1f"),n("1276"),n("a15b"),n("d81d"),n("b0c0");var r=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:300;window.innerWidth<600&&window.navigator.vibrate(e)},a=function(e){var t=Array(e).join(",").split(",");return t.map((function(e,t){return t+1}))},o=function(e){return null===e||void 0===e?void 0:e.map((function(e){return e.name}))}},db85:function(e,t,n){},e8ca:function(e,t,n){"use strict";n("db85")},ea45:function(e,t,n){"use strict";n.r(t);var r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("section",[n("div",{on:{click:function(t){t.preventDefault(),e.dialog=!0}}},[e._t("activator",(function(){return[n("v-btn",{staticClass:"px-0 mr-2",attrs:{id:"activator_"+e.activatorText,small:e.simple,fab:"","aria-label":"Open modal",text:e.simple,color:e.color}},[n("v-icon",{attrs:{dark:""}},[e._v("mdi-"+e._s(e.activatorIcon))])],1),n("label",{staticClass:"label_text",attrs:{for:"activator_"+e.activatorText}},[e._v(e._s(e.activatorText))])]}))],2),n("v-dialog",{attrs:{"max-width":"600"},model:{value:e.dialog,callback:function(t){e.dialog=t},expression:"dialog"}},[n("v-card",{staticClass:"BaseDialog"},[n("v-card-title",[n("h3",{staticClass:"app-headline"},[e._v(e._s(e.header))]),n("v-spacer"),n("v-btn",{attrs:{small:"","aria-label":"Close modal",fab:"",text:""},on:{click:e.close}},[n("v-icon",{attrs:{dark:""}},[e._v("mdi-close")])],1)],1),n("v-form",{ref:"form",attrs:{"lazy-validation":""},on:{submit:function(t){return t.preventDefault(),e.onSubmit.apply(null,arguments)}},model:{value:e.valid,callback:function(t){e.valid=t},expression:"valid"}},[n("v-card-text",[n("v-container",[e._t("default")],2)],1),n("v-card-actions",{staticClass:"footer"},[n("v-spacer"),e._t("footer",(function(){return[n("v-btn",{staticClass:"mr-2",attrs:{color:"secondary darken-1",outlined:""},on:{click:e.close}},[e._v("Cancel")]),n("v-btn",{attrs:{color:"secondary darken-1",outlined:"",type:"submit",disabled:!e.valid}},[e._v("Submit")])]}))],2)],1)],1)],1)],1)},a=[],o=n("a6f4"),c=Object(o["h"])({name:"BaseDialog",props:{activatorIcon:{type:String,default:""},header:{type:String,required:!0},color:{type:String,default:"secondary"},activatorText:{type:String,default:""},simple:{type:Boolean}},setup:function(e,t){var n=t.emit,r=Object(o["J"])(!1),a=Object(o["J"])(!1),c=function(){r.value=!1},i=function(){n("submit"),c()};return{dialog:r,valid:a,onSubmit:i,close:c}}}),i=c,s=(n("72dc"),n("2877")),u=n("6544"),l=n.n(u),d=n("8336"),f=n("b0af"),m=n("99d9"),p=n("a523"),g=n("169a"),v=n("4bd4"),h=n("132d"),b=n("2fa4"),k=Object(s["a"])(i,r,a,!1,null,"29f89144",null);t["default"]=k.exports;l()(k,{VBtn:d["a"],VCard:f["a"],VCardActions:m["a"],VCardText:m["b"],VCardTitle:m["c"],VContainer:p["a"],VDialog:g["a"],VForm:v["a"],VIcon:h["a"],VSpacer:b["a"]})},fe16:function(e,t,n){}}); -//# sourceMappingURL=app.957f49da.js.map \ No newline at end of file +(function(e){function t(t){for(var r,a,i=t[0],s=t[1],u=t[2],l=0,d=[];l1&&void 0!==arguments[1]?arguments[1]:null;t("ERROR",n)},setBackTitle:function(e){var t=e.commit,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;t("BACK_TITLE",n)},setLoading:function(e){var t=e.commit,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;t("LOADING",n)}},getters:{loading:function(e){return e.loading},error:function(e){return e.error},backTitle:function(e){return e.backTitle}}});t["a"]=h},"43d4":function(e,t,n){"use strict";n("1215")},7034:function(e,t,n){"use strict";n.r(t);var r,a,o=n("a6f4"),c=n("132d"),i=Object(o["h"])({name:"BaseBackBtn",functional:!0,props:{title:{type:String,default:"Back"}},render:function(e,t){var n=t.props.title,r=t.parent.$vuetify.breakpoint.xsOnly,a=t.parent.$router;return e("div",{class:"d-flex align-center go-back",on:{click:function(){return a.go(-1)}}},[e(c["a"],{class:"mr-2",props:{color:"secondary",dark:!0}},"mdi-arrow-left"),n?e("span",{class:["header-title",{truncate:r}]},n):""])}}),s=i,u=(n("43d4"),n("2877")),l=Object(u["a"])(s,r,a,!1,null,"596ed2bd",null);t["default"]=l.exports},"72dc":function(e,t,n){"use strict";n("cd84")},"96c7":function(e,t,n){},"98f1":function(e,t,n){var r={"./BaseBackBtn.vue":"7034","./BaseDialog.vue":"ea45"};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id="98f1"},a18c:function(e,t,n){"use strict";n("d3b7");var r=n("2b0e"),a=n("8c4f"),o=n("4360"),c=n("1da1"),i=(n("96cf"),n("3ca3"),n("ddb0"),[{path:"/",name:"home",component:function(){return n.e("home").then(n.bind(null,"bc13"))},meta:{title:"Geek Score - Homepage",metaTags:{name:"description",content:"A starting page where described the idea of Geek Score"}}},{path:"/games",name:"games",component:function(){return n.e("games").then(n.bind(null,"2d81"))},meta:{requiresAuth:!0,title:"Geek Score - Games page",metaTags:{name:"description",content:"A list of user's games"}}},{path:"/game/:gameId",name:"game",props:!0,component:function(){return n.e("game").then(n.bind(null,"9365"))},meta:{requiresAuth:!0,title:"Geek Score - Game page",metaTags:{name:"description",content:"Game details page"}},beforeEnter:function(e,t,n){return Object(c["a"])(regeneratorRuntime.mark((function t(){var r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(r=o["a"].state.games.games,null===r||void 0===r){t.next=5;break}t.next=7;break;case 5:return t.next=7,o["a"].dispatch("games/loadGames");case 7:return t.next=9,o["a"].getters["games/getGame"](e.params.gameId);case 9:a=t.sent,a?n():n({name:"NotFound"});case 11:case"end":return t.stop()}}),t)})))()}},{path:"/profile",name:"profile",component:function(){return n.e("profile").then(n.bind(null,"2ff9"))},meta:{requiresAuth:!0,title:"Geek Score - Profile page",metaTags:{name:"User Profile",content:"User Profile page"}}},{path:"/team/:teamId",name:"team",props:!0,component:function(){return Promise.all([n.e("chunk-485c46e5"),n.e("team")]).then(n.bind(null,"740d"))},meta:{requiresAuth:!0,title:"Geek Score - Team page",metaTags:{name:"description",content:"Team details page"}},beforeEnter:function(e,t,n){return Object(c["a"])(regeneratorRuntime.mark((function t(){var r,a,c;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(r=o["a"].state.games.games,null===r||void 0===r){t.next=5;break}t.next=7;break;case 5:return t.next=7,o["a"].dispatch("games/loadGames");case 7:if(a=o["a"].state.teams.teams,null===a||void 0===a){t.next=12;break}t.next=14;break;case 12:return t.next=14,o["a"].dispatch("teams/loadTeams");case 14:return t.next=16,o["a"].getters["teams/getTeam"](e.params.teamId);case 16:c=t.sent,c?n():n({name:"NotFound"});case 18:case"end":return t.stop()}}),t)})))()}},{path:"/sign-in",name:"signIn",component:function(){return n.e("signIn").then(n.bind(null,"4fc8"))},meta:{title:"Geek Score - Sign in page",metaTags:{name:"description",content:"A page for Signing In in"}}},{path:"/sign-up",name:"signUp",component:function(){return n.e("signUp").then(n.bind(null,"89a8"))},meta:{title:"Geek Score - Sign up page",metaTags:{name:"description",content:"A page for Signing up up"}}},{path:"/reset",name:"resetPass",component:function(){return Promise.all([n.e("chunk-07709945"),n.e("resetPass")]).then(n.bind(null,"f833"))},meta:{title:"Geek Score - Reset password page",metaTags:{name:"description",content:"A page for resetting a password"}}},{path:"/tools",name:"tools",component:function(){return Promise.all([n.e("chunk-07709945"),n.e("chunk-485c46e5"),n.e("tools")]).then(n.bind(null,"fb63"))},meta:{requiresAuth:!0,title:"Geek Score - Tools page",metaTags:{name:"description",content:"A list of tools for games"}}},{path:"/404",alias:"*",name:"NotFound",component:function(){return n.e("notFound").then(n.bind(null,"aa4b"))},meta:{title:"Geek Score - Not found page",metaTags:{name:"description",content:"An error page"}}}]),s=i;r["default"].use(a["a"]);var u=new a["a"]({routes:s,mode:"history",base:"/",scrollBehavior:function(e,t,n){var r={x:0,y:0};return n&&(r=n),new Promise((function(e){setTimeout((function(){e(r)}),300)}))}});u.beforeEach((function(e,t,n){return e.matched.some((function(e){return e.meta.requiresAuth}))?o["a"].state.user?n():n({name:"signIn"}):n()}));t["a"]=u},c1f4:function(e,t,n){},c30e:function(e,t,n){"use strict";n("96c7")},cd49:function(e,t,n){"use strict";n.r(t);n("e260"),n("e6cf"),n("cca6"),n("a79d"),n("159b"),n("d3b7"),n("ddb0"),n("b0c0"),n("ac1f"),n("5319");var r=n("2b0e"),a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("v-app",{directives:[{name:"scroll",rawName:"v-scroll",value:e.onScroll,expression:"onScroll"}],staticClass:"app"},[n("TheHeader"),n("v-main",[n("v-container",{staticClass:"app-container"},[e.isAlert?n("TheAlert",e._b({},"TheAlert",{alertType:e.alertType,alertText:e.alertText},!1)):e._e(),n("transition",{attrs:{name:"slide",mode:"out-in"}},[n("router-view")],1),e.isLoading?n("div",{staticClass:"loader-wrap"},[n("v-progress-circular",{attrs:{size:50,indeterminate:"",color:"secondary"}})],1):e._e(),e.isGoTopBtn?n("v-btn",{staticClass:"go-top",attrs:{"aria-label":"Go to top",dark:"",fab:""},on:{click:function(t){return e.$vuetify.goTo(0,e.GoTopBtnOtions)}}},[n("v-icon",{attrs:{dark:""}},[e._v("mdi-chevron-up")])],1):e._e()],1)],1),n("TheFooter")],1)},o=[],c=n("a6f4"),i=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"the-header"},[r("v-app-bar",{attrs:{app:"",color:"primary",dense:"",dark:""}},[r("v-container",{staticClass:"row_between app-container"},[e.backTitle?r("BaseBackBtn",{attrs:{title:e.backTitle}}):r("router-link",{staticClass:"d-flex align-center",attrs:{to:{name:"home"}}},[r("v-img",{staticClass:"logo",attrs:{src:n("1ae4"),alt:"Geek Score"}}),r("span",{staticClass:"header-title"},[e._v("Geek Score")])],1),r("v-spacer"),e.user?[r("nav",[r("ul",{staticClass:"d-none d-sm-flex"},[e._l(e.navItems,(function(t){var n=t.icon,a=t.text,o=t.link;return r("li",{key:a},[r("v-btn",{attrs:{small:e.$vuetify.breakpoint.smOnly,to:o,text:""}},[r("v-icon",{attrs:{left:""}},[e._v("mdi-"+e._s(n))]),e._v(" "+e._s(a)+" ")],1)],1)})),r("li",[r("v-btn",{attrs:{small:e.$vuetify.breakpoint.smOnly,text:""},on:{click:e.onLogout}},[r("v-icon",[e._v("mdi-logout")]),e._v("Log out ")],1)],1)],2)]),r("v-app-bar-nav-icon",{staticClass:"d-sm-none",on:{click:function(t){t.stopPropagation(),e.isSideNav=!e.isSideNav}}})]:e._e()],2)],1),r("v-navigation-drawer",{attrs:{app:"",right:"",dark:"",fixed:"",temporary:""},model:{value:e.isSideNav,callback:function(t){e.isSideNav=t},expression:"isSideNav"}},[r("v-list",[e._l(e.navItems,(function(t){var n=t.text,a=t.icon,o=t.link;return r("v-list-item",{key:n,attrs:{to:o}},[r("v-list-item-icon",[r("v-icon",[e._v("mdi-"+e._s(a))])],1),r("v-list-item-content",[e._v(e._s(n))])],1)})),r("v-list-item",{on:{click:e.onLogout}},[r("v-list-item-icon",[r("v-icon",[e._v("mdi-logout")])],1),r("v-list-item-content",[e._v("Log out")])],1)],2)],1)],1)},s=[],u=Object(c["h"])({name:"TheHeader",setup:function(e,t){var n=t.root,r=n.$store,a=n.$route,o=Object(c["b"])((function(){return r.state.user.user})),i=Object(c["b"])((function(){return r.getters["backTitle"]})),s=Object(c["J"])(!1),u=function(){return r.dispatch("user/logout")},l=function(){"/"===a.fullPath&&(s.value=!1),u()},d=[{text:"Games",icon:"dice-multiple-outline",link:"/games"},{text:"Tools",icon:"hammer-screwdriver",link:"/tools"},{text:"Profile",icon:"account-details-outline",link:"/profile"}];return{isSideNav:s,backTitle:i,user:o,navItems:d,onLogout:l}}}),l=u,d=(n("1627"),n("2877")),f=n("6544"),m=n.n(f),p=n("40dc"),g=n("5bc1"),v=n("8336"),h=n("a523"),b=n("132d"),k=n("adda"),O=n("8860"),w=n("da13"),E=n("5d23"),T=n("34c3"),_=n("f774"),A=n("2fa4"),x=Object(d["a"])(l,i,s,!1,null,"5c0a07d6",null),R=x.exports;m()(x,{VAppBar:p["a"],VAppBarNavIcon:g["a"],VBtn:v["a"],VContainer:h["a"],VIcon:b["a"],VImg:k["a"],VList:O["a"],VListItem:w["a"],VListItemContent:E["a"],VListItemIcon:T["a"],VNavigationDrawer:_["a"],VSpacer:A["a"]});var S=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("v-footer",{staticClass:"the-footer",attrs:{padless:""}},[n("v-layout",{attrs:{primary:"","white--text":""}},[n("v-container",[n("span",{staticClass:"mr-6",attrs:{"data-test-copy":""}},[e._v("© "+e._s(e.copyright))]),n("a",{staticClass:"link",attrs:{href:"https://github.com/DavidGolodetsky/GeekScore-2",rel:"noopener noreferrer",target:"_blank"}},[n("span",{staticClass:"mr-2"},[e._v("Repo")]),n("v-icon",{attrs:{size:"18",dark:""}},[e._v("mdi-code-tags")])],1)])],1)],1)},I=[],y=Object(c["h"])({name:"TheFooter",setup:function(){var e=(new Date).getFullYear(),t="2020 - ".concat(e);return{copyright:t}}}),G=y,j=(n("1211"),n("553a")),N=n("a722"),L=Object(d["a"])(G,S,I,!1,null,"94c7db3e",null),D=L.exports;m()(L,{VContainer:h["a"],VFooter:j["a"],VIcon:b["a"],VLayout:N["a"]});var C=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("section",{staticClass:"the-alert"},[n("transition",{attrs:{appear:"",name:"fade-down"}},[n("v-alert",{attrs:{dismissible:"",value:"",type:e.alertType},on:{input:function(t){return e.onClose()}}},[e._v(" "+e._s(e.alertText)+" ")])],1)],1)},P=[],V=n("d770"),B=Object(c["h"])({name:"TheAlert",props:{alertType:{type:String,required:!0},alertText:{type:String,required:!0}},setup:function(e,t){var n=t.root.$store,r=t.emit;Object(c["A"])((function(){return Object(V["c"])()}));var a=function(){return n.dispatch("setError")},o=function(){a(),r("dismissed")};return{onClose:o}}}),U=B,M=(n("e8ca"),n("0798")),F=Object(d["a"])(U,C,P,!1,null,null,null),$=F.exports;m()(F,{VAlert:M["a"]});var q=n("1ab6"),W=Object(c["h"])({name:"App",components:{TheHeader:R,TheFooter:D,TheAlert:$},setup:function(e,t){var n=t.root.$store,r=Object(c["J"])(!1),a=Object(c["J"])(!1),o=Object(c["J"])({duration:300,offset:0,easing:"easeInOutCubic"});Object(c["A"])((function(){return Object(q["b"])()}));var i=Object(c["b"])((function(){return n.getters["loading"]})),s=Object(c["b"])((function(){return n.getters["error"]})),u=Object(c["b"])((function(){return a.value||s.value})),l=function(){return n.dispatch("setError")};Object(c["Y"])(u,(function(e){e&&setTimeout((function(){return l()}),1e4)}));var d="Geek Score is offline. Some features might be disabled",f=Object(c["b"])((function(){return a.value?"warning":"error"})),m=Object(c["b"])((function(){return a.value?d:s.value.message})),p=function(){if(window.pageYOffset>500)return r.value=!0;r.value&&window.pageYOffset<500&&(r.value=!1)};return{alertType:f,alertText:m,isAlert:u,onScroll:p,isLoading:i,isGoTopBtn:r,isOffline:a,GoTopBtnOtions:o}}}),J=W,H=(n("c30e"),n("7496")),K=n("f6c4"),z=n("490a"),Y=n("269a"),X=n.n(Y),Q=n("f977"),Z=Object(d["a"])(J,a,o,!1,null,"47a4ed8c",null),ee=Z.exports;m()(Z,{VApp:H["a"],VBtn:v["a"],VContainer:h["a"],VIcon:b["a"],VMain:K["a"],VProgressCircular:z["a"]}),X()(Z,{Scroll:Q["b"]});var te=n("f309");r["default"].use(te["a"]);var ne=new te["a"]({theme:{themes:{light:{primary:"#3D3D3C",secondary:"#ff9900",accent:"#ffb84d",error:"#f44336",warning:"#ffc107",info:"#03a9f4",success:"#8bc34a",silver:"#d9d9d8",bg:"#50514f",lightgrey:"#d9d9d8",label:"#6C6C6B"}}}}),re=n("a18c"),ae=n("4360"),oe=n("bf4e"),ce=n.n(oe),ie=n("a584"),se=n("9483");Object(se["a"])("".concat("/","service-worker.js"),{ready:function(){console.log("App is being served from cache by a service worker.\nFor more details, visit https://goo.gl/AFskqB")},registered:function(){console.log("Service worker has been registered.")},cached:function(){console.log("Content has been cached for offline use.")},updatefound:function(){console.log("New content is downloading.")},updated:function(){console.log("New content is available; please refresh.")},offline:function(){console.log("No internet connection found. App is running in offline mode.")},error:function(e){console.error("Error during service worker registration:",e)}});var ue=!1;r["default"].config.productionTip=ue,r["default"].config.performance=ue,r["default"].config.errorHandler=function(e,t,n){console.error(e,t,n)},r["default"].prototype.$log=console.log,r["default"].use(c["f"]),r["default"].use(ie["a"],{config:{id:"G-K9MXTWVK3R"}}),r["default"].use(ce.a,{mixin:!1,storage:!1});var le=n("98f1");le.keys().forEach((function(e){var t=le(e);t=t.default||t;var n=t.name||e.replace(/^.+\//,"").replace(/\.\w+$/,"");r["default"].component(n,t)})),new r["default"]({vuetify:ne,router:re["a"],store:ae["a"],render:function(e){return e(ee)}}).$mount("#app")},cd84:function(e,t,n){},d770:function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"a",(function(){return a})),n.d(t,"b",(function(){return o}));n("ac1f"),n("1276"),n("a15b"),n("d81d"),n("b0c0");var r=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:300;window.innerWidth<600&&window.navigator.vibrate(e)},a=function(e){var t=Array(e).join(",").split(",");return t.map((function(e,t){return t+1}))},o=function(e){return null===e||void 0===e?void 0:e.map((function(e){return e.name}))}},db85:function(e,t,n){},e8ca:function(e,t,n){"use strict";n("db85")},ea45:function(e,t,n){"use strict";n.r(t);var r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("section",[n("div",{on:{click:function(t){t.preventDefault(),e.dialog=!0}}},[e._t("activator",(function(){return[n("v-btn",{staticClass:"px-0 mr-2",attrs:{id:"activator_"+e.activatorText,small:e.simple,fab:"","aria-label":"Open modal",text:e.simple,color:e.color}},[n("v-icon",{attrs:{dark:""}},[e._v("mdi-"+e._s(e.activatorIcon))])],1),n("label",{staticClass:"label_text",attrs:{for:"activator_"+e.activatorText}},[e._v(e._s(e.activatorText))])]}))],2),n("v-dialog",{attrs:{"max-width":"600"},model:{value:e.dialog,callback:function(t){e.dialog=t},expression:"dialog"}},[n("v-card",{staticClass:"BaseDialog"},[n("v-card-title",[n("h3",{staticClass:"app-headline"},[e._v(e._s(e.header))]),n("v-spacer"),n("v-btn",{attrs:{small:"","aria-label":"Close modal",fab:"",text:""},on:{click:e.close}},[n("v-icon",{attrs:{dark:""}},[e._v("mdi-close")])],1)],1),n("v-form",{ref:"form",attrs:{"lazy-validation":""},on:{submit:function(t){return t.preventDefault(),e.onSubmit.apply(null,arguments)}},model:{value:e.valid,callback:function(t){e.valid=t},expression:"valid"}},[n("v-card-text",[n("v-container",[e._t("default")],2)],1),n("v-card-actions",{staticClass:"footer"},[n("v-spacer"),e._t("footer",(function(){return[n("v-btn",{staticClass:"mr-2",attrs:{color:"secondary darken-1",outlined:""},on:{click:e.close}},[e._v("Cancel")]),n("v-btn",{attrs:{color:"secondary darken-1",outlined:"",type:"submit",disabled:!e.valid}},[e._v("Submit")])]}))],2)],1)],1)],1)],1)},a=[],o=n("a6f4"),c=Object(o["h"])({name:"BaseDialog",props:{activatorIcon:{type:String,default:""},header:{type:String,required:!0},color:{type:String,default:"secondary"},activatorText:{type:String,default:""},simple:{type:Boolean}},setup:function(e,t){var n=t.emit,r=Object(o["J"])(!1),a=Object(o["J"])(!1),c=function(){r.value=!1},i=function(){n("submit"),c()};return{dialog:r,valid:a,onSubmit:i,close:c}}}),i=c,s=(n("72dc"),n("2877")),u=n("6544"),l=n.n(u),d=n("8336"),f=n("b0af"),m=n("99d9"),p=n("a523"),g=n("169a"),v=n("4bd4"),h=n("132d"),b=n("2fa4"),k=Object(s["a"])(i,r,a,!1,null,"29f89144",null);t["default"]=k.exports;l()(k,{VBtn:d["a"],VCard:f["a"],VCardActions:m["a"],VCardText:m["b"],VCardTitle:m["c"],VContainer:p["a"],VDialog:g["a"],VForm:v["a"],VIcon:h["a"],VSpacer:b["a"]})},fe16:function(e,t,n){}}); +//# sourceMappingURL=app.359ff4ac.js.map \ No newline at end of file diff --git a/public/js/app.957f49da.js.map b/public/js/app.359ff4ac.js.map similarity index 99% rename from public/js/app.957f49da.js.map rename to public/js/app.359ff4ac.js.map index 266e89f..fdcc294 100644 --- a/public/js/app.957f49da.js.map +++ b/public/js/app.359ff4ac.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/TheFooter.vue?984c","webpack:///./src/components/TheHeader.vue?3451","webpack:///./src/auth.js","webpack:///./src/assets/img/logo.svg","webpack:///./src/store/modules/games.js","webpack:///./src/store/modules/teams.js","webpack:///./src/store/modules/user.js","webpack:///./src/store/index.js","webpack:///./src/components/BaseBackBtn.vue?8af4","webpack:///./src/components/BaseBackBtn.vue?7a73","webpack:///./src/components/BaseBackBtn.vue","webpack:///./src/components/BaseBackBtn.vue?41c2","webpack:///./src/components/BaseDialog.vue?ed91","webpack:///./src/components sync Base[A-Z]\\w+\\.(vue|js)$","webpack:///./src/router/routes.js","webpack:///./src/router/index.js","webpack:///./src/App.vue?d855","webpack:///./src/App.vue?957e","webpack:///./src/components/TheHeader.vue?9508","webpack:///./src/components/TheHeader.vue","webpack:///./src/components/TheHeader.vue?c73a","webpack:///./src/components/TheHeader.vue?76f9","webpack:///./src/components/TheFooter.vue?1e40","webpack:///./src/components/TheFooter.vue","webpack:///./src/components/TheFooter.vue?3af1","webpack:///./src/components/TheFooter.vue?43c0","webpack:///./src/components/TheAlert.vue?1206","webpack:///./src/components/TheAlert.vue","webpack:///./src/components/TheAlert.vue?51ad","webpack:///./src/components/TheAlert.vue?7567","webpack:///./src/App.vue","webpack:///./src/App.vue?0ab4","webpack:///./src/App.vue?4195","webpack:///./src/plugins/vuetify.js","webpack:///./src/registerServiceWorker.js","webpack:///./src/main.ts","webpack:///./src/use/common.ts","webpack:///./src/components/TheAlert.vue?b504","webpack:///./src/components/BaseDialog.vue?b846","webpack:///./src/components/BaseDialog.vue","webpack:///./src/components/BaseDialog.vue?0167","webpack:///./src/components/BaseDialog.vue?1b3c"],"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","firebaseConfig","apiKey","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId","firebase","initializeApp","auth","onAuthStateChanged","user","store","dispatch","uiConfig","signInFlow","signInOptions","GoogleAuthProvider","PROVIDER_ID","FacebookAuthProvider","callbacks","signInSuccessWithAuthResult","router","uiShown","getElementById","style","display","ui","AuthUI","fbStart","start","setupFb","namespaced","state","games","winRate","mutations","CREATE_GAME","payload","SET_GAMES","UPDATE_GAME","updatedGame","find","game","_id","filter","item","DELETE_GAME","SET_WIN_RATE","actions","createGame","commit","localStorage","getItem","gamePayload","imageUrl","teams","favorite","axios","post","createdGame","root","loadGames","params","VueOfflineStorage","set","updateGame","patch","deleteGame","delete","loadWinRate","getters","getGame","gameId","getGamesNames","map","CREATE_TEAM","SET_TEAMS","UPDATE_TEAM","updatedTeam","team","DELETE_TEAM","createTeam","teamPayload","createdTeam","loadTeams","updateTeam","deleteTeam","getTeam","teamId","getGameTeams","includes","getTeamsNames","winRates","resetPassword","SET_USER","setItem","id","CLEAR_USER","clear","RESET_PASSWORD","SET_WIN_RATES","signUpUser","createUserWithEmailAndPassword","email","password","updateProfile","displayName","username","userPayload","uid","signInUser","signInWithEmailAndPassword","autoSignIn","currentRoute","path","updateUser","put","sendPasswordResetEmail","logout","signOut","loadWinRates","Vue","use","Vuex","Store","strict","process","backTitle","loading","LOADING","ERROR","BACK_TITLE","setError","setBackTitle","setLoading","staticRenderFns","functional","props","title","String","default","render","h","ctx","media","parent","$vuetify","breakpoint","xsOnly","$router","class","on","click","go","VIcon","color","dark","truncate","component","webpackContext","req","webpackContextResolve","keys","routes","meta","metaTags","content","requiresAuth","beforeEnter","to","_","next","alias","Router","base","scrollBehavior","from","savedPosition","position","x","y","beforeEach","matched","some","record","_vm","this","_h","$createElement","_c","_self","directives","rawName","expression","staticClass","_b","alertType","alertText","_e","attrs","$event","goTo","GoTopBtnOtions","_v","_l","ref","icon","text","link","smOnly","_s","onLogout","stopPropagation","isSideNav","model","callback","$$v","setup","$store","$route","fullPath","navItems","VAppBar","VAppBarNavIcon","VBtn","VContainer","VImg","VList","VListItem","VListItemContent","VListItemIcon","VNavigationDrawer","VSpacer","copyright","currentYear","Date","getFullYear","VFooter","VLayout","onClose","required","emit","VAlert","components","TheHeader","TheFooter","TheAlert","isGoTopBtn","isOffline","duration","offset","easing","isLoading","isAlert","val","offlineMessage","onScroll","pageYOffset","VApp","VMain","VProgressCircular","Scroll","Vuetify","theme","themes","light","primary","secondary","accent","warning","info","success","silver","bg","lightgrey","label","register","ready","log","registered","cached","updatefound","updated","offline","isDev","config","productionTip","performance","errorHandler","vm","$log","mixin","storage","requireComponent","forEach","fileName","baseComponentConfig","baseComponentName","replace","vuetify","App","$mount","vibrate","time","innerWidth","navigator","generateNumberOfPlayers","numberOfPlayers","players","Array","join","split","v","getNames","list","obj","preventDefault","dialog","_t","activatorText","simple","activatorIcon","header","close","onSubmit","arguments","valid","Boolean","VCard","VCardActions","VCardText","VCardTitle","VDialog","VForm"],"mappings":"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","file":"js/app.957f49da.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/\" + ({\"tools\":\"tools\",\"resetPass\":\"resetPass\",\"team\":\"team\",\"game\":\"game\",\"games\":\"games\",\"home\":\"home\",\"notFound\":\"notFound\",\"profile\":\"profile\",\"signIn\":\"signIn\",\"signUp\":\"signUp\"}[chunkId]||chunkId) + \".\" + {\"chunk-07709945\":\"beb3cf2d\",\"chunk-485c46e5\":\"8a5c32f5\",\"tools\":\"c901b75d\",\"resetPass\":\"ac3fbcb9\",\"team\":\"c1994f0d\",\"game\":\"997f89b9\",\"games\":\"890a2440\",\"home\":\"427aca7e\",\"notFound\":\"c2d0921b\",\"profile\":\"be06cee6\",\"signIn\":\"67870e9f\",\"signUp\":\"1703ce97\",\"chunk-3323ee2b\":\"c683d4bd\",\"chunk-f20b789e\":\"7993096c\",\"chunk-7b3231b7\":\"a4e625c1\",\"chunk-4e61baef\":\"d6fcba94\",\"chunk-2d0c82f1\":\"4d5c641f\",\"chunk-086a4a7c\":\"9b4330c0\",\"chunk-2d0dee65\":\"f771a4b2\",\"chunk-d0adc622\":\"89c44029\",\"chunk-2d0d2b72\":\"faca91c8\",\"chunk-2d0e19ee\":\"87e82c5e\",\"chunk-2e20e2e1\":\"b74f6eae\",\"chunk-7e3a9dbc\":\"6ed15a76\",\"chunk-3894c1d8\":\"f55d0c50\",\"chunk-d4873e92\":\"53f1e2f2\",\"chunk-542101e2\":\"64a2745b\",\"chunk-7f8dbe25\":\"a9b6a29d\"}[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-07709945\":1,\"chunk-485c46e5\":1,\"tools\":1,\"resetPass\":1,\"game\":1,\"home\":1,\"chunk-3323ee2b\":1,\"chunk-f20b789e\":1,\"chunk-7b3231b7\":1,\"chunk-4e61baef\":1,\"chunk-086a4a7c\":1,\"chunk-2e20e2e1\":1,\"chunk-3894c1d8\":1,\"chunk-d4873e92\":1,\"chunk-542101e2\":1,\"chunk-7f8dbe25\":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/\" + ({\"tools\":\"tools\",\"resetPass\":\"resetPass\",\"team\":\"team\",\"game\":\"game\",\"games\":\"games\",\"home\":\"home\",\"notFound\":\"notFound\",\"profile\":\"profile\",\"signIn\":\"signIn\",\"signUp\":\"signUp\"}[chunkId]||chunkId) + \".\" + {\"chunk-07709945\":\"3d501164\",\"chunk-485c46e5\":\"d3fdb862\",\"tools\":\"5e829512\",\"resetPass\":\"33d6148b\",\"team\":\"31d6cfe0\",\"game\":\"40ba02f4\",\"games\":\"31d6cfe0\",\"home\":\"1ec85beb\",\"notFound\":\"31d6cfe0\",\"profile\":\"31d6cfe0\",\"signIn\":\"31d6cfe0\",\"signUp\":\"31d6cfe0\",\"chunk-3323ee2b\":\"d7df91b3\",\"chunk-f20b789e\":\"f9fe39ee\",\"chunk-7b3231b7\":\"2c969a12\",\"chunk-4e61baef\":\"fa94e2e8\",\"chunk-2d0c82f1\":\"31d6cfe0\",\"chunk-086a4a7c\":\"b534dc26\",\"chunk-2d0dee65\":\"31d6cfe0\",\"chunk-d0adc622\":\"31d6cfe0\",\"chunk-2d0d2b72\":\"31d6cfe0\",\"chunk-2d0e19ee\":\"31d6cfe0\",\"chunk-2e20e2e1\":\"d7df91b3\",\"chunk-7e3a9dbc\":\"31d6cfe0\",\"chunk-3894c1d8\":\"d7df91b3\",\"chunk-d4873e92\":\"36c6f82b\",\"chunk-542101e2\":\"d7df91b3\",\"chunk-7f8dbe25\":\"8b4f9118\"}[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/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheFooter.vue?vue&type=style&index=0&id=94c7db3e&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/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheHeader.vue?vue&type=style&index=0&id=5c0a07d6&scoped=true&lang=scss&\"","import firebase from 'firebase/app';\nimport 'firebase/auth';\nimport { auth } from 'firebaseui';\nimport store from '@/store';\nimport router from '@/router';\n\nconst firebaseConfig = {\n apiKey: 'AIzaSyAscgoXoqL2LOk84LfNxq1BCu-JnFwyNug',\n authDomain: 'geekstat-v.firebaseapp.com',\n databaseURL: 'https://geekstat-v.firebaseio.com',\n projectId: 'geekstat-v',\n storageBucket: 'geekstat-v.appspot.com',\n messagingSenderId: '748797302864',\n appId: '1:748797302864:web:1f23f4bb7d8b8698461955'\n};\n\nfirebase.initializeApp(firebaseConfig);\nfirebase.auth().onAuthStateChanged(user => {\n if (!user) return;\n store.dispatch('user/autoSignIn', user);\n});\n\nconst uiConfig = {\n signInFlow: 'popup',\n signInOptions: [\n firebase.auth.GoogleAuthProvider.PROVIDER_ID,\n firebase.auth.FacebookAuthProvider.PROVIDER_ID\n ],\n callbacks: {\n signInSuccessWithAuthResult: () => router.push({ name: 'games' }),\n uiShown() {\n document.getElementById('loader').style.display = 'none';\n }\n }\n};\n\nconst ui = new auth.AuthUI(firebase.auth());\n\nexport const fbStart = () => {\n ui.start('#firebaseui-auth-container', uiConfig);\n};\n\nexport const setupFb = () => {};\n\nexport default firebase;\n","module.exports = __webpack_public_path__ + \"img/logo.61a7f72a.svg\";","import axios from 'axios';\nimport { VueOfflineStorage } from 'vue-offline';\n\nexport default {\n namespaced: true,\n state: {\n games: null,\n winRate: null\n },\n mutations: {\n CREATE_GAME(state, payload) {\n state.games\n ? (state.games = [...state.games, payload])\n : (state.games = [payload]);\n },\n SET_GAMES(state, payload) {\n state.games = payload;\n },\n UPDATE_GAME(state, payload) {\n const updatedGame = state.games.find(game => game._id === payload._id);\n state.games = state.games.filter(item => item._id !== payload._id);\n state.games.push({ ...updatedGame, ...payload });\n },\n DELETE_GAME(state, payload) {\n const games = state.games.filter(game => game._id !== payload);\n games.length ? (state.games = games) : (state.games = null);\n },\n SET_WIN_RATE(state, payload) {\n state.winRate = payload;\n }\n },\n actions: {\n async createGame({ commit }, payload) {\n try {\n const user = localStorage.getItem('userId');\n const gamePayload = {\n ...payload,\n user,\n imageUrl: '',\n teams: [],\n favorite: false\n };\n const createdGame = await axios.post('/api/games', gamePayload);\n commit('LOADING', true, { root: true });\n commit('CREATE_GAME', { ...createdGame.data });\n } catch (e) {\n commit('ERROR', e, { root: true });\n } finally {\n commit('LOADING', false, { root: true });\n }\n },\n async loadGames({ commit }) {\n try {\n const user = localStorage.getItem('userId');\n commit('LOADING', true, { root: true });\n const games = await axios.get('/api/games', { params: { user } });\n VueOfflineStorage.set('games', games.data);\n commit('SET_GAMES', games.data);\n } catch (e) {\n commit('ERROR', e, { root: true });\n } finally {\n commit('LOADING', false, { root: true });\n }\n },\n async updateGame({ commit }, payload) {\n try {\n commit('LOADING', true, { root: true });\n await axios.patch(`/api/games/${payload._id}`, payload);\n commit('UPDATE_GAME', payload);\n } catch (e) {\n commit('ERROR', e, { root: true });\n } finally {\n commit('LOADING', false, { root: true });\n }\n },\n async deleteGame({ commit }, payload) {\n try {\n commit('LOADING', true, { root: true });\n await axios.delete(`/api/games/${payload}`);\n commit('DELETE_GAME', payload);\n } catch (e) {\n commit('ERROR', e, { root: true });\n } finally {\n commit('LOADING', false, { root: true });\n }\n },\n async loadWinRate({ commit }, payload) {\n try {\n commit('LOADING', true, { root: true });\n let winRate = await axios.get(`/api/games/win-rate/${payload}`);\n winRate = winRate.data ? `${winRate.data}%` : null;\n commit('SET_WIN_RATE', winRate);\n } catch (e) {\n commit('ERROR', e, { root: true });\n } finally {\n commit('LOADING', false, { root: true });\n }\n }\n },\n getters: {\n getGame(state) {\n return gameId => {\n if (state.games) {\n return state.games.find(game => game._id === gameId);\n }\n return null;\n };\n },\n getGamesNames(state) {\n return () => state.games?.map(game => game.name);\n }\n }\n};\n","import axios from 'axios';\n\nexport default {\n namespaced: true,\n state: {\n teams: null\n },\n mutations: {\n CREATE_TEAM(state, payload) {\n state.teams\n ? (state.teams = [...state.teams, payload])\n : (state.teams = [payload]);\n },\n SET_TEAMS(state, payload) {\n state.teams = payload;\n },\n UPDATE_TEAM(state, payload) {\n const updatedTeam = state.teams.find(team => team._id === payload._id);\n state.teams = state.teams.filter(item => item._id !== payload._id);\n state.teams.push({ ...updatedTeam, ...payload });\n },\n DELETE_TEAM(state, payload) {\n const teams = state.teams.filter(team => team._id !== payload);\n teams.length ? (state.teams = teams) : (state.teams = null);\n }\n },\n actions: {\n async createTeam({ commit }, payload) {\n try {\n const user = localStorage.getItem('userId');\n const teamPayload = {\n ...payload,\n user,\n favorite: false\n };\n commit('LOADING', true, { root: true });\n const createdTeam = await axios.post('/api/teams', teamPayload);\n commit('CREATE_TEAM', { ...createdTeam.data });\n } catch (e) {\n throw new Error(e);\n } finally {\n commit('LOADING', false, { root: true });\n }\n },\n async loadTeams({ commit }) {\n try {\n const user = localStorage.getItem('userId');\n commit('LOADING', true, { root: true });\n const teams = await axios.get('/api/teams', { params: { user } });\n commit('SET_TEAMS', teams.data);\n } catch (e) {\n throw new Error(e);\n } finally {\n commit('LOADING', false, { root: true });\n }\n },\n async updateTeam({ commit }, payload) {\n try {\n commit('LOADING', true, { root: true });\n await axios.patch(`/api/teams/${payload._id}`, payload);\n commit('UPDATE_TEAM', payload);\n } catch (e) {\n throw new Error(e);\n } finally {\n commit('LOADING', false, { root: true });\n }\n },\n async deleteTeam({ commit }, payload) {\n try {\n commit('LOADING', true, { root: true });\n await axios.delete(`/api/teams/${payload}`);\n commit('DELETE_TEAM', payload);\n } catch (e) {\n throw new Error(e);\n } finally {\n commit('LOADING', false, { root: true });\n }\n }\n },\n getters: {\n getTeam(state) {\n return teamId => {\n if (state.teams) {\n return state.teams.find(team => team._id === teamId);\n }\n return null;\n };\n },\n getGameTeams(state) {\n return gameId => {\n if (state.teams) {\n return state.teams.filter(team => team.games.includes(gameId));\n }\n return [];\n };\n },\n getTeamsNames(state) {\n return () => state.teams?.map(team => team.name);\n }\n }\n};\n","import firebase from 'firebase/app';\nimport router from '@/router';\nimport axios from 'axios';\n\nexport default {\n namespaced: true,\n state: {\n user: null,\n winRates: null,\n resetPassword: false\n },\n mutations: {\n SET_USER(state, payload) {\n localStorage.setItem('userId', payload?.id);\n state.user = payload;\n },\n CLEAR_USER(state) {\n localStorage.clear();\n state.user = null;\n },\n RESET_PASSWORD(state) {\n state.resetPassword = true;\n },\n SET_WIN_RATES(state, payload) {\n state.winRates = payload;\n }\n },\n actions: {\n async signUpUser({ commit }, payload) {\n try {\n commit('LOADING', true, { root: true });\n const user = await firebase\n .auth()\n .createUserWithEmailAndPassword(payload.email, payload.password);\n await user.user.updateProfile({ displayName: payload.username });\n const userPayload = {\n id: user.user.uid,\n username: payload.username\n };\n await axios.post('/api/users', userPayload);\n router.push({ name: 'games' });\n commit('SET_USER', userPayload);\n } catch (e) {\n commit('ERROR', e, { root: true });\n throw e;\n } finally {\n commit('LOADING', false, { root: true });\n }\n },\n async signInUser({ commit }, payload) {\n try {\n commit('LOADING', true, { root: true });\n const user = await firebase\n .auth()\n .signInWithEmailAndPassword(payload.email, payload.password);\n const userPayload = {\n id: user.user.uid,\n username: user.user.displayName\n };\n router.push({ name: 'games' });\n await commit('SET_USER', userPayload);\n } catch (e) {\n commit('ERROR', e, { root: true });\n } finally {\n commit('LOADING', false, { root: true });\n }\n },\n autoSignIn({ commit }, payload) {\n commit('LOADING', true, { root: true });\n const userPayload = {\n id: payload.uid,\n username: payload.displayName\n };\n commit('SET_USER', userPayload);\n if (router.currentRoute.path === '/') {\n router.push({ name: 'games' });\n }\n commit('LOADING', false, { root: true });\n },\n async updateUser({ commit }, { id, username }) {\n try {\n commit('LOADING', true, { root: true });\n await axios.put(`/api/users/${id}`, {\n id,\n username\n });\n commit('SET_USER', { id, username });\n } catch (e) {\n commit('ERROR', e, { root: true });\n } finally {\n commit('LOADING', false, { root: true });\n }\n },\n async resetPassword({ commit }, payload) {\n try {\n commit('LOADING', true, { root: true });\n await firebase.auth().sendPasswordResetEmail(payload);\n commit('RESET_PASSWORD');\n } catch (e) {\n commit('ERROR', e, { root: true });\n } finally {\n commit('LOADING', false, { root: true });\n }\n },\n async logout({ commit }) {\n try {\n commit('LOADING', true, { root: true });\n await firebase.auth().signOut();\n if (router.currentRoute.path !== '/') router.push('/');\n commit('games/SET_GAMES', null, { root: true });\n commit('teams/SET_TEAMS', null, { root: true });\n commit('CLEAR_USER');\n } catch (e) {\n commit('ERROR', e, { root: true });\n } finally {\n commit('LOADING', false, { root: true });\n }\n },\n async loadWinRates({ commit }) {\n try {\n commit('LOADING', true, { root: true });\n const user = localStorage.getItem('userId');\n const winRate = await axios.get(`/api/users/win-rate/${user}`);\n commit('SET_WIN_RATES', winRate.data);\n } catch (e) {\n commit('ERROR', e, { root: true });\n } finally {\n commit('LOADING', false, { root: true });\n }\n }\n }\n};\n","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport games from './modules/games'\nimport teams from './modules/teams'\nimport user from './modules/user'\n\nVue.use(Vuex)\n\nconst store = new Vuex.Store({\n strict: process.env.NODE_ENV !== 'production',\n\n modules: {\n user,\n games,\n teams\n },\n state: {\n error: null,\n backTitle: null,\n loading: false\n },\n mutations: {\n LOADING(state, payload) {\n state.loading = payload\n },\n ERROR(state, payload) {\n state.error = payload\n },\n BACK_TITLE(state, payload) {\n state.backTitle = payload\n }\n },\n actions: {\n setError({ commit }, payload = null) {\n commit('ERROR', payload)\n },\n setBackTitle({ commit }, payload = null) {\n commit('BACK_TITLE', payload)\n },\n setLoading({ commit }, payload = null) {\n commit('LOADING', payload)\n }\n },\n getters: {\n loading(state) {\n return state.loading\n },\n error(state) {\n return state.error\n },\n backTitle(state) {\n return state.backTitle\n }\n }\n})\n\nexport default store\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/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseBackBtn.vue?vue&type=style&index=0&id=596ed2bd&scoped=true&lang=scss&\"","var render, staticRenderFns\nimport script from \"./BaseBackBtn.vue?vue&type=script&lang=ts&\"\nexport * from \"./BaseBackBtn.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BaseBackBtn.vue?vue&type=style&index=0&id=596ed2bd&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 \"596ed2bd\",\n null\n \n)\n\nexport default component.exports","\nimport { defineComponent } from '@vue/composition-api'\n\nimport { VIcon } from 'vuetify/lib'\n\nexport default defineComponent({\n name: 'BaseBackBtn',\n functional: true,\n props: {\n title: {\n type: String,\n default: 'Back'\n }\n },\n render(h, ctx) {\n const title = ctx.props.title\n const media = ctx.parent.$vuetify.breakpoint.xsOnly\n const router = ctx.parent.$router\n return h(\n 'div',\n {\n class: 'd-flex align-center go-back',\n on: {\n click: () => router.go(-1)\n }\n },\n [\n h(\n VIcon,\n {\n class: 'mr-2',\n props: {\n color: 'secondary',\n dark: true\n }\n },\n 'mdi-arrow-left'\n ),\n title\n ? h(\n 'span',\n {\n class: ['header-title', { truncate: media }]\n },\n title\n )\n : ''\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/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseBackBtn.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!./BaseBackBtn.vue?vue&type=script&lang=ts&\"","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!./BaseDialog.vue?vue&type=style&index=0&id=29f89144&scoped=true&lang=scss&\"","var map = {\n\t\"./BaseBackBtn.vue\": \"7034\",\n\t\"./BaseDialog.vue\": \"ea45\"\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 = \"98f1\";","import store from '@/store';\n\nconst routes = [\n {\n path: '/',\n name: 'home',\n component: () => import(/* webpackChunkName: \"home\" */ '../pages/Home'),\n meta: {\n title: 'Geek Score - Homepage',\n metaTags: {\n name: 'description',\n content: 'A starting page where described the idea of Geek Score'\n }\n }\n },\n {\n path: '/games',\n name: 'games',\n component: () => import(/* webpackChunkName: \"games\" */ '../pages/Games'),\n meta: {\n requiresAuth: true,\n title: 'Geek Score - Games page',\n metaTags: {\n name: 'description',\n content: \"A list of user's games\"\n }\n }\n },\n {\n path: '/game/:gameId',\n name: 'game',\n props: true,\n component: () => import(/* webpackChunkName: \"game\" */ '../pages/Game'),\n meta: {\n requiresAuth: true,\n title: 'Geek Score - Game page',\n metaTags: {\n name: 'description',\n content: 'Game details page'\n }\n },\n async beforeEnter(to, _, next) {\n const { games } = store.state.games;\n games ?? (await store.dispatch('games/loadGames'));\n const game = await store.getters['games/getGame'](to.params.gameId);\n game ? next() : next({ name: 'NotFound' });\n }\n },\n {\n path: '/profile',\n name: 'profile',\n component: () =>\n import(/* webpackChunkName: \"profile\" */ '../pages/Profile'),\n meta: {\n requiresAuth: true,\n title: 'Geek Score - Profile page',\n metaTags: {\n name: 'User Profile',\n content: 'User Profile page'\n }\n }\n },\n {\n path: '/team/:teamId',\n name: 'team',\n props: true,\n component: () => import(/* webpackChunkName: \"team\" */ '../pages/Team'),\n meta: {\n requiresAuth: true,\n title: 'Geek Score - Team page',\n metaTags: {\n name: 'description',\n content: 'Team details page'\n }\n },\n async beforeEnter(to, _, next) {\n const { games } = store.state.games;\n games ?? (await store.dispatch('games/loadGames'));\n const { teams } = store.state.teams;\n teams ?? (await store.dispatch('teams/loadTeams'));\n const team = await store.getters['teams/getTeam'](to.params.teamId);\n team ? next() : next({ name: 'NotFound' });\n }\n },\n {\n path: '/sign-in',\n name: 'signIn',\n component: () => import(/* webpackChunkName: \"signIn\" */ '../pages/SignIn'),\n meta: {\n title: 'Geek Score - Sign in page',\n metaTags: {\n name: 'description',\n content: 'A page for Signing In in'\n }\n }\n },\n {\n path: '/sign-up',\n name: 'signUp',\n component: () => import(/* webpackChunkName: \"signUp\" */ '../pages/SignUp'),\n meta: {\n title: 'Geek Score - Sign up page',\n metaTags: {\n name: 'description',\n content: 'A page for Signing up up'\n }\n }\n },\n {\n path: '/reset',\n name: 'resetPass',\n component: () =>\n import(/* webpackChunkName: \"resetPass\" */ '../pages/ResetPassword'),\n meta: {\n title: 'Geek Score - Reset password page',\n metaTags: {\n name: 'description',\n content: 'A page for resetting a password'\n }\n }\n },\n {\n path: '/tools',\n name: 'tools',\n component: () => import(/* webpackChunkName: \"tools\" */ '../pages/Tools'),\n meta: {\n requiresAuth: true,\n title: 'Geek Score - Tools page',\n metaTags: {\n name: 'description',\n content: 'A list of tools for games'\n }\n }\n },\n {\n path: '/404',\n alias: '*',\n name: 'NotFound',\n component: () =>\n import(/* webpackChunkName: \"notFound\" */ '../pages/NotFound'),\n meta: {\n title: 'Geek Score - Not found page',\n metaTags: {\n name: 'description',\n content: 'An error page'\n }\n }\n }\n];\n\nexport default routes;\n","import Vue from 'vue';\nimport Router from 'vue-router';\nimport store from '@/store';\nimport routes from './routes';\n\nVue.use(Router);\n\nconst router = new Router({\n routes,\n mode: 'history',\n base: process.env.BASE_URL,\n scrollBehavior(to, from, savedPosition) {\n let position = { x: 0, y: 0 };\n if (savedPosition) position = savedPosition;\n return new Promise(resolve => {\n setTimeout(() => {\n resolve(position);\n }, 300);\n });\n }\n});\n\nrouter.beforeEach((to, from, next) => {\n if (!to.matched.some(record => record.meta.requiresAuth)) return next();\n return store.state.user ? next() : next({ name: 'signIn' });\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/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&id=47a4ed8c&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',{directives:[{name:\"scroll\",rawName:\"v-scroll\",value:(_vm.onScroll),expression:\"onScroll\"}],staticClass:\"app\"},[_c('TheHeader'),_c('v-main',[_c('v-container',{staticClass:\"app-container\"},[(_vm.isAlert)?_c('TheAlert',_vm._b({},'TheAlert',{ alertType: _vm.alertType, alertText: _vm.alertText },false)):_vm._e(),_c('transition',{attrs:{\"name\":\"slide\",\"mode\":\"out-in\"}},[_c('router-view')],1),(_vm.isLoading)?_c('div',{staticClass:\"loader-wrap\"},[_c('v-progress-circular',{attrs:{\"size\":50,\"indeterminate\":\"\",\"color\":\"secondary\"}})],1):_vm._e(),(_vm.isGoTopBtn)?_c('v-btn',{staticClass:\"go-top\",attrs:{\"aria-label\":\"Go to top\",\"dark\":\"\",\"fab\":\"\"},on:{\"click\":function($event){return _vm.$vuetify.goTo(0, _vm.GoTopBtnOtions)}}},[_c('v-icon',{attrs:{\"dark\":\"\"}},[_vm._v(\"mdi-chevron-up\")])],1):_vm._e()],1)],1),_c('TheFooter')],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:\"the-header\"},[_c('v-app-bar',{attrs:{\"app\":\"\",\"color\":\"primary\",\"dense\":\"\",\"dark\":\"\"}},[_c('v-container',{staticClass:\"row_between app-container\"},[(_vm.backTitle)?_c('BaseBackBtn',{attrs:{\"title\":_vm.backTitle}}):_c('router-link',{staticClass:\"d-flex align-center\",attrs:{\"to\":{ name: 'home' }}},[_c('v-img',{staticClass:\"logo\",attrs:{\"src\":require(\"@/assets/img/logo.svg\"),\"alt\":\"Geek Score\"}}),_c('span',{staticClass:\"header-title\"},[_vm._v(\"Geek Score\")])],1),_c('v-spacer'),(_vm.user)?[_c('nav',[_c('ul',{staticClass:\"d-none d-sm-flex\"},[_vm._l((_vm.navItems),function(ref){\nvar icon = ref.icon;\nvar text = ref.text;\nvar link = ref.link;\nreturn _c('li',{key:text},[_c('v-btn',{attrs:{\"small\":_vm.$vuetify.breakpoint.smOnly,\"to\":link,\"text\":\"\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-\"+_vm._s(icon))]),_vm._v(\" \"+_vm._s(text)+\" \")],1)],1)}),_c('li',[_c('v-btn',{attrs:{\"small\":_vm.$vuetify.breakpoint.smOnly,\"text\":\"\"},on:{\"click\":_vm.onLogout}},[_c('v-icon',[_vm._v(\"mdi-logout\")]),_vm._v(\"Log out \")],1)],1)],2)]),_c('v-app-bar-nav-icon',{staticClass:\"d-sm-none\",on:{\"click\":function($event){$event.stopPropagation();_vm.isSideNav = !_vm.isSideNav}}})]:_vm._e()],2)],1),_c('v-navigation-drawer',{attrs:{\"app\":\"\",\"right\":\"\",\"dark\":\"\",\"fixed\":\"\",\"temporary\":\"\"},model:{value:(_vm.isSideNav),callback:function ($$v) {_vm.isSideNav=$$v},expression:\"isSideNav\"}},[_c('v-list',[_vm._l((_vm.navItems),function(ref){\nvar text = ref.text;\nvar icon = ref.icon;\nvar link = ref.link;\nreturn _c('v-list-item',{key:text,attrs:{\"to\":link}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-\"+_vm._s(icon))])],1),_c('v-list-item-content',[_vm._v(_vm._s(text))])],1)}),_c('v-list-item',{on:{\"click\":_vm.onLogout}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-logout\")])],1),_c('v-list-item-content',[_vm._v(\"Log out\")])],1)],2)],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\nimport { defineComponent, ref, computed } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'TheHeader',\n\n setup(_, { root: { $store, $route } }) {\n const user = computed(() => $store.state.user.user);\n\n const backTitle = computed(() => $store.getters['backTitle']);\n\n const isSideNav = ref(false);\n\n const logout = () => $store.dispatch('user/logout');\n\n const onLogout = () => {\n if ($route.fullPath === '/') {\n isSideNav.value = false;\n }\n logout();\n };\n\n const navItems = [\n {\n text: 'Games',\n icon: 'dice-multiple-outline',\n link: '/games'\n },\n {\n text: 'Tools',\n icon: 'hammer-screwdriver',\n link: '/tools'\n },\n {\n text: 'Profile',\n icon: 'account-details-outline',\n link: '/profile'\n }\n ];\n\n return {\n isSideNav,\n backTitle,\n user,\n navItems,\n onLogout\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/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheHeader.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!./TheHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TheHeader.vue?vue&type=template&id=5c0a07d6&scoped=true&\"\nimport script from \"./TheHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./TheHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TheHeader.vue?vue&type=style&index=0&id=5c0a07d6&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 \"5c0a07d6\",\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 { VAppBar } from 'vuetify/lib/components/VAppBar';\nimport { VAppBarNavIcon } from 'vuetify/lib/components/VAppBar';\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 { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VAppBar,VAppBarNavIcon,VBtn,VContainer,VIcon,VImg,VList,VListItem,VListItemContent,VListItemIcon,VNavigationDrawer,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-footer',{staticClass:\"the-footer\",attrs:{\"padless\":\"\"}},[_c('v-layout',{attrs:{\"primary\":\"\",\"white--text\":\"\"}},[_c('v-container',[_c('span',{staticClass:\"mr-6\",attrs:{\"data-test-copy\":\"\"}},[_vm._v(\"© \"+_vm._s(_vm.copyright))]),_c('a',{staticClass:\"link\",attrs:{\"href\":\"https://github.com/DavidGolodetsky/GeekScore-2\",\"rel\":\"noopener noreferrer\",\"target\":\"_blank\"}},[_c('span',{staticClass:\"mr-2\"},[_vm._v(\"Repo\")]),_c('v-icon',{attrs:{\"size\":\"18\",\"dark\":\"\"}},[_vm._v(\"mdi-code-tags\")])],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\nimport { defineComponent } from '@vue/composition-api'\n\nexport default defineComponent({\n name: 'TheFooter',\n setup() {\n const currentYear = new Date().getFullYear()\n const copyright = `2020 - ${currentYear}`\n\n return {\n copyright\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/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheFooter.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!./TheFooter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TheFooter.vue?vue&type=template&id=94c7db3e&scoped=true&\"\nimport script from \"./TheFooter.vue?vue&type=script&lang=ts&\"\nexport * from \"./TheFooter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TheFooter.vue?vue&type=style&index=0&id=94c7db3e&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 \"94c7db3e\",\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 { VFooter } from 'vuetify/lib/components/VFooter';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VLayout } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VContainer,VFooter,VIcon,VLayout})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"the-alert\"},[_c('transition',{attrs:{\"appear\":\"\",\"name\":\"fade-down\"}},[_c('v-alert',{attrs:{\"dismissible\":\"\",\"value\":\"\",\"type\":_vm.alertType},on:{\"input\":function($event){return _vm.onClose()}}},[_vm._v(\" \"+_vm._s(_vm.alertText)+\" \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, onMounted } from '@vue/composition-api';\nimport { vibrate } from '@/use/common';\nexport default defineComponent({\n name: 'TheAlert',\n props: {\n alertType: {\n type: String,\n required: true\n },\n alertText: {\n type: String,\n required: true\n }\n },\n setup(_, { root: { $store }, emit }) {\n onMounted(() => vibrate());\n\n const setError = () => $store.dispatch('setError');\n\n const onClose = () => {\n setError();\n emit('dismissed');\n };\n\n return {\n onClose\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/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheAlert.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!./TheAlert.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TheAlert.vue?vue&type=template&id=1be63a06&\"\nimport script from \"./TheAlert.vue?vue&type=script&lang=ts&\"\nexport * from \"./TheAlert.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TheAlert.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 { VAlert } from 'vuetify/lib/components/VAlert';\ninstallComponents(component, {VAlert})\n","\n\n\n\n\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 {\n defineComponent,\n // defineAsyncComponent,\n onMounted,\n ref,\n watch,\n computed\n} from '@vue/composition-api';\nimport TheHeader from '@/components/TheHeader.vue';\nimport TheFooter from '@/components/TheFooter.vue';\nimport TheAlert from '@/components/TheAlert.vue';\nimport { setupFb } from '@/auth';\n// import { VueOfflineMixin } from 'vue-offline';\n// TODO: load async\n// const TheAlert = defineAsyncComponent(() => import('@/components/TheAlert.vue'))\n\nexport default defineComponent({\n name: 'App',\n components: {\n TheHeader,\n TheFooter,\n TheAlert\n },\n // TODO: composition-api with mixins?\n // mixins: [VueOfflineMixin],\n setup(_, ctx) {\n const store = ctx.root.$store;\n\n const isGoTopBtn = ref(false);\n\n const isOffline = ref(false);\n\n const GoTopBtnOtions = ref({\n duration: 300,\n offset: 0,\n easing: 'easeInOutCubic'\n });\n\n onMounted(() => setupFb());\n\n const isLoading = computed(() => store.getters['loading']);\n\n const error = computed(() => store.getters['error']);\n\n const isAlert = computed(() => isOffline.value || error.value);\n\n const setError = () => store.dispatch('setError');\n\n watch(isAlert, val => {\n if (val) {\n setTimeout(() => setError(), 10000);\n }\n });\n\n const offlineMessage =\n 'Geek Score is offline. Some features might be disabled';\n\n const alertType = computed(() => (isOffline.value ? 'warning' : 'error'));\n\n const alertText = computed(() =>\n isOffline.value ? offlineMessage : error.value.message\n );\n\n const onScroll = () => {\n if (window.pageYOffset > 500) return (isGoTopBtn.value = true);\n\n if (isGoTopBtn.value && window.pageYOffset < 500) {\n isGoTopBtn.value = false;\n }\n };\n\n return {\n alertType,\n alertText,\n isAlert,\n onScroll,\n isLoading,\n isGoTopBtn,\n isOffline,\n GoTopBtnOtions\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/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/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=47a4ed8c&scoped=true&\"\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&id=47a4ed8c&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 \"47a4ed8c\",\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 { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VMain } from 'vuetify/lib/components/VMain';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VApp,VBtn,VContainer,VIcon,VMain,VProgressCircular})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Scroll from 'vuetify/lib/directives/scroll'\ninstallDirectives(component, {Scroll})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: {\n themes: {\n light: {\n primary: '#3D3D3C',\n secondary: '#ff9900',\n accent: '#ffb84d',\n error: '#f44336',\n warning: '#ffc107',\n info: '#03a9f4',\n success: '#8bc34a',\n silver: '#d9d9d8',\n bg: '#50514f',\n lightgrey: '#d9d9d8',\n label: '#6C6C6B'\n },\n },\n },\n});\n\n","/* eslint-disable no-console */\nimport { register } from 'register-service-worker';\n\nif (process.env.NODE_ENV === 'production') {\n register(`${process.env.BASE_URL}service-worker.js`, {\n ready() {\n console.log(\n 'App is being served from cache by a service worker.\\n' +\n 'For more details, visit https://goo.gl/AFskqB'\n );\n },\n registered() {\n console.log('Service worker has been registered.');\n },\n cached() {\n console.log('Content has been cached for offline use.');\n },\n updatefound() {\n console.log('New content is downloading.');\n },\n updated() {\n console.log('New content is available; please refresh.');\n },\n offline() {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n },\n error(error) {\n console.error('Error during service worker registration:', error);\n }\n });\n}\n","import Vue from 'vue';\nimport App from './App.vue';\nimport vuetify from './plugins/vuetify';\nimport router from './router';\nimport store from './store';\nimport VueOffline from 'vue-offline';\nimport VueGtag from 'vue-gtag';\nimport VueCompositionAPI from '@vue/composition-api';\nimport './registerServiceWorker';\n\nconst isDev = process.env.NODE_ENV !== 'production';\n\nVue.config.productionTip = isDev;\nVue.config.performance = isDev;\n\nVue.config.errorHandler = (err, vm, info) => {\n // eslint-disable-next-line no-console\n console.error(err, vm, info);\n};\n\n// eslint-disable-next-line no-console\nVue.prototype.$log = console.log;\n\nVue.use(VueCompositionAPI);\n\nVue.use(VueGtag, { config: { id: 'G-K9MXTWVK3R' } });\n\nVue.use(VueOffline, {\n mixin: false,\n storage: false\n});\n\n// Registering global components automatically\nconst requireComponent = require.context(\n './components',\n true,\n /Base[A-Z]\\w+\\.(vue|js)$/\n);\nrequireComponent.keys().forEach(fileName => {\n let baseComponentConfig = requireComponent(fileName);\n baseComponentConfig = baseComponentConfig.default || baseComponentConfig;\n const baseComponentName =\n baseComponentConfig.name ||\n fileName.replace(/^.+\\//, '').replace(/\\.\\w+$/, '');\n Vue.component(baseComponentName, baseComponentConfig);\n});\n\nnew Vue({\n vuetify,\n router,\n store,\n render: h => h(App)\n}).$mount('#app');\n","import { Game, Player, Team } from '@/types';\n\nexport const vibrate = (time = 300) => {\n // checking if mobile screen\n if (window.innerWidth < 600) {\n window.navigator.vibrate(time);\n }\n};\n\nexport const generateNumberOfPlayers = (numberOfPlayers: number) => {\n const players = Array(numberOfPlayers)\n .join(',')\n .split(',');\n return players.map((v, i) => i + 1);\n};\n\nexport const getNames = (list: []) => {\n return list?.map((obj: Game | Team | Player) => {\n return obj.name;\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/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheAlert.vue?vue&type=style&index=0&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',[_c('div',{on:{\"click\":function($event){$event.preventDefault();_vm.dialog = true}}},[_vm._t(\"activator\",function(){return [_c('v-btn',{staticClass:\"px-0 mr-2\",attrs:{\"id\":(\"activator_\" + _vm.activatorText),\"small\":_vm.simple,\"fab\":\"\",\"aria-label\":\"Open modal\",\"text\":_vm.simple,\"color\":_vm.color}},[_c('v-icon',{attrs:{\"dark\":\"\"}},[_vm._v(\"mdi-\"+_vm._s(_vm.activatorIcon))])],1),_c('label',{staticClass:\"label_text\",attrs:{\"for\":(\"activator_\" + _vm.activatorText)}},[_vm._v(_vm._s(_vm.activatorText))])]})],2),_c('v-dialog',{attrs:{\"max-width\":\"600\"},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{staticClass:\"BaseDialog\"},[_c('v-card-title',[_c('h3',{staticClass:\"app-headline\"},[_vm._v(_vm._s(_vm.header))]),_c('v-spacer'),_c('v-btn',{attrs:{\"small\":\"\",\"aria-label\":\"Close modal\",\"fab\":\"\",\"text\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',{attrs:{\"dark\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1),_c('v-form',{ref:\"form\",attrs:{\"lazy-validation\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit.apply(null, arguments)}},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-card-text',[_c('v-container',[_vm._t(\"default\")],2)],1),_c('v-card-actions',{staticClass:\"footer\"},[_c('v-spacer'),_vm._t(\"footer\",function(){return [_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"secondary darken-1\",\"outlined\":\"\"},on:{\"click\":_vm.close}},[_vm._v(\"Cancel\")]),_c('v-btn',{attrs:{\"color\":\"secondary darken-1\",\"outlined\":\"\",\"type\":\"submit\",\"disabled\":!_vm.valid}},[_vm._v(\"Submit\")])]})],2)],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\n\n\n\n\n\n\n\n\n\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 { defineComponent, ref } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'BaseDialog',\n props: {\n activatorIcon: {\n type: String,\n default: ''\n },\n header: {\n type: String,\n required: true\n },\n color: {\n type: String,\n default: 'secondary'\n },\n activatorText: {\n type: String,\n default: ''\n },\n simple: {\n type: Boolean\n }\n },\n setup(_, { emit }) {\n const dialog = ref(false);\n const valid = ref(false);\n\n const close = () => {\n dialog.value = false;\n };\n const onSubmit = () => {\n emit('submit');\n close();\n };\n\n return { dialog, valid, onSubmit, 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/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseDialog.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!./BaseDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BaseDialog.vue?vue&type=template&id=29f89144&scoped=true&\"\nimport script from \"./BaseDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./BaseDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BaseDialog.vue?vue&type=style&index=0&id=29f89144&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 \"29f89144\",\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 { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VContainer,VDialog,VForm,VIcon,VSpacer})\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/TheFooter.vue?984c","webpack:///./src/components/TheHeader.vue?3451","webpack:///./src/auth.js","webpack:///./src/assets/img/logo.svg","webpack:///./src/store/modules/games.js","webpack:///./src/store/modules/teams.js","webpack:///./src/store/modules/user.js","webpack:///./src/store/index.js","webpack:///./src/components/BaseBackBtn.vue?8af4","webpack:///./src/components/BaseBackBtn.vue?7a73","webpack:///./src/components/BaseBackBtn.vue","webpack:///./src/components/BaseBackBtn.vue?41c2","webpack:///./src/components/BaseDialog.vue?ed91","webpack:///./src/components sync Base[A-Z]\\w+\\.(vue|js)$","webpack:///./src/router/routes.js","webpack:///./src/router/index.js","webpack:///./src/App.vue?d855","webpack:///./src/App.vue?957e","webpack:///./src/components/TheHeader.vue?9508","webpack:///./src/components/TheHeader.vue","webpack:///./src/components/TheHeader.vue?c73a","webpack:///./src/components/TheHeader.vue?76f9","webpack:///./src/components/TheFooter.vue?1e40","webpack:///./src/components/TheFooter.vue","webpack:///./src/components/TheFooter.vue?3af1","webpack:///./src/components/TheFooter.vue?43c0","webpack:///./src/components/TheAlert.vue?1206","webpack:///./src/components/TheAlert.vue","webpack:///./src/components/TheAlert.vue?51ad","webpack:///./src/components/TheAlert.vue?7567","webpack:///./src/App.vue","webpack:///./src/App.vue?0ab4","webpack:///./src/App.vue?4195","webpack:///./src/plugins/vuetify.js","webpack:///./src/registerServiceWorker.js","webpack:///./src/main.ts","webpack:///./src/use/common.ts","webpack:///./src/components/TheAlert.vue?b504","webpack:///./src/components/BaseDialog.vue?b846","webpack:///./src/components/BaseDialog.vue","webpack:///./src/components/BaseDialog.vue?0167","webpack:///./src/components/BaseDialog.vue?1b3c"],"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","firebaseConfig","apiKey","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId","firebase","initializeApp","auth","onAuthStateChanged","user","store","dispatch","uiConfig","signInFlow","signInOptions","GoogleAuthProvider","PROVIDER_ID","FacebookAuthProvider","callbacks","signInSuccessWithAuthResult","router","uiShown","getElementById","style","display","ui","AuthUI","fbStart","start","setupFb","namespaced","state","games","winRate","mutations","CREATE_GAME","payload","SET_GAMES","UPDATE_GAME","updatedGame","find","game","_id","filter","item","DELETE_GAME","SET_WIN_RATE","actions","createGame","commit","localStorage","getItem","gamePayload","imageUrl","teams","favorite","axios","post","createdGame","root","loadGames","params","VueOfflineStorage","set","updateGame","patch","deleteGame","delete","loadWinRate","getters","getGame","gameId","getGamesNames","map","CREATE_TEAM","SET_TEAMS","UPDATE_TEAM","updatedTeam","team","DELETE_TEAM","createTeam","teamPayload","createdTeam","loadTeams","updateTeam","deleteTeam","getTeam","teamId","getGameTeams","includes","getTeamsNames","winRates","resetPassword","SET_USER","setItem","id","CLEAR_USER","clear","RESET_PASSWORD","SET_WIN_RATES","signUpUser","createUserWithEmailAndPassword","email","password","updateProfile","displayName","username","userPayload","uid","signInUser","signInWithEmailAndPassword","autoSignIn","currentRoute","path","updateUser","put","sendPasswordResetEmail","logout","signOut","loadWinRates","Vue","use","Vuex","Store","strict","process","backTitle","loading","LOADING","ERROR","BACK_TITLE","setError","setBackTitle","setLoading","staticRenderFns","functional","props","title","String","default","render","h","ctx","media","parent","$vuetify","breakpoint","xsOnly","$router","class","on","click","go","VIcon","color","dark","truncate","component","webpackContext","req","webpackContextResolve","keys","routes","meta","metaTags","content","requiresAuth","beforeEnter","to","_","next","alias","Router","base","scrollBehavior","from","savedPosition","position","x","y","beforeEach","matched","some","record","_vm","this","_h","$createElement","_c","_self","directives","rawName","expression","staticClass","_b","alertType","alertText","_e","attrs","$event","goTo","GoTopBtnOtions","_v","_l","ref","icon","text","link","smOnly","_s","onLogout","stopPropagation","isSideNav","model","callback","$$v","setup","$store","$route","fullPath","navItems","VAppBar","VAppBarNavIcon","VBtn","VContainer","VImg","VList","VListItem","VListItemContent","VListItemIcon","VNavigationDrawer","VSpacer","copyright","currentYear","Date","getFullYear","VFooter","VLayout","onClose","required","emit","VAlert","components","TheHeader","TheFooter","TheAlert","isGoTopBtn","isOffline","duration","offset","easing","isLoading","isAlert","val","offlineMessage","onScroll","pageYOffset","VApp","VMain","VProgressCircular","Scroll","Vuetify","theme","themes","light","primary","secondary","accent","warning","info","success","silver","bg","lightgrey","label","register","ready","log","registered","cached","updatefound","updated","offline","isDev","config","productionTip","performance","errorHandler","vm","$log","mixin","storage","requireComponent","forEach","fileName","baseComponentConfig","baseComponentName","replace","vuetify","App","$mount","vibrate","time","innerWidth","navigator","generateNumberOfPlayers","numberOfPlayers","players","Array","join","split","v","getNames","list","obj","preventDefault","dialog","_t","activatorText","simple","activatorIcon","header","close","onSubmit","arguments","valid","Boolean","VCard","VCardActions","VCardText","VCardTitle","VDialog","VForm"],"mappings":"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","file":"js/app.359ff4ac.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/\" + ({\"tools\":\"tools\",\"resetPass\":\"resetPass\",\"team\":\"team\",\"game\":\"game\",\"games\":\"games\",\"home\":\"home\",\"notFound\":\"notFound\",\"profile\":\"profile\",\"signIn\":\"signIn\",\"signUp\":\"signUp\"}[chunkId]||chunkId) + \".\" + {\"chunk-07709945\":\"beb3cf2d\",\"chunk-485c46e5\":\"8a5c32f5\",\"tools\":\"c901b75d\",\"resetPass\":\"ac3fbcb9\",\"team\":\"c1994f0d\",\"game\":\"997f89b9\",\"games\":\"890a2440\",\"home\":\"427aca7e\",\"notFound\":\"c2d0921b\",\"profile\":\"be06cee6\",\"signIn\":\"67870e9f\",\"signUp\":\"1703ce97\",\"chunk-3323ee2b\":\"c683d4bd\",\"chunk-f20b789e\":\"7993096c\",\"chunk-7b3231b7\":\"5e02fd47\",\"chunk-4e61baef\":\"d6fcba94\",\"chunk-2d0c82f1\":\"4d5c641f\",\"chunk-086a4a7c\":\"9b4330c0\",\"chunk-2d0dee65\":\"f771a4b2\",\"chunk-d0adc622\":\"89c44029\",\"chunk-2d0d2b72\":\"faca91c8\",\"chunk-2d0e19ee\":\"87e82c5e\",\"chunk-2e20e2e1\":\"b74f6eae\",\"chunk-7e3a9dbc\":\"6ed15a76\",\"chunk-3894c1d8\":\"f55d0c50\",\"chunk-d4873e92\":\"53f1e2f2\",\"chunk-542101e2\":\"64a2745b\",\"chunk-7f8dbe25\":\"a9b6a29d\"}[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-07709945\":1,\"chunk-485c46e5\":1,\"tools\":1,\"resetPass\":1,\"game\":1,\"home\":1,\"chunk-3323ee2b\":1,\"chunk-f20b789e\":1,\"chunk-7b3231b7\":1,\"chunk-4e61baef\":1,\"chunk-086a4a7c\":1,\"chunk-2e20e2e1\":1,\"chunk-3894c1d8\":1,\"chunk-d4873e92\":1,\"chunk-542101e2\":1,\"chunk-7f8dbe25\":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/\" + ({\"tools\":\"tools\",\"resetPass\":\"resetPass\",\"team\":\"team\",\"game\":\"game\",\"games\":\"games\",\"home\":\"home\",\"notFound\":\"notFound\",\"profile\":\"profile\",\"signIn\":\"signIn\",\"signUp\":\"signUp\"}[chunkId]||chunkId) + \".\" + {\"chunk-07709945\":\"3d501164\",\"chunk-485c46e5\":\"d3fdb862\",\"tools\":\"5e829512\",\"resetPass\":\"33d6148b\",\"team\":\"31d6cfe0\",\"game\":\"40ba02f4\",\"games\":\"31d6cfe0\",\"home\":\"1ec85beb\",\"notFound\":\"31d6cfe0\",\"profile\":\"31d6cfe0\",\"signIn\":\"31d6cfe0\",\"signUp\":\"31d6cfe0\",\"chunk-3323ee2b\":\"d7df91b3\",\"chunk-f20b789e\":\"f9fe39ee\",\"chunk-7b3231b7\":\"2c969a12\",\"chunk-4e61baef\":\"fa94e2e8\",\"chunk-2d0c82f1\":\"31d6cfe0\",\"chunk-086a4a7c\":\"b534dc26\",\"chunk-2d0dee65\":\"31d6cfe0\",\"chunk-d0adc622\":\"31d6cfe0\",\"chunk-2d0d2b72\":\"31d6cfe0\",\"chunk-2d0e19ee\":\"31d6cfe0\",\"chunk-2e20e2e1\":\"d7df91b3\",\"chunk-7e3a9dbc\":\"31d6cfe0\",\"chunk-3894c1d8\":\"d7df91b3\",\"chunk-d4873e92\":\"36c6f82b\",\"chunk-542101e2\":\"d7df91b3\",\"chunk-7f8dbe25\":\"8b4f9118\"}[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/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheFooter.vue?vue&type=style&index=0&id=94c7db3e&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/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheHeader.vue?vue&type=style&index=0&id=5c0a07d6&scoped=true&lang=scss&\"","import firebase from 'firebase/app';\nimport 'firebase/auth';\nimport { auth } from 'firebaseui';\nimport store from '@/store';\nimport router from '@/router';\n\nconst firebaseConfig = {\n apiKey: 'AIzaSyAscgoXoqL2LOk84LfNxq1BCu-JnFwyNug',\n authDomain: 'geekstat-v.firebaseapp.com',\n databaseURL: 'https://geekstat-v.firebaseio.com',\n projectId: 'geekstat-v',\n storageBucket: 'geekstat-v.appspot.com',\n messagingSenderId: '748797302864',\n appId: '1:748797302864:web:1f23f4bb7d8b8698461955'\n};\n\nfirebase.initializeApp(firebaseConfig);\nfirebase.auth().onAuthStateChanged(user => {\n if (!user) return;\n store.dispatch('user/autoSignIn', user);\n});\n\nconst uiConfig = {\n signInFlow: 'popup',\n signInOptions: [\n firebase.auth.GoogleAuthProvider.PROVIDER_ID,\n firebase.auth.FacebookAuthProvider.PROVIDER_ID\n ],\n callbacks: {\n signInSuccessWithAuthResult: () => router.push({ name: 'games' }),\n uiShown() {\n document.getElementById('loader').style.display = 'none';\n }\n }\n};\n\nconst ui = new auth.AuthUI(firebase.auth());\n\nexport const fbStart = () => {\n ui.start('#firebaseui-auth-container', uiConfig);\n};\n\nexport const setupFb = () => {};\n\nexport default firebase;\n","module.exports = __webpack_public_path__ + \"img/logo.61a7f72a.svg\";","import axios from 'axios';\nimport { VueOfflineStorage } from 'vue-offline';\n\nexport default {\n namespaced: true,\n state: {\n games: null,\n winRate: null\n },\n mutations: {\n CREATE_GAME(state, payload) {\n state.games\n ? (state.games = [...state.games, payload])\n : (state.games = [payload]);\n },\n SET_GAMES(state, payload) {\n state.games = payload;\n },\n UPDATE_GAME(state, payload) {\n const updatedGame = state.games.find(game => game._id === payload._id);\n state.games = state.games.filter(item => item._id !== payload._id);\n state.games.push({ ...updatedGame, ...payload });\n },\n DELETE_GAME(state, payload) {\n const games = state.games.filter(game => game._id !== payload);\n games.length ? (state.games = games) : (state.games = null);\n },\n SET_WIN_RATE(state, payload) {\n state.winRate = payload;\n }\n },\n actions: {\n async createGame({ commit }, payload) {\n try {\n const user = localStorage.getItem('userId');\n const gamePayload = {\n ...payload,\n user,\n imageUrl: '',\n teams: [],\n favorite: false\n };\n const createdGame = await axios.post('/api/games', gamePayload);\n commit('LOADING', true, { root: true });\n commit('CREATE_GAME', { ...createdGame.data });\n } catch (e) {\n commit('ERROR', e, { root: true });\n } finally {\n commit('LOADING', false, { root: true });\n }\n },\n async loadGames({ commit }) {\n try {\n const user = localStorage.getItem('userId');\n commit('LOADING', true, { root: true });\n const games = await axios.get('/api/games', { params: { user } });\n VueOfflineStorage.set('games', games.data);\n commit('SET_GAMES', games.data);\n } catch (e) {\n commit('ERROR', e, { root: true });\n } finally {\n commit('LOADING', false, { root: true });\n }\n },\n async updateGame({ commit }, payload) {\n try {\n commit('LOADING', true, { root: true });\n await axios.patch(`/api/games/${payload._id}`, payload);\n commit('UPDATE_GAME', payload);\n } catch (e) {\n commit('ERROR', e, { root: true });\n } finally {\n commit('LOADING', false, { root: true });\n }\n },\n async deleteGame({ commit }, payload) {\n try {\n commit('LOADING', true, { root: true });\n await axios.delete(`/api/games/${payload}`);\n commit('DELETE_GAME', payload);\n } catch (e) {\n commit('ERROR', e, { root: true });\n } finally {\n commit('LOADING', false, { root: true });\n }\n },\n async loadWinRate({ commit }, payload) {\n try {\n commit('LOADING', true, { root: true });\n let winRate = await axios.get(`/api/games/win-rate/${payload}`);\n winRate = winRate.data ? `${winRate.data}%` : null;\n commit('SET_WIN_RATE', winRate);\n } catch (e) {\n commit('ERROR', e, { root: true });\n } finally {\n commit('LOADING', false, { root: true });\n }\n }\n },\n getters: {\n getGame(state) {\n return gameId => {\n if (state.games) {\n return state.games.find(game => game._id === gameId);\n }\n return null;\n };\n },\n getGamesNames(state) {\n return () => state.games?.map(game => game.name);\n }\n }\n};\n","import axios from 'axios';\n\nexport default {\n namespaced: true,\n state: {\n teams: null\n },\n mutations: {\n CREATE_TEAM(state, payload) {\n state.teams\n ? (state.teams = [...state.teams, payload])\n : (state.teams = [payload]);\n },\n SET_TEAMS(state, payload) {\n state.teams = payload;\n },\n UPDATE_TEAM(state, payload) {\n const updatedTeam = state.teams.find(team => team._id === payload._id);\n state.teams = state.teams.filter(item => item._id !== payload._id);\n state.teams.push({ ...updatedTeam, ...payload });\n },\n DELETE_TEAM(state, payload) {\n const teams = state.teams.filter(team => team._id !== payload);\n teams.length ? (state.teams = teams) : (state.teams = null);\n }\n },\n actions: {\n async createTeam({ commit }, payload) {\n try {\n const user = localStorage.getItem('userId');\n const teamPayload = {\n ...payload,\n user,\n favorite: false\n };\n commit('LOADING', true, { root: true });\n const createdTeam = await axios.post('/api/teams', teamPayload);\n commit('CREATE_TEAM', { ...createdTeam.data });\n } catch (e) {\n throw new Error(e);\n } finally {\n commit('LOADING', false, { root: true });\n }\n },\n async loadTeams({ commit }) {\n try {\n const user = localStorage.getItem('userId');\n commit('LOADING', true, { root: true });\n const teams = await axios.get('/api/teams', { params: { user } });\n commit('SET_TEAMS', teams.data);\n } catch (e) {\n throw new Error(e);\n } finally {\n commit('LOADING', false, { root: true });\n }\n },\n async updateTeam({ commit }, payload) {\n try {\n commit('LOADING', true, { root: true });\n await axios.patch(`/api/teams/${payload._id}`, payload);\n commit('UPDATE_TEAM', payload);\n } catch (e) {\n throw new Error(e);\n } finally {\n commit('LOADING', false, { root: true });\n }\n },\n async deleteTeam({ commit }, payload) {\n try {\n commit('LOADING', true, { root: true });\n await axios.delete(`/api/teams/${payload}`);\n commit('DELETE_TEAM', payload);\n } catch (e) {\n throw new Error(e);\n } finally {\n commit('LOADING', false, { root: true });\n }\n }\n },\n getters: {\n getTeam(state) {\n return teamId => {\n if (state.teams) {\n return state.teams.find(team => team._id === teamId);\n }\n return null;\n };\n },\n getGameTeams(state) {\n return gameId => {\n if (state.teams) {\n return state.teams.filter(team => team.games.includes(gameId));\n }\n return [];\n };\n },\n getTeamsNames(state) {\n return () => state.teams?.map(team => team.name);\n }\n }\n};\n","import firebase from 'firebase/app';\nimport router from '@/router';\nimport axios from 'axios';\n\nexport default {\n namespaced: true,\n state: {\n user: null,\n winRates: null,\n resetPassword: false\n },\n mutations: {\n SET_USER(state, payload) {\n localStorage.setItem('userId', payload?.id);\n state.user = payload;\n },\n CLEAR_USER(state) {\n localStorage.clear();\n state.user = null;\n },\n RESET_PASSWORD(state) {\n state.resetPassword = true;\n },\n SET_WIN_RATES(state, payload) {\n state.winRates = payload;\n }\n },\n actions: {\n async signUpUser({ commit }, payload) {\n try {\n commit('LOADING', true, { root: true });\n const user = await firebase\n .auth()\n .createUserWithEmailAndPassword(payload.email, payload.password);\n await user.user.updateProfile({ displayName: payload.username });\n const userPayload = {\n id: user.user.uid,\n username: payload.username\n };\n await axios.post('/api/users', userPayload);\n router.push({ name: 'games' });\n commit('SET_USER', userPayload);\n } catch (e) {\n commit('ERROR', e, { root: true });\n throw e;\n } finally {\n commit('LOADING', false, { root: true });\n }\n },\n async signInUser({ commit }, payload) {\n try {\n commit('LOADING', true, { root: true });\n const user = await firebase\n .auth()\n .signInWithEmailAndPassword(payload.email, payload.password);\n const userPayload = {\n id: user.user.uid,\n username: user.user.displayName\n };\n router.push({ name: 'games' });\n await commit('SET_USER', userPayload);\n } catch (e) {\n commit('ERROR', e, { root: true });\n } finally {\n commit('LOADING', false, { root: true });\n }\n },\n autoSignIn({ commit }, payload) {\n commit('LOADING', true, { root: true });\n const userPayload = {\n id: payload.uid,\n username: payload.displayName\n };\n commit('SET_USER', userPayload);\n if (router.currentRoute.path === '/') {\n router.push({ name: 'games' });\n }\n commit('LOADING', false, { root: true });\n },\n async updateUser({ commit }, { id, username }) {\n try {\n commit('LOADING', true, { root: true });\n await axios.put(`/api/users/${id}`, {\n id,\n username\n });\n commit('SET_USER', { id, username });\n } catch (e) {\n commit('ERROR', e, { root: true });\n } finally {\n commit('LOADING', false, { root: true });\n }\n },\n async resetPassword({ commit }, payload) {\n try {\n commit('LOADING', true, { root: true });\n await firebase.auth().sendPasswordResetEmail(payload);\n commit('RESET_PASSWORD');\n } catch (e) {\n commit('ERROR', e, { root: true });\n } finally {\n commit('LOADING', false, { root: true });\n }\n },\n async logout({ commit }) {\n try {\n commit('LOADING', true, { root: true });\n await firebase.auth().signOut();\n if (router.currentRoute.path !== '/') router.push('/');\n commit('games/SET_GAMES', null, { root: true });\n commit('teams/SET_TEAMS', null, { root: true });\n commit('CLEAR_USER');\n } catch (e) {\n commit('ERROR', e, { root: true });\n } finally {\n commit('LOADING', false, { root: true });\n }\n },\n async loadWinRates({ commit }) {\n try {\n commit('LOADING', true, { root: true });\n const user = localStorage.getItem('userId');\n const winRate = await axios.get(`/api/users/win-rate/${user}`);\n commit('SET_WIN_RATES', winRate.data);\n } catch (e) {\n commit('ERROR', e, { root: true });\n } finally {\n commit('LOADING', false, { root: true });\n }\n }\n }\n};\n","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport games from './modules/games'\nimport teams from './modules/teams'\nimport user from './modules/user'\n\nVue.use(Vuex)\n\nconst store = new Vuex.Store({\n strict: process.env.NODE_ENV !== 'production',\n\n modules: {\n user,\n games,\n teams\n },\n state: {\n error: null,\n backTitle: null,\n loading: false\n },\n mutations: {\n LOADING(state, payload) {\n state.loading = payload\n },\n ERROR(state, payload) {\n state.error = payload\n },\n BACK_TITLE(state, payload) {\n state.backTitle = payload\n }\n },\n actions: {\n setError({ commit }, payload = null) {\n commit('ERROR', payload)\n },\n setBackTitle({ commit }, payload = null) {\n commit('BACK_TITLE', payload)\n },\n setLoading({ commit }, payload = null) {\n commit('LOADING', payload)\n }\n },\n getters: {\n loading(state) {\n return state.loading\n },\n error(state) {\n return state.error\n },\n backTitle(state) {\n return state.backTitle\n }\n }\n})\n\nexport default store\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/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseBackBtn.vue?vue&type=style&index=0&id=596ed2bd&scoped=true&lang=scss&\"","var render, staticRenderFns\nimport script from \"./BaseBackBtn.vue?vue&type=script&lang=ts&\"\nexport * from \"./BaseBackBtn.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BaseBackBtn.vue?vue&type=style&index=0&id=596ed2bd&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 \"596ed2bd\",\n null\n \n)\n\nexport default component.exports","\nimport { defineComponent } from '@vue/composition-api'\n\nimport { VIcon } from 'vuetify/lib'\n\nexport default defineComponent({\n name: 'BaseBackBtn',\n functional: true,\n props: {\n title: {\n type: String,\n default: 'Back'\n }\n },\n render(h, ctx) {\n const title = ctx.props.title\n const media = ctx.parent.$vuetify.breakpoint.xsOnly\n const router = ctx.parent.$router\n return h(\n 'div',\n {\n class: 'd-flex align-center go-back',\n on: {\n click: () => router.go(-1)\n }\n },\n [\n h(\n VIcon,\n {\n class: 'mr-2',\n props: {\n color: 'secondary',\n dark: true\n }\n },\n 'mdi-arrow-left'\n ),\n title\n ? h(\n 'span',\n {\n class: ['header-title', { truncate: media }]\n },\n title\n )\n : ''\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/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseBackBtn.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!./BaseBackBtn.vue?vue&type=script&lang=ts&\"","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!./BaseDialog.vue?vue&type=style&index=0&id=29f89144&scoped=true&lang=scss&\"","var map = {\n\t\"./BaseBackBtn.vue\": \"7034\",\n\t\"./BaseDialog.vue\": \"ea45\"\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 = \"98f1\";","import store from '@/store';\n\nconst routes = [\n {\n path: '/',\n name: 'home',\n component: () => import(/* webpackChunkName: \"home\" */ '../pages/Home'),\n meta: {\n title: 'Geek Score - Homepage',\n metaTags: {\n name: 'description',\n content: 'A starting page where described the idea of Geek Score'\n }\n }\n },\n {\n path: '/games',\n name: 'games',\n component: () => import(/* webpackChunkName: \"games\" */ '../pages/Games'),\n meta: {\n requiresAuth: true,\n title: 'Geek Score - Games page',\n metaTags: {\n name: 'description',\n content: \"A list of user's games\"\n }\n }\n },\n {\n path: '/game/:gameId',\n name: 'game',\n props: true,\n component: () => import(/* webpackChunkName: \"game\" */ '../pages/Game'),\n meta: {\n requiresAuth: true,\n title: 'Geek Score - Game page',\n metaTags: {\n name: 'description',\n content: 'Game details page'\n }\n },\n async beforeEnter(to, _, next) {\n const { games } = store.state.games;\n games ?? (await store.dispatch('games/loadGames'));\n const game = await store.getters['games/getGame'](to.params.gameId);\n game ? next() : next({ name: 'NotFound' });\n }\n },\n {\n path: '/profile',\n name: 'profile',\n component: () =>\n import(/* webpackChunkName: \"profile\" */ '../pages/Profile'),\n meta: {\n requiresAuth: true,\n title: 'Geek Score - Profile page',\n metaTags: {\n name: 'User Profile',\n content: 'User Profile page'\n }\n }\n },\n {\n path: '/team/:teamId',\n name: 'team',\n props: true,\n component: () => import(/* webpackChunkName: \"team\" */ '../pages/Team'),\n meta: {\n requiresAuth: true,\n title: 'Geek Score - Team page',\n metaTags: {\n name: 'description',\n content: 'Team details page'\n }\n },\n async beforeEnter(to, _, next) {\n const { games } = store.state.games;\n games ?? (await store.dispatch('games/loadGames'));\n const { teams } = store.state.teams;\n teams ?? (await store.dispatch('teams/loadTeams'));\n const team = await store.getters['teams/getTeam'](to.params.teamId);\n team ? next() : next({ name: 'NotFound' });\n }\n },\n {\n path: '/sign-in',\n name: 'signIn',\n component: () => import(/* webpackChunkName: \"signIn\" */ '../pages/SignIn'),\n meta: {\n title: 'Geek Score - Sign in page',\n metaTags: {\n name: 'description',\n content: 'A page for Signing In in'\n }\n }\n },\n {\n path: '/sign-up',\n name: 'signUp',\n component: () => import(/* webpackChunkName: \"signUp\" */ '../pages/SignUp'),\n meta: {\n title: 'Geek Score - Sign up page',\n metaTags: {\n name: 'description',\n content: 'A page for Signing up up'\n }\n }\n },\n {\n path: '/reset',\n name: 'resetPass',\n component: () =>\n import(/* webpackChunkName: \"resetPass\" */ '../pages/ResetPassword'),\n meta: {\n title: 'Geek Score - Reset password page',\n metaTags: {\n name: 'description',\n content: 'A page for resetting a password'\n }\n }\n },\n {\n path: '/tools',\n name: 'tools',\n component: () => import(/* webpackChunkName: \"tools\" */ '../pages/Tools'),\n meta: {\n requiresAuth: true,\n title: 'Geek Score - Tools page',\n metaTags: {\n name: 'description',\n content: 'A list of tools for games'\n }\n }\n },\n {\n path: '/404',\n alias: '*',\n name: 'NotFound',\n component: () =>\n import(/* webpackChunkName: \"notFound\" */ '../pages/NotFound'),\n meta: {\n title: 'Geek Score - Not found page',\n metaTags: {\n name: 'description',\n content: 'An error page'\n }\n }\n }\n];\n\nexport default routes;\n","import Vue from 'vue';\nimport Router from 'vue-router';\nimport store from '@/store';\nimport routes from './routes';\n\nVue.use(Router);\n\nconst router = new Router({\n routes,\n mode: 'history',\n base: process.env.BASE_URL,\n scrollBehavior(to, from, savedPosition) {\n let position = { x: 0, y: 0 };\n if (savedPosition) position = savedPosition;\n return new Promise(resolve => {\n setTimeout(() => {\n resolve(position);\n }, 300);\n });\n }\n});\n\nrouter.beforeEach((to, from, next) => {\n if (!to.matched.some(record => record.meta.requiresAuth)) return next();\n return store.state.user ? next() : next({ name: 'signIn' });\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/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&id=47a4ed8c&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',{directives:[{name:\"scroll\",rawName:\"v-scroll\",value:(_vm.onScroll),expression:\"onScroll\"}],staticClass:\"app\"},[_c('TheHeader'),_c('v-main',[_c('v-container',{staticClass:\"app-container\"},[(_vm.isAlert)?_c('TheAlert',_vm._b({},'TheAlert',{ alertType: _vm.alertType, alertText: _vm.alertText },false)):_vm._e(),_c('transition',{attrs:{\"name\":\"slide\",\"mode\":\"out-in\"}},[_c('router-view')],1),(_vm.isLoading)?_c('div',{staticClass:\"loader-wrap\"},[_c('v-progress-circular',{attrs:{\"size\":50,\"indeterminate\":\"\",\"color\":\"secondary\"}})],1):_vm._e(),(_vm.isGoTopBtn)?_c('v-btn',{staticClass:\"go-top\",attrs:{\"aria-label\":\"Go to top\",\"dark\":\"\",\"fab\":\"\"},on:{\"click\":function($event){return _vm.$vuetify.goTo(0, _vm.GoTopBtnOtions)}}},[_c('v-icon',{attrs:{\"dark\":\"\"}},[_vm._v(\"mdi-chevron-up\")])],1):_vm._e()],1)],1),_c('TheFooter')],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:\"the-header\"},[_c('v-app-bar',{attrs:{\"app\":\"\",\"color\":\"primary\",\"dense\":\"\",\"dark\":\"\"}},[_c('v-container',{staticClass:\"row_between app-container\"},[(_vm.backTitle)?_c('BaseBackBtn',{attrs:{\"title\":_vm.backTitle}}):_c('router-link',{staticClass:\"d-flex align-center\",attrs:{\"to\":{ name: 'home' }}},[_c('v-img',{staticClass:\"logo\",attrs:{\"src\":require(\"@/assets/img/logo.svg\"),\"alt\":\"Geek Score\"}}),_c('span',{staticClass:\"header-title\"},[_vm._v(\"Geek Score\")])],1),_c('v-spacer'),(_vm.user)?[_c('nav',[_c('ul',{staticClass:\"d-none d-sm-flex\"},[_vm._l((_vm.navItems),function(ref){\nvar icon = ref.icon;\nvar text = ref.text;\nvar link = ref.link;\nreturn _c('li',{key:text},[_c('v-btn',{attrs:{\"small\":_vm.$vuetify.breakpoint.smOnly,\"to\":link,\"text\":\"\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-\"+_vm._s(icon))]),_vm._v(\" \"+_vm._s(text)+\" \")],1)],1)}),_c('li',[_c('v-btn',{attrs:{\"small\":_vm.$vuetify.breakpoint.smOnly,\"text\":\"\"},on:{\"click\":_vm.onLogout}},[_c('v-icon',[_vm._v(\"mdi-logout\")]),_vm._v(\"Log out \")],1)],1)],2)]),_c('v-app-bar-nav-icon',{staticClass:\"d-sm-none\",on:{\"click\":function($event){$event.stopPropagation();_vm.isSideNav = !_vm.isSideNav}}})]:_vm._e()],2)],1),_c('v-navigation-drawer',{attrs:{\"app\":\"\",\"right\":\"\",\"dark\":\"\",\"fixed\":\"\",\"temporary\":\"\"},model:{value:(_vm.isSideNav),callback:function ($$v) {_vm.isSideNav=$$v},expression:\"isSideNav\"}},[_c('v-list',[_vm._l((_vm.navItems),function(ref){\nvar text = ref.text;\nvar icon = ref.icon;\nvar link = ref.link;\nreturn _c('v-list-item',{key:text,attrs:{\"to\":link}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-\"+_vm._s(icon))])],1),_c('v-list-item-content',[_vm._v(_vm._s(text))])],1)}),_c('v-list-item',{on:{\"click\":_vm.onLogout}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-logout\")])],1),_c('v-list-item-content',[_vm._v(\"Log out\")])],1)],2)],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\nimport { defineComponent, ref, computed } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'TheHeader',\n\n setup(_, { root: { $store, $route } }) {\n const user = computed(() => $store.state.user.user);\n\n const backTitle = computed(() => $store.getters['backTitle']);\n\n const isSideNav = ref(false);\n\n const logout = () => $store.dispatch('user/logout');\n\n const onLogout = () => {\n if ($route.fullPath === '/') {\n isSideNav.value = false;\n }\n logout();\n };\n\n const navItems = [\n {\n text: 'Games',\n icon: 'dice-multiple-outline',\n link: '/games'\n },\n {\n text: 'Tools',\n icon: 'hammer-screwdriver',\n link: '/tools'\n },\n {\n text: 'Profile',\n icon: 'account-details-outline',\n link: '/profile'\n }\n ];\n\n return {\n isSideNav,\n backTitle,\n user,\n navItems,\n onLogout\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/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheHeader.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!./TheHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TheHeader.vue?vue&type=template&id=5c0a07d6&scoped=true&\"\nimport script from \"./TheHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./TheHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TheHeader.vue?vue&type=style&index=0&id=5c0a07d6&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 \"5c0a07d6\",\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 { VAppBar } from 'vuetify/lib/components/VAppBar';\nimport { VAppBarNavIcon } from 'vuetify/lib/components/VAppBar';\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 { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VAppBar,VAppBarNavIcon,VBtn,VContainer,VIcon,VImg,VList,VListItem,VListItemContent,VListItemIcon,VNavigationDrawer,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-footer',{staticClass:\"the-footer\",attrs:{\"padless\":\"\"}},[_c('v-layout',{attrs:{\"primary\":\"\",\"white--text\":\"\"}},[_c('v-container',[_c('span',{staticClass:\"mr-6\",attrs:{\"data-test-copy\":\"\"}},[_vm._v(\"© \"+_vm._s(_vm.copyright))]),_c('a',{staticClass:\"link\",attrs:{\"href\":\"https://github.com/DavidGolodetsky/GeekScore-2\",\"rel\":\"noopener noreferrer\",\"target\":\"_blank\"}},[_c('span',{staticClass:\"mr-2\"},[_vm._v(\"Repo\")]),_c('v-icon',{attrs:{\"size\":\"18\",\"dark\":\"\"}},[_vm._v(\"mdi-code-tags\")])],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\nimport { defineComponent } from '@vue/composition-api'\n\nexport default defineComponent({\n name: 'TheFooter',\n setup() {\n const currentYear = new Date().getFullYear()\n const copyright = `2020 - ${currentYear}`\n\n return {\n copyright\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/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheFooter.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!./TheFooter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TheFooter.vue?vue&type=template&id=94c7db3e&scoped=true&\"\nimport script from \"./TheFooter.vue?vue&type=script&lang=ts&\"\nexport * from \"./TheFooter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TheFooter.vue?vue&type=style&index=0&id=94c7db3e&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 \"94c7db3e\",\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 { VFooter } from 'vuetify/lib/components/VFooter';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VLayout } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VContainer,VFooter,VIcon,VLayout})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"the-alert\"},[_c('transition',{attrs:{\"appear\":\"\",\"name\":\"fade-down\"}},[_c('v-alert',{attrs:{\"dismissible\":\"\",\"value\":\"\",\"type\":_vm.alertType},on:{\"input\":function($event){return _vm.onClose()}}},[_vm._v(\" \"+_vm._s(_vm.alertText)+\" \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, onMounted } from '@vue/composition-api';\nimport { vibrate } from '@/use/common';\nexport default defineComponent({\n name: 'TheAlert',\n props: {\n alertType: {\n type: String,\n required: true\n },\n alertText: {\n type: String,\n required: true\n }\n },\n setup(_, { root: { $store }, emit }) {\n onMounted(() => vibrate());\n\n const setError = () => $store.dispatch('setError');\n\n const onClose = () => {\n setError();\n emit('dismissed');\n };\n\n return {\n onClose\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/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheAlert.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!./TheAlert.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TheAlert.vue?vue&type=template&id=1be63a06&\"\nimport script from \"./TheAlert.vue?vue&type=script&lang=ts&\"\nexport * from \"./TheAlert.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TheAlert.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 { VAlert } from 'vuetify/lib/components/VAlert';\ninstallComponents(component, {VAlert})\n","\n\n\n\n\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 {\n defineComponent,\n // defineAsyncComponent,\n onMounted,\n ref,\n watch,\n computed\n} from '@vue/composition-api';\nimport TheHeader from '@/components/TheHeader.vue';\nimport TheFooter from '@/components/TheFooter.vue';\nimport TheAlert from '@/components/TheAlert.vue';\nimport { setupFb } from '@/auth';\n// import { VueOfflineMixin } from 'vue-offline';\n// TODO: load async\n// const TheAlert = defineAsyncComponent(() => import('@/components/TheAlert.vue'))\n\nexport default defineComponent({\n name: 'App',\n components: {\n TheHeader,\n TheFooter,\n TheAlert\n },\n // TODO: composition-api with mixins?\n // mixins: [VueOfflineMixin],\n setup(_, ctx) {\n const store = ctx.root.$store;\n\n const isGoTopBtn = ref(false);\n\n const isOffline = ref(false);\n\n const GoTopBtnOtions = ref({\n duration: 300,\n offset: 0,\n easing: 'easeInOutCubic'\n });\n\n onMounted(() => setupFb());\n\n const isLoading = computed(() => store.getters['loading']);\n\n const error = computed(() => store.getters['error']);\n\n const isAlert = computed(() => isOffline.value || error.value);\n\n const setError = () => store.dispatch('setError');\n\n watch(isAlert, val => {\n if (val) {\n setTimeout(() => setError(), 10000);\n }\n });\n\n const offlineMessage =\n 'Geek Score is offline. Some features might be disabled';\n\n const alertType = computed(() => (isOffline.value ? 'warning' : 'error'));\n\n const alertText = computed(() =>\n isOffline.value ? offlineMessage : error.value.message\n );\n\n const onScroll = () => {\n if (window.pageYOffset > 500) return (isGoTopBtn.value = true);\n\n if (isGoTopBtn.value && window.pageYOffset < 500) {\n isGoTopBtn.value = false;\n }\n };\n\n return {\n alertType,\n alertText,\n isAlert,\n onScroll,\n isLoading,\n isGoTopBtn,\n isOffline,\n GoTopBtnOtions\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/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/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=47a4ed8c&scoped=true&\"\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&id=47a4ed8c&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 \"47a4ed8c\",\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 { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VMain } from 'vuetify/lib/components/VMain';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VApp,VBtn,VContainer,VIcon,VMain,VProgressCircular})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Scroll from 'vuetify/lib/directives/scroll'\ninstallDirectives(component, {Scroll})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: {\n themes: {\n light: {\n primary: '#3D3D3C',\n secondary: '#ff9900',\n accent: '#ffb84d',\n error: '#f44336',\n warning: '#ffc107',\n info: '#03a9f4',\n success: '#8bc34a',\n silver: '#d9d9d8',\n bg: '#50514f',\n lightgrey: '#d9d9d8',\n label: '#6C6C6B'\n },\n },\n },\n});\n\n","/* eslint-disable no-console */\nimport { register } from 'register-service-worker';\n\nif (process.env.NODE_ENV === 'production') {\n register(`${process.env.BASE_URL}service-worker.js`, {\n ready() {\n console.log(\n 'App is being served from cache by a service worker.\\n' +\n 'For more details, visit https://goo.gl/AFskqB'\n );\n },\n registered() {\n console.log('Service worker has been registered.');\n },\n cached() {\n console.log('Content has been cached for offline use.');\n },\n updatefound() {\n console.log('New content is downloading.');\n },\n updated() {\n console.log('New content is available; please refresh.');\n },\n offline() {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n },\n error(error) {\n console.error('Error during service worker registration:', error);\n }\n });\n}\n","import Vue from 'vue';\nimport App from './App.vue';\nimport vuetify from './plugins/vuetify';\nimport router from './router';\nimport store from './store';\nimport VueOffline from 'vue-offline';\nimport VueGtag from 'vue-gtag';\nimport VueCompositionAPI from '@vue/composition-api';\nimport './registerServiceWorker';\n\nconst isDev = process.env.NODE_ENV !== 'production';\n\nVue.config.productionTip = isDev;\nVue.config.performance = isDev;\n\nVue.config.errorHandler = (err, vm, info) => {\n // eslint-disable-next-line no-console\n console.error(err, vm, info);\n};\n\n// eslint-disable-next-line no-console\nVue.prototype.$log = console.log;\n\nVue.use(VueCompositionAPI);\n\nVue.use(VueGtag, { config: { id: 'G-K9MXTWVK3R' } });\n\nVue.use(VueOffline, {\n mixin: false,\n storage: false\n});\n\n// Registering global components automatically\nconst requireComponent = require.context(\n './components',\n true,\n /Base[A-Z]\\w+\\.(vue|js)$/\n);\nrequireComponent.keys().forEach(fileName => {\n let baseComponentConfig = requireComponent(fileName);\n baseComponentConfig = baseComponentConfig.default || baseComponentConfig;\n const baseComponentName =\n baseComponentConfig.name ||\n fileName.replace(/^.+\\//, '').replace(/\\.\\w+$/, '');\n Vue.component(baseComponentName, baseComponentConfig);\n});\n\nnew Vue({\n vuetify,\n router,\n store,\n render: h => h(App)\n}).$mount('#app');\n","import { Game, Player, Team } from '@/types';\n\nexport const vibrate = (time = 300) => {\n // checking if mobile screen\n if (window.innerWidth < 600) {\n window.navigator.vibrate(time);\n }\n};\n\nexport const generateNumberOfPlayers = (numberOfPlayers: number) => {\n const players = Array(numberOfPlayers)\n .join(',')\n .split(',');\n return players.map((v, i) => i + 1);\n};\n\nexport const getNames = (list: []) => {\n return list?.map((obj: Game | Team | Player) => {\n return obj.name;\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/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheAlert.vue?vue&type=style&index=0&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',[_c('div',{on:{\"click\":function($event){$event.preventDefault();_vm.dialog = true}}},[_vm._t(\"activator\",function(){return [_c('v-btn',{staticClass:\"px-0 mr-2\",attrs:{\"id\":(\"activator_\" + _vm.activatorText),\"small\":_vm.simple,\"fab\":\"\",\"aria-label\":\"Open modal\",\"text\":_vm.simple,\"color\":_vm.color}},[_c('v-icon',{attrs:{\"dark\":\"\"}},[_vm._v(\"mdi-\"+_vm._s(_vm.activatorIcon))])],1),_c('label',{staticClass:\"label_text\",attrs:{\"for\":(\"activator_\" + _vm.activatorText)}},[_vm._v(_vm._s(_vm.activatorText))])]})],2),_c('v-dialog',{attrs:{\"max-width\":\"600\"},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{staticClass:\"BaseDialog\"},[_c('v-card-title',[_c('h3',{staticClass:\"app-headline\"},[_vm._v(_vm._s(_vm.header))]),_c('v-spacer'),_c('v-btn',{attrs:{\"small\":\"\",\"aria-label\":\"Close modal\",\"fab\":\"\",\"text\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',{attrs:{\"dark\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1),_c('v-form',{ref:\"form\",attrs:{\"lazy-validation\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit.apply(null, arguments)}},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-card-text',[_c('v-container',[_vm._t(\"default\")],2)],1),_c('v-card-actions',{staticClass:\"footer\"},[_c('v-spacer'),_vm._t(\"footer\",function(){return [_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"secondary darken-1\",\"outlined\":\"\"},on:{\"click\":_vm.close}},[_vm._v(\"Cancel\")]),_c('v-btn',{attrs:{\"color\":\"secondary darken-1\",\"outlined\":\"\",\"type\":\"submit\",\"disabled\":!_vm.valid}},[_vm._v(\"Submit\")])]})],2)],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\n\n\n\n\n\n\n\n\n\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 { defineComponent, ref } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'BaseDialog',\n props: {\n activatorIcon: {\n type: String,\n default: ''\n },\n header: {\n type: String,\n required: true\n },\n color: {\n type: String,\n default: 'secondary'\n },\n activatorText: {\n type: String,\n default: ''\n },\n simple: {\n type: Boolean\n }\n },\n setup(_, { emit }) {\n const dialog = ref(false);\n const valid = ref(false);\n\n const close = () => {\n dialog.value = false;\n };\n const onSubmit = () => {\n emit('submit');\n close();\n };\n\n return { dialog, valid, onSubmit, 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/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseDialog.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!./BaseDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BaseDialog.vue?vue&type=template&id=29f89144&scoped=true&\"\nimport script from \"./BaseDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./BaseDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BaseDialog.vue?vue&type=style&index=0&id=29f89144&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 \"29f89144\",\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 { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VContainer,VDialog,VForm,VIcon,VSpacer})\n"],"sourceRoot":""} \ No newline at end of file diff --git a/public/js/chunk-7b3231b7.a4e625c1.js b/public/js/chunk-7b3231b7.5e02fd47.js similarity index 99% rename from public/js/chunk-7b3231b7.a4e625c1.js rename to public/js/chunk-7b3231b7.5e02fd47.js index f189d67..1c9900f 100644 --- a/public/js/chunk-7b3231b7.a4e625c1.js +++ b/public/js/chunk-7b3231b7.5e02fd47.js @@ -1,2 +1,2 @@ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-7b3231b7"],{5311:function(e,t,a){"use strict";var i=a("5607"),n=a("2b0e");t["a"]=n["default"].extend({name:"rippleable",directives:{ripple:i["a"]},props:{ripple:{type:[Boolean,Object],default:!0}},methods:{genRipple:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.ripple?(e.staticClass="v-input--selection-controls__ripple",e.directives=e.directives||[],e.directives.push({name:"ripple",value:{center:!0}}),this.$createElement("div",e)):null}}})},"56c4":function(e,t,a){"use strict";a.r(t);var i=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("BaseDialog",{attrs:{"activator-icon":"plus",header:"Add team","button-text":"Add team"},on:{submit:e.submitTeam}},[a("v-tabs",{on:{change:e.resetForm},model:{value:e.currentTab,callback:function(t){e.currentTab=t},expression:"currentTab"}},[a("v-tabs-slider",{attrs:{color:"secondary"}}),e._l(e.tabs,(function(t,i){return a("v-tab",{key:i,attrs:{href:"#tab-"+i}},[a("span",{staticClass:"mt-2"},[e._v(e._s(t))])])}))],2),a("v-tabs-items",{staticClass:"pt-4 px-4",model:{value:e.currentTab,callback:function(t){e.currentTab=t},expression:"currentTab"}},[a("v-tab-item",{attrs:{value:"tab-0"}},[a("v-select",{attrs:{"prepend-icon":"mdi-account-multiple-plus-outline",autofocus:"",items:e.filteredTeams,rules:e.isSelectTeamTab?e.selectRules:[],"item-text":"name","item-value":"_id",label:"Team"},model:{value:e.selectedTeamId,callback:function(t){e.selectedTeamId=t},expression:"selectedTeamId"}})],1),a("v-tab-item",{attrs:{value:"tab-1"}},[a("v-text-field",{attrs:{clearable:"",autofocus:"",rules:e.isSelectTeamTab?[]:e.nameRules,"prepend-icon":"mdi-account-group-outline",label:"Name"},model:{value:e.name,callback:function(t){e.name="string"===typeof t?t.trim():t},expression:"name"}}),a("v-select",{attrs:{"prepend-icon":"mdi-account-multiple-plus-outline",items:e.numberOfPlayers,rules:e.isSelectTeamTab?[]:e.selectRules,label:"Number of players"},on:{change:e.setPlayers}}),a("span",e._l(e.players,(function(t,i){return a("v-text-field",{key:i,attrs:{readonly:t.isMe,clearable:!t.isMe,"prepend-icon":"mdi-account-outline",rules:e.isSelectTeamTab&&t.isMe?[]:e.playerRules,label:"Player #"+(i+1)},on:{input:e.updatePlayers},model:{value:t.name,callback:function(a){e.$set(t,"name","string"===typeof a?a.trim():a)},expression:"player.name"}})})),1),a("v-switch",{attrs:{label:"Cooperative",color:"secondary","hide-details":""},model:{value:e.coop,callback:function(t){e.coop=t},expression:"coop"}})],1)],1)],1)},n=[],s=a("2909"),l=(a("99af"),a("d81d"),a("b0c0"),a("4de4"),a("caad"),a("2532"),a("a6f4")),r=a("d770"),u=a("9dd9"),o=Object(l["h"])({name:"TeamsAddDialog",props:{gameId:{type:String,required:!0}},setup:function(e,t){var a=t.root.$store,i=Object(l["Q"])(e),n=i.gameId,o=Object(l["J"])(""),c=Object(l["J"])(!1),d=Object(l["J"])([]),h=Object(l["J"])([].concat(Object(s["a"])(u["e"]),[u["c"]])),v=Object(l["J"])([].concat(Object(s["a"])(u["e"]),[u["c"]])),p=Object(l["J"])([u["c"]]),m=Object(l["J"])(null),f=Object(l["J"])(null),b=Object(l["J"])(["Select team","Create New"]),g=Object(l["J"])(Object(r["a"])(8)),y=function(e,t){return[function(a){return Object(u["g"])(a,Object(r["b"])(e),t)}]},O=function(){return a.getters["teams/getGameTeams"](n.value)},T=function(e){return a.getters["games/getGame"](e)},j=function(e){return a.getters["teams/getTeam"](e)},w=Object(l["b"])((function(){return n.value?O():null})),C=Object(l["b"])((function(){return a.state.games.games})),S=Object(l["b"])((function(){return a.state.user.user})),V=Object(l["b"])((function(){return a.state.teams.teams})),k=Object(l["b"])((function(){var e;return null!==(e=C.value)&&void 0!==e?e:T(n.value)})),x=Object(l["b"])((function(){return"tab-0"===f.value})),A=Object(l["b"])((function(){return k.value?k.value.coop||c.value:null})),_=Object(l["b"])((function(){var e,t=null===(e=w.value)||void 0===e?void 0:e.map((function(e){return e.name}));return V.value?V.value.filter((function(e){return!t.includes(e.name)})):[]})),D=function(e){var t;1===e&&(c.value=!0);var a=null!==(t=S.value)&&void 0!==t&&t.username?S.value.username:"Me";d.value=[{name:a,isMe:!0}];for(var i=1;i=2),a="Field is too short";return!e||(t||a)},l=function(e){var t=!(null===e||void 0===e||!e.replace(/\s/g,"").length),a="Field contains only whitespaces";return!e||(t||a)},r=function(e){var t=null===e||void 0===e?void 0:e.slice(0,100),a=/.+@.+\..+/.test(t),i="E-mail must be valid";return!e||(a||i)},u=function(e){var t=!!((null===e||void 0===e?void 0:e.length)>=6),a="Password is too short";return!e||(t||a)},o=function(e){var t=!(null===e||void 0===e||!e.match(/(https?:\/\/[^\s]+)/g)),a="Please provide a correct link";return!e||(t||a)},c=function(e,t,a){var i=null===t||void 0===t?void 0:t.filter((function(t){return t===e})),n=a?(null===i||void 0===i?void 0:i.length)>=1:(null===i||void 0===i?void 0:i.length)>1,s="This field should be unique";return!e||(!n||s)},d=[n,s,l]},b73d:function(e,t,a){"use strict";var i=a("15fd"),n=a("5530"),s=(a("0481"),a("ec29"),a("9d01"),a("fe09")),l=a("c37a"),r=a("c3f0"),u=a("0789"),o=a("490a"),c=a("80d2"),d=["title"];t["a"]=s["a"].extend({name:"v-switch",directives:{Touch:r["a"]},props:{inset:Boolean,loading:{type:[Boolean,String],default:!1},flat:{type:Boolean,default:!1}},computed:{classes:function(){return Object(n["a"])(Object(n["a"])({},l["a"].options.computed.classes.call(this)),{},{"v-input--selection-controls v-input--switch":!0,"v-input--switch--flat":this.flat,"v-input--switch--inset":this.inset})},attrs:function(){return{"aria-checked":String(this.isActive),"aria-disabled":String(this.isDisabled),role:"switch"}},validationState:function(){return this.hasError&&this.shouldValidate?"error":this.hasSuccess?"success":null!==this.hasColor?this.computedColor:void 0},switchData:function(){return this.setTextColor(this.loading?void 0:this.validationState,{class:this.themeClasses})}},methods:{genDefaultSlot:function(){return[this.genSwitch(),this.genLabel()]},genSwitch:function(){var e=this.attrs$,t=(e.title,Object(i["a"])(e,d));return this.$createElement("div",{staticClass:"v-input--selection-controls__input"},[this.genInput("checkbox",Object(n["a"])(Object(n["a"])({},this.attrs),t)),this.genRipple(this.setTextColor(this.validationState,{directives:[{name:"touch",value:{left:this.onSwipeLeft,right:this.onSwipeRight}}]})),this.$createElement("div",Object(n["a"])({staticClass:"v-input--switch__track"},this.switchData)),this.$createElement("div",Object(n["a"])({staticClass:"v-input--switch__thumb"},this.switchData),[this.genProgress()])])},genProgress:function(){return this.$createElement(u["c"],{},[!1===this.loading?null:this.$slots.progress||this.$createElement(o["a"],{props:{color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,size:16,width:2,indeterminate:!0}})])},onSwipeLeft:function(){this.isActive&&this.onChange()},onSwipeRight:function(){this.isActive||this.onChange()},onKeydown:function(e){(e.keyCode===c["x"].left&&this.isActive||e.keyCode===c["x"].right&&!this.isActive)&&this.onChange()}}})},ec29:function(e,t,a){},fe09:function(e,t,a){"use strict";a.d(t,"b",(function(){return r}));a("d3b7"),a("25f0"),a("4de4");var i=a("c37a"),n=a("5311"),s=a("8547"),l=a("58df");function r(e){e.preventDefault()}t["a"]=Object(l["a"])(i["a"],n["a"],s["a"]).extend({name:"selectable",model:{prop:"inputValue",event:"change"},props:{id:String,inputValue:null,falseValue:null,trueValue:null,multiple:{type:Boolean,default:null},label:String},data:function(){return{hasColor:this.inputValue,lazyValue:this.inputValue}},computed:{computedColor:function(){if(this.isActive)return this.color?this.color:this.isDark&&!this.appIsDark?"white":"primary"},isMultiple:function(){return!0===this.multiple||null===this.multiple&&Array.isArray(this.internalValue)},isActive:function(){var e=this,t=this.value,a=this.internalValue;return this.isMultiple?!!Array.isArray(a)&&a.some((function(a){return e.valueComparator(a,t)})):void 0===this.trueValue||void 0===this.falseValue?t?this.valueComparator(t,a):Boolean(a):this.valueComparator(a,this.trueValue)},isDirty:function(){return this.isActive},rippleState:function(){return this.isDisabled||this.validationState?this.validationState:void 0}},watch:{inputValue:function(e){this.lazyValue=e,this.hasColor=e}},methods:{genLabel:function(){var e=i["a"].options.methods.genLabel.call(this);return e?(e.data.on={click:r},e):e},genInput:function(e,t){return this.$createElement("input",{attrs:Object.assign({"aria-checked":this.isActive.toString(),disabled:this.isDisabled,id:this.computedId,role:e,type:e},t),domProps:{value:this.value,checked:this.isActive},on:{blur:this.onBlur,change:this.onChange,focus:this.onFocus,keydown:this.onKeydown,click:r},ref:"input"})},onBlur:function(){this.isFocused=!1},onClick:function(e){this.onChange(),this.$emit("click",e)},onChange:function(){var e=this;if(this.isInteractive){var t=this.value,a=this.internalValue;if(this.isMultiple){Array.isArray(a)||(a=[]);var i=a.length;a=a.filter((function(a){return!e.valueComparator(a,t)})),a.length===i&&a.push(t)}else a=void 0!==this.trueValue&&void 0!==this.falseValue?this.valueComparator(a,this.trueValue)?this.falseValue:this.trueValue:t?this.valueComparator(a,t)?null:t:!a;this.validate(!0,a),this.internalValue=a,this.hasColor=a}},onFocus:function(){this.isFocused=!0},onKeydown:function(e){}}})}}]); -//# sourceMappingURL=chunk-7b3231b7.a4e625c1.js.map \ No newline at end of file +//# sourceMappingURL=chunk-7b3231b7.5e02fd47.js.map \ No newline at end of file diff --git a/public/js/chunk-7b3231b7.a4e625c1.js.map b/public/js/chunk-7b3231b7.5e02fd47.js.map similarity index 58% rename from public/js/chunk-7b3231b7.a4e625c1.js.map rename to public/js/chunk-7b3231b7.5e02fd47.js.map index b387d40..b769d52 100644 --- a/public/js/chunk-7b3231b7.a4e625c1.js.map +++ b/public/js/chunk-7b3231b7.5e02fd47.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///../../../src/mixins/rippleable/index.ts","webpack:///./src/components/TeamsAddDialog.vue?8b99","webpack:///./src/components/TeamsAddDialog.vue","webpack:///./src/components/TeamsAddDialog.vue?2cf3","webpack:///./src/components/TeamsAddDialog.vue?ccc1","webpack:///./src/use/validations.ts","webpack:///../../../src/components/VSwitch/VSwitch.ts","webpack:///../../../src/mixins/selectable/index.ts"],"names":["name","directives","ripple","props","type","Boolean","default","methods","genRipple","data","this","value","center","$createElement","render","_vm","_h","_c","_self","attrs","on","submitTeam","resetForm","model","callback","$$v","currentTab","expression","_l","tab","i","key","staticClass","_v","_s","filteredTeams","isSelectTeamTab","selectRules","selectedTeamId","nameRules","trim","numberOfPlayers","setPlayers","player","isMe","playerRules","updatePlayers","$set","coop","staticRenderFns","gameId","String","required","setup","$store","root","players","tabs","uniqueRule","list","isOnly","field","getGameTeams","getters","getGame","getTeam","teamId","gameTeams","games","state","user","teams","game","isCoop","teamNames","map","team","filter","t","includes","$ev","myName","username","push","createNewTeam","gameName","dispatch","addExistingTeam","payload","_id","component","VSelect","VSwitch","VTab","VTabItem","VTabs","VTabsItems","VTabsSlider","VTextField","requiredField","v","tooLongField","condition","length","message","tooShortField","onlyWhitespaces","replace","emailField","slicedV","slice","test","shortPassword","linkField","match","uniqueField","found","standardField","Touch","inset","loading","flat","computed","classes","role","validationState","hasError","hasColor","switchData","setTextColor","undefined","class","themeClasses","genDefaultSlot","genSwitch","switchAttrs","genInput","left","right","onSwipeRight","genProgress","$slots","progress","color","size","width","indeterminate","onSwipeLeft","onChange","onKeydown","e","prop","event","id","inputValue","falseValue","trueValue","multiple","label","lazyValue","computedColor","isDark","isMultiple","Array","isActive","input","item","valueComparator","isDirty","rippleState","watch","genLabel","click","prevent","Object","disabled","domProps","checked","blur","change","focus","keydown","ref","onBlur","onClick","onFocus"],"mappings":"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","file":"js/chunk-7b3231b7.a4e625c1.js","sourcesContent":["// Directives\nimport ripple from '../../directives/ripple'\n\n// Types\nimport Vue, { VNode, VNodeData, VNodeDirective } from 'vue'\n\nexport default Vue.extend({\n name: 'rippleable',\n\n directives: { ripple },\n\n props: {\n ripple: {\n type: [Boolean, Object],\n default: true,\n },\n },\n\n methods: {\n genRipple (data: VNodeData = {}): VNode | null {\n if (!this.ripple) return null\n\n data.staticClass = 'v-input--selection-controls__ripple'\n\n data.directives = data.directives || []\n data.directives.push({\n name: 'ripple',\n value: { center: true },\n } as VNodeDirective)\n\n return this.$createElement('div', data)\n },\n },\n})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('BaseDialog',{attrs:{\"activator-icon\":\"plus\",\"header\":\"Add team\",\"button-text\":\"Add team\"},on:{\"submit\":_vm.submitTeam}},[_c('v-tabs',{on:{\"change\":_vm.resetForm},model:{value:(_vm.currentTab),callback:function ($$v) {_vm.currentTab=$$v},expression:\"currentTab\"}},[_c('v-tabs-slider',{attrs:{\"color\":\"secondary\"}}),_vm._l((_vm.tabs),function(tab,i){return _c('v-tab',{key:i,attrs:{\"href\":(\"#tab-\" + i)}},[_c('span',{staticClass:\"mt-2\"},[_vm._v(_vm._s(tab))])])})],2),_c('v-tabs-items',{staticClass:\"pt-4 px-4\",model:{value:(_vm.currentTab),callback:function ($$v) {_vm.currentTab=$$v},expression:\"currentTab\"}},[_c('v-tab-item',{attrs:{\"value\":\"tab-0\"}},[_c('v-select',{attrs:{\"prepend-icon\":\"mdi-account-multiple-plus-outline\",\"autofocus\":\"\",\"items\":_vm.filteredTeams,\"rules\":_vm.isSelectTeamTab ? _vm.selectRules : [],\"item-text\":\"name\",\"item-value\":\"_id\",\"label\":\"Team\"},model:{value:(_vm.selectedTeamId),callback:function ($$v) {_vm.selectedTeamId=$$v},expression:\"selectedTeamId\"}})],1),_c('v-tab-item',{attrs:{\"value\":\"tab-1\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"autofocus\":\"\",\"rules\":_vm.isSelectTeamTab ? [] : _vm.nameRules,\"prepend-icon\":\"mdi-account-group-outline\",\"label\":\"Name\"},model:{value:(_vm.name),callback:function ($$v) {_vm.name=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"name\"}}),_c('v-select',{attrs:{\"prepend-icon\":\"mdi-account-multiple-plus-outline\",\"items\":_vm.numberOfPlayers,\"rules\":_vm.isSelectTeamTab ? [] : _vm.selectRules,\"label\":\"Number of players\"},on:{\"change\":_vm.setPlayers}}),_c('span',_vm._l((_vm.players),function(player,i){return _c('v-text-field',{key:i,attrs:{\"readonly\":player.isMe,\"clearable\":!player.isMe,\"prepend-icon\":\"mdi-account-outline\",\"rules\":_vm.isSelectTeamTab && player.isMe ? [] : _vm.playerRules,\"label\":(\"Player #\" + (i + 1))},on:{\"input\":_vm.updatePlayers},model:{value:(player.name),callback:function ($$v) {_vm.$set(player, \"name\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"player.name\"}})}),1),_c('v-switch',{attrs:{\"label\":\"Cooperative\",\"color\":\"secondary\",\"hide-details\":\"\"},model:{value:(_vm.coop),callback:function ($$v) {_vm.coop=$$v},expression:\"coop\"}})],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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed, toRefs, ref } from '@vue/composition-api';\nimport { getNames, generateNumberOfPlayers } from '@/use/common';\nimport { requiredField, standardField, uniqueField } from '@/use/validations';\nimport { Team } from '@/types';\n\nexport default defineComponent({\n name: 'TeamsAddDialog',\n props: {\n gameId: {\n type: String,\n required: true\n }\n },\n setup(props, { root: { $store } }) {\n const { gameId } = toRefs(props);\n\n const name = ref('');\n const coop = ref(false);\n const players: any = ref([]);\n const nameRules = ref([...standardField, requiredField]);\n const playerRules = ref([...standardField, requiredField]);\n const selectRules = ref([requiredField]);\n const selectedTeamId = ref(null);\n const currentTab = ref(null);\n const tabs = ref(['Select team', 'Create New']);\n const numberOfPlayers = ref(generateNumberOfPlayers(8));\n\n const uniqueRule = (list: any, isOnly: boolean) => [\n (field: any) => uniqueField(field, getNames(list), isOnly)\n ];\n\n const getGameTeams = () =>\n $store.getters['teams/getGameTeams'](gameId.value);\n\n const getGame = (gameId: string) => $store.getters['games/getGame'](gameId);\n const getTeam = (teamId: string) => $store.getters['teams/getTeam'](teamId);\n\n const gameTeams = computed(() => (gameId.value ? getGameTeams() : null));\n\n const games = computed(() => $store.state.games.games);\n const user = computed(() => $store.state.user.user);\n const teams = computed(() => $store.state.teams.teams);\n\n const game = computed(() => games.value ?? getGame(gameId.value));\n\n const isSelectTeamTab = computed(() => currentTab.value === 'tab-0');\n\n const isCoop = computed(() => {\n if (!game.value) return null;\n return game.value.coop || coop.value;\n });\n\n const filteredTeams = computed(() => {\n let teamNames = gameTeams.value?.map((team: Team) => team.name);\n return teams.value\n ? teams.value.filter((t: Team) => !teamNames.includes(t.name))\n : [];\n });\n\n const setPlayers = ($ev: any) => {\n if ($ev === 1) coop.value = true;\n let myName = user.value?.username ? user.value.username : 'Me';\n players.value = [{ name: myName, isMe: true }];\n for (let i = 1; i < $ev; i++) {\n let player = { name: '' };\n players.value.push(player);\n }\n };\n\n const updatePlayers = () => {\n // @ts-ignore\n playerRules.value = [...playerRules.value, ...uniqueRule(players.value)];\n };\n\n const resetForm = () => {\n name.value = '';\n numberOfPlayers.value = generateNumberOfPlayers(8);\n selectedTeamId.value = null;\n };\n\n const createNewTeam = () => {\n const team = {\n games: [gameId.value],\n gameName: game.value.name,\n name: name.value,\n coop: isCoop.value,\n players: players.value\n };\n $store.dispatch('teams/createTeam', team);\n };\n\n const addExistingTeam = () => {\n const team = getTeam(selectedTeamId.value!);\n const payload = {\n _id: selectedTeamId.value,\n games: [...team.games, gameId.value]\n };\n $store.dispatch('teams/updateTeam', payload);\n };\n\n const submitTeam = () => {\n if (name.value || selectedTeamId.value) {\n selectedTeamId.value ? addExistingTeam() : createNewTeam();\n }\n resetForm();\n };\n\n return {\n gameTeams,\n uniqueRule,\n isSelectTeamTab,\n submitTeam,\n updatePlayers,\n setPlayers,\n filteredTeams,\n nameRules,\n playerRules,\n selectRules,\n tabs,\n name,\n coop,\n players,\n selectedTeamId,\n currentTab,\n resetForm,\n numberOfPlayers\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/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TeamsAddDialog.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!./TeamsAddDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TeamsAddDialog.vue?vue&type=template&id=c72a46f6&\"\nimport script from \"./TeamsAddDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./TeamsAddDialog.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/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsItems } from 'vuetify/lib/components/VTabs';\nimport { VTabsSlider } from 'vuetify/lib/components/VTabs';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VSelect,VSwitch,VTab,VTabItem,VTabs,VTabsItems,VTabsSlider,VTextField})\n","export const requiredField = (v: string | number) => !!v || 'Field is required';\n\nexport const tooLongField = (v: string) => {\n const condition = !!(v?.length <= 100);\n const message = 'Field is too long';\n return v ? condition || message : true;\n};\n\nexport const tooShortField = (v: string) => {\n const condition = !!(v?.length >= 2);\n const message = 'Field is too short';\n return v ? condition || message : true;\n};\n\nexport const onlyWhitespaces = (v: string) => {\n const condition = !!v?.replace(/\\s/g, '').length;\n const message = 'Field contains only whitespaces';\n return v ? condition || message : true;\n};\n\nexport const emailField = (v: string) => {\n const slicedV = v?.slice(0, 100);\n const condition = /.+@.+\\..+/.test(slicedV);\n const message = 'E-mail must be valid';\n return v ? condition || message : true;\n};\n\nexport const shortPassword = (v: string) => {\n const condition = !!(v?.length >= 6);\n const message = 'Password is too short';\n return v ? condition || message : true;\n};\n\nexport const linkField = (v: string) => {\n const condition = !!v?.match(/(https?:\\/\\/[^\\s]+)/g);\n const message = 'Please provide a correct link';\n return v ? condition || message : true;\n};\n\nexport const uniqueField = (v: string, list: string[], isOnly?: boolean) => {\n const found = list?.filter((name: string) => name === v);\n const condition = isOnly ? found?.length >= 1 : found?.length > 1;\n const message = 'This field should be unique';\n return v ? !condition || message : true;\n};\n\nexport const standardField = [tooLongField, tooShortField, onlyWhitespaces];\n","// Styles\nimport '../../styles/components/_selection-controls.sass'\nimport './VSwitch.sass'\n\n// Mixins\nimport Selectable from '../../mixins/selectable'\nimport VInput from '../VInput'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Components\nimport { VFabTransition } from '../transitions'\nimport VProgressCircular from '../VProgressCircular/VProgressCircular'\n\n// Helpers\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\n/* @vue/component */\nexport default Selectable.extend({\n name: 'v-switch',\n\n directives: { Touch },\n\n props: {\n inset: Boolean,\n loading: {\n type: [Boolean, String],\n default: false,\n },\n flat: {\n type: Boolean,\n default: false,\n },\n },\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input--selection-controls v-input--switch': true,\n 'v-input--switch--flat': this.flat,\n 'v-input--switch--inset': this.inset,\n }\n },\n attrs (): object {\n return {\n 'aria-checked': String(this.isActive),\n 'aria-disabled': String(this.isDisabled),\n role: 'switch',\n }\n },\n // Do not return undefined if disabled,\n // according to spec, should still show\n // a color when disabled and active\n validationState (): string | undefined {\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor !== null) return this.computedColor\n return undefined\n },\n switchData (): VNodeData {\n return this.setTextColor(this.loading ? undefined : this.validationState, {\n class: this.themeClasses,\n })\n },\n },\n\n methods: {\n genDefaultSlot (): (VNode | null)[] {\n return [\n this.genSwitch(),\n this.genLabel(),\n ]\n },\n genSwitch (): VNode {\n const { title, ...switchAttrs } = this.attrs$\n\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input',\n }, [\n this.genInput('checkbox', {\n ...this.attrs,\n ...switchAttrs,\n }),\n this.genRipple(this.setTextColor(this.validationState, {\n directives: [{\n name: 'touch',\n value: {\n left: this.onSwipeLeft,\n right: this.onSwipeRight,\n },\n }],\n })),\n this.$createElement('div', {\n staticClass: 'v-input--switch__track',\n ...this.switchData,\n }),\n this.$createElement('div', {\n staticClass: 'v-input--switch__thumb',\n ...this.switchData,\n }, [this.genProgress()]),\n ])\n },\n genProgress (): VNode {\n return this.$createElement(VFabTransition, {}, [\n this.loading === false\n ? null\n : this.$slots.progress || this.$createElement(VProgressCircular, {\n props: {\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n size: 16,\n width: 2,\n indeterminate: true,\n },\n }),\n ])\n },\n onSwipeLeft () {\n if (this.isActive) this.onChange()\n },\n onSwipeRight () {\n if (!this.isActive) this.onChange()\n },\n onKeydown (e: KeyboardEvent) {\n if (\n (e.keyCode === keyCodes.left && this.isActive) ||\n (e.keyCode === keyCodes.right && !this.isActive)\n ) this.onChange()\n },\n },\n})\n","// Components\nimport VInput from '../../components/VInput'\n\n// Mixins\nimport Rippleable from '../rippleable'\nimport Comparable from '../comparable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport function prevent (e: Event) {\n e.preventDefault()\n}\n\n/* @vue/component */\nexport default mixins(\n VInput,\n Rippleable,\n Comparable\n).extend({\n name: 'selectable',\n\n model: {\n prop: 'inputValue',\n event: 'change',\n },\n\n props: {\n id: String,\n inputValue: null as any,\n falseValue: null as any,\n trueValue: null as any,\n multiple: {\n type: Boolean,\n default: null,\n },\n label: String,\n },\n\n data () {\n return {\n hasColor: this.inputValue,\n lazyValue: this.inputValue,\n }\n },\n\n computed: {\n computedColor (): string | undefined {\n if (!this.isActive) return undefined\n if (this.color) return this.color\n if (this.isDark && !this.appIsDark) return 'white'\n return 'primary'\n },\n isMultiple (): boolean {\n return this.multiple === true || (this.multiple === null && Array.isArray(this.internalValue))\n },\n isActive (): boolean {\n const value = this.value\n const input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) return false\n\n return input.some(item => this.valueComparator(item, value))\n }\n\n if (this.trueValue === undefined || this.falseValue === undefined) {\n return value\n ? this.valueComparator(value, input)\n : Boolean(input)\n }\n\n return this.valueComparator(input, this.trueValue)\n },\n isDirty (): boolean {\n return this.isActive\n },\n rippleState (): string | undefined {\n return !this.isDisabled && !this.validationState\n ? undefined\n : this.validationState\n },\n },\n\n watch: {\n inputValue (val) {\n this.lazyValue = val\n this.hasColor = val\n },\n },\n\n methods: {\n genLabel () {\n const label = VInput.options.methods.genLabel.call(this)\n\n if (!label) return label\n\n label!.data!.on = {\n // Label shouldn't cause the input to focus\n click: prevent,\n }\n\n return label\n },\n genInput (type: string, attrs: object) {\n return this.$createElement('input', {\n attrs: Object.assign({\n 'aria-checked': this.isActive.toString(),\n disabled: this.isDisabled,\n id: this.computedId,\n role: type,\n type,\n }, attrs),\n domProps: {\n value: this.value,\n checked: this.isActive,\n },\n on: {\n blur: this.onBlur,\n change: this.onChange,\n focus: this.onFocus,\n keydown: this.onKeydown,\n click: prevent,\n },\n ref: 'input',\n })\n },\n onBlur () {\n this.isFocused = false\n },\n onClick (e: Event) {\n this.onChange()\n this.$emit('click', e)\n },\n onChange () {\n if (!this.isInteractive) return\n\n const value = this.value\n let input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) {\n input = []\n }\n\n const length = input.length\n\n input = input.filter((item: any) => !this.valueComparator(item, value))\n\n if (input.length === length) {\n input.push(value)\n }\n } else if (this.trueValue !== undefined && this.falseValue !== undefined) {\n input = this.valueComparator(input, this.trueValue) ? this.falseValue : this.trueValue\n } else if (value) {\n input = this.valueComparator(input, value) ? null : value\n } else {\n input = !input\n }\n\n this.validate(true, input)\n this.internalValue = input\n this.hasColor = input\n },\n onFocus () {\n this.isFocused = true\n },\n /** @abstract */\n onKeydown (e: Event) {},\n },\n})\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///../../../src/mixins/rippleable/index.ts","webpack:///./src/components/TeamsAddDialog.vue?8efc","webpack:///./src/components/TeamsAddDialog.vue","webpack:///./src/components/TeamsAddDialog.vue?2cf3","webpack:///./src/components/TeamsAddDialog.vue?ccc1","webpack:///./src/use/validations.ts","webpack:///../../../src/components/VSwitch/VSwitch.ts","webpack:///../../../src/mixins/selectable/index.ts"],"names":["name","directives","ripple","props","type","Boolean","default","methods","genRipple","data","this","value","center","$createElement","render","_vm","_h","_c","_self","attrs","on","submitTeam","resetForm","model","callback","$$v","currentTab","expression","_l","tab","i","key","staticClass","_v","_s","filteredTeams","isSelectTeamTab","selectRules","selectedTeamId","nameRules","trim","numberOfPlayers","setPlayers","player","isMe","playerRules","updatePlayers","$set","coop","staticRenderFns","gameId","String","required","setup","$store","root","players","tabs","uniqueRule","list","isOnly","field","getGameTeams","getters","getGame","getTeam","teamId","gameTeams","games","state","user","teams","game","isCoop","teamNames","map","team","filter","t","includes","$ev","myName","username","push","createNewTeam","gameName","dispatch","addExistingTeam","payload","_id","component","VSelect","VSwitch","VTab","VTabItem","VTabs","VTabsItems","VTabsSlider","VTextField","requiredField","v","tooLongField","condition","length","message","tooShortField","onlyWhitespaces","replace","emailField","slicedV","slice","test","shortPassword","linkField","match","uniqueField","found","standardField","Touch","inset","loading","flat","computed","classes","role","validationState","hasError","hasColor","switchData","setTextColor","undefined","class","themeClasses","genDefaultSlot","genSwitch","switchAttrs","genInput","left","right","onSwipeRight","genProgress","$slots","progress","color","size","width","indeterminate","onSwipeLeft","onChange","onKeydown","e","prop","event","id","inputValue","falseValue","trueValue","multiple","label","lazyValue","computedColor","isDark","isMultiple","Array","isActive","input","item","valueComparator","isDirty","rippleState","watch","genLabel","click","prevent","Object","disabled","domProps","checked","blur","change","focus","keydown","ref","onBlur","onClick","onFocus"],"mappings":"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","file":"js/chunk-7b3231b7.5e02fd47.js","sourcesContent":["// Directives\nimport ripple from '../../directives/ripple'\n\n// Types\nimport Vue, { VNode, VNodeData, VNodeDirective } from 'vue'\n\nexport default Vue.extend({\n name: 'rippleable',\n\n directives: { ripple },\n\n props: {\n ripple: {\n type: [Boolean, Object],\n default: true,\n },\n },\n\n methods: {\n genRipple (data: VNodeData = {}): VNode | null {\n if (!this.ripple) return null\n\n data.staticClass = 'v-input--selection-controls__ripple'\n\n data.directives = data.directives || []\n data.directives.push({\n name: 'ripple',\n value: { center: true },\n } as VNodeDirective)\n\n return this.$createElement('div', data)\n },\n },\n})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('BaseDialog',{attrs:{\"activator-icon\":\"plus\",\"header\":\"Add team\",\"button-text\":\"Add team\"},on:{\"submit\":_vm.submitTeam}},[_c('v-tabs',{on:{\"change\":_vm.resetForm},model:{value:(_vm.currentTab),callback:function ($$v) {_vm.currentTab=$$v},expression:\"currentTab\"}},[_c('v-tabs-slider',{attrs:{\"color\":\"secondary\"}}),_vm._l((_vm.tabs),function(tab,i){return _c('v-tab',{key:i,attrs:{\"href\":(\"#tab-\" + i)}},[_c('span',{staticClass:\"mt-2\"},[_vm._v(_vm._s(tab))])])})],2),_c('v-tabs-items',{staticClass:\"pt-4 px-4\",model:{value:(_vm.currentTab),callback:function ($$v) {_vm.currentTab=$$v},expression:\"currentTab\"}},[_c('v-tab-item',{attrs:{\"value\":\"tab-0\"}},[_c('v-select',{attrs:{\"prepend-icon\":\"mdi-account-multiple-plus-outline\",\"autofocus\":\"\",\"items\":_vm.filteredTeams,\"rules\":_vm.isSelectTeamTab ? _vm.selectRules : [],\"item-text\":\"name\",\"item-value\":\"_id\",\"label\":\"Team\"},model:{value:(_vm.selectedTeamId),callback:function ($$v) {_vm.selectedTeamId=$$v},expression:\"selectedTeamId\"}})],1),_c('v-tab-item',{attrs:{\"value\":\"tab-1\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"autofocus\":\"\",\"rules\":_vm.isSelectTeamTab ? [] : _vm.nameRules,\"prepend-icon\":\"mdi-account-group-outline\",\"label\":\"Name\"},model:{value:(_vm.name),callback:function ($$v) {_vm.name=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"name\"}}),_c('v-select',{attrs:{\"prepend-icon\":\"mdi-account-multiple-plus-outline\",\"items\":_vm.numberOfPlayers,\"rules\":_vm.isSelectTeamTab ? [] : _vm.selectRules,\"label\":\"Number of players\"},on:{\"change\":_vm.setPlayers}}),_c('span',_vm._l((_vm.players),function(player,i){return _c('v-text-field',{key:i,attrs:{\"readonly\":player.isMe,\"clearable\":!player.isMe,\"prepend-icon\":\"mdi-account-outline\",\"rules\":_vm.isSelectTeamTab && player.isMe ? [] : _vm.playerRules,\"label\":(\"Player #\" + (i + 1))},on:{\"input\":_vm.updatePlayers},model:{value:(player.name),callback:function ($$v) {_vm.$set(player, \"name\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"player.name\"}})}),1),_c('v-switch',{attrs:{\"label\":\"Cooperative\",\"color\":\"secondary\",\"hide-details\":\"\"},model:{value:(_vm.coop),callback:function ($$v) {_vm.coop=$$v},expression:\"coop\"}})],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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed, toRefs, ref } from '@vue/composition-api';\nimport { getNames, generateNumberOfPlayers } from '@/use/common';\nimport { requiredField, standardField, uniqueField } from '@/use/validations';\nimport { Team } from '@/types';\n\nexport default defineComponent({\n name: 'TeamsAddDialog',\n props: {\n gameId: {\n type: String,\n required: true\n }\n },\n setup(props, { root: { $store } }) {\n const { gameId } = toRefs(props);\n\n const name = ref('');\n const coop = ref(false);\n const players: any = ref([]);\n const nameRules = ref([...standardField, requiredField]);\n const playerRules = ref([...standardField, requiredField]);\n const selectRules = ref([requiredField]);\n const selectedTeamId = ref(null);\n const currentTab = ref(null);\n const tabs = ref(['Select team', 'Create New']);\n const numberOfPlayers = ref(generateNumberOfPlayers(8));\n\n const uniqueRule = (list: any, isOnly: boolean) => [\n (field: any) => uniqueField(field, getNames(list), isOnly)\n ];\n\n const getGameTeams = () =>\n $store.getters['teams/getGameTeams'](gameId.value);\n\n const getGame = (gameId: string) => $store.getters['games/getGame'](gameId);\n const getTeam = (teamId: string) => $store.getters['teams/getTeam'](teamId);\n\n const gameTeams = computed(() => (gameId.value ? getGameTeams() : null));\n\n const games = computed(() => $store.state.games.games);\n const user = computed(() => $store.state.user.user);\n const teams = computed(() => $store.state.teams.teams);\n\n const game = computed(() => games.value ?? getGame(gameId.value));\n\n const isSelectTeamTab = computed(() => currentTab.value === 'tab-0');\n\n const isCoop = computed(() => {\n if (!game.value) return null;\n return game.value.coop || coop.value;\n });\n\n const filteredTeams = computed(() => {\n let teamNames = gameTeams.value?.map((team: Team) => team.name);\n return teams.value\n ? teams.value.filter((t: Team) => !teamNames.includes(t.name))\n : [];\n });\n\n const setPlayers = ($ev: any) => {\n if ($ev === 1) coop.value = true;\n let myName = user.value?.username ? user.value.username : 'Me';\n players.value = [{ name: myName, isMe: true }];\n for (let i = 1; i < $ev; i++) {\n let player = { name: '' };\n players.value.push(player);\n }\n };\n\n const updatePlayers = () => {\n // @ts-ignore\n playerRules.value = [...playerRules.value, ...uniqueRule(players.value)];\n };\n\n const resetForm = () => {\n name.value = '';\n numberOfPlayers.value = generateNumberOfPlayers(8);\n selectedTeamId.value = null;\n };\n\n const createNewTeam = () => {\n const team = {\n games: [gameId.value],\n gameName: game.value.name,\n name: name.value,\n coop: isCoop.value,\n players: players.value\n };\n $store.dispatch('teams/createTeam', team);\n };\n\n const addExistingTeam = () => {\n const team = getTeam(selectedTeamId.value!);\n const payload = {\n _id: selectedTeamId.value,\n games: [...team.games, gameId.value]\n };\n $store.dispatch('teams/updateTeam', payload);\n };\n const submitTeam = () => {\n if (name.value || selectedTeamId.value) {\n selectedTeamId.value ? addExistingTeam() : createNewTeam();\n }\n resetForm();\n };\n\n return {\n gameTeams,\n uniqueRule,\n isSelectTeamTab,\n submitTeam,\n updatePlayers,\n setPlayers,\n filteredTeams,\n nameRules,\n playerRules,\n selectRules,\n tabs,\n name,\n coop,\n players,\n selectedTeamId,\n currentTab,\n resetForm,\n numberOfPlayers\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/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TeamsAddDialog.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!./TeamsAddDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TeamsAddDialog.vue?vue&type=template&id=5d20c817&\"\nimport script from \"./TeamsAddDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./TeamsAddDialog.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/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsItems } from 'vuetify/lib/components/VTabs';\nimport { VTabsSlider } from 'vuetify/lib/components/VTabs';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VSelect,VSwitch,VTab,VTabItem,VTabs,VTabsItems,VTabsSlider,VTextField})\n","export const requiredField = (v: string | number) => !!v || 'Field is required';\n\nexport const tooLongField = (v: string) => {\n const condition = !!(v?.length <= 100);\n const message = 'Field is too long';\n return v ? condition || message : true;\n};\n\nexport const tooShortField = (v: string) => {\n const condition = !!(v?.length >= 2);\n const message = 'Field is too short';\n return v ? condition || message : true;\n};\n\nexport const onlyWhitespaces = (v: string) => {\n const condition = !!v?.replace(/\\s/g, '').length;\n const message = 'Field contains only whitespaces';\n return v ? condition || message : true;\n};\n\nexport const emailField = (v: string) => {\n const slicedV = v?.slice(0, 100);\n const condition = /.+@.+\\..+/.test(slicedV);\n const message = 'E-mail must be valid';\n return v ? condition || message : true;\n};\n\nexport const shortPassword = (v: string) => {\n const condition = !!(v?.length >= 6);\n const message = 'Password is too short';\n return v ? condition || message : true;\n};\n\nexport const linkField = (v: string) => {\n const condition = !!v?.match(/(https?:\\/\\/[^\\s]+)/g);\n const message = 'Please provide a correct link';\n return v ? condition || message : true;\n};\n\nexport const uniqueField = (v: string, list: string[], isOnly?: boolean) => {\n const found = list?.filter((name: string) => name === v);\n const condition = isOnly ? found?.length >= 1 : found?.length > 1;\n const message = 'This field should be unique';\n return v ? !condition || message : true;\n};\n\nexport const standardField = [tooLongField, tooShortField, onlyWhitespaces];\n","// Styles\nimport '../../styles/components/_selection-controls.sass'\nimport './VSwitch.sass'\n\n// Mixins\nimport Selectable from '../../mixins/selectable'\nimport VInput from '../VInput'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Components\nimport { VFabTransition } from '../transitions'\nimport VProgressCircular from '../VProgressCircular/VProgressCircular'\n\n// Helpers\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\n/* @vue/component */\nexport default Selectable.extend({\n name: 'v-switch',\n\n directives: { Touch },\n\n props: {\n inset: Boolean,\n loading: {\n type: [Boolean, String],\n default: false,\n },\n flat: {\n type: Boolean,\n default: false,\n },\n },\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input--selection-controls v-input--switch': true,\n 'v-input--switch--flat': this.flat,\n 'v-input--switch--inset': this.inset,\n }\n },\n attrs (): object {\n return {\n 'aria-checked': String(this.isActive),\n 'aria-disabled': String(this.isDisabled),\n role: 'switch',\n }\n },\n // Do not return undefined if disabled,\n // according to spec, should still show\n // a color when disabled and active\n validationState (): string | undefined {\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor !== null) return this.computedColor\n return undefined\n },\n switchData (): VNodeData {\n return this.setTextColor(this.loading ? undefined : this.validationState, {\n class: this.themeClasses,\n })\n },\n },\n\n methods: {\n genDefaultSlot (): (VNode | null)[] {\n return [\n this.genSwitch(),\n this.genLabel(),\n ]\n },\n genSwitch (): VNode {\n const { title, ...switchAttrs } = this.attrs$\n\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input',\n }, [\n this.genInput('checkbox', {\n ...this.attrs,\n ...switchAttrs,\n }),\n this.genRipple(this.setTextColor(this.validationState, {\n directives: [{\n name: 'touch',\n value: {\n left: this.onSwipeLeft,\n right: this.onSwipeRight,\n },\n }],\n })),\n this.$createElement('div', {\n staticClass: 'v-input--switch__track',\n ...this.switchData,\n }),\n this.$createElement('div', {\n staticClass: 'v-input--switch__thumb',\n ...this.switchData,\n }, [this.genProgress()]),\n ])\n },\n genProgress (): VNode {\n return this.$createElement(VFabTransition, {}, [\n this.loading === false\n ? null\n : this.$slots.progress || this.$createElement(VProgressCircular, {\n props: {\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n size: 16,\n width: 2,\n indeterminate: true,\n },\n }),\n ])\n },\n onSwipeLeft () {\n if (this.isActive) this.onChange()\n },\n onSwipeRight () {\n if (!this.isActive) this.onChange()\n },\n onKeydown (e: KeyboardEvent) {\n if (\n (e.keyCode === keyCodes.left && this.isActive) ||\n (e.keyCode === keyCodes.right && !this.isActive)\n ) this.onChange()\n },\n },\n})\n","// Components\nimport VInput from '../../components/VInput'\n\n// Mixins\nimport Rippleable from '../rippleable'\nimport Comparable from '../comparable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport function prevent (e: Event) {\n e.preventDefault()\n}\n\n/* @vue/component */\nexport default mixins(\n VInput,\n Rippleable,\n Comparable\n).extend({\n name: 'selectable',\n\n model: {\n prop: 'inputValue',\n event: 'change',\n },\n\n props: {\n id: String,\n inputValue: null as any,\n falseValue: null as any,\n trueValue: null as any,\n multiple: {\n type: Boolean,\n default: null,\n },\n label: String,\n },\n\n data () {\n return {\n hasColor: this.inputValue,\n lazyValue: this.inputValue,\n }\n },\n\n computed: {\n computedColor (): string | undefined {\n if (!this.isActive) return undefined\n if (this.color) return this.color\n if (this.isDark && !this.appIsDark) return 'white'\n return 'primary'\n },\n isMultiple (): boolean {\n return this.multiple === true || (this.multiple === null && Array.isArray(this.internalValue))\n },\n isActive (): boolean {\n const value = this.value\n const input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) return false\n\n return input.some(item => this.valueComparator(item, value))\n }\n\n if (this.trueValue === undefined || this.falseValue === undefined) {\n return value\n ? this.valueComparator(value, input)\n : Boolean(input)\n }\n\n return this.valueComparator(input, this.trueValue)\n },\n isDirty (): boolean {\n return this.isActive\n },\n rippleState (): string | undefined {\n return !this.isDisabled && !this.validationState\n ? undefined\n : this.validationState\n },\n },\n\n watch: {\n inputValue (val) {\n this.lazyValue = val\n this.hasColor = val\n },\n },\n\n methods: {\n genLabel () {\n const label = VInput.options.methods.genLabel.call(this)\n\n if (!label) return label\n\n label!.data!.on = {\n // Label shouldn't cause the input to focus\n click: prevent,\n }\n\n return label\n },\n genInput (type: string, attrs: object) {\n return this.$createElement('input', {\n attrs: Object.assign({\n 'aria-checked': this.isActive.toString(),\n disabled: this.isDisabled,\n id: this.computedId,\n role: type,\n type,\n }, attrs),\n domProps: {\n value: this.value,\n checked: this.isActive,\n },\n on: {\n blur: this.onBlur,\n change: this.onChange,\n focus: this.onFocus,\n keydown: this.onKeydown,\n click: prevent,\n },\n ref: 'input',\n })\n },\n onBlur () {\n this.isFocused = false\n },\n onClick (e: Event) {\n this.onChange()\n this.$emit('click', e)\n },\n onChange () {\n if (!this.isInteractive) return\n\n const value = this.value\n let input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) {\n input = []\n }\n\n const length = input.length\n\n input = input.filter((item: any) => !this.valueComparator(item, value))\n\n if (input.length === length) {\n input.push(value)\n }\n } else if (this.trueValue !== undefined && this.falseValue !== undefined) {\n input = this.valueComparator(input, this.trueValue) ? this.falseValue : this.trueValue\n } else if (value) {\n input = this.valueComparator(input, value) ? null : value\n } else {\n input = !input\n }\n\n this.validate(true, input)\n this.internalValue = input\n this.hasColor = input\n },\n onFocus () {\n this.isFocused = true\n },\n /** @abstract */\n onKeydown (e: Event) {},\n },\n})\n"],"sourceRoot":""} \ No newline at end of file diff --git a/public/precache-manifest.28e5a83aad137e8a3f65091accd991bb.js b/public/precache-manifest.f30a340756427e11fc8ac2c18ad4b32f.js similarity index 95% rename from public/precache-manifest.28e5a83aad137e8a3f65091accd991bb.js rename to public/precache-manifest.f30a340756427e11fc8ac2c18ad4b32f.js index 491197c..92f2262 100644 --- a/public/precache-manifest.28e5a83aad137e8a3f65091accd991bb.js +++ b/public/precache-manifest.f30a340756427e11fc8ac2c18ad4b32f.js @@ -4,7 +4,7 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/browserconfig.xml" }, { - "revision": "4a063ffc3ca85e67ea90", + "revision": "e2a563279efdf972b119", "url": "/css/app.f9b571c8.css" }, { @@ -40,7 +40,7 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/css/chunk-542101e2.d7df91b3.css" }, { - "revision": "9c2e4f279e9d447fd18b", + "revision": "32b4dbedb0c7b4495e0e", "url": "/css/chunk-7b3231b7.2c969a12.css" }, { @@ -144,12 +144,12 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/img/team.bf4c6f13.webp" }, { - "revision": "9906807b546fa646374ea05ecb77fdd4", + "revision": "b6ce762df0e889cdd47ee2d6dbfd441c", "url": "/index.html" }, { - "revision": "4a063ffc3ca85e67ea90", - "url": "/js/app.957f49da.js" + "revision": "e2a563279efdf972b119", + "url": "/js/app.359ff4ac.js" }, { "revision": "3d94ec61709b1a4b9e58", @@ -200,8 +200,8 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/js/chunk-542101e2.64a2745b.js" }, { - "revision": "9c2e4f279e9d447fd18b", - "url": "/js/chunk-7b3231b7.a4e625c1.js" + "revision": "32b4dbedb0c7b4495e0e", + "url": "/js/chunk-7b3231b7.5e02fd47.js" }, { "revision": "4ada7b00b47cf583bfc4", diff --git a/public/service-worker.js b/public/service-worker.js index 4bdd6d7..2b07d94 100644 --- a/public/service-worker.js +++ b/public/service-worker.js @@ -14,7 +14,7 @@ importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); importScripts( - "/precache-manifest.28e5a83aad137e8a3f65091accd991bb.js" + "/precache-manifest.f30a340756427e11fc8ac2c18ad4b32f.js" ); workbox.core.setCacheNameDetails({prefix: "geek-score"});