webpackJsonp([7],{102:function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"profile"},[e._v("no visual functionality yet..."),i("q-field",{attrs:{icon:"color_lens",label:"Theme"}},[i("q-select",{attrs:{options:e.themes},model:{value:e.editProfile.theme,callback:function(t){e.editProfile.theme=t},expression:"editProfile.theme"}})],1),i("q-btn",{staticClass:"float-right",attrs:{color:"primary"},on:{click:e.updateProfile}},[e._v("Save")])],1)},staticRenderFns:[]}},103:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(9),o=i.n(n),a=i(5),r=i(30);i.n(r);t.default={components:{QBtn:a.c,QCard:a.d,QCardActions:a.e,QCardTitle:a.h,QCardMain:a.f,QCardSeparator:a.g,QChip:a.j,QField:a.o,QInput:a.r},props:["account"],data:function(){return{edit:!1,editAccount:o()({},this.account)}},validations:{editAccount:{name:{required:r.required,minLength:Object(r.minLength)(3)},email:{required:r.required,email:r.email}}},watch:{account:function(){this.editAccount=o()({},this.account)}},methods:{updateAccount:function(){var e=this;this.axios.put("/api/account",this.editAccount).then(function(t){e.$emit("update-account",t.data)}),this.edit=!1},cancelEdit:function(){this.edit=!1,this.$v.editAccount.$reset()}}}},104:function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("q-card",[i("q-card-main",[i("q-field",{attrs:{icon:"account_box",label:"Name",error:e.$v.editAccount.name.$error,"error-label":"Minimum "+e.$v.editAccount.name.$params.minLength.min+" characters"}},[e.edit?i("q-input",{attrs:{placeholder:"Name"},on:{input:function(t){e.$v.editAccount.name.$touch()}},model:{value:e.editAccount.name,callback:function(t){e.editAccount.name="string"==typeof t?t.trim():t},expression:"editAccount.name"}}):i("span",[e._v(e._s(e.account.name))])],1),i("q-field",{attrs:{icon:"mail",label:"Email",error:e.$v.editAccount.email.$error,"error-label":"Not a valid email address"}},[e.edit?i("q-input",{attrs:{placeholder:"Email Address"},on:{input:function(t){e.$v.editAccount.email.$touch()}},model:{value:e.editAccount.email,callback:function(t){e.editAccount.email="string"==typeof t?t.trim():t},expression:"editAccount.email"}}):i("span",[e._v(e._s(e.account.email))])],1),e.edit?e._e():i("q-field",{attrs:{icon:"supervisor_account",label:"Roles"}},e._l(e.account.roles,function(t){return i("span",[i("q-chip",{staticClass:"on-left",attrs:{color:"admin"===t?"red":"secondary"}},[e._v(e._s(t))])],1)}))],1),i("q-card-actions",{staticClass:"float-right"},[e.edit?e._e():i("q-btn",{on:{click:function(t){e.edit=!0}}},[e._v("Edit")]),e.edit?i("q-btn",{staticClass:"float-right",on:{click:e.cancelEdit}},[e._v("Cancel")]):e._e(),e.edit?i("q-btn",{staticClass:"on-right",attrs:{disabled:e.$v.editAccount.$invalid,color:"primary"},on:{click:e.updateAccount}},[e._v("Save")]):e._e()],1)],1)},staticRenderFns:[]}},105:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(5),o=n.P.formatDate;t.default={name:"token",components:{QBtn:n.c,QList:n.y,QListHeader:n.z,QIcon:n.q,QItem:n.s,QItemMain:n.t,QItemSide:n.v,QItemSeparator:n.u,QItemTile:n.w},props:["token"],computed:{localTokenID:function(){return this.$auth.refreshTokenID}},methods:{formatDate:function(e){return o(e,"YYYY-MM-DD HH:mm")},edit:function(e){var t=this;n.a.create({title:"Edit Identifier",form:{identifier:{type:"text",model:e.identifier}},buttons:["Cancel",{label:"Save",outline:!0,handler:function(i){t.updateToken(e.id,i)}}]})},updateToken:function(e,t){var i=this,n=this.token.find(function(t){return t.id===e});n.identifier=t.identifier,this.axios.put("/api/account/token/"+e,n).then(function(){i.$emit("update-token",n)})},deleteToken:function(e){var t=this;this.axios.delete("/api/account/token/"+e).then(function(){t.$emit("delete-token",e)})}}}},106:function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("q-list",{attrs:{link:"link",separator:"separator","no-border":"no-border"}},[i("q-list-header",[e._v("Active Logins")]),e._l(e.token,function(t){return i("q-item",{key:t.id},[i("q-item-side",{attrs:{left:"left",icon:t.mobile?"phone_iphone":"desktop_mac"}}),i("q-item-main",{on:{click:function(i){e.edit(t)}}},[i("q-item-tile",{attrs:{label:"label"}},[e._v(e._s(t.identifier))]),i("q-item-tile",{attrs:{sublabel:"sublabel"}},[e._v("Last Login: "+e._s(e.formatDate(t.updated_at)))])],1),i("q-item-side",{attrs:{right:"right"}},[e.localTokenID===t.id?i("q-item-tile",{attrs:{label:"label"}},[e._v("This Device")]):i("q-btn",{attrs:{color:"red",flat:"flat"},on:{click:function(i){e.deleteToken(t.id)}}},[e._v("Logout")])],1)],1)})],2)},staticRenderFns:[]}},107:function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("q-tabs",{attrs:{align:"center","no-pane-border":"no-pane-border",inverted:"inverted"},slot:"navigation"},[i("q-tab",{attrs:{default:"default",name:"account",label:"Account",icon:"account_box",hide:"icon"},slot:"title"}),i("q-tab",{attrs:{name:"profile",label:"Profile",icon:"view_day",hide:"icon"},slot:"title"}),i("q-tab",{attrs:{name:"token",label:"Token",icon:"vpn_key",hide:"icon"},slot:"title"}),i("q-tab-pane",{attrs:{name:"account"}},[i("account",{attrs:{account:e.account},on:{"update-account":e.receiveAccountData}})],1),i("q-tab-pane",{attrs:{name:"profile"}},[i("profile",{attrs:{profile:e.profile},on:{"update-profile":e.updateProfile}})],1),i("q-tab-pane",{attrs:{name:"token"}},[i("token",{attrs:{token:e.token},on:{"update-token":e.updateToken,"delete-token":e.deleteToken}})],1)],1)},staticRenderFns:[]}},108:function(e,t){},109:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"hello"}},110:function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;e._self._c;return e._m(0)},staticRenderFns:[function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"hello"},[i("h5",[e._v("Welcome to your Quasar PWA")]),e._v(" "),i("ul",[i("li",[i("a",{attrs:{href:"http://quasar-framework.org",target:"_blank",rel:"noopener"}},[e._v("Docs")])]),e._v(" "),i("li",[i("a",{attrs:{href:"http://forum.quasar-framework.org",target:"_blank",rel:"noopener"}},[e._v("Forum")])]),e._v(" "),i("li",[i("a",{attrs:{href:"https://gitter.im/quasarframework/Lobby",target:"_blank",rel:"noopener"}},[e._v("Gitter Chat")])]),e._v(" "),i("li",[i("a",{attrs:{href:"https://twitter.com/quasarframework",target:"_blank",rel:"noopener"}},[e._v("Twitter")])])]),e._v(" "),i("div",[e._v("Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident harum asperiores quod quia laudantium. Praesentium voluptatibus deserunt quam pariatur fugiat repellendus accusamus facilis dignissimos vel! Sed doloremque minima omnis velit.")]),e._v(" "),i("div",[e._v("Ut id earum mollitia omnis obcaecati eaque alias facere ipsa provident neque, velit quia dignissimos labore accusamus, autem vero voluptatum explicabo aut repellendus odio est inventore assumenda quo. Repellendus, aperiam.")]),e._v(" "),i("div",[e._v("Suscipit debitis officiis distinctio temporibus aperiam porro asperiores enim, ab aspernatur minima amet, qui ipsam? Quia cupiditate sequi qui exercitationem quod aperiam illum voluptatibus, veniam accusamus corporis ab delectus ipsa.")]),e._v(" "),i("div",[e._v("Delectus nisi molestias eum tenetur enim necessitatibus, dignissimos dolore, officiis odio, suscipit voluptatibus quisquam quo error unde vero veritatis. Fugiat eos dolor doloremque tempora corporis quis enim, optio aut eaque.")]),e._v(" "),i("div",[e._v("Omnis, dolores quod. Temporibus eius laborum laudantium blanditiis voluptatem tempore sequi totam provident saepe aspernatur. Deleniti quod quae id atque magnam fugit voluptatibus ipsam, enim maiores necessitatibus doloribus dolorem! Omnis.")]),e._v(" "),i("div",[e._v("Odio alias nisi, velit, ea, et hic minima incidunt eius eaque placeat deleniti voluptatibus sequi sit dignissimos esse libero at consectetur repudiandae asperiores voluptates debitis. Aspernatur quidem quasi consectetur ad.")]),e._v(" "),i("div",[e._v("Maxime quae quod fugit a at vel culpa odit nemo. Autem, totam explicabo culpa quis reprehenderit iusto ab doloremque adipisci ratione illo cum aperiam ipsa eum facere corporis commodi esse.")]),e._v(" "),i("div",[e._v("Dolorum fugiat quos sapiente ducimus iure cupiditate eaque quibusdam minima nihil tempore! Aliquid reprehenderit repellat cupiditate architecto adipisci perspiciatis dolor quae voluptates provident nemo, natus excepturi modi distinctio dignissimos velit.")]),e._v(" "),i("div",[e._v("Neque repellendus quos nemo blanditiis soluta, maiores harum adipisci aspernatur voluptate beatae fuga sapiente nisi tempora! Odio id animi veniam, non et aliquid, reprehenderit minima nisi minus qui repudiandae laborum?")]),e._v(" "),i("div",[e._v("Quia tempore cum ratione consequuntur earum eum enim maxime quidem quibusdam tenetur magnam suscipit in, cumque laborum modi aut nihil labore autem quis non vitae numquam laboriosam! Amet, ducimus molestiae.")]),e._v(" "),i("div",[e._v("Nam doloremque suscipit dicta laborum repellendus recusandae debitis amet aliquam explicabo quae beatae consequatur ex voluptates error at quos vero, dolorum quia, in cum. Quibusdam, provident iure. Fugit, corporis velit.")]),e._v(" "),i("div",[e._v("Eos molestiae quis tenetur expedita perferendis sunt praesentium illo porro placeat laudantium cum aliquid officiis dolorum quod explicabo, exercitationem distinctio et nemo, sed fugit consequuntur, ex quaerat? Quaerat, quasi quam?")]),e._v(" "),i("div",[e._v("Vero mollitia a sapiente aspernatur quidem odit unde rem possimus sunt natus, dolorem voluptatibus, reiciendis eos exercitationem commodi ipsam, ab dolores iste! Itaque natus maiores sed facere tempora corrupti cum?")]),e._v(" "),i("div",[e._v("Reiciendis distinctio excepturi, atque quo dolorum aperiam iure. Placeat, assumenda tenetur minima aliquid repellat corrupti alias magni porro numquam dolor architecto voluptatem blanditiis, illum ipsam. Dolorum dolore ducimus sint facere?")]),e._v(" "),i("div",[e._v("Doloremque cumque minima esse eligendi, voluptates quis incidunt vero tempora quisquam aperiam, sint ducimus ut? Perspiciatis odit dignissimos qui voluptate dolores aliquam nobis saepe officiis accusamus quos? Illum, molestias vel.")]),e._v(" "),i("div",[e._v("Aspernatur pariatur soluta facilis quas. Dolorem sed nam magni, debitis numquam ex facere iure quam? Facilis doloribus deleniti fugiat voluptates, unde eligendi eveniet quibusdam, id, perferendis est nemo ullam velit!")]),e._v(" "),i("div",[e._v("Voluptatibus veniam unde quia laudantium, culpa, magni exercitationem quod nemo sint temporibus blanditiis iure tempora id commodi asperiores numquam deleniti quas perspiciatis inventore neque! Quidem illum totam deleniti voluptas minima?")]),e._v(" "),i("div",[e._v("Dignissimos, aspernatur? Hic incidunt maiores nobis quidem animi sint eum, omnis optio blanditiis. Asperiores odit consequuntur consectetur voluptates distinctio libero ea, tempore esse nesciunt suscipit accusamus officiis! Aliquam, qui tempora.")]),e._v(" "),i("div",[e._v("Earum vel dolore adipisci quibusdam a omnis aut dicta iste iure reprehenderit facilis accusantium ducimus dignissimos officiis repellat impedit, temporibus reiciendis consectetur provident ut voluptatum? Odio possimus officiis officia totam.")]),e._v(" "),i("div",[e._v("Sunt nesciunt accusantium necessitatibus, incidunt excepturi voluptates at odio sint iure distinctio. Accusamus distinctio fugit earum deserunt ut cumque debitis ab quidem soluta odio error, nam quos ea nostrum sint.")])])}]}},111:function(e,t,i){function n(e){var t=o[e];return t?Promise.all(t.slice(1).map(i.e)).then(function(){return i(t[0])}):Promise.reject(new Error("Cannot find module '"+e+"'."))}var o={"./Hello.vue":[47],"./Layout.vue":[34],"./Login.vue":[32],"./account/Account.vue":[45],"./account/Index.vue":[35],"./account/Profile.vue":[36],"./account/Token.vue":[46],"./admin/Dashboard.vue":[185,5],"./admin/Layout.vue":[186,4],"./admin/accounts/Create.vue":[183,3],"./admin/accounts/Edit.vue":[184,1],"./admin/accounts/Form.vue":[182,2],"./admin/accounts/Index.vue":[187,0]};n.keys=function(){return Object.keys(o)},n.id=111,e.exports=n},138:function(e,t,i){"use strict";var n=i(14),o=i(56),a=i(139),r=i(146),s=i.n(r);n.a.use(o.a);var u=new o.a.Store({strict:!0,plugins:[a.a,s()({predicate:["setToken","logout"]})],modules:{},state:{count:1},mutations:{}});t.a=u},139:function(e,t,i){"use strict";var n=i(140),o=i.n(n),a=i(143),r=i.n(a),s=i(5),u=i(144),c=i.n(u),l=this;t.a=function(){var e=r()(o.a.mark(function e(t){var i,n;return o.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,s.b.get.item("vuex");case 2:i=e.sent,n=c()({},t.state,i),t.replaceState(n),t.subscribe(function(e,t){s.b.set("vuex",t)});case 6:case"end":return e.stop()}},e,l)}));return function(t){return e.apply(this,arguments)}}()},170:function(e,t,i){"use strict";var n=i(20),o=i.n(n),a=i(171),r=i.n(a),s=i(9),u=i.n(s),c=i(172),l=i(56),d={defaults:{baseUrl:"/auth",loginUrl:"/login",tokenUrl:"/token",refreshUrl:"/refresh",logoutUrl:"/logout",loginPath:"/login",logoutRedirect:"/",unauthorizedRedirect:"/403",tokenKeys:{access:"access_token",refresh:"refresh_token"},refreshThresholdMin:30,refreshThresholdMax:60,roles:{admin:"admin"}},install:function(e,t){function i(){p.$store.dispatch("refreshToken").then(function(){console.log("refresh success")},function(e){console.log("failed token refresh:",e)})}function n(e){return a.baseUrl+a[e+"Url"]}if(d.installed)return void console.error("jwt plugin already installed");console.log("auth plugin setup");var a=u()(d.defaults,t.params);Object(c.b)(a),t.store.registerModule("auth",c.a);var s=t.router,m=t.store,f=new e({router:s,store:m,data:{refreshIn:0,refreshTimer:null},computed:r()({},Object(l.b)(["auth"]),{sub:function(){return this.auth.user.sub},isAuthenticated:function(){return this.tokenValid},tokenValid:function(){return this.expiresIn>0},expiresIn:function(){return 1e3*this.auth.access.exp-Date.now()},refreshValid:function(){return this.refreshExpiresIn>0},refreshExpiresIn:function(){return 1e3*this.auth.refresh.exp-Date.now()},canRefresh:function(){return this.refreshValid},refreshTokenID:function(){return this.auth.refresh.id}}),watch:{isAuthenticated:function(){console.log("authenticated:",this.isAuthenticated)},expiresIn:function(){clearTimeout(this.refreshTimer);var e=Math.floor(Math.random()*(a.refreshThresholdMax-a.refreshThresholdMin))+a.refreshThresholdMin;this.refreshIn=this.expiresIn-1e3*e},refreshIn:function(){var e=this;console.log("refresh in:",Math.floor(this.refreshIn/1e3)+" seconds"),this.refreshTimer=setTimeout(function(){e.canRefresh?i():e.$store.dispatch("localLogout")},this.refreshIn)}},methods:{requestLoginToken:function(e){var t=this;return new o.a(function(i,n){t.$store.dispatch("requestLoginToken",e).then(function(){i()},function(e){n(e)})})},requestToken:function(e){var t=this;return new o.a(function(i,n){t.$store.dispatch("requestToken",e).then(function(){i()},function(e){n(e)})})},logout:function(){this.$store.dispatch("logout"),this.$router.push(a.logoutRedirect)},localLogout:function(){this.$store.dispatch("localLogout")},hasRole:function(e){return this.auth.user.roles.includes(e)},hasAnyRole:function(e){var t=this,i=!1;return e.forEach(function(e){t.hasRole(e)&&(i=!0)}),i},accessTokenHeader:function(){return"Bearer "+this.auth.access.token},refreshTokenHeader:function(){return"Bearer "+this.auth.refresh.token}},created:function(){}}),p=e.prototype.$auth=f,h=e.axios;h?(h.interceptors.request.use(function(e){return e.url===n("refresh")||e.url===n("logout")?e.headers.Authorization=p.refreshTokenHeader():e.headers.Authorization=p.accessTokenHeader(),e},function(e){return o.a.reject(e)}),h.interceptors.response.use(function(e){return e},function(e){return 401===e.response.status&&(console.log(e.response),console.log("Unauthorized request => local logout"),p.localLogout(),s.push(a.logoutRedirect)),o.a.reject(e)})):console.error("axios not found - set Vue.use(axios) before using this plugin"),s?s.beforeEach(function(e,t,i){if(e.matched.some(function(e){return e.meta.auth})){var n=e.matched.some(function(e){return!!e.meta.auth&&e.meta.auth.adminOnly}),o=!!e.meta.auth&&!!Array.isArray(e.meta.auth.scope)&&e.meta.auth.scope;p.isAuthenticated?n&&!p.hasRole(a.roles.admin)?i(a.unauthorizedRedirect):o&&!p.hasAnyRole(o)?i(a.unauthorizedRedirect):i():i({path:a.loginPath,query:{redirect:e.fullPath}})}else i()}):console.error("no router passed to auth options during setup")}};t.a=d},172:function(e,t,i){"use strict";function n(e,t){a=c()(e,t)}function o(e){return a.baseUrl+a[e+"Url"]}t.b=n;var a,r=i(20),s=i.n(r),u=i(9),c=i.n(u),l=i(14),d=i(173),m={state:{user:{sub:"",roles:[]},access:{token:"",exp:0},refresh:{id:null,token:"",exp:0}},getters:{},actions:{requestLoginToken:function(e,t){var i=(e.commit,{email:t});l.a.axios.post(o("login"),i)},requestToken:function(e,t){var i=e.commit,n={token:t};l.a.axios.post(o("token"),n).then(function(e){i("setToken",e.data)})},refreshToken:function(e){var t=e.commit;e.state;return new s.a(function(e,i){l.a.axios.post(o("refresh")).then(function(i){t("setToken",i.data),e()},function(e){i(e)})})},localLogout:function(e){(0,e.commit)("logout")},logout:function(e){var t=e.commit;l.a.axios.post(o("logout")).finally(function(){t("logout")})}},mutations:{setToken:function(e,t){e.access.token=t[a.tokenKeys.access];var i=d.a.decode(e.access.token);e.access.exp=i.exp,e.user={sub:i.sub,roles:i.roles},e.refresh.token=t[a.tokenKeys.refresh];var n=d.a.decode(e.refresh.token);e.refresh.id=n.id,e.refresh.exp=n.exp},logout:function(e){console.log("logout"),e.user={sub:"",roles:[]},e.access={token:"",exp:0},e.refresh={token:"",exp:0}}}};t.a=m},173:function(e,t,i){"use strict";t.a={decode:function(e){var t=e.split("."),i=t[1].replace(/-/g,"+").replace(/_/g,"/");switch(i.length%4){case 0:break;case 2:i+="==";break;case 3:i+="="}return JSON.parse(decodeURIComponent(atob(i)))},getDeadline:function(e){var t=this.decode(e);if(void 0===t.exp)return null;var i=new Date(0);return i.setUTCSeconds(t.exp),i},isExpired:function(e){var t=this.getDeadline(e);if(null===t)return!1;var i=new Date;return t.valueOf()<=i.valueOf()}}},175:function(e,t){},176:function(e,t,i){function n(e){i(177)}var o=i(4)(i(178),i(179),n,null,null);e.exports=o.exports},177:function(e,t){},178:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={}},179:function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{attrs:{id:"q-app"}},[i("header"),e._v(" "),i("main",[i("router-view")],1)])},staticRenderFns:[]}},32:function(e,t,i){function n(e){i(67)}var o=i(4)(i(68),i(84),n,null,null);e.exports=o.exports},34:function(e,t,i){function n(e){i(85)}var o=i(4)(i(86),i(87),n,null,null);e.exports=o.exports},35:function(e,t,i){function n(e){i(88)}var o=i(4)(i(89),i(107),n,null,null);e.exports=o.exports},36:function(e,t,i){function n(e){i(90)}var o=i(4)(i(91),i(102),n,"data-v-1d72ad42",null);e.exports=o.exports},45:function(e,t,i){var n=i(4)(i(103),i(104),null,null,null);e.exports=n.exports},46:function(e,t,i){var n=i(4)(i(105),i(106),null,null,null);e.exports=n.exports},47:function(e,t,i){function n(e){i(108)}var o=i(4)(i(109),i(110),n,"data-v-87b09e2c",null);e.exports=o.exports},62:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(14),o=i(5),a=i(65),r=i(138),s=i(147),u=i.n(s),c=i(167),l=i.n(c),d=i(168),m=i.n(d),f=i(170),p=i(174);i.n(p);i(63),n.a.config.productionTip=!1,n.a.use(o.Q),u.a.defaults.headers.post["Content-Type"]="application/json",n.a.use(l.a,u.a),n.a.use(m.a),n.a.use(f.a,{router:a.a,store:r.a,params:{BaseUrl:"/auth"}}),new n.a({el:"#q-app",router:a.a,store:r.a,render:function(e){return e(i(176))}})},63:function(e,t){},65:function(e,t,i){"use strict";function n(e){return function(){return i(111)("./"+e+".vue")}}var o=i(14),a=i(66),r=i(32),s=i.n(r),u=i(34),c=i.n(u),l=i(35),d=i.n(l),m=i(47),f=i.n(m);o.a.use(a.a),t.a=new a.a({mode:"history",routes:[{path:"/login",component:s.a},{path:"/login/:token",component:s.a},{path:"/",component:c.a,children:[{path:"",component:f.a}]},{path:"/account",component:c.a,meta:{auth:!0},children:[{path:"",component:d.a}]},{path:"/manage",component:n("admin/Layout"),meta:{auth:{adminOnly:!0}},children:[{path:"",component:n("admin/Dashboard")},{path:"accounts",component:n("admin/accounts/Index")}]}]})},67:function(e,t){},68:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(5),o=i(30);i.n(o);n.O.setDefaults({timeout:3e3});t.default={components:{QLayout:n.x,QStepper:n.F,QStepperNavigation:n.G,QStep:n.E,QInput:n.r,QBtn:n.c,QIcon:n.q},data:function(){return{email:"",token:"",errRequest:!1,errVerify:!1,step:"request"}},validations:{email:{required:o.required,email:o.email},token:{required:o.required,minLength:Object(o.minLength)(8)}},computed:{isAuthenticated:function(){return this.$auth.isAuthenticated}},watch:{isAuthenticated:function(){this.isAuthenticated&&this.$router.push(this.$route.query.redirect||"/")}},methods:{requestToken:function(){var e=this;this.$v.email.$invalid?(n.O.create.negative({html:"Invalid Email Address"}),this.errRequest=!0):this.$auth.requestLoginToken(this.email).then(function(t){n.O.create.positive({html:"Check your Emails for Token"}),e.errRequest=!1,e.step="verify"}).catch(function(){e.errRequest=!0,n.O.create.negative({html:"Invalid Email Address"})})},verifyToken:function(){var e=this;this.$v.token.$invalid?(n.O.create.negative({html:"Invalid Token"}),this.errVerify=!0):this.$auth.requestToken(this.token).then(function(e){n.O.create.positive({html:"Login Success"})}).catch(function(){e.errVerify=!0,n.O.create.negative({html:"Invalid Token"})})},clearForm:function(){this.email="",this.token="",this.errRequest=!1,this.errVerify=!1}},mounted:function(){this.token=this.$route.params.token,this.$v.token.$invalid||this.verifyToken()},beforeDestroy:function(){this.clearForm()}}},84:function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"layout-padding"},[i("div",{staticClass:"row justify-left"},[i("q-btn",{attrs:{flat:"flat"},on:{click:function(t){e.$router.go(-1)}}},[e._v("Back")])],1),i("div",{staticClass:"row justify-center"},[i("q-stepper",{staticClass:"shadow-12",attrs:{vertical:"vertical"},model:{value:e.step,callback:function(t){e.step=t},expression:"step"}},[i("div",{staticClass:"row justify-center"},[i("h6",[e._v("Login")])]),i("q-step",{attrs:{default:"default",name:"request",error:e.errRequest,title:"Email",subtitle:"Account Email Address"}},[i("q-input",{attrs:{placeholder:"example@mail.org",autofocus:"email"===e.step,clearable:"clearable"},on:{keyup:function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13))return null;e.requestToken(t)}},model:{value:e.email,callback:function(t){e.email="string"==typeof t?t.trim():t},expression:"email"}}),i("q-btn",{attrs:{flat:"flat",icon:"arrow_downward"},on:{click:function(t){e.step="verify"}}}),i("q-btn",{attrs:{disabled:e.$v.email.$invalid,color:"primary",icon:"mail"},on:{click:e.requestToken}},[e._v("Get Token")])],1),i("q-step",{attrs:{name:"verify",error:e.errVerify,title:"Token",subtitle:"Token from Email"}},[i("q-input",{ref:"token",attrs:{placeholder:"Token",autofocus:"verify"===e.step,clearable:"clearable"},on:{keyup:function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13))return null;e.verifyToken(t)}},model:{value:e.token,callback:function(t){e.token="string"==typeof t?t.trim():t},expression:"token"}}),i("q-btn",{attrs:{disabled:e.$v.token.$invalid,color:"primary",icon:"vpn_key"},on:{click:e.verifyToken}},[e._v("Login")])],1)],1)],1)])},staticRenderFns:[]}},85:function(e,t){},86:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(5);t.default={components:{QFab:n.m,QFabAction:n.n,QFixedPosition:n.p,QLayout:n.x,QToolbar:n.L,QToolbarTitle:n.M,QTooltip:n.N,QBtn:n.c,QIcon:n.q,QList:n.y,QListHeader:n.z,QItem:n.s,QItemMain:n.t,QItemSide:n.v,QSideLink:n.D},methods:{logout:function(){this.$auth.logout()}}}},87:function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("q-layout",{ref:"layout",attrs:{view:"hHh Lpr lff",reveal:"reveal"}},[i("q-toolbar",{attrs:{inverted:"inverted"},slot:"header"},[i("q-btn",{attrs:{flat:"flat"},on:{click:function(t){e.$refs.layout.toggleLeft()}}},[i("q-icon",{attrs:{name:"menu"}})],1),i("q-toolbar-title",[e._v("GoBase")]),e.$auth.isAuthenticated?i("q-fab",{attrs:{icon:"account_circle",direction:"left",flat:"flat",color:"secondary"}},[i("q-fab-action",{attrs:{icon:"settings"},on:{click:function(t){e.$router.push("/account")}}},[i("q-tooltip",{attrs:{offset:[10,10]}},[e._v("Settings")])],1),i("q-fab-action",{attrs:{icon:"power_settings_new",color:"red"},on:{click:e.logout}},[i("q-tooltip",{attrs:{offset:[10,10]}},[e._v("Logout")])],1)],1):i("q-btn",{attrs:{color:"primary"},on:{click:function(t){e.$router.push("/login")}}},[i("q-icon",{attrs:{name:"account_box"}}),i("q-tooltip",{attrs:{offset:[10,0],anchor:"center right",self:"center left"}},[e._v("Login")])],1)],1),i("div",{slot:"left"},[i("q-side-link",{attrs:{item:"item",to:"/"}},[i("q-item-side",{attrs:{icon:"home"}}),i("q-item-main",{attrs:{label:"Home"}})],1),e.$auth.hasRole("admin")?i("q-list",{attrs:{link:"link"}},[i("q-list-header",[e._v("Admin Panel")]),i("q-side-link",{attrs:{item:"item",to:"/manage"}},[i("q-item-side",{attrs:{icon:"dashboard"}}),i("q-item-main",{attrs:{label:"Dashboard"}})],1),i("q-side-link",{attrs:{item:"item",to:"/manage/accounts"}},[i("q-item-side",{attrs:{icon:"supervisor_accounts"}}),i("q-item-main",{attrs:{label:"Accounts"}})],1)],1):e._e()],1),i("div",{staticClass:"layout-padding"},[i("router-view")],1)],1)},staticRenderFns:[]}},88:function(e,t){},89:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(5),o=i(36),a=i.n(o),r=i(45),s=i.n(r),u=i(46),c=i.n(u),l=n.P.getDateDiff;t.default={components:{QTabs:n.J,QTab:n.H,QTabPane:n.I,Profile:a.a,Account:s.a,Token:c.a},data:function(){return{account:{},profile:{},token:[]}},beforeMount:function(){var e=this;this.axios.get("/api/account").then(function(t){e.receiveAccountData(t.data)})},methods:{receiveAccountData:function(e){var t={email:e.email,name:e.name,roles:e.roles};this.account=t,this.profile=e.profile,e.token.sort(function(e,t){return l(t.updated_at,e.updated_at,"minutes")}),this.token=e.token},updateProfile:function(e){this.profile=e},updateToken:function(e){var t=this.token.findIndex(function(t){return t.id===e.id});this.token[t]=e},deleteToken:function(e){this.token=this.token.filter(function(t){return t.id!==e})}}}},90:function(e,t){},91:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(9),o=i.n(n),a=i(5);t.default={components:{QBtn:a.c,QField:a.o,QSelect:a.C},props:["profile"],data:function(){return{themes:[{label:"Default",value:"default"},{label:"Dark",value:"dark"}],editProfile:o()({},this.profile)}},watch:{profile:function(){this.editProfile=o()({},this.profile)}},methods:{updateProfile:function(){var e=this;this.axios.put("/api/account/profile",this.editProfile).then(function(t){e.$emit("update-profile",t.data)})}}}}},[62]);