{"version":3,"sources":["webpack:///./src/components/widgets/budgetWidget/budgetWidget.vue?fbdf","webpack:///src/components/widgets/budgetWidget/budgetWidget.vue","webpack:///./src/components/widgets/budgetWidget/budgetWidget.vue?5e86","webpack:///./src/components/widgets/budgetWidget/budgetWidget.vue?fd3b","webpack:///./src/javascript/widgetManager.js","webpack:///../../../src/components/VChip/VChip.ts","webpack:///./src/components/widgets/budgetWidget/budgetWidget.vue?6847"],"names":["render","_vm","this","_h","$createElement","_c","_self","component","tag","staticStyle","attrs","tableData","cType","_e","staticClass","_v","_s","formattedTableTotal","on","$event","$router","push","path","staticRenderFns","VChip","VContainer","VDivider","VLayout","VSpacer","widgetManager","tableTotal","itemsMinusDeleted","tableRow","name","value","percentage","clearTableRow","buildTable","period","i","length","isItemWithinPeriod","transactionBalances","transactionDate","convertToTableRow","addToTableData","calculatePercentages","parseFloat","toFixed","item","globalFunctions","stringify","category","transactionAmount","clearOldData","itemDate","start","end","date","Date","returnFormattedDateFromCalendar","dateSplit","split","parseInt","buildIncomeCategoryTotals","getIncomeItemsFromStoreAndRemoveDeletedItems","items","getIncomeTransactions","store","state","Transactions","removeDeletedObjectsFromItems","incomes","transactionType","buildExpenseCategoryTotals","getExpenseItemsFromStoreAndRemoveDeletedItems","getExpenseTransactions","expenses","buildBudgetTotals","getBudgetItemsFromStoreAndRemoveDeletedItems","createTableRows","buildBudgetTable","buildSingleBudgetTotals","budgetId","buildSingleBudgetTable","budgetManager","findBudgetById","Budgets","budgetBalance","getActiveBudgetBalance","addToBudgetTableData","budget","budgetName","amountSpent","budgetAmount","returnIncomeCategoriesAndThereItems","buildJsonObject","jsonObject","k","returnExpenseCategoriesAndThereItems","props","active","type","default","activeClass","chipGroup","close","closeIcon","closeLabel","disabled","draggable","filter","filterIcon","label","link","outlined","pill","textColor","data","proxyClass","computed","classes","groupClasses","hasClose","Boolean","isClickable","created","breakingProps","original","replacement","methods","click","genFilter","children","left","genClose","right","size","$vuetify","lang","t","e","genContent","$slots","tabindex","setBackgroundColor","color","h","setTextColor"],"mappings":"iKAAA,IAAIA,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAGJ,EAAIM,UAAU,CAACC,IAAI,YAAYC,YAAY,CAAC,OAAS,SAASC,MAAM,CAAC,MAAQT,EAAIU,aAA4B,cAAdV,EAAIW,MAAuBP,EAAG,aAAaJ,EAAIY,KAAoB,cAAdZ,EAAIW,MAAuBP,EAAG,cAAc,CAACS,YAAY,aAAaJ,MAAM,CAAC,eAAe,KAAK,CAACL,EAAG,WAAW,CAACK,MAAM,CAAC,IAAM,GAAG,KAAO,KAAK,CAACL,EAAG,SAAS,CAACK,MAAM,CAAC,SAAW,KAAK,CAACL,EAAG,OAAO,CAACI,YAAY,CAAC,MAAQ,YAAY,CAACR,EAAIc,GAAG,UAAUd,EAAIe,GAAGf,EAAIgB,0BAA0BZ,EAAG,YAAYA,EAAG,SAAS,CAACK,MAAM,CAAC,SAAW,IAAIQ,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlB,EAAImB,QAAQC,KAAK,CAAEC,KAAM,yCAA0C,CAACrB,EAAIc,GAAG,gBAAgB,IAAI,GAAGd,EAAIY,MAAM,IACrtBU,EAAkB,G,wDCiBtB,GACE,KADF,WAEI,MAAJ,CACM,UAAN,KACM,MAAN,GACM,UAAN,GACM,WAAN,EACM,oBAAN,KAGE,QAAF,CACI,oBADJ,WAEM,KAAN,mEAEI,cAAJ,WACA,2BACQ,KAAR,qBAAU,OAAV,sFACQ,KAAR,oBAEQ,KAAR,qBAAU,OAAV,iDACQ,KAAR,YAIE,YAxBF,WAyBI,IAAJ,qCACI,KAAJ,sBACI,KAAJ,wBAEI,KAAJ,gBAEI,KAAJ,wBCjDoX,I,yGCQhXhB,EAAY,eACd,EACAP,EACAuB,GACA,EACA,KACA,KACA,MAIa,aAAAhB,EAAiB,QAShC,IAAkBA,EAAW,CAACiB,QAAA,KAAMC,aAAA,KAAWC,WAAA,KAASC,UAAA,KAAQC,UAAA,Q,0NCvBlDC,EAAgB,CAC1BlB,UAAW,GACXmB,WAAY,EACZC,kBAAmB,GACnBC,SAAU,CACNC,KAAM,GACNC,MAAO,EACPC,WAAY,GAEhBC,cAAe,WACXlC,KAAK8B,SAASC,KAAO,GACrB/B,KAAK8B,SAASE,MAAQ,EACtBhC,KAAK8B,SAASG,WAAa,GAE/BE,WAAY,SAAUC,GAClB,IAAK,IAAIC,EAAI,EAAGA,EAAIrC,KAAK6B,kBAAkBS,OAAQD,IAE3CrC,KAAKuC,mBACLvC,KAAK6B,kBAAkBQ,GAAGG,oBAAoBxC,KAAK6B,kBAAkBQ,GAAGG,oBAAoBF,OAAS,GAAGG,gBACxGL,KAEApC,KAAK0C,kBAAkB1C,KAAK6B,kBAAkBQ,IAE9CrC,KAAK2C,iBAEL3C,KAAK4C,yBAIjBA,qBAAsB,WAClB,IAAK,IAAIP,EAAI,EAAGA,EAAIrC,KAAKS,UAAU6B,OAAQD,IACvCrC,KAAKS,UAAU4B,GAAGJ,YAAeY,WAAW7C,KAAKS,UAAU4B,GAAGL,OAASa,WAAW7C,KAAK4B,YAAe,KAAKkB,QAAQ,IAG3HH,eAAgB,WACZ,IAAII,EAAO/C,KAAK8B,SAEhB,GAA8B,IAA1B9B,KAAKS,UAAU6B,OACftC,KAAKS,UAAUU,KAAK6B,OAAgBC,UAAUF,IAC9C/C,KAAK4B,WAAaiB,WAAW7C,KAAK4B,YAAciB,WAAWE,EAAKf,YAGhE,IAAK,IAAIK,EAAI,EAAGA,EAAIrC,KAAKS,UAAU6B,OAAQD,IAAK,CAC5C,GAAIrC,KAAKS,UAAU4B,GAAGN,OAASgB,EAAKhB,KAAM,CACtC/B,KAAKS,UAAU4B,GAAGL,MAAQa,WAAW7C,KAAKS,UAAU4B,GAAGL,OAASa,WAAWE,EAAKf,OAChFhC,KAAK4B,WAAaiB,WAAW7C,KAAK4B,YAAciB,WAAWE,EAAKf,OAChE,MAEC,GAAIK,IAAMrC,KAAKS,UAAU6B,OAAS,EAAG,CACtCtC,KAAKS,UAAUU,KAAK6B,OAAgBC,UAAUF,IAC9C/C,KAAK4B,WAAaiB,WAAW7C,KAAK4B,YAAciB,WAAWE,EAAKf,OAChE,SAKhBU,kBAAmB,SAAUK,GACzB/C,KAAKkC,gBAELlC,KAAK8B,SAASC,KAAOgB,EAAKG,SAE1B,IAAK,IAAIb,EAAI,EAAGA,EAAIU,EAAKP,oBAAoBF,OAAQD,IACjDrC,KAAK8B,SAASE,MAAQa,WAAW7C,KAAK8B,SAASE,OAASa,WAAWE,EAAKP,oBAAoBH,GAAGc,oBAGvGC,aAAc,WACVpD,KAAKS,UAAY,GACjBT,KAAK4B,WAAa,EAClB5B,KAAK6B,kBAAoB,IAE7BU,mBAAoB,SAAUc,EAAUjB,GACpC,IAAIkB,EAAQ,GACRC,EAAM,GACNC,EAAO,IAAIC,KAAKzD,KAAK0D,gCAAgCL,IAErDM,EAAYvB,EAAOwB,MAAM,OAK7B,OAHAN,EAAQ,IAAIG,KAAKE,EAAU,IAC3BJ,EAAM,IAAIE,KAAKE,EAAU,IAErBH,GAAQF,GAASE,GAAQD,GAMjCG,gCAtF0B,SAsFMF,GAC5B,IAAIG,EAAYH,EAAKI,MAAM,KAE3B,OAAQD,EAAU,GAAK,IAAME,SAASF,EAAU,IAAM,IAAOE,SAASF,EAAU,KAQpFG,0BAA2B,SAAU1B,GAMjC,OALApC,KAAKoD,eACLpD,KAAK+D,+CAEL/D,KAAKmC,WAAWC,GAET,CACH3B,UAAWT,KAAKS,UAChBmB,WAAY5B,KAAK4B,aAGzBmC,6CAA8C,WAC1C/D,KAAKgE,MAAQhE,KAAKiE,sBAAsBC,OAAMC,MAAMC,cAIpDpE,KAAK6B,kBAAoBmB,OAAgBqB,8BAA8BrE,KAAKgE,QAEhFC,sBAAuB,SAAUD,GAG7B,IAFA,IAAIM,EAAU,GAELjC,EAAI,EAAGA,EAAI2B,EAAM1B,OAAQD,IACG,WAA7B2B,EAAM3B,GAAGkC,iBACTD,EAAQnD,KAAK6C,EAAM3B,IAI3B,OAAOiC,GAQXE,2BAA4B,SAAUpC,GAMlC,OALApC,KAAKoD,eACLpD,KAAKyE,gDAELzE,KAAKmC,WAAWC,GAET,CACH3B,UAAWT,KAAKS,UAChBmB,WAAY5B,KAAK4B,aAGzB6C,8CAA+C,WAC3CzE,KAAKgE,MAAQhE,KAAK0E,uBAAuBR,OAAMC,MAAMC,cAGrDpE,KAAK6B,kBAAoBmB,OAAgBqB,8BAA8BrE,KAAKgE,QAEhFU,uBAAwB,SAAUV,GAG9B,IAFA,IAAIW,EAAW,GAENtC,EAAI,EAAGA,EAAI2B,EAAM1B,OAAQD,IACG,YAA7B2B,EAAM3B,GAAGkC,iBACTI,EAASxD,KAAK6C,EAAM3B,IAI5B,OAAOsC,GAQXC,kBAAmB,SAAUpB,GAYzB,OAXAxD,KAAKoD,eACLpD,KAAK6E,+CAEL7E,KAAK8E,kBAEL9E,KAAK+E,iBAAiBvB,GAEU,IAA5BxD,KAAKS,UAAU,GAAGuB,OAA2C,IAA5BhC,KAAKS,UAAU,GAAGuB,QACnDhC,KAAKS,UAAY,IAGd,CACHA,UAAWT,KAAKS,UAChBmB,WAAY5B,KAAK4B,aAGzBoD,wBAAyB,SAAUC,EAAUzB,GAYzC,OAXAxD,KAAKoD,eACLpD,KAAK6E,+CAEL7E,KAAK8E,kBAEL9E,KAAKkF,uBAAuBC,OAAcC,eAAeH,GAAWzB,GAEpC,IAA5BxD,KAAKS,UAAU,GAAGuB,OAA2C,IAA5BhC,KAAKS,UAAU,GAAGuB,QACnDhC,KAAKS,UAAY,IAGd,CACHA,UAAWT,KAAKS,UAChBmB,WAAY5B,KAAK4B,aAGzBiD,6CAA8C,WAC1C7E,KAAKgE,MAAQE,OAAMC,MAAMkB,QAIzBrF,KAAK6B,kBAAoBmB,OAAgBqB,8BAA8BrE,KAAKgE,QAEhFc,gBAAiB,WACb9E,KAAKS,UAAUU,KAAK,CAChBY,KAAM,QACNC,MAAO,EACPC,WAAY,GAEhB,CACIF,KAAM,YACNC,MAAO,EACPC,WAAY,KAGpB8C,iBAAkB,SAAUvB,GACxB,IAAK,IAAInB,EAAI,EAAGA,EAAIrC,KAAK6B,kBAAkBS,OAAQD,IAAK,CACpD,IAAIiD,EAAgBH,OAAcI,uBAAuBvF,KAAK6B,kBAAkBQ,GAAImB,GAEpFxD,KAAKwF,qBAAqBF,GAE1BtF,KAAK4C,yBAGbsC,uBAAwB,SAAUO,EAAQjC,GACtC,IAAK,IAAInB,EAAI,EAAGA,EAAIrC,KAAK6B,kBAAkBS,OAAQD,IAC/C,GAAIrC,KAAK6B,kBAAkBQ,GAAGqD,aAAeD,EAAOC,WAAY,CAC5D,IAAIJ,EAAgBH,OAAcI,uBAAuBvF,KAAK6B,kBAAkBQ,GAAImB,GAEpFxD,KAAKwF,qBAAqBF,GAE1BtF,KAAK4C,yBAIjB4C,qBAAsB,SAAUzC,GAE5B/C,KAAKS,UAAU,GAAGuB,MAAQa,WAAW7C,KAAKS,UAAU,GAAGuB,OAASa,WAAWE,EAAK4C,aAGhF3F,KAAKS,UAAU,GAAGuB,MAAQa,WAAW7C,KAAKS,UAAU,GAAGuB,QAAUa,WAAWE,EAAK6C,cAAgB/C,WAAWE,EAAK4C,cAEjH3F,KAAK4B,WAAaiB,WAAW7C,KAAK4B,YAAciB,WAAWE,EAAK6C,gBAU3DC,EAAsC,SAACzD,GAChD,IAAI4B,EAAQD,IAEZ,OAAO+B,EAAgB1D,EAAQ4B,IAGtBD,EAA+C,WACxD,IAAIC,EAAQrC,EAAcsC,sBAAsBC,OAAMC,MAAMC,cAG5D,OAAOpB,OAAgBqB,8BAA8BL,IAG5C8B,EAAkB,SAAC1D,EAAQ4B,GAGpC,IAFA,IAAI+B,EAAa,GAER1D,EAAI,EAAGA,EAAI2B,EAAM1B,OAAQD,IAE9B,GAAIV,EAAcY,mBACdyB,EAAM3B,GAAGG,oBAAoBwB,EAAM,GAAGxB,oBAAoBF,OAAS,GAAGG,gBACtEL,GAAS,CAET,GAA0B,IAAtB2D,EAAWzD,OAAc,CACzByD,EAAW,GAAK,CAAC/B,EAAM3B,GAAGa,SAAU,CAACc,EAAM3B,KAE3C,SAGJ,IAAK,IAAI2D,EAAI,EAAGA,EAAID,EAAWzD,OAAQ0D,IACnC,GAAID,EAAWC,GAAG,KAAOhC,EAAM3B,GAAGa,UAI3B,GAAI8C,IAAMD,EAAWzD,OAAS,EAAG,CACpCyD,EAAW5E,KAAK,CAAC6C,EAAM3B,GAAGa,SAAU,CAACc,EAAM3B,MAC3C,YALA0D,EAAWC,GAAG,GAAG7E,KAAK6C,EAAM3B,IAW5C,OAAO0D,GAYEE,EAAuC,SAAC7D,GACjD,IAAI4B,EAAQS,IAEZ,OAAOqB,EAAgB1D,EAAQ4B,IAGtBS,EAAgD,WACzD,IAAIT,EAAQrC,EAAc+C,uBAAuBR,OAAMC,MAAMC,cAG7D,OAAOpB,OAAgBqB,8BAA8BL,K,qOC1S1C,sBAAO,EAAD,0BAKnB,eALmB,aAMnB,eANa,sBAON,CACPjC,KADO,SAGPmE,MAAO,CACLC,OAAQ,CACNC,KADM,QAENC,SAAS,GAEXC,YAAa,CACXF,KADW,OAEXC,QAFW,WAGT,OAAKrG,KAAL,UAEOA,KAAKuG,UAAZ,YAF4B,KAKhCC,MAbK,QAcLC,UAAW,CACTL,KADS,OAETC,QAAS,WAEXK,WAAY,CACVN,KADU,OAEVC,QAAS,kBAEXM,SAtBK,QAuBLC,UAvBK,QAwBLC,OAxBK,QAyBLC,WAAY,CACVV,KADU,OAEVC,QAAS,aAEXU,MA7BK,QA8BLC,KA9BK,QA+BLC,SA/BK,QAgCLC,KAhCK,QAiCL5G,IAAK,CACH8F,KADG,OAEHC,QAAS,QAEXc,UArCK,OAsCLnF,MAAO,MAGToF,KAAM,iBAAO,CACXC,WAAY,mBAGdC,SAAU,CACRC,QADQ,WAEN,oEACE,UADK,GAEF,qCAFE,OAAP,IAGE,oBAAqBvH,KAHhB,YAIL,mBAAoBA,KAJf,SAKL,oBAAqBA,KALhB,UAML,gBAAiBA,KANZ,MAOL,eAAgBA,KAPX,OAQL,oBAAqBA,KARhB,MASL,mBAAoBA,KATf,SAUL,eAAgBA,KAVX,KAWL,oBAAqBA,KAXhB,UAYFA,KAZE,cAaFA,KAbE,iBAcFA,KAAKwH,eAGZC,SAnBQ,WAoBN,OAAOC,QAAQ1H,KAAf,QAEF2H,YAtBQ,WAuBN,OAAOD,QACL,gDACA1H,KAFF,aAOJ4H,QA9EO,WA8EA,WACCC,EAAgB,CACpB,CAAC,UADmB,YAEpB,CAAC,WAFmB,eAGpB,CAAC,QAHmB,UAIpB,CAAC,SAJH,iBAQAA,EAAA,SAAsB,YAA4B,0BAA3B,EAA2B,KAA5B,EAA4B,KAC5C,wBAAJ,IAA0C,eAASC,EAAUC,EAAnB,OAI9CC,QAAS,CACPC,MADO,SACF,GACHjI,KAAA,iBAEAA,KAAA,WAAkBA,KAAlB,UAEFkI,UANO,WAOL,IAAMC,EAAN,GAWA,OATInI,KAAJ,UACEmI,EAAA,KACEnI,KAAKE,eAAe,EAApB,KAA2B,CACzBU,YADyB,iBAEzBsF,MAAO,CAAEkC,MAAM,IACdpI,KAJL,aAQKA,KAAKE,eAAe,EAApB,KAAP,IAEFmI,SApBO,WAoBC,WACN,OAAOrI,KAAKE,eAAe,EAApB,KAA2B,CAChCU,YADgC,gBAEhCsF,MAAO,CACLoC,OADK,EAELC,KAAM,IAER/H,MAAO,CACL,aAAcR,KAAKwI,SAASC,KAAKC,EAAE1I,KAArB,aAEhBgB,GAAI,CACFiH,MAAQ,SAAAU,GACNA,EAAA,kBACAA,EAAA,iBAEA,uBACA,+BAGH3I,KAlBH,YAoBF4I,WAzCO,WA0CL,OAAO5I,KAAKE,eAAe,OAAQ,CACjCU,YAAa,mBACZ,CACDZ,KAAK6G,QAAU7G,KADd,YAEDA,KAAK6I,OAFJ,QAGD7I,KAAKyH,UAAYzH,KALnB,eAUJF,OAhJO,SAgJD,GACJ,IAAMqI,EAAW,CAACnI,KAAlB,cACA,EAAoBA,KAApB,oBAAI,EAAJ,EAAI,IAAOoH,EAAX,EAAWA,KAEXA,EAAA,uCACKA,EADQ,OAAb,IAEER,UAAW5G,KAAK4G,UAAY,YAFjB,EAGXkC,SAAU9I,KAAKuG,YAAcvG,KAAnB,WAAuCoH,EAAA,MAAY0B,WAE/D1B,EAAA,gBAAsB,CACpBrF,KADoB,OAEpBC,MAAOhC,KAAKmG,SAEdiB,EAAOpH,KAAK+I,mBAAmB/I,KAAxB,MAAPoH,GAEA,IAAM4B,EAAQhJ,KAAKmH,WAAcnH,KAAKiH,UAAYjH,KAAlD,MAEA,OAAOiJ,EAAE3I,EAAKN,KAAKkJ,aAAaF,EAAxB,GAAR,O,kCClMJ","file":"js/chunk-86435190.6c9eb2f6.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c(_vm.component,{tag:\"component\",staticStyle:{\"height\":\"280px\"},attrs:{\"value\":_vm.tableData}}),(_vm.cType === 'component')?_c('v-divider'):_vm._e(),(_vm.cType === 'component')?_c('v-container',{staticClass:\"padding-20\",attrs:{\"grid-list-md\":\"\"}},[_c('v-layout',{attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-chip',{attrs:{\"outlined\":\"\"}},[_c('span',{staticStyle:{\"color\":\"#1E88E5\"}},[_vm._v(\"TOTAL: \"+_vm._s(_vm.formattedTableTotal))])]),_c('v-spacer'),_c('v-chip',{attrs:{\"outlined\":\"\"},on:{\"click\":function($event){return _vm.$router.push({ path: '/dashboard/widgetSeeMoreContainer' })}}},[_vm._v(\"SHOW MORE\")])],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\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/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./budgetWidget.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/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./budgetWidget.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./budgetWidget.vue?vue&type=template&id=45ae4c7a&\"\nimport script from \"./budgetWidget.vue?vue&type=script&lang=js&\"\nexport * from \"./budgetWidget.vue?vue&type=script&lang=js&\"\nimport style0 from \"./budgetWidget.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 \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VLayout } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VChip,VContainer,VDivider,VLayout,VSpacer})\n","import { store } from '../store/storeMain'\r\n//import { transactionManager } from './transactionManager'\r\nimport { globalFunctions } from './globalFunctions'\r\nimport { budgetManager } from './budgetManager'\r\n\r\nexport const widgetManager = {\r\n tableData: [],\r\n tableTotal: 0,\r\n itemsMinusDeleted: [],\r\n tableRow: {\r\n name: '',\r\n value: 0,\r\n percentage: 0\r\n },\r\n clearTableRow: function () {\r\n this.tableRow.name = ''\r\n this.tableRow.value = 0\r\n this.tableRow.percentage = 0\r\n },\r\n buildTable: function (period) {\r\n for (let i = 0; i < this.itemsMinusDeleted.length; i++) {\r\n\r\n if (this.isItemWithinPeriod(\r\n this.itemsMinusDeleted[i].transactionBalances[this.itemsMinusDeleted[i].transactionBalances.length - 1].transactionDate,\r\n period)) {\r\n\r\n this.convertToTableRow(this.itemsMinusDeleted[i])\r\n\r\n this.addToTableData()\r\n\r\n this.calculatePercentages()\r\n }\r\n }\r\n },\r\n calculatePercentages: function () {\r\n for (let i = 0; i < this.tableData.length; i++) {\r\n this.tableData[i].percentage = ((parseFloat(this.tableData[i].value) / parseFloat(this.tableTotal)) * 100).toFixed(2)\r\n }\r\n },\r\n addToTableData: function () {\r\n let item = this.tableRow\r\n\r\n if (this.tableData.length === 0) {\r\n this.tableData.push(globalFunctions.stringify(item))\r\n this.tableTotal = parseFloat(this.tableTotal) + parseFloat(item.value)\r\n }\r\n else {\r\n for (let i = 0; i < this.tableData.length; i++) {\r\n if (this.tableData[i].name === item.name) {\r\n this.tableData[i].value = parseFloat(this.tableData[i].value) + parseFloat(item.value)\r\n this.tableTotal = parseFloat(this.tableTotal) + parseFloat(item.value)\r\n break\r\n }\r\n else if (i === this.tableData.length - 1) {\r\n this.tableData.push(globalFunctions.stringify(item))\r\n this.tableTotal = parseFloat(this.tableTotal) + parseFloat(item.value)\r\n break\r\n }\r\n }\r\n }\r\n },\r\n convertToTableRow: function (item) {\r\n this.clearTableRow()\r\n\r\n this.tableRow.name = item.category\r\n\r\n for (let i = 0; i < item.transactionBalances.length; i++) {\r\n this.tableRow.value = parseFloat(this.tableRow.value) + parseFloat(item.transactionBalances[i].transactionAmount)\r\n }\r\n },\r\n clearOldData: function () {\r\n this.tableData = []\r\n this.tableTotal = 0,\r\n this.itemsMinusDeleted = []\r\n },\r\n isItemWithinPeriod: function (itemDate, period) {\r\n let start = ''\r\n let end = ''\r\n let date = new Date(this.returnFormattedDateFromCalendar(itemDate))\r\n\r\n let dateSplit = period.split(\" - \")\r\n\r\n start = new Date(dateSplit[0])\r\n end = new Date(dateSplit[1])\r\n\r\n if (date >= start && date <= end) {\r\n return true\r\n }\r\n\r\n return false\r\n },\r\n returnFormattedDateFromCalendar(date) {\r\n let dateSplit = date.split(\"-\")\r\n\r\n return (dateSplit[0] + \"-\" + parseInt(dateSplit[1]) + \"-\" + (parseInt(dateSplit[2])))\r\n },\r\n \r\n\r\n ///////////////////////////////////////////////////////////////////////\r\n //Income Specific\r\n ///////////////////////////////////////////////////////////////////////\r\n\r\n buildIncomeCategoryTotals: function (period) {\r\n this.clearOldData()\r\n this.getIncomeItemsFromStoreAndRemoveDeletedItems()\r\n\r\n this.buildTable(period)\r\n\r\n return {\r\n tableData: this.tableData,\r\n tableTotal: this.tableTotal\r\n }\r\n },\r\n getIncomeItemsFromStoreAndRemoveDeletedItems: function () {\r\n this.items = this.getIncomeTransactions(store.state.Transactions)\r\n\r\n\r\n ///Remove deleted items from items array\r\n this.itemsMinusDeleted = globalFunctions.removeDeletedObjectsFromItems(this.items)\r\n },\r\n getIncomeTransactions: function (items) {\r\n let incomes = []\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n if (items[i].transactionType === \"income\") {\r\n incomes.push(items[i])\r\n }\r\n }\r\n\r\n return incomes\r\n },\r\n\r\n\r\n ///////////////////////////////////////////////////////////////////////\r\n //Expense Specific\r\n ///////////////////////////////////////////////////////////////////////\r\n\r\n buildExpenseCategoryTotals: function (period) {\r\n this.clearOldData()\r\n this.getExpenseItemsFromStoreAndRemoveDeletedItems()\r\n\r\n this.buildTable(period)\r\n\r\n return {\r\n tableData: this.tableData,\r\n tableTotal: this.tableTotal\r\n }\r\n },\r\n getExpenseItemsFromStoreAndRemoveDeletedItems: function () {\r\n this.items = this.getExpenseTransactions(store.state.Transactions)\r\n\r\n ///Remove deleted items from items array\r\n this.itemsMinusDeleted = globalFunctions.removeDeletedObjectsFromItems(this.items)\r\n },\r\n getExpenseTransactions: function (items) {\r\n let expenses = []\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n if (items[i].transactionType === \"expense\") {\r\n expenses.push(items[i])\r\n }\r\n }\r\n\r\n return expenses\r\n },\r\n\r\n\r\n ///////////////////////////////////////////////////////////////////////\r\n //Budget Specific\r\n ///////////////////////////////////////////////////////////////////////\r\n\r\n buildBudgetTotals: function (date) {\r\n this.clearOldData()\r\n this.getBudgetItemsFromStoreAndRemoveDeletedItems()\r\n\r\n this.createTableRows()\r\n\r\n this.buildBudgetTable(date)\r\n\r\n if (this.tableData[0].value === 0 && this.tableData[1].value === 0) {\r\n this.tableData = []\r\n }\r\n\r\n return {\r\n tableData: this.tableData,\r\n tableTotal: this.tableTotal\r\n }\r\n },\r\n buildSingleBudgetTotals: function (budgetId, date) {\r\n this.clearOldData()\r\n this.getBudgetItemsFromStoreAndRemoveDeletedItems()\r\n\r\n this.createTableRows()\r\n\r\n this.buildSingleBudgetTable(budgetManager.findBudgetById(budgetId), date)\r\n\r\n if (this.tableData[0].value === 0 && this.tableData[1].value === 0) {\r\n this.tableData = []\r\n }\r\n\r\n return {\r\n tableData: this.tableData,\r\n tableTotal: this.tableTotal\r\n }\r\n },\r\n getBudgetItemsFromStoreAndRemoveDeletedItems: function () {\r\n this.items = store.state.Budgets\r\n\r\n\r\n ///Remove deleted items from items array\r\n this.itemsMinusDeleted = globalFunctions.removeDeletedObjectsFromItems(this.items)\r\n },\r\n createTableRows: function () {\r\n this.tableData.push({\r\n name: 'Spent',\r\n value: 0,\r\n percentage: 0\r\n },\r\n {\r\n name: 'Remaining',\r\n value: 0,\r\n percentage: 0\r\n })\r\n },\r\n buildBudgetTable: function (date) {\r\n for (let i = 0; i < this.itemsMinusDeleted.length; i++) {\r\n let budgetBalance = budgetManager.getActiveBudgetBalance(this.itemsMinusDeleted[i], date)\r\n\r\n this.addToBudgetTableData(budgetBalance)\r\n\r\n this.calculatePercentages()\r\n }\r\n },\r\n buildSingleBudgetTable: function (budget, date) {\r\n for (let i = 0; i < this.itemsMinusDeleted.length; i++) {\r\n if (this.itemsMinusDeleted[i].budgetName === budget.budgetName) {\r\n let budgetBalance = budgetManager.getActiveBudgetBalance(this.itemsMinusDeleted[i], date)\r\n\r\n this.addToBudgetTableData(budgetBalance)\r\n\r\n this.calculatePercentages()\r\n }\r\n }\r\n },\r\n addToBudgetTableData: function (item) {\r\n //Update Spent\r\n this.tableData[0].value = parseFloat(this.tableData[0].value) + parseFloat(item.amountSpent)\r\n\r\n //Update Remaining\r\n this.tableData[1].value = parseFloat(this.tableData[1].value) + (parseFloat(item.budgetAmount) - parseFloat(item.amountSpent))\r\n\r\n this.tableTotal = parseFloat(this.tableTotal) + parseFloat(item.budgetAmount)\r\n },\r\n\r\n}\r\n\r\n\r\n///////////////////////////////////////////////////////////////////////\r\n//Income Items By Category Functions\r\n///////////////////////////////////////////////////////////////////////\r\n\r\nexport const returnIncomeCategoriesAndThereItems = (period) => {\r\n let items = getIncomeItemsFromStoreAndRemoveDeletedItems()\r\n\r\n return buildJsonObject(period, items)\r\n}\r\n\r\nexport const getIncomeItemsFromStoreAndRemoveDeletedItems = () => {\r\n let items = widgetManager.getIncomeTransactions(store.state.Transactions)\r\n\r\n ///Remove deleted items from items array\r\n return globalFunctions.removeDeletedObjectsFromItems(items)\r\n}\r\n\r\nexport const buildJsonObject = (period, items) => {\r\n let jsonObject = []\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n\r\n if (widgetManager.isItemWithinPeriod(\r\n items[i].transactionBalances[items[0].transactionBalances.length - 1].transactionDate,\r\n period)) {\r\n\r\n if (jsonObject.length === 0) {\r\n jsonObject[0] = [items[i].category, [items[i]]]\r\n\r\n continue\r\n }\r\n\r\n for (let k = 0; k < jsonObject.length; k++) {\r\n if (jsonObject[k][0] === items[i].category) {\r\n jsonObject[k][1].push(items[i])\r\n\r\n continue\r\n } else if (k === jsonObject.length - 1) {\r\n jsonObject.push([items[i].category, [items[i]]])\r\n break\r\n }\r\n }\r\n }\r\n }\r\n\r\n return jsonObject\r\n}\r\n\r\n///////////////////////////////////////////////////////////////////////\r\n//End Of Income Items By Category Functions\r\n///////////////////////////////////////////////////////////////////////\r\n\r\n\r\n///////////////////////////////////////////////////////////////////////\r\n//Expense Items By Category Functions\r\n///////////////////////////////////////////////////////////////////////\r\n\r\nexport const returnExpenseCategoriesAndThereItems = (period) => {\r\n let items = getExpenseItemsFromStoreAndRemoveDeletedItems()\r\n\r\n return buildJsonObject(period, items)\r\n}\r\n\r\nexport const getExpenseItemsFromStoreAndRemoveDeletedItems = () => {\r\n let items = widgetManager.getExpenseTransactions(store.state.Transactions)\r\n\r\n ///Remove deleted items from items array\r\n return globalFunctions.removeDeletedObjectsFromItems(items)\r\n}\r\n\r\n///////////////////////////////////////////////////////////////////////\r\n//End Of Expense Items By Category Functions\r\n///////////////////////////////////////////////////////////////////////\r\n\r\n","// Styles\nimport './VChip.sass'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Components\nimport { VExpandXTransition } from '../transitions'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport { breaking } from '../../util/console'\n\n// Types\nimport { PropValidator, PropType } from 'vue/types/options'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Sizeable,\n Routable,\n Themeable,\n GroupableFactory('chipGroup'),\n ToggleableFactory('inputValue')\n).extend({\n name: 'v-chip',\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.chipGroup) return ''\n\n return this.chipGroup.activeClass\n },\n } as any as PropValidator,\n close: Boolean,\n closeIcon: {\n type: String,\n default: '$delete',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n disabled: Boolean,\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: String,\n default: '$complete',\n },\n label: Boolean,\n link: Boolean,\n outlined: Boolean,\n pill: Boolean,\n tag: {\n type: String,\n default: 'span',\n },\n textColor: String,\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-chip--active',\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-chip': true,\n ...Routable.options.computed.classes.call(this),\n 'v-chip--clickable': this.isClickable,\n 'v-chip--disabled': this.disabled,\n 'v-chip--draggable': this.draggable,\n 'v-chip--label': this.label,\n 'v-chip--link': this.isLink,\n 'v-chip--no-color': !this.color,\n 'v-chip--outlined': this.outlined,\n 'v-chip--pill': this.pill,\n 'v-chip--removable': this.hasClose,\n ...this.themeClasses,\n ...this.sizeableClasses,\n ...this.groupClasses,\n }\n },\n hasClose (): boolean {\n return Boolean(this.close)\n },\n isClickable (): boolean {\n return Boolean(\n Routable.options.computed.isClickable.call(this) ||\n this.chipGroup\n )\n },\n },\n\n created () {\n const breakingProps = [\n ['outline', 'outlined'],\n ['selected', 'input-value'],\n ['value', 'active'],\n ['@input', '@active.sync'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n\n this.chipGroup && this.toggle()\n },\n genFilter (): VNode {\n const children = []\n\n if (this.isActive) {\n children.push(\n this.$createElement(VIcon, {\n staticClass: 'v-chip__filter',\n props: { left: true },\n }, this.filterIcon)\n )\n }\n\n return this.$createElement(VExpandXTransition, children)\n },\n genClose (): VNode {\n return this.$createElement(VIcon, {\n staticClass: 'v-chip__close',\n props: {\n right: true,\n size: 18,\n },\n attrs: {\n 'aria-label': this.$vuetify.lang.t(this.closeLabel),\n },\n on: {\n click: (e: Event) => {\n e.stopPropagation()\n e.preventDefault()\n\n this.$emit('click:close')\n this.$emit('update:active', false)\n },\n },\n }, this.closeIcon)\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-chip__content',\n }, [\n this.filter && this.genFilter(),\n this.$slots.default,\n this.hasClose && this.genClose(),\n ])\n },\n },\n\n render (h): VNode {\n const children = [this.genContent()]\n let { tag, data } = this.generateRouteLink()\n\n data.attrs = {\n ...data.attrs,\n draggable: this.draggable ? 'true' : undefined,\n tabindex: this.chipGroup && !this.disabled ? 0 : data.attrs!.tabindex,\n }\n data.directives!.push({\n name: 'show',\n value: this.active,\n })\n data = this.setBackgroundColor(this.color, data)\n\n const color = this.textColor || (this.outlined && this.color)\n\n return h(tag, this.setTextColor(color, data), children)\n },\n})\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.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/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./budgetWidget.vue?vue&type=style&index=0&lang=css&\""],"sourceRoot":""}