├── dist ├── girl.png ├── man.png ├── favicon.ico ├── matheus.png ├── yasmim.png ├── eufranio.png ├── css │ └── app.52fc6c03.css ├── index.html ├── 404.html └── js │ ├── app.560d5aab.js │ └── app.560d5aab.js.map ├── src ├── event-bus.js ├── assets │ ├── logo.png │ └── logo.svg ├── plugins │ └── vuetify.js ├── main.js ├── fb.js ├── App.vue ├── router.js ├── components │ ├── Navbar.vue │ └── Popup.vue └── views │ ├── Auth.vue │ ├── Settings.vue │ └── Dashboard.vue ├── firestore.indexes.json ├── public ├── girl.png ├── man.png ├── favicon.ico ├── matheus.png ├── yasmim.png ├── eufranio.png ├── index.html └── 404.html ├── .firebaserc ├── babel.config.js ├── firestore.rules ├── database.rules.json ├── server.js ├── .gitignore ├── firebase.json ├── README.md ├── .firebase └── hosting.ZGlzdA.cache └── package.json /dist/girl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanLuan/TodoDev/HEAD/dist/girl.png -------------------------------------------------------------------------------- /dist/man.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanLuan/TodoDev/HEAD/dist/man.png -------------------------------------------------------------------------------- /src/event-bus.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | export const EventBus = new Vue(); -------------------------------------------------------------------------------- /dist/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanLuan/TodoDev/HEAD/dist/favicon.ico -------------------------------------------------------------------------------- /dist/matheus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanLuan/TodoDev/HEAD/dist/matheus.png -------------------------------------------------------------------------------- /dist/yasmim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanLuan/TodoDev/HEAD/dist/yasmim.png -------------------------------------------------------------------------------- /firestore.indexes.json: -------------------------------------------------------------------------------- 1 | { 2 | "indexes": [], 3 | "fieldOverrides": [] 4 | } 5 | -------------------------------------------------------------------------------- /public/girl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanLuan/TodoDev/HEAD/public/girl.png -------------------------------------------------------------------------------- /public/man.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanLuan/TodoDev/HEAD/public/man.png -------------------------------------------------------------------------------- /.firebaserc: -------------------------------------------------------------------------------- 1 | { 2 | "projects": { 3 | "default": "todoteam-3263d" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/app' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /dist/eufranio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanLuan/TodoDev/HEAD/dist/eufranio.png -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanLuan/TodoDev/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/matheus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanLuan/TodoDev/HEAD/public/matheus.png -------------------------------------------------------------------------------- /public/yasmim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanLuan/TodoDev/HEAD/public/yasmim.png -------------------------------------------------------------------------------- /public/eufranio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanLuan/TodoDev/HEAD/public/eufranio.png -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanLuan/TodoDev/HEAD/src/assets/logo.png -------------------------------------------------------------------------------- /firestore.rules: -------------------------------------------------------------------------------- 1 | service cloud.firestore { 2 | match /databases/{database}/documents { 3 | match /{document=**} { 4 | allow read, write; 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /database.rules.json: -------------------------------------------------------------------------------- 1 | { 2 | /* Visit https://firebase.google.com/docs/database/security to learn more about security rules. */ 3 | "rules": { 4 | ".read": false, 5 | ".write": false 6 | } 7 | } -------------------------------------------------------------------------------- /server.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var path = require('path'); 3 | var serveStatic = require('serve-static'); 4 | app = express(); 5 | app.use(serveStatic(__dirname + "/dist")); 6 | var port = process.env.PORT || 5000; 7 | app.listen(port); 8 | console.log('server started '+ port); -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | 4 | # local env files 5 | .env.local 6 | .env.*.local 7 | 8 | # Log files 9 | npm-debug.log* 10 | yarn-debug.log* 11 | yarn-error.log* 12 | 13 | # Editor directories and files 14 | .idea 15 | .vscode 16 | *.suo 17 | *.ntvs* 18 | *.njsproj 19 | *.sln 20 | *.sw? 21 | -------------------------------------------------------------------------------- /firebase.json: -------------------------------------------------------------------------------- 1 | { 2 | "database": { 3 | "rules": "database.rules.json" 4 | }, 5 | "firestore": { 6 | "rules": "firestore.rules", 7 | "indexes": "firestore.indexes.json" 8 | }, 9 | "hosting": { 10 | "public": "./dist", 11 | 12 | "rewrites": [{ 13 | 14 | "source": "**", 15 | "destination": "/index.html" 16 | }] 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/plugins/vuetify.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuetify from 'vuetify/lib' 3 | import 'vuetify/src/stylus/app.styl' 4 | 5 | Vue.use(Vuetify, { 6 | iconfont: 'md', 7 | theme: { 8 | primary: '#9652ff', 9 | success: '#3cd1c2', 10 | info: '#ffaa2c', 11 | error: '#f83e70', 12 | completes: '#3cd1c2', 13 | ongoings: '#ffaa2c', 14 | overdues: '#f83e70', 15 | 16 | }, 17 | }) 18 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import './plugins/vuetify' 3 | import App from './App.vue' 4 | import router from './router' 5 | import firebase from 'firebase' 6 | 7 | Vue.config.productionTip = false 8 | 9 | let app = ''; 10 | 11 | firebase.auth().onAuthStateChanged(() => { 12 | if(!app) { 13 | app = new Vue({ 14 | router, 15 | render: h => h(App) 16 | }).$mount('#app') 17 | } 18 | 19 | }); 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/fb.js: -------------------------------------------------------------------------------- 1 | import firebase from 'firebase/app' 2 | import 'firebase/firestore' 3 | require('firebase/auth') 4 | 5 | // Your web app's Firebase configuration 6 | var firebaseConfig = { 7 | apiKey: "", 8 | authDomain: "", 9 | databaseURL: "", 10 | projectId: "", 11 | storageBucket: "", 12 | messagingSenderId: "", 13 | appId: "" 14 | }; 15 | 16 | // Initialize Firebase 17 | firebase.initializeApp(firebaseConfig); 18 | const db = firebase.firestore() 19 | 20 | export default db; 21 | -------------------------------------------------------------------------------- /src/assets/logo.svg: -------------------------------------------------------------------------------- 1 | Artboard 46 2 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 37 | -------------------------------------------------------------------------------- /dist/css/app.52fc6c03.css: -------------------------------------------------------------------------------- 1 | .project.complete{border-left:4px solid #3cd1c2}.project.ongoing{border-left:4px solid #ffaa2c}.project.overdue{border-left:4px solid #f83e70}.theme--light.v-btn:not(.v-btn--icon).complete{background-color:#3cd1c2}.theme--light.v-btn:not(.v-btn--icon).ongoing{background-color:#ffaa2c}.theme--light.v-btn:not(.v-btn--icon).overdue{background-color:#f83e70}.theme--light.v-btn.complete{color:#3cd1c2}.theme--light.v-btn.ongoing{color:#ffaa2c}.theme--light.v-btn.overdue{color:#f83e70}.handle{cursor:move}input[type=file]{position:absolute;clip:rect(0,0,0,0)}.avatar{border:1px solid #fff;background-color:#000}.userAvatar{-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.userAvatar:hover{opacity:.5;filter:alpha(opacity=50);cursor:pointer}@media only screen and (max-width:768px){.v-content{margin:0}} -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | TodoDev 9 | 10 | 11 | 12 | 13 | 16 |
17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # TodoDev 2 | A simple Todo App made for developers with Vuejs, Vuetify and the powerful Firebase. 3 | 4 | Live: https://todoteam-3263d.web.app/ 5 | 6 | ![ 7 | ](https://i.imgur.com/mC2l4YL.png) 8 | 9 | ## Features 10 | - **Authentication** ![authentication](https://i.imgur.com/xsK9SQK.gif) 11 | 12 | - **Material Design** ![Awesome Material Design](https://imgur.com/pyTyEjL.png) 13 | 14 | - **Draggable Todo List** ![Draggable](https://imgur.com/6fEmPRB.png) 15 | 16 | - **Todo List based on Status** 17 | 18 | ![Status](https://imgur.com/ytsO3xA.png) ![Status](https://imgur.com/0FNTS3r.png) ![Status]( https://imgur.com/ywX7cnC.png) 19 | 20 | ## Made with 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /dist/index.html: -------------------------------------------------------------------------------- 1 | TodoDev
-------------------------------------------------------------------------------- /.firebase/hosting.ZGlzdA.cache: -------------------------------------------------------------------------------- 1 | 404.html,1558837024836,b7bab6b83fa074653ff28c8d2a64135d3434575f70a12ab3d3ba8080461b9537 2 | favicon.ico,1558837024836,e0535b2041a7a1721cdec785c903980d41fdf0d810a4ea9726b6ffd1371bbc28 3 | index.html,1558837024836,428c5d0aecfbd455f5baf72a46c8893a5db3ef36131c450e95ffafe0a74df1ad 4 | css/app.52fc6c03.css,1558837024836,c33b7773aea4b951f8ba77a134eb83be10e5646fd3472cdf95b8c6b65a862c03 5 | js/app.560d5aab.js,1558837024836,002b44140df6c8646d0061b1cb4a9e60fe5be9bbf8720e01d9e01156e20ead57 6 | eufranio.png,1558837024836,ce03aff275a83945437c2235da7c35b19cdabce88616c6a9ddd49ecbea05644f 7 | matheus.png,1558837024836,85815a0d6d4fdaccec647d7e21778ab5fdfb3a98955d497ab3a4e1b0513422f3 8 | yasmim.png,1558837024836,d98684bb98e3c103becdb097a5c8c677ce6b532cee93b796b4a1cc9c7cba0bf4 9 | girl.png,1558837024836,0f8ae7ff8c95befecdbe3d903bd816a79b24218e82eb0a3584e663f318fc81b6 10 | man.png,1558837024836,1c3488d86f2de468373c42daca091a6834b77230c0f4c24e542a2b5cab99bfd4 11 | css/chunk-vendors.1a6a2dfa.css,1558837024940,ee2c8710af0325c48ab79b17b47e4fbed3f48cc024d3955ff69b5efc0817cf5c 12 | js/app.560d5aab.js.map,1558837024940,b4e1f6c4be90f5413fc1e2ea7613cbf2e3be1bba2133c92824556a41d48599ea 13 | js/chunk-vendors.3959399a.js,1558837024940,70fd6601ec589a611a61872fce8a7a3ae8d457eab6b04128564db6640d182f06 14 | js/chunk-vendors.3959399a.js.map,1558837024940,00e55589ff05b2a5165150cf5a1191ec06d50c30fb04c2c97717269a6a7a36dc 15 | -------------------------------------------------------------------------------- /src/router.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Router from 'vue-router' 3 | import Dashboard from './views/Dashboard.vue' 4 | import Settings from './views/Settings.vue' 5 | import Auth from './views/Auth.vue' 6 | import firebase from 'firebase' 7 | 8 | 9 | Vue.use(Router) 10 | 11 | const router = new Router({ 12 | mode: 'history', 13 | base: process.env.BASE_URL, 14 | routes: [ 15 | { 16 | path: '*', 17 | redirect: '/auth' 18 | }, 19 | { 20 | path: '/', 21 | redirect: '/auth' 22 | }, 23 | { 24 | path: '/dashboard', 25 | name: 'dashboard', 26 | component: Dashboard, 27 | meta: { 28 | requiresAuth: true 29 | } 30 | }, 31 | { 32 | path: '/settings', 33 | name: 'settings', 34 | component: Settings, 35 | meta: { 36 | requiresAuth: true 37 | } 38 | }, 39 | { 40 | path: '/auth', 41 | name: 'auth', 42 | component: Auth, 43 | }, 44 | ] 45 | }); 46 | 47 | router.beforeEach((to, from, next) => { 48 | if (to.matched.some(record => record.meta.requiresAuth)) { 49 | // this route requires auth, check if logged in 50 | // if not, redirect to login page. 51 | if (!firebase.auth().currentUser) { 52 | next({ 53 | path: '/login', 54 | query: { redirect: to.fullPath } 55 | }) 56 | } else { 57 | next() 58 | } 59 | } else { 60 | next() // make sure to always call next()! 61 | } 62 | }) 63 | 64 | export default router; 65 | 66 | 67 | -------------------------------------------------------------------------------- /dist/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Page Not Found 7 | 8 | 23 | 24 | 25 |
26 |

404

27 |

Page Not Found

28 |

The specified file was not found on this website. Please check the URL for mistakes and try again.

29 |

Why am I seeing this?

30 |

This page was generated by the Firebase Command-Line Interface. To modify it, edit the 404.html file in your project's configured public directory.

31 |
32 | 33 | 34 | -------------------------------------------------------------------------------- /public/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Page Not Found 7 | 8 | 23 | 24 | 25 |
26 |

404

27 |

Page Not Found

28 |

The specified file was not found on this website. Please check the URL for mistakes and try again.

29 |

Why am I seeing this?

30 |

This page was generated by the Firebase Command-Line Interface. To modify it, edit the 404.html file in your project's configured public directory.

31 |
32 | 33 | 34 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tododev", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "node build/dev-server.js --host 0.0.0.0", 7 | "serve": "vue-cli-service serve", 8 | "build": "vue-cli-service build", 9 | "lint": "vue-cli-service lint", 10 | "start": "node server.js" 11 | }, 12 | "dependencies": { 13 | "core-js": "^2.6.5", 14 | "date-fns": "^1.30.1", 15 | "firebase": "^6.0.2", 16 | "vue": "^2.6.10", 17 | "vue-router": "^3.0.3", 18 | "vuedraggable": "^2.21.0", 19 | "vuetify": "^1.5.5" 20 | }, 21 | "devDependencies": { 22 | "@vue/cli-plugin-babel": "^3.7.0", 23 | "@vue/cli-plugin-eslint": "^3.7.0", 24 | "@vue/cli-service": "^3.7.0", 25 | "babel-eslint": "^10.0.1", 26 | "eslint": "^5.16.0", 27 | "eslint-plugin-vue": "^5.0.0", 28 | "stylus": "^0.54.5", 29 | "stylus-loader": "^3.0.1", 30 | "vue-cli-plugin-vuetify": "^0.5.0", 31 | "vue-template-compiler": "^2.5.21", 32 | "vuetify-loader": "^1.0.5" 33 | }, 34 | "eslintConfig": { 35 | "root": true, 36 | "env": { 37 | "node": true 38 | }, 39 | "extends": [ 40 | "plugin:vue/essential", 41 | "eslint:recommended" 42 | ], 43 | "rules": {}, 44 | "parserOptions": { 45 | "parser": "babel-eslint" 46 | } 47 | }, 48 | "postcss": { 49 | "plugins": { 50 | "autoprefixer": {} 51 | } 52 | }, 53 | "browserslist": [ 54 | "> 1%", 55 | "last 2 versions" 56 | ], 57 | "description": "A simple Web App made with Vuejs, Vuetify and the powerful Firebase. Live preview: https://todoteam-3263d.firebaseapp.com/", 58 | "main": "babel.config.js", 59 | "repository": { 60 | "type": "git", 61 | "url": "git+https://github.com/IanLuan/TodoDev.git" 62 | }, 63 | "author": "", 64 | "license": "ISC", 65 | "bugs": { 66 | "url": "https://github.com/IanLuan/TodoDev/issues" 67 | }, 68 | "homepage": "https://github.com/IanLuan/TodoDev#readme" 69 | } 70 | -------------------------------------------------------------------------------- /src/components/Navbar.vue: -------------------------------------------------------------------------------- 1 | 65 | 66 | 67 | 112 | -------------------------------------------------------------------------------- /src/components/Popup.vue: -------------------------------------------------------------------------------- 1 | 36 | 37 | 124 | -------------------------------------------------------------------------------- /src/views/Auth.vue: -------------------------------------------------------------------------------- 1 | 45 | 46 | 134 | 135 | 136 | 145 | 146 | -------------------------------------------------------------------------------- /src/views/Settings.vue: -------------------------------------------------------------------------------- 1 | 47 | 48 | 165 | 188 | 189 | -------------------------------------------------------------------------------- /src/views/Dashboard.vue: -------------------------------------------------------------------------------- 1 | 95 | 96 | 285 | 286 | 329 | -------------------------------------------------------------------------------- /dist/js/app.560d5aab.js: -------------------------------------------------------------------------------- 1 | (function(t){function e(e){for(var n,o,i=e[0],c=e[1],l=e[2],d=0,p=[];d=4||"Invalid format. Click to pick"}],loading:!1}},methods:{submit:function(){var t=this;if(this.title.length>0&&this.due.length>=4){this.loading=!0;var e=b.collection("users/"+this.userId+"/projects"),a={title:this.title,content:this.content,due:p()(this.due,"Do MMM YYYY"),status:"ongoing",priority:100};e.add(a).then(function(){t.loading=!1,t.dialog=!1,t.formReset(),w.$emit("project-added")}),this.alerta=!1}else this.alerta=!0},formReset:function(){this.title="",this.content="",this.due=null}},computed:{formattedDate:function(){return this.due?p()(this.due,"Do MMM YYYY"):""}},mounted:function(){var t=this;w.$on("dialog",function(e){t.dialog=e})},created:function(){var t=x.a.auth().currentUser;if(t)var e=t.uid;this.userId=e}},y=k,_=a("2877"),j=a("6544"),V=a.n(j),C=a("0798"),T=a("8336"),P=a("b0af"),A=a("99d9"),L=a("12b2"),R=a("2e4b"),S=a("169a"),U=a("4bd4"),D=a("e449"),I=a("9910"),M=a("2677"),$=Object(_["a"])(y,l,u,!1,null,null,null),N=$.exports;V()($,{VAlert:C["a"],VBtn:T["a"],VCard:P["a"],VCardText:A["b"],VCardTitle:L["a"],VDatePicker:R["a"],VDialog:S["a"],VForm:U["a"],VMenu:D["a"],VSpacer:I["a"],VTextField:M["a"]});var O={components:{Popup:N},data:function(){return{name:"",photoURL:"",drawer:!1,links:[{icon:"dashboard",text:"Dashboard",route:"/dashboard"},{icon:"settings",text:"Settings",route:"/settings"}],snackbar:!1}},methods:{signout:function(){var t=this;x.a.auth().signOut().then(function(){t.$router.replace("/auth")})}},created:function(){var t=x.a.auth().currentUser;t&&(this.name=t.displayName,t.photoURL?this.photoURL=t.photoURL:this.photoURL="https://imgur.com/dLB4u3s.png")}},E=O,F=a("8212"),Y=a("0e8f"),B=a("132d"),z=a("a722"),W=a("8860"),q=a("ba95"),J=a("40fe"),Z=a("5d23"),G=a("f774"),K=a("2db4"),X=a("71d9"),H=a("706c"),Q=a("2a7f"),tt=Object(_["a"])(E,i,c,!1,null,null,null),et=tt.exports;V()(tt,{VAvatar:F["a"],VBtn:T["a"],VFlex:Y["a"],VIcon:B["a"],VLayout:z["a"],VList:W["a"],VListTile:q["a"],VListTileAction:J["a"],VListTileContent:Z["a"],VListTileTitle:Z["b"],VNavigationDrawer:G["a"],VSnackbar:K["a"],VSpacer:I["a"],VToolbar:X["a"],VToolbarSideIcon:H["a"],VToolbarTitle:Q["a"]});var at={name:"App",components:{Navbar:et},data:function(){return{}},computed:{show:function(){return"/auth"!=this.$route.path}}},nt=at,st=a("7496"),rt=a("549c"),ot=Object(_["a"])(nt,r,o,!1,null,null,null),it=ot.exports;V()(ot,{VApp:st["a"],VContent:rt["a"]});var ct=a("8c4f"),lt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"dashboard"},[a("h1",{staticClass:"subheading grey--text ml-4"},[t._v("Dashboard")]),a("v-snackbar",{attrs:{top:"",color:"warning",flat:""},model:{value:t.snackbar,callback:function(e){t.snackbar=e},expression:"snackbar"}},[a("span",[t._v("Are you sure?")]),a("v-btn",{attrs:{flat:"",color:"white"},on:{click:function(e){t.snackbar=!1,t.deleteProject()}}},[t._v("Yes")]),a("v-btn",{attrs:{flat:"",color:"white"},on:{click:function(e){t.snackbar=!1}}},[t._v("No")])],1),a("v-container",{staticClass:"my-2"},[a("v-layout",{staticClass:"mb-3",attrs:{row:"",wrap:""}},[a("v-btn",{attrs:{icon:""},on:{click:function(e){t.projects=t.projectsCopy,t.todos=!0}}},[a("v-icon",{attrs:{color:"primary"}},[t._v("dashboard")])],1),a("v-btn",{attrs:{icon:""},on:{click:function(e){t.filterProjects("complete"),t.todos=!1}}},[a("v-icon",{attrs:{color:"success"}},[t._v("check_circle")])],1),a("v-btn",{attrs:{icon:""},on:{click:function(e){t.filterProjects("ongoing"),t.todos=!1}}},[a("v-icon",{attrs:{color:"warning"}},[t._v("work")])],1),a("v-btn",{attrs:{icon:""},on:{click:function(e){t.filterProjects("overdue"),t.todos=!1}}},[a("v-icon",{attrs:{color:"error"}},[t._v("watch_later")])],1),a("v-spacer"),a("v-btn",{attrs:{icon:""},on:{click:function(e){return t.openDialog()}}},[a("v-icon",{attrs:{color:"primary"}},[t._v("add_circle")])],1)],1),0==this.projects.length?a("v-layout",{attrs:{row:"","justify-center":""}},[a("v-layout",{attrs:{column:"","align-center":""}},[a("span",{class:{"grey--text display-3":t.$vuetify.breakpoint.smAndUp,"display-1 grey--text":t.$vuetify.breakpoint.xsOnly}},[t._v("Nothing here 😔")]),a("v-btn",{staticClass:"display-1",attrs:{flat:"",color:"primary"},on:{click:t.openDialog}},[t._v("Add new Project")])],1)],1):t._e(),this.projects.length>0?a("draggable",{attrs:{handle:".handle",disabled:!t.todos},on:{change:t.saveOrder},model:{value:t.projects,callback:function(e){t.projects=e},expression:"projects"}},t._l(t.projects,function(e,n){return a("v-card",{key:e.title,attrs:{flat:""}},[a("v-layout",{class:"pa-2 project "+e.status,attrs:{row:"",wrap:""}},[a("v-flex",{attrs:{xs12:"",md6:""}},[t.todos?a("div",{staticClass:"caption grey--text ml-3"},[t._v("Project Title")]):t._e(),t.todos?t._e():a("div",{staticClass:"caption grey--text"},[t._v("Project Title")]),t.editMode&&n==t.indexToEdit?t._e():a("div",{class:{"mt-0 mb-1":t.$vuetify.breakpoint.smAndDown}},[t.todos?a("v-icon",{staticClass:"handle",attrs:{size:"20"}},[t._v("drag_indicator")]):t._e(),t._v("\n "+t._s(e.title)+"\n ")],1),a("v-form",{on:{submit:function(e){return e.preventDefault(),t.updateTitle(n)}}},[t.editMode&&t.indexToEdit==n?a("v-text-field",{staticClass:"ma-0 pa-0",attrs:{autofocus:"",color:e.status+"s"},model:{value:t.newTitle,callback:function(e){t.newTitle=e},expression:"newTitle"}}):t._e()],1)],1),a("v-flex",{attrs:{xs5:"",sm6:"",md2:""}},[a("div",{staticClass:"caption grey--text"},[t._v("Due by")]),a("div",{class:{"mt-0 mx-0 px-0":t.$vuetify.breakpoint.smAndDown}},[t._v(t._s(e.due))])]),a("v-flex",{staticClass:"pt-0",attrs:{xs3:"",sm3:"",md2:""}},[a("div",{staticClass:"mt-0 pt-0"},[a("v-btn",{class:e.status+" white--text px-0 mx-0",attrs:{flat:"",small:"",round:""},on:{click:function(e){return t.changeStatus(n)}}},[t._v("\n "+t._s(e.status)+"\n ")])],1)]),a("v-spacer"),a("v-flex",{attrs:{xs3:"",sm3:"",md2:""}},[a("div",{staticClass:"mt-0 pt-0"},[a("v-btn",{staticClass:"pa-0 ma-0",class:""+e.status,attrs:{icon:""},on:{click:function(a){t.editMode=!t.editMode,t.indexToEdit=n,t.newTitle=e.title}}},[a("v-icon",[t._v("edit")])],1),a("v-btn",{staticClass:"pa-0 ma-0",class:""+e.status,attrs:{icon:""},on:{click:function(e){t.snackbar=!0,t.indexToEdit=n}}},[a("v-icon",[t._v("delete")])],1)],1)])],1),a("v-divider")],1)}),1):t._e()],1)],1)},ut=[],dt=a("cebc"),pt=(a("ac6a"),a("310e")),vt=a.n(pt),ft={components:{draggable:vt.a},data:function(){return{projects:[],projectsCopy:[],todos:!0,userId:"",btnColor:"",snackbar:!1,editMode:!1,newTitle:"",indexToEdit:0,drag:!0}},mounted:function(){var t=this;w.$on("project-added",function(){t.saveOrder()})},methods:{openDialog:function(){w.$emit("dialog",!0)},filterProjects:function(t){this.projects=this.projectsCopy,"complete"===t?this.projects=this.projects.filter(function(t){return"complete"===t.status}):"ongoing"===t?this.projects=this.projects.filter(function(t){return"ongoing"===t.status}):"overdue"===t&&(this.projects=this.projects.filter(function(t){return"overdue"===t.status}))},changeStatus:function(t){var e=this.projects[t],a=b.collection("users/"+this.userId+"/projects").doc(e.id);switch(e.status){case"ongoing":var n="complete",s="success";break;case"complete":n="overdue",s="error";break;case"overdue":n="ongoing",s="info";break;default:break}a.set({status:n},{merge:!0}),e.status=n,this.btnColor=s},deleteProject:function(){var t=this.indexToEdit,e=this.projects[t],a=b.collection("users/"+this.userId+"/projects").doc(e.id);a.delete().then(function(){}).catch(function(t){alert(t.message)}),t>-1&&(this.projects.splice(t,1),this.projectsCopy.splice(t,1)),this.saveOrder()},saveOrder:function(){for(var t=0;t0||this.newPassword2.length>0?this.newPassword!=this.newPassword2?(this.loading=!1,this.snackbarMessage="Passwords do not match",this.snackbar=!0):this.user.updatePassword(this.newPassword).then(function(){t.user.updateProfile({displayName:t.userName,photoURL:t.photoURL}).then(function(){t.$router.go(),t.snackbarMessage="password updated successfully",t.snackbar=!0})}).catch(function(e){t.loading=!1;var a=e.message;t.snackbarMessage=a,t.snackbar=!0}):this.user.updateProfile({displayName:this.userName,photoURL:this.photoURL}).then(function(){t.$router.go()})},selectFile:function(){this.$refs.uploadInput.click()},detectFiles:function(t){var e=this;this.loading=!0;var a=t.target.files||t.dataTransfer.files;Array.from(Array(a.length).keys()).map(function(t){e.upload(a[t])})},upload:function(t){var e=this,a=x.a.storage().ref(),n=a.child("images/"+this.userId);n.put(t).then(function(){n.getDownloadURL().then(function(t){e.loading=!1,e.photoURL=t}).catch(function(t){alert(t.message)})})}},created:function(){var t=x.a.auth().currentUser;t&&(this.user=t,this.userId=t.uid,this.userName=t.displayName,t.photoURL?this.photoURL=t.photoURL:this.photoURL="https://imgur.com/dLB4u3s.png")}}),_t=yt,jt=(a("3e4b"),Object(_["a"])(_t,wt,kt,!1,null,null,null)),Vt=jt.exports;V()(jt,{VAvatar:F["a"],VBtn:T["a"],VCard:P["a"],VCardActions:A["a"],VCardText:A["b"],VContainer:mt["a"],VFlex:Y["a"],VForm:U["a"],VLayout:z["a"],VSnackbar:K["a"],VSpacer:I["a"],VTextField:M["a"]});var Ct=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{attrs:{id:"app"}},[a("v-app",{attrs:{id:"inspire"}},[a("v-snackbar",{attrs:{timeout:4e3,top:"",color:"error"},model:{value:t.snackbar,callback:function(e){t.snackbar=e},expression:"snackbar"}},[a("span",[t._v(t._s(t.snackbarText))]),a("v-btn",{attrs:{flat:"",color:"white"},on:{click:function(e){t.snackbar=!1}}},[t._v("Close")])],1),a("v-content",[a("v-container",{attrs:{fluid:"","fill-height":""}},[a("v-layout",{attrs:{"align-center":"","justify-center":""}},[a("v-flex",{attrs:{xs12:"",sm8:"",md4:""}},[a("v-card",{staticClass:"elevation-10"},[a("v-toolbar",{attrs:{dark:"",color:"primary"}},[t.login?a("v-toolbar-title",[t._v("Sign in")]):t._e(),t.login?t._e():a("v-toolbar-title",[t._v("Welcome")])],1),a("v-card-text",[a("v-form",{attrs:{id:"login-form"},on:{submit:function(e){e.preventDefault(),t.login?t.signin():t.signup()}}},[t.login?t._e():a("v-text-field",{attrs:{"prepend-icon":"person",name:"name",label:"Name",type:"text",rules:t.nameRules},model:{value:t.name,callback:function(e){t.name=e},expression:"name"}}),a("v-text-field",{attrs:{"prepend-icon":"email",name:"email",label:"Email",type:"text",rules:t.emailRules},model:{value:t.email,callback:function(e){t.email=e},expression:"email"}}),a("v-text-field",{attrs:{"prepend-icon":"lock",name:"password",label:"Password",id:"password",type:"password",rules:t.passwordRules},model:{value:t.password,callback:function(e){t.password=e},expression:"password"}})],1),t.login?t._e():a("p",{staticClass:"text-xs-center primary--text",on:{click:function(e){t.login=!0}}},[a("a",[t._v("Already have an account? Sign in")])]),t.login?a("p",{staticClass:"text-xs-center primary--text",on:{click:function(e){t.login=!1}}},[a("a",[t._v("Don't have an account? Sign up")])]):t._e()],1),a("v-card-actions",[a("v-spacer"),t.login?a("v-btn",{attrs:{color:"primary",type:"submit",form:"login-form",loading:t.loading}},[t._v("Login")]):t._e(),t.login?t._e():a("v-btn",{attrs:{color:"primary",type:"submit",form:"login-form",loading:t.loading}},[t._v("Sing up")])],1)],1)],1)],1)],1)],1)],1)],1)},Tt=[],Pt=(a("7f7f"),{data:function(){return{name:"",email:"",password:"",loading:!1,login:!0,nameRules:[function(t){return t.length>=2||"Too short"}],emailRules:[function(t){var e=/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;return e.test(t)||"Invalid email."}],passwordRules:[function(t){return t.length>=5||"Too short."}],snackbar:!1,snackbarText:""}},methods:{signup:function(){var t=this;this.name.length>=2?(this.loading=!0,x.a.auth().createUserWithEmailAndPassword(this.email,this.password).then(function(e){e=x.a.auth().currentUser,e&&e.updateProfile({displayName:t.name}).then(function(){t.loading=!1,t.$router.replace("/dashboard")})}).catch(function(e){var a=e.message;t.loading=!1,a.length>0&&(t.snackbarText=a,t.snackbar=!0)})):(this.snackbarText="Name too short",this.snackbar=!0)},signin:function(){var t=this;this.loading=!0,x.a.auth().signInWithEmailAndPassword(this.email,this.password).then(function(){t.loading=!1,t.$router.replace("/dashboard")}).catch(function(t){return t.message}).then(function(e){t.loading=!1,t.snackbarText=e,t.snackbar=!0})}}}),At=Pt,Lt=(a("7c2d"),Object(_["a"])(At,Ct,Tt,!1,null,null,null)),Rt=Lt.exports;V()(Lt,{VApp:st["a"],VBtn:T["a"],VCard:P["a"],VCardActions:A["a"],VCardText:A["b"],VContainer:mt["a"],VContent:rt["a"],VFlex:Y["a"],VForm:U["a"],VLayout:z["a"],VSnackbar:K["a"],VSpacer:I["a"],VTextField:M["a"],VToolbar:X["a"],VToolbarTitle:Q["a"]}),n["a"].use(ct["a"]);var St=new ct["a"]({mode:"history",base:"/",routes:[{path:"*",redirect:"/auth"},{path:"/",redirect:"/auth"},{path:"/dashboard",name:"dashboard",component:xt,meta:{requiresAuth:!0}},{path:"/settings",name:"settings",component:Vt,meta:{requiresAuth:!0}},{path:"/auth",name:"auth",component:Rt}]});St.beforeEach(function(t,e,a){t.matched.some(function(t){return t.meta.requiresAuth})?x.a.auth().currentUser?a():a({path:"/login",query:{redirect:t.fullPath}}):a()});var Ut=St;n["a"].config.productionTip=!1;var Dt="";x.a.auth().onAuthStateChanged(function(){Dt||(Dt=new n["a"]({router:Ut,render:function(t){return t(it)}}).$mount("#app"))})},"7c2d":function(t,e,a){"use strict";var n=a("304b"),s=a.n(n);s.a},e307:function(t,e,a){},f6b3:function(t,e,a){}}); 2 | //# sourceMappingURL=app.560d5aab.js.map -------------------------------------------------------------------------------- /dist/js/app.560d5aab.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/views/Dashboard.vue?c60e","webpack:///./src/views/Settings.vue?cec8","webpack:///./src/plugins/vuetify.js","webpack:///./src/App.vue?c810","webpack:///./src/components/Navbar.vue?6aa0","webpack:///./src/components/Popup.vue?e87d","webpack:///./src/fb.js","webpack:///./src/event-bus.js","webpack:///src/components/Popup.vue","webpack:///./src/components/Popup.vue?fe96","webpack:///./src/components/Popup.vue","webpack:///src/components/Navbar.vue","webpack:///./src/components/Navbar.vue?e293","webpack:///./src/components/Navbar.vue","webpack:///src/App.vue","webpack:///./src/App.vue?0bd2","webpack:///./src/App.vue","webpack:///./src/views/Dashboard.vue?7404","webpack:///src/views/Dashboard.vue","webpack:///./src/views/Dashboard.vue?e52e","webpack:///./src/views/Dashboard.vue","webpack:///./src/views/Settings.vue?a476","webpack:///src/views/Settings.vue","webpack:///./src/views/Settings.vue?beea","webpack:///./src/views/Settings.vue","webpack:///./src/views/Auth.vue?6c99","webpack:///src/views/Auth.vue","webpack:///./src/views/Auth.vue?617d","webpack:///./src/views/Auth.vue","webpack:///./src/router.js","webpack:///./src/main.js","webpack:///./src/views/Auth.vue?94d5"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","app","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vuetify_loader_lib_loader_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Dashboard_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vuetify_loader_lib_loader_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Dashboard_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vuetify_loader_lib_loader_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Settings_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vuetify_loader_lib_loader_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Settings_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default","Vue","use","Vuetify","iconfont","theme","primary","success","info","error","completes","ongoings","overdues","Appvue_type_template_id_13a30f14_render","_vm","this","_h","$createElement","_c","_self","staticClass","_e","show","staticRenderFns","Navbarvue_type_template_id_ec53d5f2_render","attrs","timeout","top","color","model","callback","$$v","snackbar","expression","_v","flat","on","click","$event","drawer","signout","right","column","align-center","size","src","photoURL","_s","projectAdded","_l","link","text","router","to","route","icon","Navbarvue_type_template_id_ec53d5f2_staticRenderFns","Popupvue_type_template_id_38462a1d_render","max-width","dialog","slot","ref","type","alerta","label","prepend-icon","title","rules","dateRules","readonly","formattedDate","due","loading","submit","Popupvue_type_template_id_38462a1d_staticRenderFns","require","firebaseConfig","apiKey","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId","firebase","initializeApp","db","firestore","EventBus","Popupvue_type_script_lang_js_","content","userId","v","methods","_this","collectionRef","fb","collection","project","format_default","status","priority","add","then","formReset","$emit","computed","mounted","_this2","$on","created","user","dist_index_cjs_default","a","auth","currentUser","uid","components_Popupvue_type_script_lang_js_","component","componentNormalizer","Popup","installComponents_default","VAlert","VBtn","VCard","VCardText","components_VCard","VCardTitle","VDatePicker","VDialog","VForm","VMenu","VSpacer","VGrid","VTextField","Navbarvue_type_script_lang_js_","components","links","signOut","$router","replace","displayName","components_Navbarvue_type_script_lang_js_","Navbar_component","Navbar","VAvatar","VFlex","VIcon","VLayout","VList","VListTile","VListTileAction","VListTileContent","components_VList","VListTileTitle","VNavigationDrawer","VSnackbar","VToolbar","VToolbarSideIcon","VToolbarTitle","components_VToolbar","Appvue_type_script_lang_js_","$route","path","src_Appvue_type_script_lang_js_","App_component","App","VApp","VContent","Dashboardvue_type_template_id_02ce4984_render","deleteProject","row","wrap","projects","projectsCopy","todos","filterProjects","openDialog","justify-center","class","grey--text display-3","$vuetify","breakpoint","smAndUp","display-1 grey--text","xsOnly","handle","disabled","change","saveOrder","index","xs12","md6","editMode","indexToEdit","mt-0 mb-1","smAndDown","preventDefault","updateTitle","autofocus","newTitle","xs5","sm6","md2","mt-0 mx-0 px-0","xs3","sm3","small","round","changeStatus","Dashboardvue_type_template_id_02ce4984_staticRenderFns","Dashboardvue_type_script_lang_js_","draggable","vuedraggable_common_default","btnColor","drag","filter","item","currentProject","docRef","doc","id","newStatus","set","merge","delete","catch","alert","message","projectsRef","orderBy","onSnapshot","res","changes","docChanges","forEach","unshift","objectSpread","views_Dashboardvue_type_script_lang_js_","Dashboard_component","Dashboard","VContainer","VDivider","Settingsvue_type_template_id_755077cf_render","snackbarMessage","offset-sm3","updateProfile","selectFile","accept","multiple","detectFiles","userName","newPassword","newPassword2","Settingsvue_type_template_id_755077cf_staticRenderFns","Settingsvue_type_script_lang_js_","updatePassword","go","errorMessage","$refs","uploadInput","e","fileList","target","files","dataTransfer","Array","from","keys","map","x","upload","file","_this3","storageRef","storage","avatarImagesRef","child","put","getDownloadURL","url","views_Settingsvue_type_script_lang_js_","Settings_component","Settings","VCardActions","Authvue_type_template_id_8a6a32cc_render","snackbarText","fluid","fill-height","sm8","md4","dark","login","signin","signup","nameRules","emailRules","email","passwordRules","password","form","Authvue_type_template_id_8a6a32cc_staticRenderFns","Authvue_type_script_lang_js_","pattern","test","createUserWithEmailAndPassword","signInWithEmailAndPassword","views_Authvue_type_script_lang_js_","Auth_component","Auth","Router","base","process","routes","redirect","meta","requiresAuth","beforeEach","next","matched","some","record","query","fullPath","config","productionTip","onAuthStateChanged","render","h","$mount","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vuetify_loader_lib_loader_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Auth_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vuetify_loader_lib_loader_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Auth_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default"],"mappings":"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","file":"js/app.560d5aab.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(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 \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\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// 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\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 \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","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=style&index=0&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&lang=css&\"","import Vue from 'vue'\nimport Vuetify from 'vuetify/lib'\nimport 'vuetify/src/stylus/app.styl'\n\nVue.use(Vuetify, {\n iconfont: 'md',\n theme: {\n primary: '#9652ff',\n success: '#3cd1c2',\n info: '#ffaa2c',\n error: '#f83e70',\n completes: '#3cd1c2',\n ongoings: '#ffaa2c',\n overdues: '#f83e70',\n\n },\n})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',{staticClass:\"grey lighten-4\"},[(_vm.show)?_c('Navbar'):_vm._e(),(_vm.show)?_c('v-content',{staticClass:\"mb-4\"},[_c('router-view')],1):_vm._e(),(!_vm.show)?_c('v-content',{staticClass:\"ma-0\"},[_c('router-view')],1):_vm._e()],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('nav',[_c('v-snackbar',{attrs:{\"timeout\":4000,\"top\":\"\",\"color\":\"success\"},model:{value:(_vm.snackbar),callback:function ($$v) {_vm.snackbar=$$v},expression:\"snackbar\"}},[_c('span',[_vm._v(\"Wow! You added a new project.\")]),_c('v-btn',{attrs:{\"flat\":\"\",\"color\":\"white\"},on:{\"click\":function($event){_vm.snackbar = false}}},[_vm._v(\"Close\")])],1),_c('v-toolbar',{attrs:{\"flat\":\"\",\"app\":\"\"}},[_c('v-toolbar-side-icon',{staticClass:\"grey--text\",on:{\"click\":function($event){_vm.drawer = !_vm.drawer}}}),_c('v-toolbar-title',{staticClass:\"text-uppercase grey--text\"},[_c('span',{staticClass:\"font-weight-light\"},[_vm._v(\"Todo\")]),_c('span',[_vm._v(\"Dev\")])]),_c('v-spacer'),_c('v-btn',{attrs:{\"flat\":\"\",\"color\":\"grey\"},on:{\"click\":_vm.signout}},[_c('span',[_vm._v(\"Sign out\")]),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"exit_to_app\")])],1)],1),_c('v-navigation-drawer',{staticClass:\"primary\",attrs:{\"app\":\"\"},model:{value:(_vm.drawer),callback:function ($$v) {_vm.drawer=$$v},expression:\"drawer\"}},[_c('v-layout',{attrs:{\"column\":\"\",\"align-center\":\"\"}},[_c('v-flex',{staticClass:\"mt-5 text-xs-center\"},[_c('v-avatar',{attrs:{\"size\":\"130\"}},[_c('img',{attrs:{\"src\":_vm.photoURL}})]),_c('p',{staticClass:\"white--text subheading mt-1 text-xs-center\"},[_vm._v(\"\\n \"+_vm._s(_vm.name)+\"\\n \")])],1),_c('v-flex',{staticClass:\"mt-3 mb-3\"},[_c('Popup',{on:{\"projectAdded\":function($event){_vm.snackbar=true}}})],1)],1),_c('v-list',_vm._l((_vm.links),function(link){return _c('v-list-tile',{key:link.text,attrs:{\"router\":\"\",\"to\":link.route}},[_c('v-list-tile-action',[_c('v-icon',{staticClass:\"white--text\"},[_vm._v(_vm._s(link.icon))])],1),_c('v-list-tile-content',[_c('v-list-tile-title',{staticClass:\"white--text\"},[_vm._v(_vm._s(link.text))])],1)],1)}),1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"600px\"},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-btn',{staticClass:\"success\",attrs:{\"slot\":\"activator\",\"flat\":\"\"},slot:\"activator\"},[_vm._v(\"Add new project\")]),_c('v-card',[_c('v-card-title',[_c('h2',[_vm._v(\"Add a New Project\")])]),_c('v-card-text',[_c('v-form',{ref:\"form\",staticClass:\"px-3\"},[_c('v-alert',{attrs:{\"type\":\"error\",\"value\":_vm.alerta}},[_vm._v(\"\\n Type some title\\n \")]),_c('v-text-field',{attrs:{\"label\":\"Title\",\"prepend-icon\":\"edit\"},model:{value:(_vm.title),callback:function ($$v) {_vm.title=$$v},expression:\"title\"}}),_c('v-menu',[_c('v-text-field',{attrs:{\"slot\":\"activator\",\"rules\":_vm.dateRules,\"readonly\":\"\",\"value\":_vm.formattedDate,\"label\":\"Due date\",\"prepend-icon\":\"date_range\"},slot:\"activator\"}),_c('v-date-picker',{model:{value:(_vm.due),callback:function ($$v) {_vm.due=$$v},expression:\"due\"}})],1),_c('v-spacer'),_c('v-btn',{staticClass:\"success mx-0 mt-3\",attrs:{\"flat\":\"\",\"loading\":_vm.loading},on:{\"click\":_vm.submit}},[_vm._v(\"Add project\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import firebase from 'firebase/app'\nimport 'firebase/firestore'\nrequire('firebase/auth')\n\n// Your web app's Firebase configuration\nvar firebaseConfig = {\n apiKey: \"AIzaSyA2VM3IU0FLjhcs-iDGa_iXd5rnJcmPdWU\",\n authDomain: \"todoteam-3263d.firebaseapp.com\",\n databaseURL: \"https://todoteam-3263d.firebaseio.com\",\n projectId: \"todoteam-3263d\",\n storageBucket: \"todoteam-3263d.appspot.com\",\n messagingSenderId: \"643524690865\",\n appId: \"1:643524690865:web:1b7e4938dad3e2e4\"\n};\n\n// Initialize Firebase\nfirebase.initializeApp(firebaseConfig);\nconst db = firebase.firestore()\n\nexport default db;\n","import Vue from 'vue';\nexport const EventBus = new Vue();","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Popup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Popup.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Popup.vue?vue&type=template&id=38462a1d&\"\nimport script from \"./Popup.vue?vue&type=script&lang=js&\"\nexport * from \"./Popup.vue?vue&type=script&lang=js&\"\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 \"!/home/ianluan/tododev/node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib'\nimport { VBtn } from 'vuetify/lib'\nimport { VCard } from 'vuetify/lib'\nimport { VCardText } from 'vuetify/lib'\nimport { VCardTitle } from 'vuetify/lib'\nimport { VDatePicker } from 'vuetify/lib'\nimport { VDialog } from 'vuetify/lib'\nimport { VForm } from 'vuetify/lib'\nimport { VMenu } from 'vuetify/lib'\nimport { VSpacer } from 'vuetify/lib'\nimport { VTextField } from 'vuetify/lib'\ninstallComponents(component, {VAlert,VBtn,VCard,VCardText,VCardTitle,VDatePicker,VDialog,VForm,VMenu,VSpacer,VTextField})\n","\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navbar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navbar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Navbar.vue?vue&type=template&id=ec53d5f2&\"\nimport script from \"./Navbar.vue?vue&type=script&lang=js&\"\nexport * from \"./Navbar.vue?vue&type=script&lang=js&\"\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 \"!/home/ianluan/tododev/node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAvatar } from 'vuetify/lib'\nimport { VBtn } from 'vuetify/lib'\nimport { VFlex } from 'vuetify/lib'\nimport { VIcon } from 'vuetify/lib'\nimport { VLayout } from 'vuetify/lib'\nimport { VList } from 'vuetify/lib'\nimport { VListTile } from 'vuetify/lib'\nimport { VListTileAction } from 'vuetify/lib'\nimport { VListTileContent } from 'vuetify/lib'\nimport { VListTileTitle } from 'vuetify/lib'\nimport { VNavigationDrawer } from 'vuetify/lib'\nimport { VSnackbar } from 'vuetify/lib'\nimport { VSpacer } from 'vuetify/lib'\nimport { VToolbar } from 'vuetify/lib'\nimport { VToolbarSideIcon } from 'vuetify/lib'\nimport { VToolbarTitle } from 'vuetify/lib'\ninstallComponents(component, {VAvatar,VBtn,VFlex,VIcon,VLayout,VList,VListTile,VListTileAction,VListTileContent,VListTileTitle,VNavigationDrawer,VSnackbar,VSpacer,VToolbar,VToolbarSideIcon,VToolbarTitle})\n","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/vuetify-loader/lib/loader.js!../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=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/vuetify-loader/lib/loader.js!../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=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=13a30f14&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\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 \"!/home/ianluan/tododev/node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib'\nimport { VContent } from 'vuetify/lib'\ninstallComponents(component, {VApp,VContent})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"dashboard\"},[_c('h1',{staticClass:\"subheading grey--text ml-4\"},[_vm._v(\"Dashboard\")]),_c('v-snackbar',{attrs:{\"top\":\"\",\"color\":\"warning\",\"flat\":\"\"},model:{value:(_vm.snackbar),callback:function ($$v) {_vm.snackbar=$$v},expression:\"snackbar\"}},[_c('span',[_vm._v(\"Are you sure?\")]),_c('v-btn',{attrs:{\"flat\":\"\",\"color\":\"white\"},on:{\"click\":function($event){_vm.snackbar = false; _vm.deleteProject()}}},[_vm._v(\"Yes\")]),_c('v-btn',{attrs:{\"flat\":\"\",\"color\":\"white\"},on:{\"click\":function($event){_vm.snackbar = false;}}},[_vm._v(\"No\")])],1),_c('v-container',{staticClass:\"my-2\"},[_c('v-layout',{staticClass:\"mb-3\",attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.projects = _vm.projectsCopy; _vm.todos = true}}},[_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(\"dashboard\")])],1),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.filterProjects('complete'); _vm.todos = false}}},[_c('v-icon',{attrs:{\"color\":\"success\"}},[_vm._v(\"check_circle\")])],1),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.filterProjects('ongoing'); _vm.todos = false}}},[_c('v-icon',{attrs:{\"color\":\"warning\"}},[_vm._v(\"work\")])],1),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.filterProjects('overdue'); _vm.todos = false}}},[_c('v-icon',{attrs:{\"color\":\"error\"}},[_vm._v(\"watch_later\")])],1),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.openDialog()}}},[_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(\"add_circle\")])],1)],1),(this.projects.length == 0)?_c('v-layout',{attrs:{\"row\":\"\",\"justify-center\":\"\"}},[_c('v-layout',{attrs:{\"column\":\"\",\"align-center\":\"\"}},[_c('span',{class:{'grey--text display-3': _vm.$vuetify.breakpoint.smAndUp, 'display-1 grey--text': _vm.$vuetify.breakpoint.xsOnly}},[_vm._v(\"Nothing here 😔\")]),_c('v-btn',{staticClass:\"display-1\",attrs:{\"flat\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.openDialog}},[_vm._v(\"Add new Project\")])],1)],1):_vm._e(),(this.projects.length > 0)?_c('draggable',{attrs:{\"handle\":\".handle\",\"disabled\":!_vm.todos},on:{\"change\":_vm.saveOrder},model:{value:(_vm.projects),callback:function ($$v) {_vm.projects=$$v},expression:\"projects\"}},_vm._l((_vm.projects),function(project,index){return _c('v-card',{key:project.title,attrs:{\"flat\":\"\"}},[_c('v-layout',{class:(\"pa-2 project \" + (project.status)),attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"xs12\":\"\",\"md6\":\"\"}},[(_vm.todos)?_c('div',{staticClass:\"caption grey--text ml-3\"},[_vm._v(\"Project Title\")]):_vm._e(),(!_vm.todos)?_c('div',{staticClass:\"caption grey--text\"},[_vm._v(\"Project Title\")]):_vm._e(),(!_vm.editMode || index != _vm.indexToEdit)?_c('div',{class:{'mt-0 mb-1': _vm.$vuetify.breakpoint.smAndDown}},[(_vm.todos)?_c('v-icon',{staticClass:\"handle\",attrs:{\"size\":\"20\"}},[_vm._v(\"drag_indicator\")]):_vm._e(),_vm._v(\"\\n \"+_vm._s(project.title)+\"\\n \")],1):_vm._e(),_c('v-form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.updateTitle(index)}}},[(_vm.editMode && _vm.indexToEdit == index)?_c('v-text-field',{staticClass:\"ma-0 pa-0\",attrs:{\"autofocus\":\"\",\"color\":((project.status) + \"s\")},model:{value:(_vm.newTitle),callback:function ($$v) {_vm.newTitle=$$v},expression:\"newTitle\"}}):_vm._e()],1)],1),_c('v-flex',{attrs:{\"xs5\":\"\",\"sm6\":\"\",\"md2\":\"\"}},[_c('div',{staticClass:\"caption grey--text\"},[_vm._v(\"Due by\")]),_c('div',{class:{'mt-0 mx-0 px-0': _vm.$vuetify.breakpoint.smAndDown}},[_vm._v(_vm._s(project.due))])]),_c('v-flex',{staticClass:\"pt-0\",attrs:{\"xs3\":\"\",\"sm3\":\"\",\"md2\":\"\"}},[_c('div',{staticClass:\"mt-0 pt-0\"},[_c('v-btn',{class:((project.status) + \" white--text px-0 mx-0\"),attrs:{\"flat\":\"\",\"small\":\"\",\"round\":\"\"},on:{\"click\":function($event){return _vm.changeStatus(index)}}},[_vm._v(\"\\n \"+_vm._s(project.status)+\"\\n \")])],1)]),_c('v-spacer'),_c('v-flex',{attrs:{\"xs3\":\"\",\"sm3\":\"\",\"md2\":\"\"}},[_c('div',{staticClass:\"mt-0 pt-0\"},[_c('v-btn',{staticClass:\"pa-0 ma-0\",class:(\"\" + (project.status)),attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.editMode = !_vm.editMode; _vm.indexToEdit = index; _vm.newTitle = project.title;}}},[_c('v-icon',[_vm._v(\"edit\")])],1),_c('v-btn',{staticClass:\"pa-0 ma-0\",class:(\"\" + (project.status)),attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.snackbar = true; _vm.indexToEdit = index;}}},[_c('v-icon',[_vm._v(\"delete\")])],1)],1)])],1),_c('v-divider')],1)}),1):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Dashboard.vue?vue&type=template&id=02ce4984&\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=js&\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Dashboard.vue?vue&type=style&index=0&lang=css&\"\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 \"!/home/ianluan/tododev/node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib'\nimport { VCard } from 'vuetify/lib'\nimport { VContainer } from 'vuetify/lib'\nimport { VDivider } from 'vuetify/lib'\nimport { VFlex } from 'vuetify/lib'\nimport { VForm } from 'vuetify/lib'\nimport { VIcon } from 'vuetify/lib'\nimport { VLayout } from 'vuetify/lib'\nimport { VSnackbar } from 'vuetify/lib'\nimport { VSpacer } from 'vuetify/lib'\nimport { VTextField } from 'vuetify/lib'\ninstallComponents(component, {VBtn,VCard,VContainer,VDivider,VFlex,VForm,VIcon,VLayout,VSnackbar,VSpacer,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"settings\"},[_c('h1',{staticClass:\"subheading grey--text ml-4\"},[_vm._v(\"Settings\")]),_c('v-snackbar',{attrs:{\"top\":\"\",\"color\":\"error\",\"flat\":\"\"},model:{value:(_vm.snackbar),callback:function ($$v) {_vm.snackbar=$$v},expression:\"snackbar\"}},[_c('span',[_vm._v(_vm._s(_vm.snackbarMessage))]),_c('v-btn',{attrs:{\"flat\":\"\",\"color\":\"white\"},on:{\"click\":function($event){_vm.snackbar = false;}}},[_vm._v(\"Close\")])],1),_c('v-container',[_c('v-layout',{attrs:{\"row\":\"\"}},[_c('v-flex',{attrs:{\"xs12\":\"\",\"sm6\":\"\",\"offset-sm3\":\"\"}},[_c('v-card',[_c('v-card-text',[_c('v-form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.updateProfile()}}},[_c('v-layout',{attrs:{\"row\":\"\",\"justify-center\":\"\"}},[_c('v-avatar',{staticClass:\"avatar\",attrs:{\"size\":\"180\"}},[_c('img',{staticClass:\"userAvatar\",attrs:{\"src\":_vm.photoURL},on:{\"click\":_vm.selectFile}})])],1),_c('input',{ref:\"uploadInput\",attrs:{\"type\":\"file\",\"id\":\"files\",\"accept\":\"image/*\",\"multiple\":false},on:{\"change\":function($event){return _vm.detectFiles($event)}}}),_c('v-text-field',{attrs:{\"prepend-icon\":\"person\",\"label\":\"Name\",\"color\":\"primary\"},model:{value:(_vm.userName),callback:function ($$v) {_vm.userName=$$v},expression:\"userName\"}}),_c('v-text-field',{attrs:{\"prepend-icon\":\"lock\",\"type\":\"password\",\"label\":\"New password\",\"color\":\"primary\"},model:{value:(_vm.newPassword),callback:function ($$v) {_vm.newPassword=$$v},expression:\"newPassword\"}}),_c('v-text-field',{attrs:{\"prepend-icon\":\"lock\",\"type\":\"password\",\"label\":\"Confirm new password\",\"color\":\"primary\"},model:{value:(_vm.newPassword2),callback:function ($$v) {_vm.newPassword2=$$v},expression:\"newPassword2\"}})],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.loading},on:{\"click\":function($event){return _vm.updateProfile()}}},[_vm._v(\"Save\")])],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=755077cf&\"\nimport script from \"./Settings.vue?vue&type=script&lang=js&\"\nexport * from \"./Settings.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Settings.vue?vue&type=style&index=0&lang=css&\"\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 \"!/home/ianluan/tododev/node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAvatar } from 'vuetify/lib'\nimport { VBtn } from 'vuetify/lib'\nimport { VCard } from 'vuetify/lib'\nimport { VCardActions } from 'vuetify/lib'\nimport { VCardText } from 'vuetify/lib'\nimport { VContainer } from 'vuetify/lib'\nimport { VFlex } from 'vuetify/lib'\nimport { VForm } from 'vuetify/lib'\nimport { VLayout } from 'vuetify/lib'\nimport { VSnackbar } from 'vuetify/lib'\nimport { VSpacer } from 'vuetify/lib'\nimport { VTextField } from 'vuetify/lib'\ninstallComponents(component, {VAvatar,VBtn,VCard,VCardActions,VCardText,VContainer,VFlex,VForm,VLayout,VSnackbar,VSpacer,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('v-app',{attrs:{\"id\":\"inspire\"}},[_c('v-snackbar',{attrs:{\"timeout\":4000,\"top\":\"\",\"color\":\"error\"},model:{value:(_vm.snackbar),callback:function ($$v) {_vm.snackbar=$$v},expression:\"snackbar\"}},[_c('span',[_vm._v(_vm._s(_vm.snackbarText))]),_c('v-btn',{attrs:{\"flat\":\"\",\"color\":\"white\"},on:{\"click\":function($event){_vm.snackbar = false}}},[_vm._v(\"Close\")])],1),_c('v-content',[_c('v-container',{attrs:{\"fluid\":\"\",\"fill-height\":\"\"}},[_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-center\":\"\"}},[_c('v-flex',{attrs:{\"xs12\":\"\",\"sm8\":\"\",\"md4\":\"\"}},[_c('v-card',{staticClass:\"elevation-10\"},[_c('v-toolbar',{attrs:{\"dark\":\"\",\"color\":\"primary\"}},[(_vm.login)?_c('v-toolbar-title',[_vm._v(\"Sign in\")]):_vm._e(),(!_vm.login)?_c('v-toolbar-title',[_vm._v(\"Welcome\")]):_vm._e()],1),_c('v-card-text',[_c('v-form',{attrs:{\"id\":\"login-form\"},on:{\"submit\":function($event){$event.preventDefault();_vm.login? _vm.signin() : _vm.signup()}}},[(!_vm.login)?_c('v-text-field',{attrs:{\"prepend-icon\":\"person\",\"name\":\"name\",\"label\":\"Name\",\"type\":\"text\",\"rules\":_vm.nameRules},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}):_vm._e(),_c('v-text-field',{attrs:{\"prepend-icon\":\"email\",\"name\":\"email\",\"label\":\"Email\",\"type\":\"text\",\"rules\":_vm.emailRules},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}}),_c('v-text-field',{attrs:{\"prepend-icon\":\"lock\",\"name\":\"password\",\"label\":\"Password\",\"id\":\"password\",\"type\":\"password\",\"rules\":_vm.passwordRules},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}})],1),(!_vm.login)?_c('p',{staticClass:\"text-xs-center primary--text\",on:{\"click\":function($event){_vm.login=true;}}},[_c('a',[_vm._v(\"Already have an account? Sign in\")])]):_vm._e(),(_vm.login)?_c('p',{staticClass:\"text-xs-center primary--text\",on:{\"click\":function($event){_vm.login=false}}},[_c('a',[_vm._v(\"Don't have an account? Sign up\")])]):_vm._e()],1),_c('v-card-actions',[_c('v-spacer'),(_vm.login)?_c('v-btn',{attrs:{\"color\":\"primary\",\"type\":\"submit\",\"form\":\"login-form\",\"loading\":_vm.loading}},[_vm._v(\"Login\")]):_vm._e(),(!_vm.login)?_c('v-btn',{attrs:{\"color\":\"primary\",\"type\":\"submit\",\"form\":\"login-form\",\"loading\":_vm.loading}},[_vm._v(\"Sing up\")]):_vm._e()],1)],1)],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Auth.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Auth.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Auth.vue?vue&type=template&id=8a6a32cc&\"\nimport script from \"./Auth.vue?vue&type=script&lang=js&\"\nexport * from \"./Auth.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Auth.vue?vue&type=style&index=0&lang=css&\"\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 \"!/home/ianluan/tododev/node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib'\nimport { VBtn } from 'vuetify/lib'\nimport { VCard } from 'vuetify/lib'\nimport { VCardActions } from 'vuetify/lib'\nimport { VCardText } from 'vuetify/lib'\nimport { VContainer } from 'vuetify/lib'\nimport { VContent } from 'vuetify/lib'\nimport { VFlex } from 'vuetify/lib'\nimport { VForm } from 'vuetify/lib'\nimport { VLayout } from 'vuetify/lib'\nimport { VSnackbar } from 'vuetify/lib'\nimport { VSpacer } from 'vuetify/lib'\nimport { VTextField } from 'vuetify/lib'\nimport { VToolbar } from 'vuetify/lib'\nimport { VToolbarTitle } from 'vuetify/lib'\ninstallComponents(component, {VApp,VBtn,VCard,VCardActions,VCardText,VContainer,VContent,VFlex,VForm,VLayout,VSnackbar,VSpacer,VTextField,VToolbar,VToolbarTitle})\n","import Vue from 'vue'\nimport Router from 'vue-router'\nimport Dashboard from './views/Dashboard.vue'\nimport Settings from './views/Settings.vue'\nimport Auth from './views/Auth.vue'\nimport firebase from 'firebase'\n\n\nVue.use(Router)\n\nconst router = new Router({\n mode: 'history',\n base: process.env.BASE_URL,\n routes: [\n {\n path: '*',\n redirect: '/auth'\n },\n {\n path: '/',\n redirect: '/auth'\n },\n {\n path: '/dashboard',\n name: 'dashboard',\n component: Dashboard,\n meta: {\n requiresAuth: true\n }\n },\n {\n path: '/settings',\n name: 'settings',\n component: Settings,\n meta: {\n requiresAuth: true\n }\n },\n {\n path: '/auth',\n name: 'auth',\n component: Auth,\n },\n ]\n});\n\nrouter.beforeEach((to, from, next) => {\n if (to.matched.some(record => record.meta.requiresAuth)) {\n // this route requires auth, check if logged in\n // if not, redirect to login page.\n if (!firebase.auth().currentUser) {\n next({\n path: '/login',\n query: { redirect: to.fullPath }\n })\n } else {\n next()\n }\n } else {\n next() // make sure to always call next()!\n }\n})\n\nexport default router;\n\n\n","import Vue from 'vue'\nimport './plugins/vuetify'\nimport App from './App.vue'\nimport router from './router'\nimport firebase from 'firebase'\n\nVue.config.productionTip = false\n\nlet app = '';\n\nfirebase.auth().onAuthStateChanged(() => {\n if(!app) {\n app = new Vue({\n router,\n render: h => h(App)\n }).$mount('#app')\n }\n\n});\n\n\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Auth.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Auth.vue?vue&type=style&index=0&lang=css&\""],"sourceRoot":""} --------------------------------------------------------------------------------