Files
expense/static/js/app.e99c1f67565345fb7d54.js
2021-05-15 16:06:16 +00:00

2 lines
15 KiB
JavaScript

webpackJsonp([1],{"4c4A":function(t,e){},"9M+g":function(t,e){},CVfY:function(t,e){},NHnr:function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=a("7+uW"),s=a("w2L0"),i=a("i2JN"),r=a("d7EF"),o=a.n(r),l=a("Gu7T"),c=a.n(l),u=a("mvHQ"),d=a.n(u),m=a("fZjL"),p=a.n(m),f=a("Zrlr"),h=a.n(f),b=function t(e,a){h()(this,t),this.name=e,this.interval=a};b.ONCE=new b("Once",0),b.YEARLY=new b("Yearly",1),b.BIMONTHLY=new b("Bi-Monthly",6),b.MONTHLY=new b("Monthly",12),b.BIWEEKLY=new b("Bi-Weekly",26),b.WEEKLY=new b("Weekly",52),b.DAILY=new b("Daily",364),b.byId=function(t){try{return b[p()(b)[t]]}catch(t){return b.ONCE}},b.values=function(){var t=p()(b);return t.splice(-3,3),t.map(function(t){return b[t]})},b.options=function(){return b.values().map(function(t,e){return{value:e,text:t.name}})};var g=b,v={name:"Input",enums:{Frequency:g},props:["title","color","entries"],data:function(){return{fields:[{key:"index",label:"#"},"name","amount","frequency","tags",{key:"options",label:""}],data:[],currentItems:[],editingCache:void 0,editing:void 0}},mounted:function(){this.$set(this,"data",this.$props.entries)},methods:{add:function(){this.data.push({name:"",amount:1,frequency:0}),this.toggleDetails({index:this.data.length-1,toggleDetails:function(){}})},askDelete:function(t){var e=this;this.$bvModal.msgBoxConfirm("Please confirm that you want to delete '"+t.item.name+"'?",{title:"Are you sure?",size:"sm",buttonSize:"sm",okVariant:"danger",okTitle:"Yes",cancelTitle:"No",footerClass:"p-2",hideHeaderClose:!1,centered:!0}).then(function(a){a&&e.data.splice(t.index,1)})},save:function(t){this.$set(this.data,t.index,this.editingCache),this.toggleDetails(t)},toggleDetails:function(t){var e=this;this.currentItems.forEach(function(a,n){n!==t.index&&e.$set(a,"_showDetails",!1)}),t.detailsShowing?this.editingCache=void 0:this.editingCache=n.default.util.extend({},t.item),t.toggleDetails()}},watch:{data:{deep:!0,handler:function(){this.$emit("input",this.data)}},entries:{deep:!0,handler:function(){this.$set(this,"data",this.$props.entries)}}}},y={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("b-col",{attrs:{md:"6"}},[a("b-card",{attrs:{"no-body":""}},[a("b-card-header",{staticClass:"container-fluid",attrs:{"header-bg-variant":t.color,"header-text-variant":"white"}},[a("b-row",[a("b-col",{attrs:{md:"10"}},[a("h3",{staticClass:"w-75 p-3"},[t._v(t._s(t.title))])]),t._v(" "),a("b-col",{staticClass:"float-right align-self-center",attrs:{md:"2"}},[a("b-button",{attrs:{variant:"primary",size:"lg"},on:{click:function(e){return t.add()}}},[a("b-icon-plus")],1)],1)],1)],1),t._v(" "),a("b-card-body",[a("b-table",{attrs:{fields:t.fields,items:t.data,responsive:"sm"},scopedSlots:t._u([{key:"cell(index)",fn:function(e){return[t._v("\n "+t._s(e.index+1)+"\n ")]}},{key:"cell(options)",fn:function(e){return[a("b-button-group",{attrs:{size:"sm"}},[a("b-button",{directives:[{name:"b-tooltip",rawName:"v-b-tooltip.hover",modifiers:{hover:!0}}],attrs:{title:e.detailsShowing?"Cancel":"Edit",variant:e.detailsShowing?"outline-danger":"primary"},on:{click:function(a){return t.toggleDetails(e)}}},[e.detailsShowing?a("b-icon-x-square"):a("b-icon-pencil-square")],1),t._v(" "),a("b-button",{directives:[{name:"b-tooltip",rawName:"v-b-tooltip.hover",modifiers:{hover:!0}}],attrs:{title:"Remove",variant:"danger"},on:{click:function(a){return t.askDelete(e)}}},[a("b-icon-trash")],1)],1)]}},{key:"cell()",fn:function(e){return[t._v("\n "+t._s(e.value)+"\n ")]}},{key:"cell(amount)",fn:function(e){return[t._v("\n "+t._s(t._f("currency")(e.item.amount))+"\n ")]}},{key:"cell(frequency)",fn:function(e){return[t._v("\n "+t._s(t.$enums.Frequency.byId(e.item.frequency).name)+"\n ")]}},{key:"cell(tags)",fn:function(e){return[t._v("\n "+t._s(e.item.tags?e.item.tags.length:0)+"\n ")]}},{key:"row-details",fn:function(e){return[a("b-card",[a("b-form",{on:{submit:function(a){return a.preventDefault(),t.save(e)}}},[a("b-form-group",{attrs:{id:"name-group",label:"Name:","label-for":"name"}},[a("b-form-input",{attrs:{id:"name",type:"text",placeholder:"Name",required:""},model:{value:t.editingCache.name,callback:function(e){t.$set(t.editingCache,"name",e)},expression:"editingCache.name"}})],1),t._v(" "),a("b-form-group",{attrs:{id:"amount-group",label:"Amount:","label-for":"amount"}},[a("b-input-group",{staticClass:"mb-2 mr-sm-2 mb-sm-0",attrs:{append:"€"}},[a("b-form-input",{attrs:{id:"amount",type:"number",placeholder:"0,00",step:"0.01",min:"0.01",required:""},model:{value:t.editingCache.amount,callback:function(e){t.$set(t.editingCache,"amount",e)},expression:"editingCache.amount"}})],1)],1),t._v(" "),a("b-form-group",{attrs:{id:"frequency-group",label:"Frequency:","label-for":"frequency"}},[a("b-form-select",{attrs:{id:"frequency",type:"text",options:t.$enums.Frequency.options(),required:""},model:{value:t.editingCache.frequency,callback:function(e){t.$set(t.editingCache,"frequency",e)},expression:"editingCache.frequency"}})],1),t._v(" "),a("b-form-group",{attrs:{id:"tags-group",description:"Enter new tags separated by comma or semicolon",label:"Tags:","label-for":"tags"}},[a("b-form-tags",{attrs:{id:"tags",separator:",;"},model:{value:t.editingCache.tags,callback:function(e){t.$set(t.editingCache,"tags",e)},expression:"editingCache.tags"}})],1),t._v(" "),a("b-button",{attrs:{type:"submit",variant:"success"}},[a("b-icon-check"),t._v(" Save")],1)],1)],1)]}}]),model:{value:t.currentItems,callback:function(e){t.currentItems=e},expression:"currentItems"}})],1)],1)],1)},staticRenderFns:[]};var _={name:"App",components:{Input:a("VU/8")(v,y,!1,function(t){a("4c4A")},null,null).exports},data:function(){return{income:[],expenses:[],calculated:{yearly:{in:0,out:0,sum:0},in:{title:"Income",labels:[],data:[]},out:{title:"Expenses",labels:[],data:[]},inTag:{title:"Income Tags",labels:[],data:[]},outTag:{title:"Expenses Tags",labels:[],data:[]}},pieStyle:{backgroundColor:"#ffffff00",pieOuterFontColor:"#ccc",legendFontColor:"#ccc"},importdata:"",importDataState:null}},mounted:function(){var t=this,e=localStorage.getItem("expenses");if(e)try{var a=JSON.parse(e);a.expenses&&a.income&&(this.$set(this,"expenses",a.expenses),this.$set(this,"income",a.income),this.income.forEach(function(e){return t.$set(e,"_showDetails",!1)}),this.expenses.forEach(function(e){return t.$set(e,"_showDetails",!1)}))}catch(t){}this.calculate()},watch:{income:{deep:!0,handler:"calculate"},expenses:{deep:!0,handler:"calculate"}},methods:{calculate:function(){var t=d()({expenses:this.expenses,income:this.income});localStorage.setItem("expenses",t);var e={in:0,out:0,sum:0},a=[],n=[],s=[],i=[],r=["Without Tags"],l=[0],u=["Without Tags"],m=[0],p=[].concat(c()(this.income.map(function(t){return{name:t.name,tags:t.tags,amount:g.byId(t.frequency).interval*parseFloat(t.amount)}})),c()(this.income.filter(function(t){return 0===t.frequency}).map(function(t){return{name:t.name,tags:t.tags,amount:parseFloat(t.amount)}}))),f=[].concat(c()(this.expenses.map(function(t){return{name:t.name,tags:t.tags,amount:g.byId(t.frequency).interval*parseFloat(t.amount)}})),c()(this.expenses.filter(function(t){return 0===t.frequency}).map(function(t){return{name:t.name,tags:t.tags,amount:parseFloat(t.amount)}})));e.in=p.reduce(function(t,e){return t+e.amount},0),e.out=f.reduce(function(t,e){return t+e.amount},0),e.sum=e.in-e.out,e.sum<0?p.push({name:"Loss",amount:-e.sum,tags:["Loss"]}):f.push({name:"Profit",amount:e.sum,tags:["Profit"]}),p.forEach(function(t){a.push(t.name),n.push(t.amount),t.tags?t.tags.forEach(function(e){var a=r.indexOf(e);-1===a?(r.push(e),l.push(t.amount)):l[a]+=t.amount}):l[0]+=t.amount}),f.forEach(function(t){s.push(t.name),i.push(t.amount),t.tags?t.tags.forEach(function(e){var a=u.indexOf(e);-1===a?(u.push(e),m.push(t.amount)):m[a]+=t.amount}):m[0]+=t.amount}),0===m[0]&&(m.shift(),u.shift()),0===l[0]&&(l.shift(),r.shift());var h=function(t,e){var a=t.map(function(t,a){return{label:t,data:e[a]}}).sort(function(t,e){return e.data-t.data});return[t=a.map(function(t){return t.label}),e=a.map(function(t){return t.data})]},b=h(r,l),v=o()(b,2);r=v[0],l=v[1];var y=h(u,m),_=o()(y,2);u=_[0],m=_[1];var x=h(a,n),$=o()(x,2);a=$[0],n=$[1];var w=h(s,i),C=o()(w,2);s=C[0],i=C[1],this.$set(this.calculated,"yearly",e),this.$set(this.calculated.inTag,"labels",r),this.$set(this.calculated.inTag,"data",l),this.$set(this.calculated.outTag,"labels",u),this.$set(this.calculated.outTag,"data",m),this.$set(this.calculated.in,"labels",a),this.$set(this.calculated.in,"data",n),this.$set(this.calculated.out,"labels",s),this.$set(this.calculated.out,"data",i)},dataFormat:function(t,e){return e?this.$options.filters.currency(e):t},askReset:function(){var t=this;this.$bvModal.msgBoxConfirm(["Please confirm that you want to reset.","All data will be lost forever! (A long time!)"].map(function(e){return t.$createElement("p",[e])}),{title:"Are you sure?",size:"md",buttonSize:"sm",okVariant:"danger",okTitle:"Yes",cancelTitle:"No",footerClass:"p-2",hideHeaderClose:!1,centered:!0}).then(function(e){e&&(t.$set(t,"expenses",[]),t.$set(t,"income",[]),t.calculate())})},resetImport:function(){this.importdata="",this.importDataState=null},importData:function(t){var e=this,a=this.$refs.import.checkValidity(),n=void 0;if(a)try{(n=JSON.parse(atob(this.importdata))).expenses&&n.income||(a=!1)}catch(t){a=!1}this.importDataState=a,t&&t.preventDefault(),a&&(this.$set(this,"expenses",n.expenses),this.$set(this,"income",n.income),this.income.forEach(function(t){return e.$set(t,"_showDetails",!1)}),this.expenses.forEach(function(t){return e.$set(t,"_showDetails",!1)}),this.calculate(),this.$nextTick(function(){e.$bvModal.hide("modalImport")}))},exportData:function(){var t=this,e=localStorage.getItem("expenses");if(e){var a=document.createElement("textarea");a.value=btoa(e),a.setAttribute("readonly",""),a.style.all="position: absolute; left: -9999px",document.body.appendChild(a),a.select(),document.execCommand("copy"),document.body.removeChild(a),this.$refs.exportTooltip.$emit("open"),setTimeout(function(){return t.$refs.exportTooltip.$emit("close")},1e3)}}}},x={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"container",attrs:{id:"app"}},[a("b-row",{staticClass:"results"},[a("b-col",[a("b-card",{attrs:{title:"Analysis","no-body":""}},[a("b-card-header",{staticClass:"container-fluid",attrs:{"header-text-variant":"white"}},[a("b-row",{staticStyle:{display:"table"}},[a("b-col",{staticStyle:{display:"table-cell","vertical-align":"middle"},attrs:{md:"8",lg:"10"}},[t._v("Result")]),t._v(" "),a("b-col",{staticClass:"float-right align-self-center",staticStyle:{display:"inline-table"},attrs:{md:"2"}},[a("b-button-group",{attrs:{size:"sm"}},[a("b-button",{directives:[{name:"b-modal",rawName:"v-b-modal.modalImport",modifiers:{modalImport:!0}}],attrs:{variant:"info"}},[a("b-icon-upload"),t._v(" Import")],1),t._v(" "),a("b-button",{attrs:{id:"exportButton",variant:"success"},on:{click:t.exportData}},[a("b-icon-download"),t._v(" Export")],1),t._v(" "),a("b-tooltip",{ref:"exportTooltip",attrs:{target:"exportButton",disabled:""}},[t._v("Copied to clipboard!")]),t._v(" "),a("b-button",{attrs:{variant:"danger"},on:{click:t.askReset}},[a("b-icon-trash"),t._v(" Reset")],1)],1)],1)],1)],1),t._v(" "),a("b-card-body",[t.calculated.in.data.length+t.calculated.out.data.length>1?a("b-row",t._l(["in","out"],function(e){return a("b-col",{key:e,attrs:{md:"6"}},[a("b-card",{attrs:{header:t.calculated[e].title,"bg-variant":"secondary"}},[a("graph-pie",{attrs:{width:NaN,height:400,"padding-top":100,"padding-bottom":100,"padding-left":100,"padding-right":100,names:t.calculated[e].labels,values:t.calculated[e].data,"show-text-type":"outside","active-event":"click","data-format":t.dataFormat,styles:t.pieStyle}},[a("legends",{attrs:{names:t.calculated[e].labels}}),t._v(" "),a("tooltip",{attrs:{names:t.calculated[e].labels}})],1)],1)],1)}),1):t._e(),t._v(" "),t.calculated.inTag.data.length+t.calculated.outTag.data.length>1?a("b-row",t._l(["inTag","outTag"],function(e){return a("b-col",{key:e,attrs:{md:"6"}},[a("b-card",{attrs:{header:t.calculated[e].title,"bg-variant":"secondary"}},[a("graph-pie",{attrs:{width:NaN,height:400,"padding-top":100,"padding-bottom":100,"padding-left":100,"padding-right":100,names:t.calculated[e].labels,values:t.calculated[e].data,"show-text-type":"outside","active-event":"click","data-format":t.dataFormat,styles:t.pieStyle}},[a("legends",{attrs:{names:t.calculated[e].labels}}),t._v(" "),a("tooltip",{attrs:{names:t.calculated[e].labels}})],1)],1)],1)}),1):t._e(),t._v(" "),a("b-card-group",{staticClass:"text-center"},[a("b-card",{attrs:{header:"Yearly"}},[a("p",[t._v("Income: "+t._s(t._f("currency")(t.calculated.yearly.in)))]),t._v(" "),a("p",[t._v("Expenses: "+t._s(t._f("currency")(t.calculated.yearly.out)))]),t._v(" "),a("p",[t._v("Profit: "),a("span",{class:t.calculated.yearly.sum<0?"text-danger":"text-success"},[t._v(t._s(t._f("currency")(t.calculated.yearly.sum)))])])]),t._v(" "),a("b-card",{attrs:{header:"Monthly"}},[a("p",[t._v("Income: "+t._s(t._f("currency")(t.calculated.yearly.in/12)))]),t._v(" "),a("p",[t._v("Expenses: "+t._s(t._f("currency")(t.calculated.yearly.out/12)))]),t._v(" "),a("p",[t._v("Profit: "),a("span",{class:t.calculated.yearly.sum/12<0?"text-danger":"text-success"},[t._v(t._s(t._f("currency")(t.calculated.yearly.sum/12)))])])]),t._v(" "),a("b-card",{attrs:{header:"Daily"}},[a("p",[t._v("Income: "+t._s(t._f("currency")(t.calculated.yearly.in/365)))]),t._v(" "),a("p",[t._v("Expenses: "+t._s(t._f("currency")(t.calculated.yearly.out/365)))]),t._v(" "),a("p",[t._v("Profit: "),a("span",{class:t.calculated.yearly.sum/365<0?"text-danger":"text-success"},[t._v(t._s(t._f("currency")(t.calculated.yearly.sum/365)))])])])],1)],1)],1)],1)],1),t._v(" "),a("b-row",{staticClass:"inputs"},[a("Input",{attrs:{title:"Income",color:"success",entries:t.income}}),t._v(" "),a("Input",{attrs:{title:"Expenses",color:"danger",entries:t.expenses}})],1),t._v(" "),a("b-modal",{attrs:{id:"modalImport",title:"Import"},on:{ok:t.importData,show:t.resetImport,hidden:t.resetImport}},[a("form",{ref:"import",on:{submit:function(e){return e.stopPropagation(),e.preventDefault(),t.importData(e)}}},[a("b-form-group",{attrs:{label:"Data: ","label-for":"data-input","invalid-feedback":"Correct data is required",state:t.importDataState}},[a("b-form-textarea",{attrs:{id:"data-input",state:t.importDataState,rows:"5","no-resize":"",required:""},model:{value:t.importdata,callback:function(e){t.importdata=e},expression:"importdata"}})],1)],1)])],1)},staticRenderFns:[]};var $=a("VU/8")(_,x,!1,function(t){a("O/HF")},null,null).exports,w=a("Tqaz");a("K3J8"),a("CVfY"),a("9M+g");n.default.use(i.a),n.default.use(s.a,{namespace:"$enums"}),n.default.use(w.a),n.default.use(w.b),n.default.filter("currency",function(t){if("number"!=typeof t)try{t=parseFloat(t)}catch(e){return t}return t.toFixed(2)+" €"}),n.default.config.productionTip=!1,new n.default({el:"#app",components:{App:$},template:"<App/>"})},"O/HF":function(t,e){}},["NHnr"]);
//# sourceMappingURL=app.e99c1f67565345fb7d54.js.map