firefly-iii/public/v2/js/dashboard.js.map
2021-03-31 08:10:46 +02:00

1 line
224 KiB
Plaintext
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"sources":["webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/components/dashboard/Dashboard.vue?c016","webpack:///./src/components/dashboard/Dashboard.vue?e9df","webpack:///src/components/dashboard/Dashboard.vue","webpack:///./src/components/dashboard/Dashboard.vue","webpack:///src/components/dashboard/TopBoxes.vue","webpack:///./src/components/dashboard/TopBoxes.vue?c977","webpack:///./src/components/dashboard/TopBoxes.vue","webpack:///./src/components/dashboard/TopBoxes.vue?83ff","webpack:///./src/components/charts/DataConverter.vue?d682","webpack:///src/components/charts/DataConverter.vue","webpack:///./src/components/charts/DataConverter.vue","webpack:///./src/components/charts/DefaultLineOptions.vue?36d0","webpack:///src/components/charts/DefaultLineOptions.vue","webpack:///./src/components/charts/DefaultLineOptions.vue","webpack:///./src/components/charts/DefaultLineOptions.vue?6f90","webpack:///src/components/dashboard/MainAccountChart.vue","webpack:///./src/components/dashboard/MainAccountChart.vue?f54b","webpack:///./src/components/dashboard/MainAccountChart.vue","webpack:///src/components/dashboard/MainAccount.vue","webpack:///./src/components/dashboard/MainAccount.vue?1e69","webpack:///./src/components/dashboard/MainAccount.vue","webpack:///./src/components/dashboard/MainAccount.vue?0800","webpack:///src/components/dashboard/MainAccountList.vue","webpack:///./src/components/dashboard/MainAccountList.vue?889b","webpack:///./src/components/dashboard/MainAccountList.vue","webpack:///./src/components/dashboard/MainAccountList.vue?1697","webpack:///src/components/dashboard/MainBillsList.vue","webpack:///./src/components/dashboard/MainBillsList.vue?536e","webpack:///./src/components/dashboard/MainBillsList.vue","webpack:///./src/components/dashboard/MainBillsList.vue?17cf","webpack:///./src/components/dashboard/BudgetLimitRow.vue?c9a7","webpack:///src/components/dashboard/BudgetLimitRow.vue","webpack:///./src/components/dashboard/BudgetLimitRow.vue","webpack:///./src/components/dashboard/BudgetLimitRow.vue?a956","webpack:///./src/components/dashboard/BudgetRow.vue?09f9","webpack:///src/components/dashboard/BudgetRow.vue","webpack:///./src/components/dashboard/BudgetListGroup.vue?7954","webpack:///src/components/dashboard/BudgetListGroup.vue","webpack:///./src/components/dashboard/BudgetRow.vue","webpack:///./src/components/dashboard/BudgetRow.vue?d9e9","webpack:///./src/components/dashboard/BudgetListGroup.vue","webpack:///./src/components/dashboard/BudgetListGroup.vue?f3cb","webpack:///src/components/dashboard/MainBudgetList.vue","webpack:///./src/components/dashboard/MainBudgetList.vue?9843","webpack:///./src/components/dashboard/MainBudgetList.vue","webpack:///./src/components/dashboard/MainBudgetList.vue?faf9","webpack:///src/components/dashboard/MainCreditList.vue","webpack:///./src/components/dashboard/MainCreditList.vue?53af","webpack:///./src/components/dashboard/MainCreditList.vue","webpack:///./src/components/dashboard/MainCreditList.vue?3903","webpack:///src/components/dashboard/MainDebitList.vue","webpack:///./src/components/dashboard/MainDebitList.vue?587b","webpack:///./src/components/dashboard/MainDebitList.vue","webpack:///./src/components/dashboard/MainDebitList.vue?fcfb","webpack:///./src/components/dashboard/MainPiggyList.vue?7bae","webpack:///src/components/dashboard/MainPiggyList.vue","webpack:///./src/components/dashboard/MainPiggyList.vue","webpack:///./src/components/dashboard/MainPiggyList.vue?60b5","webpack:///./src/components/transactions/TransactionListLarge.vue?3500","webpack:///src/components/transactions/TransactionListLarge.vue","webpack:///./src/components/transactions/TransactionListLarge.vue","webpack:///./src/components/transactions/TransactionListLarge.vue?d789","webpack:///./src/components/transactions/TransactionListMedium.vue?d4b8","webpack:///src/components/transactions/TransactionListMedium.vue","webpack:///./src/components/transactions/TransactionListMedium.vue","webpack:///./src/components/transactions/TransactionListMedium.vue?4497","webpack:///./src/components/transactions/TransactionListSmall.vue?5a3e","webpack:///src/components/transactions/TransactionListSmall.vue","webpack:///./src/components/transactions/TransactionListSmall.vue","webpack:///./src/components/transactions/TransactionListSmall.vue?46eb","webpack:///src/components/dashboard/MainCategoryList.vue","webpack:///./src/components/dashboard/MainCategoryList.vue?9f14","webpack:///./src/components/dashboard/MainCategoryList.vue","webpack:///./src/components/dashboard/MainCategoryList.vue?eaf1","webpack:///./src/pages/dashboard.js"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","name","_vm","this","_h","$createElement","_c","_self","_v","staticClass","props","data","summary","balances","billsPaid","billsUnpaid","leftToSpend","netWorth","loading","error","ready","computed","start","end","prefCurrencyBalances","filterOnCurrency","notPrefCurrencyBalances","filterOnNotCurrency","prefBillsUnpaid","notPrefBillsUnpaid","prefLeftToSpend","notPrefLeftToSpend","prefNetWorth","notPrefNetWorth","currencyCode","$store","getters","currencyId","watch","datesReady","value","prepareComponent","created","methods","array","hasOwnProperty","key","currency_id","ret","push","length","axios","get","startStr","endStr","buildComponent","getBalanceEntries","getBillsEntries","getLeftToSpend","getNetWorth","hasCurrency","getKeyedEntries","expected","substr","result","_m","_e","_s","$t","_l","balance","attrs","sub_title","value_parsed","index","bill","left","nw","staticStyle","dataSet","newDataSet","locale","localStorage","local","convertChart","count","labels","datasets","getLabels","getDataSets","colorizeBarData","fillColors","colourSet","i","setKey","dataset","fill","backgroundColor","borderColor","colorizeLineData","convertLabelsToDate","labelKey","Intl","DateTimeFormat","format","unixTimeZero","firstSet","entries","entryLabel","oldSet","newSet","label","type","currency_symbol","currency_code","yAxisID","formatLabel","sections","words","str","String","split","temp","forEach","item","concat","maxwidth","getDefaultOptions","self","legend","display","animation","duration","responsive","maintainAspectRatio","elements","line","cubicInterpolationMode","scales","xAxes","yAxes","ticks","callback","NumberFormat","beginAtZero","tooltips","mode","callbacks","tooltipItem","datasetIndex","nrString","extends","mixins","reactiveProp","mounted","renderChart","chartData","options","components","dataCollection","chartOptions","DefaultLineOptions","initialiseChart","url","accounts","initialiseList","loadAccounts","accountIds","test","loadSingleAccount","accountId","loadTransactions","account","class","title","parseFloat","current_balance","style","currency","transactions","bills","initialiseBills","renderPaidDate","obj","transaction_group_id","loadBills","attributes","pay_dates","active","amount_min","amount_max","object_group_title","paidDate","domProps","payDate","paid_dates","year","month","day","Date","budgetLimit","default","budget","budget_id","budget_name","pctGreen","amount","spent","total","pctOrange","pctRed","budgetLimits","Array","budgets","budgetList","daily","weekly","monthly","quarterly","half_year","yearly","other","rawBudgets","getBudgets","income","max","getIncome","parseIncome","mainKey","parseInt","current","pct","difference_float","sort","entry","width","expenses","min","getExpenses","parseExpenses","piggy_banks","loadPiggyBanks","piggy","left_to_save","a","b","current_amount","target_amount","account_id","Number","transaction","date","group_title","description","tr","destination_id","destination_name","source_id","source_name","category_id","category_name","categories","sortedList","earned","getCategories","category","spentPct","earnedPct","require","Vue","component","TransactionListLarge","TransactionListMedium","TransactionListSmall","Dashboard","TopBoxes","MainAccount","MainAccountList","MainBillsList","MainBudgetList","MainCategoryList","MainDebitList","MainCreditList","MainPiggyList","use","Vuex","i18n","store","el","render","createElement","beforeCreate","commit","dispatch","Calendar"],"mappings":"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","file":"/public/js/dashboard.js","sourcesContent":["var map = {\n\t\"./af\": 89,\n\t\"./af.js\": 89,\n\t\"./ar\": 90,\n\t\"./ar-dz\": 91,\n\t\"./ar-dz.js\": 91,\n\t\"./ar-kw\": 92,\n\t\"./ar-kw.js\": 92,\n\t\"./ar-ly\": 93,\n\t\"./ar-ly.js\": 93,\n\t\"./ar-ma\": 94,\n\t\"./ar-ma.js\": 94,\n\t\"./ar-sa\": 95,\n\t\"./ar-sa.js\": 95,\n\t\"./ar-tn\": 96,\n\t\"./ar-tn.js\": 96,\n\t\"./ar.js\": 90,\n\t\"./az\": 97,\n\t\"./az.js\": 97,\n\t\"./be\": 98,\n\t\"./be.js\": 98,\n\t\"./bg\": 99,\n\t\"./bg.js\": 99,\n\t\"./bm\": 100,\n\t\"./bm.js\": 100,\n\t\"./bn\": 101,\n\t\"./bn-bd\": 102,\n\t\"./bn-bd.js\": 102,\n\t\"./bn.js\": 101,\n\t\"./bo\": 103,\n\t\"./bo.js\": 103,\n\t\"./br\": 104,\n\t\"./br.js\": 104,\n\t\"./bs\": 105,\n\t\"./bs.js\": 105,\n\t\"./ca\": 106,\n\t\"./ca.js\": 106,\n\t\"./cs\": 107,\n\t\"./cs.js\": 107,\n\t\"./cv\": 108,\n\t\"./cv.js\": 108,\n\t\"./cy\": 109,\n\t\"./cy.js\": 109,\n\t\"./da\": 110,\n\t\"./da.js\": 110,\n\t\"./de\": 111,\n\t\"./de-at\": 112,\n\t\"./de-at.js\": 112,\n\t\"./de-ch\": 113,\n\t\"./de-ch.js\": 113,\n\t\"./de.js\": 111,\n\t\"./dv\": 114,\n\t\"./dv.js\": 114,\n\t\"./el\": 115,\n\t\"./el.js\": 115,\n\t\"./en-au\": 116,\n\t\"./en-au.js\": 116,\n\t\"./en-ca\": 117,\n\t\"./en-ca.js\": 117,\n\t\"./en-gb\": 118,\n\t\"./en-gb.js\": 118,\n\t\"./en-ie\": 119,\n\t\"./en-ie.js\": 119,\n\t\"./en-il\": 120,\n\t\"./en-il.js\": 120,\n\t\"./en-in\": 121,\n\t\"./en-in.js\": 121,\n\t\"./en-nz\": 122,\n\t\"./en-nz.js\": 122,\n\t\"./en-sg\": 123,\n\t\"./en-sg.js\": 123,\n\t\"./eo\": 124,\n\t\"./eo.js\": 124,\n\t\"./es\": 125,\n\t\"./es-do\": 126,\n\t\"./es-do.js\": 126,\n\t\"./es-mx\": 127,\n\t\"./es-mx.js\": 127,\n\t\"./es-us\": 128,\n\t\"./es-us.js\": 128,\n\t\"./es.js\": 125,\n\t\"./et\": 129,\n\t\"./et.js\": 129,\n\t\"./eu\": 130,\n\t\"./eu.js\": 130,\n\t\"./fa\": 131,\n\t\"./fa.js\": 131,\n\t\"./fi\": 132,\n\t\"./fi.js\": 132,\n\t\"./fil\": 133,\n\t\"./fil.js\": 133,\n\t\"./fo\": 134,\n\t\"./fo.js\": 134,\n\t\"./fr\": 135,\n\t\"./fr-ca\": 136,\n\t\"./fr-ca.js\": 136,\n\t\"./fr-ch\": 137,\n\t\"./fr-ch.js\": 137,\n\t\"./fr.js\": 135,\n\t\"./fy\": 138,\n\t\"./fy.js\": 138,\n\t\"./ga\": 139,\n\t\"./ga.js\": 139,\n\t\"./gd\": 140,\n\t\"./gd.js\": 140,\n\t\"./gl\": 141,\n\t\"./gl.js\": 141,\n\t\"./gom-deva\": 142,\n\t\"./gom-deva.js\": 142,\n\t\"./gom-latn\": 143,\n\t\"./gom-latn.js\": 143,\n\t\"./gu\": 144,\n\t\"./gu.js\": 144,\n\t\"./he\": 145,\n\t\"./he.js\": 145,\n\t\"./hi\": 146,\n\t\"./hi.js\": 146,\n\t\"./hr\": 147,\n\t\"./hr.js\": 147,\n\t\"./hu\": 148,\n\t\"./hu.js\": 148,\n\t\"./hy-am\": 149,\n\t\"./hy-am.js\": 149,\n\t\"./id\": 150,\n\t\"./id.js\": 150,\n\t\"./is\": 151,\n\t\"./is.js\": 151,\n\t\"./it\": 152,\n\t\"./it-ch\": 153,\n\t\"./it-ch.js\": 153,\n\t\"./it.js\": 152,\n\t\"./ja\": 154,\n\t\"./ja.js\": 154,\n\t\"./jv\": 155,\n\t\"./jv.js\": 155,\n\t\"./ka\": 156,\n\t\"./ka.js\": 156,\n\t\"./kk\": 157,\n\t\"./kk.js\": 157,\n\t\"./km\": 158,\n\t\"./km.js\": 158,\n\t\"./kn\": 159,\n\t\"./kn.js\": 159,\n\t\"./ko\": 160,\n\t\"./ko.js\": 160,\n\t\"./ku\": 161,\n\t\"./ku.js\": 161,\n\t\"./ky\": 162,\n\t\"./ky.js\": 162,\n\t\"./lb\": 163,\n\t\"./lb.js\": 163,\n\t\"./lo\": 164,\n\t\"./lo.js\": 164,\n\t\"./lt\": 165,\n\t\"./lt.js\": 165,\n\t\"./lv\": 166,\n\t\"./lv.js\": 166,\n\t\"./me\": 167,\n\t\"./me.js\": 167,\n\t\"./mi\": 168,\n\t\"./mi.js\": 168,\n\t\"./mk\": 169,\n\t\"./mk.js\": 169,\n\t\"./ml\": 170,\n\t\"./ml.js\": 170,\n\t\"./mn\": 171,\n\t\"./mn.js\": 171,\n\t\"./mr\": 172,\n\t\"./mr.js\": 172,\n\t\"./ms\": 173,\n\t\"./ms-my\": 174,\n\t\"./ms-my.js\": 174,\n\t\"./ms.js\": 173,\n\t\"./mt\": 175,\n\t\"./mt.js\": 175,\n\t\"./my\": 176,\n\t\"./my.js\": 176,\n\t\"./nb\": 177,\n\t\"./nb.js\": 177,\n\t\"./ne\": 178,\n\t\"./ne.js\": 178,\n\t\"./nl\": 179,\n\t\"./nl-be\": 180,\n\t\"./nl-be.js\": 180,\n\t\"./nl.js\": 179,\n\t\"./nn\": 181,\n\t\"./nn.js\": 181,\n\t\"./oc-lnc\": 182,\n\t\"./oc-lnc.js\": 182,\n\t\"./pa-in\": 183,\n\t\"./pa-in.js\": 183,\n\t\"./pl\": 184,\n\t\"./pl.js\": 184,\n\t\"./pt\": 185,\n\t\"./pt-br\": 186,\n\t\"./pt-br.js\": 186,\n\t\"./pt.js\": 185,\n\t\"./ro\": 187,\n\t\"./ro.js\": 187,\n\t\"./ru\": 188,\n\t\"./ru.js\": 188,\n\t\"./sd\": 189,\n\t\"./sd.js\": 189,\n\t\"./se\": 190,\n\t\"./se.js\": 190,\n\t\"./si\": 191,\n\t\"./si.js\": 191,\n\t\"./sk\": 192,\n\t\"./sk.js\": 192,\n\t\"./sl\": 193,\n\t\"./sl.js\": 193,\n\t\"./sq\": 194,\n\t\"./sq.js\": 194,\n\t\"./sr\": 195,\n\t\"./sr-cyrl\": 196,\n\t\"./sr-cyrl.js\": 196,\n\t\"./sr.js\": 195,\n\t\"./ss\": 197,\n\t\"./ss.js\": 197,\n\t\"./sv\": 198,\n\t\"./sv.js\": 198,\n\t\"./sw\": 199,\n\t\"./sw.js\": 199,\n\t\"./ta\": 200,\n\t\"./ta.js\": 200,\n\t\"./te\": 201,\n\t\"./te.js\": 201,\n\t\"./tet\": 202,\n\t\"./tet.js\": 202,\n\t\"./tg\": 203,\n\t\"./tg.js\": 203,\n\t\"./th\": 204,\n\t\"./th.js\": 204,\n\t\"./tk\": 205,\n\t\"./tk.js\": 205,\n\t\"./tl-ph\": 206,\n\t\"./tl-ph.js\": 206,\n\t\"./tlh\": 207,\n\t\"./tlh.js\": 207,\n\t\"./tr\": 208,\n\t\"./tr.js\": 208,\n\t\"./tzl\": 209,\n\t\"./tzl.js\": 209,\n\t\"./tzm\": 210,\n\t\"./tzm-latn\": 211,\n\t\"./tzm-latn.js\": 211,\n\t\"./tzm.js\": 210,\n\t\"./ug-cn\": 212,\n\t\"./ug-cn.js\": 212,\n\t\"./uk\": 213,\n\t\"./uk.js\": 213,\n\t\"./ur\": 214,\n\t\"./ur.js\": 214,\n\t\"./uz\": 215,\n\t\"./uz-latn\": 216,\n\t\"./uz-latn.js\": 216,\n\t\"./uz.js\": 215,\n\t\"./vi\": 217,\n\t\"./vi.js\": 217,\n\t\"./x-pseudo\": 218,\n\t\"./x-pseudo.js\": 218,\n\t\"./yo\": 219,\n\t\"./yo.js\": 219,\n\t\"./zh-cn\": 220,\n\t\"./zh-cn.js\": 220,\n\t\"./zh-hk\": 221,\n\t\"./zh-hk.js\": 221,\n\t\"./zh-mo\": 222,\n\t\"./zh-mo.js\": 222,\n\t\"./zh-tw\": 223,\n\t\"./zh-tw.js\": 223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 277;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('top-boxes'),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('main-account')],1)]),_vm._v(\" \"),_c('main-account-list'),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('main-budget-list')],1)]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('main-category-list')],1)]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-6 col-md-12 col-sm-12 col-xs-12\"},[_c('main-debit-list')],1),_vm._v(\" \"),_c('div',{staticClass:\"col-lg-6 col-md-12 col-sm-12 col-xs-12\"},[_c('main-credit-list')],1)]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-6 col-md-12 col-sm-12 col-xs-12\"},[_c('main-piggy-list')],1),_vm._v(\" \"),_c('div',{staticClass:\"col-lg-6 col-md-12 col-sm-12 col-xs-12\"},[_c('main-bills-list')],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-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/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=js&\"","<!--\n - ExampleComponent.vue\n - Copyright (c) 2019 james@firefly-iii.org\n -\n - This file is part of Firefly III (https://github.com/firefly-iii).\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <https://www.gnu.org/licenses/>.\n -->\n\n<template>\n <div>\n <top-boxes/>\n <div class=\"row\">\n <div class=\"col\">\n <main-account/>\n </div>\n </div>\n <main-account-list/>\n\n <div class=\"row\">\n <div class=\"col\">\n <main-budget-list/>\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col\">\n <main-category-list/>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-lg-6 col-md-12 col-sm-12 col-xs-12\">\n <main-debit-list/>\n </div>\n <div class=\"col-lg-6 col-md-12 col-sm-12 col-xs-12\">\n <main-credit-list/>\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col-lg-6 col-md-12 col-sm-12 col-xs-12\">\n <main-piggy-list/>\n </div>\n <div class=\"col-lg-6 col-md-12 col-sm-12 col-xs-12\">\n <main-bills-list/>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n name: \"Dashboard\",\n}\n</script>\n","import { render, staticRenderFns } from \"./Dashboard.vue?vue&type=template&id=9d50d3a2&\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=js&\"\nexport * from \"./Dashboard.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 - TopBoxes.vue\n - Copyright (c) 2020 james@firefly-iii.org\n -\n - This file is part of Firefly III (https://github.com/firefly-iii).\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <https://www.gnu.org/licenses/>.\n -->\n\n<template>\n <div class=\"row\">\n <div class=\"col\"> <!-- col-md-3 col-sm-6 col-12 -->\n <div class=\"info-box\">\n <span class=\"info-box-icon\"><i class=\"far fa-bookmark text-info\"></i></span>\n\n <div class=\"info-box-content\">\n <span v-if=\"!loading && !error\" class=\"info-box-text\">{{ $t(\"firefly.balance\") }}</span>\n <span v-if=\"loading && !error\" class=\"info-box-text\"><i class=\"fas fa-spinner fa-spin\"></i></span>\n <span v-if=\"error\" class=\"info-box-text\"><i class=\"fas fa-exclamation-triangle text-danger\"></i></span>\n <!-- balance in preferred currency -->\n <span v-for=\"balance in prefCurrencyBalances\" :title=\"balance.sub_title\" class=\"info-box-number\">{{ balance.value_parsed }}</span>\n\n <div class=\"progress bg-info\">\n <div class=\"progress-bar\" style=\"width: 0\"></div>\n </div>\n <!-- balance in not preferred currency -->\n <span class=\"progress-description\">\n <span v-for=\"(balance, index) in notPrefCurrencyBalances\" :title=\"balance.sub_title\">\n {{ balance.value_parsed }}<span v-if=\"index+1 !== notPrefCurrencyBalances.length\">, </span>\n </span>\n <span v-if=\"0===notPrefCurrencyBalances.length\">&nbsp;</span>\n </span>\n </div>\n </div>\n </div>\n\n <div class=\"col\">\n <div class=\"info-box\">\n <span class=\"info-box-icon\"><i class=\"far fa-calendar-alt text-teal\"></i></span>\n\n <div class=\"info-box-content\">\n <span v-if=\"!loading && !error\" class=\"info-box-text\">{{ $t('firefly.bills_to_pay') }}</span>\n <span v-if=\"loading && !error\" class=\"info-box-text\"><i class=\"fas fa-spinner fa-spin\"></i></span>\n <span v-if=\"error\" class=\"info-box-text\"><i class=\"fas fa-exclamation-triangle text-danger\"></i></span>\n <!-- bills unpaid, in preferred currency. -->\n <span v-for=\"balance in prefBillsUnpaid\" class=\"info-box-number\">{{ balance.value_parsed }}</span>\n\n <div class=\"progress bg-teal\">\n <div class=\"progress-bar\" style=\"width: 0\"></div>\n </div>\n <!-- bills unpaid, in other currencies. -->\n <span class=\"progress-description\">\n <span v-for=\"(bill, index) in notPrefBillsUnpaid\">\n {{ bill.value_parsed }}<span v-if=\"index+1 !== notPrefBillsUnpaid.length\">, </span>\n </span>\n <span v-if=\"0===notPrefBillsUnpaid.length\">&nbsp;</span>\n </span>\n </div>\n </div>\n </div>\n <!-- left to spend -->\n <div class=\"col\">\n <div class=\"info-box\">\n <span class=\"info-box-icon\"><i class=\"fas fa-money-bill text-success\"></i></span>\n\n <div class=\"info-box-content\">\n <span v-if=\"!loading && !error\" class=\"info-box-text\">{{ $t('firefly.left_to_spend') }}</span>\n <span v-if=\"loading && !error\" class=\"info-box-text\"><i class=\"fas fa-spinner fa-spin\"></i></span>\n <span v-if=\"error\" class=\"info-box-text\"><i class=\"fas fa-exclamation-triangle text-danger\"></i></span>\n <!-- left to spend in preferred currency -->\n <span v-for=\"left in prefLeftToSpend\" :title=\"left.sub_title\" class=\"info-box-number\">{{ left.value_parsed }}</span>\n\n <div class=\"progress bg-success\">\n <div class=\"progress-bar\" style=\"width: 0\"></div>\n </div>\n <!-- other currencies-->\n <span class=\"progress-description\">\n <span v-for=\"(left, index) in notPrefLeftToSpend\">\n {{ left.value_parsed }}<span v-if=\"index+1 !== notPrefLeftToSpend.length\">, </span>\n </span>\n <span v-if=\"0===notPrefLeftToSpend.length\">&nbsp;</span>\n </span>\n </div>\n </div>\n </div>\n\n <!-- net worth -->\n <div class=\"col\">\n <div class=\"info-box\">\n <span class=\"info-box-icon\"><i class=\"fas fa-money-bill text-success\"></i></span>\n\n <div class=\"info-box-content\">\n <span v-if=\"!loading && !error\" class=\"info-box-text\">{{ $t('firefly.net_worth') }}</span>\n <span v-if=\"loading && !error\" class=\"info-box-text\"><i class=\"fas fa-spinner fa-spin\"></i></span>\n <span v-if=\"error\" class=\"info-box-text\"><i class=\"fas fa-exclamation-triangle text-danger\"></i></span>\n <span v-for=\"nw in prefNetWorth\" :title=\"nw.sub_title\" class=\"info-box-number\">{{ nw.value_parsed }}</span>\n\n <div class=\"progress bg-success\">\n <div class=\"progress-bar\" style=\"width: 0\"></div>\n </div>\n <span class=\"progress-description\">\n <span v-for=\"(nw, index) in notPrefNetWorth\">\n {{ nw.value_parsed }}<span v-if=\"index+1 !== notPrefNetWorth.length\">, </span>\n </span>\n <span v-if=\"0===notPrefNetWorth.length\">&nbsp;</span>\n </span>\n </div>\n </div>\n </div>\n\n </div>\n</template>\n\n<script>\nimport {createNamespacedHelpers} from \"vuex\";\n\nconst {mapState, mapGetters, mapActions, mapMutations} = createNamespacedHelpers('dashboard/index')\nexport default {\n name: \"TopBoxes\",\n props: {},\n data() {\n return {\n summary: [],\n balances: [],\n billsPaid: [],\n billsUnpaid: [],\n leftToSpend: [],\n netWorth: [],\n loading: true,\n error: false,\n ready: false\n }\n },\n computed: {\n ...mapGetters([\n 'start',\n 'end'\n ]),\n 'datesReady': function () {\n return null !== this.start && null !== this.end && this.ready;\n },\n\n // contains only balances with preferred currency.\n prefCurrencyBalances: function () {\n return this.filterOnCurrency(this.balances);\n },\n notPrefCurrencyBalances: function () {\n return this.filterOnNotCurrency(this.balances);\n },\n\n // contains only bills unpaid in preferred currency or first one.\n prefBillsUnpaid: function () {\n return this.filterOnCurrency(this.billsUnpaid);\n },\n notPrefBillsUnpaid: function () {\n return this.filterOnNotCurrency(this.billsUnpaid);\n },\n\n // left to spend\n prefLeftToSpend: function () {\n return this.filterOnCurrency(this.leftToSpend);\n },\n notPrefLeftToSpend: function () {\n return this.filterOnNotCurrency(this.leftToSpend);\n },\n\n // net worth\n prefNetWorth: function () {\n return this.filterOnCurrency(this.netWorth);\n },\n notPrefNetWorth: function () {\n return this.filterOnNotCurrency(this.netWorth);\n },\n currencyCode() {\n return this.$store.getters.currencyCode;\n },\n currencyId() {\n return this.$store.getters.currencyId;\n }\n },\n watch: {\n datesReady: function (value) {\n if (true === value) {\n this.prepareComponent();\n }\n },\n start: function () {\n if (false === this.loading) {\n this.prepareComponent();\n }\n },\n end: function () {\n if (false === this.loading) {\n this.prepareComponent();\n }\n },\n },\n created() {\n this.ready = true;\n },\n methods: {\n filterOnCurrency(array) {\n let ret = [];\n for (const key in array) {\n if (array.hasOwnProperty(key)) {\n // console.log('Currency ID seems to be ' + this.currencyId);\n if (array[key].currency_id === this.currencyId) {\n ret.push(array[key]);\n }\n }\n }\n // or just the first one:\n if (0 === ret.length && array.hasOwnProperty(0)) {\n ret.push(array[0]);\n }\n return ret;\n },\n filterOnNotCurrency(array) {\n let ret = [];\n for (const key in array) {\n if (array.hasOwnProperty(key)) {\n if (array[key].currency_id !== this.currencyId) {\n ret.push(array[key]);\n }\n }\n }\n return ret;\n },\n /**\n * Prepare the component.\n */\n prepareComponent() {\n this.error = false;\n this.loading = true;\n this.summary = [];\n this.balances = [];\n this.billsPaid = [];\n this.billsUnpaid = [];\n this.leftToSpend = [];\n this.netWorth = [];\n let startStr = this.start.toISOString().split('T')[0];\n let endStr = this.end.toISOString().split('T')[0];\n axios.get('./api/v1/summary/basic?start=' + startStr + '&end=' + endStr)\n .then(response => {\n this.summary = response.data;\n this.buildComponent();\n this.loading = false\n }).catch(error => {\n this.error = true\n });\n },\n buildComponent() {\n this.getBalanceEntries();\n this.getBillsEntries();\n this.getLeftToSpend();\n this.getNetWorth();\n },\n\n hasCurrency: function (array) {\n for (const key in array) {\n if (array.hasOwnProperty(key)) {\n if (array[key].currency_id === this.currencyId) {\n return true;\n }\n }\n }\n return false;\n },\n\n getBalanceEntries() {\n this.balances = this.getKeyedEntries('balance-in-');\n },\n getNetWorth() {\n this.netWorth = this.getKeyedEntries('net-worth-in-');\n },\n getLeftToSpend() {\n this.leftToSpend = this.getKeyedEntries('left-to-spend-in-');\n },\n getBillsEntries() {\n this.billsPaid = this.getKeyedEntries('bills-paid-in-');\n this.billsUnpaid = this.getKeyedEntries('bills-unpaid-in-');\n },\n getKeyedEntries(expected) {\n let result = [];\n for (const key in this.summary) {\n if (this.summary.hasOwnProperty(key)) {\n if (expected === key.substr(0, expected.length)) {\n result.push(this.summary[key]);\n }\n }\n }\n return result;\n }\n }\n}\n</script>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TopBoxes.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TopBoxes.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TopBoxes.vue?vue&type=template&id=5c6cdcc5&\"\nimport script from \"./TopBoxes.vue?vue&type=script&lang=js&\"\nexport * from \"./TopBoxes.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"info-box\"},[_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"info-box-content\"},[(!_vm.loading && !_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_vm._v(_vm._s(_vm.$t(\"firefly.balance\")))]):_vm._e(),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.prefCurrencyBalances),function(balance){return _c('span',{staticClass:\"info-box-number\",attrs:{\"title\":balance.sub_title}},[_vm._v(_vm._s(balance.value_parsed))])}),_vm._v(\" \"),_vm._m(1),_vm._v(\" \"),_c('span',{staticClass:\"progress-description\"},[_vm._l((_vm.notPrefCurrencyBalances),function(balance,index){return _c('span',{attrs:{\"title\":balance.sub_title}},[_vm._v(\"\\n \"+_vm._s(balance.value_parsed)),(index+1 !== _vm.notPrefCurrencyBalances.length)?_c('span',[_vm._v(\", \")]):_vm._e()])}),_vm._v(\" \"),(0===_vm.notPrefCurrencyBalances.length)?_c('span',[_vm._v(\" \")]):_vm._e()],2)],2)])]),_vm._v(\" \"),_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"info-box\"},[_vm._m(2),_vm._v(\" \"),_c('div',{staticClass:\"info-box-content\"},[(!_vm.loading && !_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_vm._v(_vm._s(_vm.$t('firefly.bills_to_pay')))]):_vm._e(),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.prefBillsUnpaid),function(balance){return _c('span',{staticClass:\"info-box-number\"},[_vm._v(_vm._s(balance.value_parsed))])}),_vm._v(\" \"),_vm._m(3),_vm._v(\" \"),_c('span',{staticClass:\"progress-description\"},[_vm._l((_vm.notPrefBillsUnpaid),function(bill,index){return _c('span',[_vm._v(\"\\n \"+_vm._s(bill.value_parsed)),(index+1 !== _vm.notPrefBillsUnpaid.length)?_c('span',[_vm._v(\", \")]):_vm._e()])}),_vm._v(\" \"),(0===_vm.notPrefBillsUnpaid.length)?_c('span',[_vm._v(\" \")]):_vm._e()],2)],2)])]),_vm._v(\" \"),_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"info-box\"},[_vm._m(4),_vm._v(\" \"),_c('div',{staticClass:\"info-box-content\"},[(!_vm.loading && !_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_vm._v(_vm._s(_vm.$t('firefly.left_to_spend')))]):_vm._e(),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.prefLeftToSpend),function(left){return _c('span',{staticClass:\"info-box-number\",attrs:{\"title\":left.sub_title}},[_vm._v(_vm._s(left.value_parsed))])}),_vm._v(\" \"),_vm._m(5),_vm._v(\" \"),_c('span',{staticClass:\"progress-description\"},[_vm._l((_vm.notPrefLeftToSpend),function(left,index){return _c('span',[_vm._v(\"\\n \"+_vm._s(left.value_parsed)),(index+1 !== _vm.notPrefLeftToSpend.length)?_c('span',[_vm._v(\", \")]):_vm._e()])}),_vm._v(\" \"),(0===_vm.notPrefLeftToSpend.length)?_c('span',[_vm._v(\" \")]):_vm._e()],2)],2)])]),_vm._v(\" \"),_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"info-box\"},[_vm._m(6),_vm._v(\" \"),_c('div',{staticClass:\"info-box-content\"},[(!_vm.loading && !_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_vm._v(_vm._s(_vm.$t('firefly.net_worth')))]):_vm._e(),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.prefNetWorth),function(nw){return _c('span',{staticClass:\"info-box-number\",attrs:{\"title\":nw.sub_title}},[_vm._v(_vm._s(nw.value_parsed))])}),_vm._v(\" \"),_vm._m(7),_vm._v(\" \"),_c('span',{staticClass:\"progress-description\"},[_vm._l((_vm.notPrefNetWorth),function(nw,index){return _c('span',[_vm._v(\"\\n \"+_vm._s(nw.value_parsed)),(index+1 !== _vm.notPrefNetWorth.length)?_c('span',[_vm._v(\", \")]):_vm._e()])}),_vm._v(\" \"),(0===_vm.notPrefNetWorth.length)?_c('span',[_vm._v(\" \")]):_vm._e()],2)],2)])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"info-box-icon\"},[_c('i',{staticClass:\"far fa-bookmark text-info\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"progress bg-info\"},[_c('div',{staticClass:\"progress-bar\",staticStyle:{\"width\":\"0\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"info-box-icon\"},[_c('i',{staticClass:\"far fa-calendar-alt text-teal\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"progress bg-teal\"},[_c('div',{staticClass:\"progress-bar\",staticStyle:{\"width\":\"0\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"info-box-icon\"},[_c('i',{staticClass:\"fas fa-money-bill text-success\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"progress bg-success\"},[_c('div',{staticClass:\"progress-bar\",staticStyle:{\"width\":\"0\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"info-box-icon\"},[_c('i',{staticClass:\"fas fa-money-bill text-success\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"progress bg-success\"},[_c('div',{staticClass:\"progress-bar\",staticStyle:{\"width\":\"0\"}})])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataConverter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataConverter.vue?vue&type=script&lang=js&\"","<!--\n - DataConverter.vue\n - Copyright (c) 2020 james@firefly-iii.org\n -\n - This file is part of Firefly III (https://github.com/firefly-iii).\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <https://www.gnu.org/licenses/>.\n -->\n\n<script>\nexport default {\n name: \"DataConverter\",\n data() {\n return {\n dataSet: null,\n newDataSet: null,\n locale: localStorage.local,\n }\n },\n methods: {\n convertChart(dataSet) {\n this.dataSet = dataSet;\n this.newDataSet = {\n count: 0,\n labels: [],\n datasets: []\n }\n this.getLabels();\n this.getDataSets();\n this.newDataSet.count = this.newDataSet.datasets.length;\n return this.newDataSet;\n },\n\n colorizeBarData(dataSet) {\n this.dataSet = dataSet;\n this.newDataSet = {\n count: 0,\n labels: [],\n datasets: []\n };\n // colors\n let colourSet = [\n [53, 124, 165],\n [0, 141, 76], // green\n [219, 139, 11],\n [202, 25, 90], // paars rood-ish #CA195A\n [85, 82, 153],\n [66, 133, 244],\n [219, 68, 55], // red #DB4437\n [244, 180, 0],\n [15, 157, 88],\n [171, 71, 188],\n [0, 172, 193],\n [255, 112, 67],\n [158, 157, 36],\n [92, 107, 192],\n [240, 98, 146],\n [0, 121, 107],\n [194, 24, 91]\n ];\n\n let fillColors = [];\n //let strokePointHighColors = [];\n\n\n for (let i = 0; i < colourSet.length; i++) {\n fillColors.push(\"rgba(\" + colourSet[i][0] + \", \" + colourSet[i][1] + \", \" + colourSet[i][2] + \", 0.5)\");\n //strokePointHighColors.push(\"rgba(\" + colourSet[i][0] + \", \" + colourSet[i][1] + \", \" + colourSet[i][2] + \", 0.9)\");\n }\n this.newDataSet.labels = this.dataSet.labels;\n this.newDataSet.count = this.dataSet.count;\n for (let setKey in this.dataSet.datasets) {\n if (this.dataSet.datasets.hasOwnProperty(setKey)) {\n var dataset = this.dataSet.datasets[setKey];\n dataset.fill = false;\n dataset.backgroundColor = dataset.borderColor = fillColors[setKey];\n this.newDataSet.datasets.push(dataset);\n }\n }\n return this.newDataSet;\n },\n\n colorizeLineData(dataSet) {\n this.dataSet = dataSet;\n this.newDataSet = {\n count: 0,\n labels: [],\n datasets: []\n };\n // colors\n let colourSet = [\n [53, 124, 165],\n [0, 141, 76], // green\n [219, 139, 11],\n [202, 25, 90], // paars rood-ish #CA195A\n [85, 82, 153],\n [66, 133, 244],\n [219, 68, 55], // red #DB4437\n [244, 180, 0],\n [15, 157, 88],\n [171, 71, 188],\n [0, 172, 193],\n [255, 112, 67],\n [158, 157, 36],\n [92, 107, 192],\n [240, 98, 146],\n [0, 121, 107],\n [194, 24, 91]\n ];\n\n let fillColors = [];\n //let strokePointHighColors = [];\n\n\n for (let i = 0; i < colourSet.length; i++) {\n fillColors.push(\"rgba(\" + colourSet[i][0] + \", \" + colourSet[i][1] + \", \" + colourSet[i][2] + \", 0.5)\");\n //strokePointHighColors.push(\"rgba(\" + colourSet[i][0] + \", \" + colourSet[i][1] + \", \" + colourSet[i][2] + \", 0.9)\");\n }\n this.newDataSet.labels = this.dataSet.labels;\n this.newDataSet.count = this.dataSet.count;\n for (let setKey in this.dataSet.datasets) {\n if (this.dataSet.datasets.hasOwnProperty(setKey)) {\n var dataset = this.dataSet.datasets[setKey];\n dataset.fill = false;\n dataset.backgroundColor = dataset.borderColor = fillColors[setKey];\n this.newDataSet.datasets.push(dataset);\n }\n }\n return this.newDataSet;\n },\n convertLabelsToDate(dataSet) {\n for (let labelKey in dataSet.labels) {\n if (dataSet.labels.hasOwnProperty(labelKey)) {\n const unixTimeZero = Date.parse(dataSet.labels[labelKey]);\n dataSet.labels[labelKey] = new Intl.DateTimeFormat(this.locale).format(unixTimeZero);\n }\n }\n return dataSet;\n },\n getLabels() {\n let firstSet = this.dataSet[0];\n if (typeof firstSet !== 'undefined') {\n for (const entryLabel in firstSet.entries) {\n if (firstSet.entries.hasOwnProperty(entryLabel)) {\n this.newDataSet.labels.push(entryLabel);\n }\n }\n }\n },\n getDataSets() {\n for (const setKey in this.dataSet) {\n if (this.dataSet.hasOwnProperty(setKey)) {\n let newSet = {};\n let oldSet = this.dataSet[setKey];\n if (typeof oldSet !== 'undefined') {\n newSet.label = oldSet.label;\n newSet.type = oldSet.type;\n newSet.currency_symbol = oldSet.currency_symbol;\n newSet.currency_code = oldSet.currency_code;\n newSet.yAxisID = oldSet.yAxisID;\n newSet.data = [];\n for (const entryLabel in oldSet.entries) {\n if (oldSet.entries.hasOwnProperty(entryLabel)) {\n newSet.data.push(oldSet.entries[entryLabel]);\n }\n }\n this.newDataSet.datasets.push(newSet);\n }\n }\n }\n }\n }\n}\n</script>\n","var render, staticRenderFns\nimport script from \"./DataConverter.vue?vue&type=script&lang=js&\"\nexport * from \"./DataConverter.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","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefaultLineOptions.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefaultLineOptions.vue?vue&type=script&lang=js&\"","<!--\n - DefaultLineOptions.vue\n - Copyright (c) 2020 james@firefly-iii.org\n -\n - This file is part of Firefly III (https://github.com/firefly-iii).\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <https://www.gnu.org/licenses/>.\n -->\n\n<template>\n\n</template>\n\n\n<script>\n\nexport default {\n name: \"DefaultLineOptions\",\n data() {\n return {}\n },\n methods: {\n /**\n * Takes a string phrase and breaks it into separate phrases no bigger than 'maxwidth', breaks are made at complete words.\n * https://stackoverflow.com/questions/21409717/chart-js-and-long-labels\n *\n * @param str\n * @param maxwidth\n * @returns {Array}\n */\n formatLabel(str, maxwidth) {\n var sections = [];\n str = String(str);\n var words = str.split(\" \");\n var temp = \"\";\n\n words.forEach(function (item, index) {\n if (temp.length > 0) {\n var concat = temp + ' ' + item;\n\n if (concat.length > maxwidth) {\n sections.push(temp);\n temp = \"\";\n } else {\n if (index === (words.length - 1)) {\n sections.push(concat);\n return;\n } else {\n temp = concat;\n return;\n }\n }\n }\n\n if (index === (words.length - 1)) {\n sections.push(item);\n return;\n }\n\n if (item.length < maxwidth) {\n temp = item;\n } else {\n sections.push(item);\n }\n\n });\n\n return sections;\n },\n getDefaultOptions() {\n var self = this;\n return {\n legend: {\n display: false,\n },\n animation: {\n duration: 0,\n },\n responsive: true,\n maintainAspectRatio: false,\n elements: {\n line: {\n cubicInterpolationMode: 'monotone'\n }\n },\n scales: {\n xAxes: [\n {\n gridLines: {\n display: false\n },\n ticks: {\n // break ticks when too long\n callback: function (value, index, values) {\n // date format\n let dateObj = new Date(value);\n let options = {year: 'numeric', month: 'long', day: 'numeric'};\n let str = new Intl.DateTimeFormat(localStorage.locale, options).format(dateObj);\n //console.log();\n //return self.formatLabel(value, 20);\n return self.formatLabel(str, 20);\n }\n }\n }\n ],\n yAxes: [{\n display: true,\n ticks: {\n callback: function (tickValue) {\n \"use strict\";\n let currencyCode = this.chart.data.datasets[0].currency_code ? this.chart.data.datasets[0].currency_code : 'EUR';\n return new Intl.NumberFormat(localStorage.locale, {style: 'currency', currency: currencyCode}).format(tickValue);\n },\n beginAtZero: true\n }\n\n }]\n },\n tooltips: {\n mode: 'index',\n callbacks: {\n label: function (tooltipItem, data) {\n \"use strict\";\n let currencyCode = data.datasets[tooltipItem.datasetIndex].currency_code ? data.datasets[tooltipItem.datasetIndex].currency_code : 'EUR';\n let nrString =\n new Intl.NumberFormat(localStorage.locale, {style: 'currency', currency: currencyCode}).format(tooltipItem.yLabel)\n\n return data.datasets[tooltipItem.datasetIndex].label + ': ' + nrString;\n }\n }\n }\n };\n }\n\n }\n}\n</script>\n\n<style scoped>\n\n</style>\n","import { render, staticRenderFns } from \"./DefaultLineOptions.vue?vue&type=template&id=5f7e90aa&scoped=true&\"\nimport script from \"./DefaultLineOptions.vue?vue&type=script&lang=js&\"\nexport * from \"./DefaultLineOptions.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 \"5f7e90aa\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\"div\")}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - MainAccountChart.vue\n - Copyright (c) 2020 james@firefly-iii.org\n -\n - This file is part of Firefly III (https://github.com/firefly-iii).\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <https://www.gnu.org/licenses/>.\n -->\n\n<script>\n\nimport {Line, mixins} from 'vue-chartjs'\n\nconst {reactiveProp} = mixins\n\nexport default {\n extends: Line,\n mixins: [reactiveProp],\n props: ['options'],\n mounted() {\n this.renderChart(this.chartData, this.options)\n }\n}\n</script>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainAccountChart.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainAccountChart.vue?vue&type=script&lang=js&\"","var render, staticRenderFns\nimport script from \"./MainAccountChart.vue?vue&type=script&lang=js&\"\nexport * from \"./MainAccountChart.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 - MainAccount.vue\n - Copyright (c) 2020 james@firefly-iii.org\n -\n - This file is part of Firefly III (https://github.com/firefly-iii).\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <https://www.gnu.org/licenses/>.\n -->\n\n<template>\n <div class=\"card\">\n <div class=\"card-header\">\n <h3 class=\"card-title\">{{ $t('firefly.yourAccounts') }}</h3>\n </div>\n <div class=\"card-body\">\n <div v-if=\"!loading\">\n <MainAccountChart v-if=\"!loading && !error\" :chart-data=\"dataCollection\" :options=\"chartOptions\"/>\n </div>\n <div v-if=\"loading && !error\" class=\"text-center\">\n <i class=\"fas fa-spinner fa-spin\"></i>\n </div>\n <div v-if=\"error\" class=\"text-center\">\n <i class=\"fas fa-exclamation-triangle text-danger\"></i>\n </div>\n </div>\n <div class=\"card-footer\">\n <a class=\"btn btn-default button-sm\" href=\"./accounts/asset\"><i class=\"far fa-money-bill-alt\"></i> {{ $t('firefly.go_to_asset_accounts') }}</a>\n </div>\n </div>\n</template>\n\n<script>\n\nimport DataConverter from \"../charts/DataConverter\";\nimport DefaultLineOptions from \"../charts/DefaultLineOptions\";\n\nimport {createNamespacedHelpers} from \"vuex\";\nimport MainAccountChart from \"./MainAccountChart\";\n\nconst {mapState, mapGetters, mapActions, mapMutations} = createNamespacedHelpers('dashboard/index')\n\nexport default {\n name: \"MainAccount\",\n components: {MainAccountChart},\n data() {\n return {\n loading: true,\n error: false,\n ready: false,\n dataCollection: {},\n chartOptions: {}\n }\n },\n created() {\n this.ready = true;\n this.chartOptions = DefaultLineOptions.methods.getDefaultOptions();\n },\n computed: {\n ...mapGetters([\n 'start',\n 'end'\n ]),\n 'datesReady': function () {\n return null !== this.start && null !== this.end && this.ready;\n }\n },\n watch: {\n datesReady: function (value) {\n if (true === value) {\n this.initialiseChart();\n }\n },\n start: function () {\n this.initialiseChart();\n },\n end: function () {\n this.initialiseChart();\n },\n },\n methods: {\n initialiseChart: function () {\n this.loading = true;\n this.error = false;\n let startStr = this.start.toISOString().split('T')[0];\n let endStr = this.end.toISOString().split('T')[0];\n let url = './api/v1/chart/account/overview?start=' + startStr + '&end=' + endStr;\n // console.log('URL is ' + url);\n axios.get(url)\n .then(response => {\n let chartData = DataConverter.methods.convertChart(response.data);\n chartData = DataConverter.methods.colorizeLineData(chartData);\n this.dataCollection = chartData;\n this.loading = false;\n })\n .catch(error => {\n // console.log('Has error!');\n // console.log(error);\n this.error = true;\n // console.error(error);\n });\n }\n },\n}\n</script>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainAccount.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainAccount.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MainAccount.vue?vue&type=template&id=53c6b338&\"\nimport script from \"./MainAccount.vue?vue&type=script&lang=js&\"\nexport * from \"./MainAccount.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.$t('firefly.yourAccounts')))])]),_vm._v(\" \"),_c('div',{staticClass:\"card-body\"},[(!_vm.loading)?_c('div',[(!_vm.loading && !_vm.error)?_c('MainAccountChart',{attrs:{\"chart-data\":_vm.dataCollection,\"options\":_vm.chartOptions}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"card-footer\"},[_c('a',{staticClass:\"btn btn-default button-sm\",attrs:{\"href\":\"./accounts/asset\"}},[_c('i',{staticClass:\"far fa-money-bill-alt\"}),_vm._v(\" \"+_vm._s(_vm.$t('firefly.go_to_asset_accounts')))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - MainAccountList.vue\n - Copyright (c) 2020 james@firefly-iii.org\n -\n - This file is part of Firefly III (https://github.com/firefly-iii).\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <https://www.gnu.org/licenses/>.\n -->\n\n<template>\n <div>\n <!-- row if loading -->\n <div v-if=\"loading && !error\" class=\"row\">\n <div class=\"col\">\n <div class=\"card\">\n <div class=\"card-body\">\n <div class=\"text-center\">\n <i class=\"fas fa-spinner fa-spin\"></i>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- row if error -->\n <div v-if=\"error\" class=\"row\">\n <div class=\"col\">\n <div class=\"card\">\n <div class=\"card-body\">\n <div class=\"text-center\">\n <i class=\"fas fa-exclamation-triangle text-danger\"></i>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- row if normal -->\n <div v-if=\"!loading && !error\" class=\"row\">\n <div\n v-for=\"account in accounts\"\n v-bind:class=\"{ 'col-lg-12': 1 === accounts.length, 'col-lg-6': 2 === accounts.length, 'col-lg-4': accounts.length > 2 }\">\n <div class=\"card\">\n <div class=\"card-header\">\n <h3 class=\"card-title\"><a :href=\"account.url\">{{ account.title }}</a></h3>\n <div class=\"card-tools\">\n <span :class=\"parseFloat(account.current_balance) < 0 ? 'text-danger' : 'text-success'\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: account.currency_code}).format(parseFloat(account.current_balance)) }}\n </span>\n </div>\n </div>\n <div class=\"card-body table-responsive p-0\">\n <div>\n <transaction-list-large v-if=\"1===accounts.length\" :account_id=\"account.id\" :transactions=\"account.transactions\"/>\n <transaction-list-medium v-if=\"2===accounts.length\" :account_id=\"account.id\" :transactions=\"account.transactions\"/>\n <transaction-list-small v-if=\"accounts.length > 2\" :account_id=\"account.id\" :transactions=\"account.transactions\"/>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport {createNamespacedHelpers} from \"vuex\";\n\nconst {mapState, mapGetters, mapActions, mapMutations} = createNamespacedHelpers('dashboard/index')\n\nexport default {\n name: \"MainAccountList\",\n data() {\n return {\n loading: true,\n error: false,\n ready: false,\n accounts: [],\n locale: 'en-US'\n }\n },\n created() {\n this.locale = localStorage.locale ?? 'en-US';\n this.ready = true;\n },\n computed: {\n ...mapGetters([\n 'start',\n 'end'\n ]),\n 'datesReady': function () {\n return null !== this.start && null !== this.end && this.ready;\n }\n },\n watch: {\n datesReady: function (value) {\n if (true === value) {\n this.initialiseList();\n }\n },\n start: function () {\n if (false === this.loading) {\n this.initialiseList();\n }\n },\n end: function () {\n if (false === this.loading) {\n this.initialiseList();\n }\n },\n },\n methods: {\n initialiseList: function () {\n this.loading = true;\n this.accounts = [];\n axios.get('./api/v1/preferences/frontpageAccounts')\n .then(response => {\n this.loadAccounts(response);\n }\n );\n },\n loadAccounts(response) {\n let accountIds = response.data.data.attributes.data;\n for (let key in accountIds) {\n if (accountIds.hasOwnProperty(key) && /^0$|^[1-9]\\d*$/.test(key) && key <= 4294967294) {\n this.accounts.push({\n id: accountIds[key],\n title: '',\n url: '',\n current_balance: '',\n currency_code: 'EUR',\n transactions: []\n });\n this.loadSingleAccount(key, accountIds[key]);\n }\n }\n },\n loadSingleAccount(key, accountId) {\n axios.get('./api/v1/accounts/' + accountId)\n .then(response => {\n this.accounts[key].title = response.data.data.attributes.name;\n this.accounts[key].url = './accounts/show/' + response.data.data.id;\n this.accounts[key].current_balance = response.data.data.attributes.current_balance;\n this.accounts[key].currency_code = response.data.data.attributes.currency_code;\n\n this.loadTransactions(key, accountId);\n }\n );\n },\n loadTransactions(key, accountId) {\n let startStr = this.start.toISOString().split('T')[0];\n let endStr = this.end.toISOString().split('T')[0];\n axios.get('./api/v1/accounts/' + accountId + '/transactions?page=1&limit=10&start=' + startStr + '&end=' + endStr)\n .then(response => {\n this.accounts[key].transactions = response.data.data;\n this.loading = false;\n this.error = false;\n }\n );\n },\n }\n}\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainAccountList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainAccountList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MainAccountList.vue?vue&type=template&id=5d6bb842&scoped=true&\"\nimport script from \"./MainAccountList.vue?vue&type=script&lang=js&\"\nexport * from \"./MainAccountList.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 \"5d6bb842\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.loading && !_vm.error)?_c('div',{staticClass:\"row\"},[_vm._m(0)]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"row\"},[_vm._m(1)]):_vm._e(),_vm._v(\" \"),(!_vm.loading && !_vm.error)?_c('div',{staticClass:\"row\"},_vm._l((_vm.accounts),function(account){return _c('div',{class:{ 'col-lg-12': 1 === _vm.accounts.length, 'col-lg-6': 2 === _vm.accounts.length, 'col-lg-4': _vm.accounts.length > 2 }},[_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_c('a',{attrs:{\"href\":account.url}},[_vm._v(_vm._s(account.title))])]),_vm._v(\" \"),_c('div',{staticClass:\"card-tools\"},[_c('span',{class:parseFloat(account.current_balance) < 0 ? 'text-danger' : 'text-success'},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: account.currency_code}).format(parseFloat(account.current_balance)))+\"\\n \")])])]),_vm._v(\" \"),_c('div',{staticClass:\"card-body table-responsive p-0\"},[_c('div',[(1===_vm.accounts.length)?_c('transaction-list-large',{attrs:{\"account_id\":account.id,\"transactions\":account.transactions}}):_vm._e(),_vm._v(\" \"),(2===_vm.accounts.length)?_c('transaction-list-medium',{attrs:{\"account_id\":account.id,\"transactions\":account.transactions}}):_vm._e(),_vm._v(\" \"),(_vm.accounts.length > 2)?_c('transaction-list-small',{attrs:{\"account_id\":account.id,\"transactions\":account.transactions}}):_vm._e()],1)])])])}),0):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})])])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})])])])])}]\n\nexport { render, staticRenderFns }","<!--\n - MainBills.vue\n - Copyright (c) 2020 james@firefly-iii.org\n -\n - This file is part of Firefly III (https://github.com/firefly-iii).\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <https://www.gnu.org/licenses/>.\n -->\n\n<template>\n <div class=\"card\">\n <div class=\"card-header\">\n <h3 class=\"card-title\">{{ $t('firefly.bills') }}</h3>\n </div>\n <!-- body if loading -->\n <div v-if=\"loading && !error\" class=\"card-body\">\n <div class=\"text-center\">\n <i class=\"fas fa-spinner fa-spin\"></i>\n </div>\n </div>\n <!-- body if error -->\n <div v-if=\"error\" class=\"card-body\">\n <div class=\"text-center\">\n <i class=\"fas fa-exclamation-triangle text-danger\"></i>\n </div>\n </div>\n <!-- body if normal -->\n <div v-if=\"!loading && !error\" class=\"card-body table-responsive p-0\">\n <table class=\"table table-striped\">\n <caption style=\"display:none;\">{{ $t('firefly.bills') }}</caption>\n <thead>\n <tr>\n <th scope=\"col\" style=\"width:35%;\">{{ $t('list.name') }}</th>\n <th scope=\"col\" style=\"width:25%;\">{{ $t('list.next_expected_match') }}</th>\n </tr>\n </thead>\n <tbody>\n <tr v-for=\"bill in this.bills\">\n <td><a :href=\"'./bills/show/' + bill.id\" :title=\"bill.attributes.name\">{{ bill.attributes.name }}</a>\n (~ <span class=\"text-danger\">{{\n Intl.NumberFormat(locale, {style: 'currency', currency: bill.attributes.currency_code}).format((parseFloat(bill.attributes.amount_min) +\n parseFloat(bill.attributes.amount_max)) / -2)\n }}</span>)\n <small v-if=\"bill.attributes.object_group_title\" class=\"text-muted\">\n <br/>\n {{ bill.attributes.object_group_title }}\n </small>\n </td>\n <td>\n <span v-for=\"paidDate in bill.attributes.paid_dates\">\n <span v-html=\"renderPaidDate(paidDate)\"/><br/>\n </span>\n <span v-for=\"payDate in bill.attributes.pay_dates\" v-if=\"0===bill.attributes.paid_dates.length\">\n {{ new Intl.DateTimeFormat(locale, {year: 'numeric', month: 'long', day: 'numeric'}).format(new Date(payDate)) }}<br/>\n </span>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n <div class=\"card-footer\">\n <a class=\"btn btn-default button-sm\" href=\"./bills\"><i class=\"far fa-money-bill-alt\"></i> {{ $t('firefly.go_to_bills') }}</a>\n </div>\n </div>\n</template>\n<script>\nimport {createNamespacedHelpers} from \"vuex\";\n\nconst {mapState, mapGetters, mapActions, mapMutations} = createNamespacedHelpers('dashboard/index')\nexport default {\n name: \"MainBillsList\",\n data() {\n return {\n bills: [],\n locale: 'en-US',\n ready: false,\n loading: true,\n error: false\n }\n },\n computed: {\n ...mapGetters([\n 'start',\n 'end'\n ]),\n 'datesReady': function () {\n return null !== this.start && null !== this.end && this.ready;\n }\n },\n watch: {\n datesReady: function (value) {\n if (true === value) {\n this.initialiseBills();\n }\n },\n start: function () {\n if (false === this.loading) {\n this.initialiseBills();\n }\n },\n end: function () {\n if (false === this.loading) {\n this.initialiseBills();\n }\n },\n },\n created() {\n this.ready = true;\n this.locale = localStorage.locale ?? 'en-US';\n },\n components: {},\n methods: {\n initialiseBills: function () {\n this.loading = true;\n this.bills = [];\n let startStr = this.start.toISOString().split('T')[0];\n let endStr = this.end.toISOString().split('T')[0];\n\n axios.get('./api/v1/bills?start=' + startStr + '&end=' + endStr)\n .then(response => {\n this.loadBills(response.data.data);\n }\n ).catch(error => {\n this.error = true;\n this.loading = false;\n });\n },\n renderPaidDate: function (obj) {\n let dateStr = new Intl.DateTimeFormat(this.locale, {year: 'numeric', month: 'long', day: 'numeric'}).format(new Date(obj.date));\n let str = this.$t('firefly.bill_paid_on', {date: dateStr});\n return '<a href=\"./transactions/show/' + obj.transaction_group_id + '\" title=\"' + str + '\">' + str + '</a>';\n },\n loadBills: function (data) {\n for (let key in data) {\n if (data.hasOwnProperty(key) && /^0$|^[1-9]\\d*$/.test(key) && key <= 4294967294) {\n\n let bill = data[key];\n let active = bill.attributes.active;\n if (bill.attributes.pay_dates.length > 0 && active) {\n this.bills.push(bill);\n }\n }\n }\n this.error = false;\n this.loading = false;\n }\n }\n}\n</script>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainBillsList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainBillsList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MainBillsList.vue?vue&type=template&id=64c4c037&\"\nimport script from \"./MainBillsList.vue?vue&type=script&lang=js&\"\nexport * from \"./MainBillsList.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.$t('firefly.bills')))])]),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(0)]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(1)]):_vm._e(),_vm._v(\" \"),(!_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body table-responsive p-0\"},[_c('table',{staticClass:\"table table-striped\"},[_c('caption',{staticStyle:{\"display\":\"none\"}},[_vm._v(_vm._s(_vm.$t('firefly.bills')))]),_vm._v(\" \"),_c('thead',[_c('tr',[_c('th',{staticStyle:{\"width\":\"35%\"},attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('list.name')))]),_vm._v(\" \"),_c('th',{staticStyle:{\"width\":\"25%\"},attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('list.next_expected_match')))])])]),_vm._v(\" \"),_c('tbody',_vm._l((this.bills),function(bill){return _c('tr',[_c('td',[_c('a',{attrs:{\"href\":'./bills/show/' + bill.id,\"title\":bill.attributes.name}},[_vm._v(_vm._s(bill.attributes.name))]),_vm._v(\"\\n (~ \"),_c('span',{staticClass:\"text-danger\"},[_vm._v(_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: bill.attributes.currency_code}).format((parseFloat(bill.attributes.amount_min) +\n parseFloat(bill.attributes.amount_max)) / -2)))]),_vm._v(\")\\n \"),(bill.attributes.object_group_title)?_c('small',{staticClass:\"text-muted\"},[_c('br'),_vm._v(\"\\n \"+_vm._s(bill.attributes.object_group_title)+\"\\n \")]):_vm._e()]),_vm._v(\" \"),_c('td',[_vm._l((bill.attributes.paid_dates),function(paidDate){return _c('span',[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.renderPaidDate(paidDate))}}),_c('br')])}),_vm._v(\" \"),_vm._l((bill.attributes.pay_dates),function(payDate){return (0===bill.attributes.paid_dates.length)?_c('span',[_vm._v(\"\\n \"+_vm._s(new Intl.DateTimeFormat(_vm.locale, {year: 'numeric', month: 'long', day: 'numeric'}).format(new Date(payDate)))),_c('br')]):_vm._e()})],2)])}),0)])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"card-footer\"},[_c('a',{staticClass:\"btn btn-default button-sm\",attrs:{\"href\":\"./bills\"}},[_c('i',{staticClass:\"far fa-money-bill-alt\"}),_vm._v(\" \"+_vm._s(_vm.$t('firefly.go_to_bills')))])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BudgetLimitRow.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BudgetLimitRow.vue?vue&type=script&lang=js&\"","<!--\n - BudgetRow.vue\n - Copyright (c) 2020 james@firefly-iii.org\n -\n - This file is part of Firefly III (https://github.com/firefly-iii).\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <https://www.gnu.org/licenses/>.\n -->\n\n<template>\n <tr>\n <td style=\"width:25%;\">\n <a :href=\"'./budgets/show/' + budgetLimit.budget_id\">{{ budgetLimit.budget_name }}</a>\n </td>\n\n <td style=\"vertical-align: middle\">\n <div class=\"progress progress active\">\n <div :aria-valuenow=\"budgetLimit.pctGreen\" :style=\"'width: '+ budgetLimit.pctGreen + '%;'\"\n aria-valuemax=\"100\" aria-valuemin=\"0\" class=\"progress-bar bg-success progress-bar-striped\" role=\"progressbar\">\n <span v-if=\"budgetLimit.pctGreen > 35\">\n {{ $t('firefly.spent_x_of_y', {amount: Intl.NumberFormat(locale, {style: 'currency', currency: budgetLimit.currency_code}).format(budgetLimit.spent), total: Intl.NumberFormat(locale, {style: 'currency', currency: budgetLimit.currency_code}).format(budgetLimit.amount)}) }}\n <!-- -->\n </span>\n\n\n </div>\n\n <div :aria-valuenow=\"budgetLimit.pctOrange\" :style=\"'width: '+ budgetLimit.pctOrange + '%;'\"\n aria-valuemax=\"100\" aria-valuemin=\"0\" class=\"progress-bar bg-warning progress-bar-striped\" role=\"progressbar\">\n <span v-if=\"budgetLimit.pctRed <= 50 && budgetLimit.pctOrange > 35\">\n {{ $t('firefly.spent_x_of_y', {amount: Intl.NumberFormat(locale, {style: 'currency', currency: budgetLimit.currency_code}).format(budgetLimit.spent), total: Intl.NumberFormat(locale, {style: 'currency', currency: budgetLimit.currency_code}).format(budgetLimit.amount)}) }}\n </span>\n </div>\n\n <div :aria-valuenow=\"budgetLimit.pctRed\" :style=\"'width: '+ budgetLimit.pctRed + '%;'\"\n aria-valuemax=\"100\" aria-valuemin=\"0\" class=\"progress-bar bg-danger progress-bar-striped\" role=\"progressbar\">\n <span v-if=\"budgetLimit.pctOrange <= 50 && budgetLimit.pctRed > 35\" class=\"text-muted\">\n {{ $t('firefly.spent_x_of_y', {amount: Intl.NumberFormat(locale, {style: 'currency', currency: budgetLimit.currency_code}).format(budgetLimit.spent), total: Intl.NumberFormat(locale, {style: 'currency', currency: budgetLimit.currency_code}).format(budgetLimit.amount)}) }}\n </span>\n </div>\n\n <!-- amount if bar is very small -->\n <span v-if=\"budgetLimit.pctGreen <= 35 && 0 === budgetLimit.pctOrange && 0 === budgetLimit.pctRed && 0 !== budgetLimit.pctGreen\" style=\"line-height: 16px;\">\n &nbsp; {{ $t('firefly.spent_x_of_y', {amount: Intl.NumberFormat(locale, {style: 'currency', currency: budgetLimit.currency_code}).format(budgetLimit.spent), total: Intl.NumberFormat(locale, {style: 'currency', currency: budgetLimit.currency_code}).format(budgetLimit.amount)}) }}\n </span>\n\n </div>\n <small class=\"d-none d-lg-block\">\n {{ new Intl.DateTimeFormat(locale, {year: 'numeric', month: 'long', day: 'numeric'}).format(budgetLimit.start) }}\n &rarr;\n {{ new Intl.DateTimeFormat(locale, {year: 'numeric', month: 'long', day: 'numeric'}).format(budgetLimit.end) }}\n </small>\n </td>\n\n <td class=\"align-middle d-none d-lg-table-cell\" style=\"width:10%;\">\n <span v-if=\"parseFloat(budgetLimit.amount) + parseFloat(budgetLimit.spent) > 0\" class=\"text-success\">\n {{\n Intl.NumberFormat(locale, {\n style: 'currency',\n currency: budgetLimit.currency_code\n }).format(parseFloat(budgetLimit.amount) + parseFloat(budgetLimit.spent))\n }}\n </span>\n <span v-if=\"0.0 === parseFloat(budgetLimit.amount) + parseFloat(budgetLimit.spent)\" class=\"text-muted\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: budgetLimit.currency_code}).format(0) }}\n </span>\n <span v-if=\"parseFloat(budgetLimit.amount) + parseFloat(budgetLimit.spent) < 0\" class=\"text-danger\">\n {{\n Intl.NumberFormat(locale, {\n style: 'currency',\n currency: budgetLimit.currency_code\n }).format(parseFloat(budgetLimit.amount) + parseFloat(budgetLimit.spent))\n }}\n </span>\n </td>\n </tr>\n\n</template>\n\n<script>\nexport default {\n name: \"BudgetLimitRow\",\n created() {\n this.locale = localStorage.locale ?? 'en-US';\n },\n data() {\n return {\n locale: 'en-US',\n }\n },\n props: {\n budgetLimit: {\n type: Object,\n default: function () {\n return {};\n }\n },\n budget: {\n type: Object,\n default: function () {\n return {};\n }\n }\n }\n}\n</script>\n\n<style scoped>\n\n</style>","import { render, staticRenderFns } from \"./BudgetLimitRow.vue?vue&type=template&id=7988ecb6&scoped=true&\"\nimport script from \"./BudgetLimitRow.vue?vue&type=script&lang=js&\"\nexport * from \"./BudgetLimitRow.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 \"7988ecb6\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',{staticStyle:{\"width\":\"25%\"}},[_c('a',{attrs:{\"href\":'./budgets/show/' + _vm.budgetLimit.budget_id}},[_vm._v(_vm._s(_vm.budgetLimit.budget_name))])]),_vm._v(\" \"),_c('td',{staticStyle:{\"vertical-align\":\"middle\"}},[_c('div',{staticClass:\"progress progress active\"},[_c('div',{staticClass:\"progress-bar bg-success progress-bar-striped\",style:('width: '+ _vm.budgetLimit.pctGreen + '%;'),attrs:{\"aria-valuenow\":_vm.budgetLimit.pctGreen,\"aria-valuemax\":\"100\",\"aria-valuemin\":\"0\",\"role\":\"progressbar\"}},[(_vm.budgetLimit.pctGreen > 35)?_c('span',[_vm._v(\"\\n \"+_vm._s(_vm.$t('firefly.spent_x_of_y', {amount: Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(_vm.budgetLimit.spent), total: Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(_vm.budgetLimit.amount)}))+\"\\n \")]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"progress-bar bg-warning progress-bar-striped\",style:('width: '+ _vm.budgetLimit.pctOrange + '%;'),attrs:{\"aria-valuenow\":_vm.budgetLimit.pctOrange,\"aria-valuemax\":\"100\",\"aria-valuemin\":\"0\",\"role\":\"progressbar\"}},[(_vm.budgetLimit.pctRed <= 50 && _vm.budgetLimit.pctOrange > 35)?_c('span',[_vm._v(\"\\n \"+_vm._s(_vm.$t('firefly.spent_x_of_y', {amount: Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(_vm.budgetLimit.spent), total: Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(_vm.budgetLimit.amount)}))+\"\\n \")]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"progress-bar bg-danger progress-bar-striped\",style:('width: '+ _vm.budgetLimit.pctRed + '%;'),attrs:{\"aria-valuenow\":_vm.budgetLimit.pctRed,\"aria-valuemax\":\"100\",\"aria-valuemin\":\"0\",\"role\":\"progressbar\"}},[(_vm.budgetLimit.pctOrange <= 50 && _vm.budgetLimit.pctRed > 35)?_c('span',{staticClass:\"text-muted\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('firefly.spent_x_of_y', {amount: Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(_vm.budgetLimit.spent), total: Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(_vm.budgetLimit.amount)}))+\"\\n \")]):_vm._e()]),_vm._v(\" \"),(_vm.budgetLimit.pctGreen <= 35 && 0 === _vm.budgetLimit.pctOrange && 0 === _vm.budgetLimit.pctRed && 0 !== _vm.budgetLimit.pctGreen)?_c('span',{staticStyle:{\"line-height\":\"16px\"}},[_vm._v(\"\\n   \"+_vm._s(_vm.$t('firefly.spent_x_of_y', {amount: Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(_vm.budgetLimit.spent), total: Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(_vm.budgetLimit.amount)}))+\"\\n \")]):_vm._e()]),_vm._v(\" \"),_c('small',{staticClass:\"d-none d-lg-block\"},[_vm._v(\"\\n \"+_vm._s(new Intl.DateTimeFormat(_vm.locale, {year: 'numeric', month: 'long', day: 'numeric'}).format(_vm.budgetLimit.start))+\"\\n →\\n \"+_vm._s(new Intl.DateTimeFormat(_vm.locale, {year: 'numeric', month: 'long', day: 'numeric'}).format(_vm.budgetLimit.end))+\"\\n \")])]),_vm._v(\" \"),_c('td',{staticClass:\"align-middle d-none d-lg-table-cell\",staticStyle:{\"width\":\"10%\"}},[(parseFloat(_vm.budgetLimit.amount) + parseFloat(_vm.budgetLimit.spent) > 0)?_c('span',{staticClass:\"text-success\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {\n style: 'currency',\n currency: _vm.budgetLimit.currency_code\n }).format(parseFloat(_vm.budgetLimit.amount) + parseFloat(_vm.budgetLimit.spent)))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(0.0 === parseFloat(_vm.budgetLimit.amount) + parseFloat(_vm.budgetLimit.spent))?_c('span',{staticClass:\"text-muted\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(0))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(parseFloat(_vm.budgetLimit.amount) + parseFloat(_vm.budgetLimit.spent) < 0)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {\n style: 'currency',\n currency: _vm.budgetLimit.currency_code\n }).format(parseFloat(_vm.budgetLimit.amount) + parseFloat(_vm.budgetLimit.spent)))+\"\\n \")]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BudgetRow.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BudgetRow.vue?vue&type=script&lang=js&\"","<!--\n - BudgetRow.vue\n - Copyright (c) 2020 james@firefly-iii.org\n -\n - This file is part of Firefly III (https://github.com/firefly-iii).\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <https://www.gnu.org/licenses/>.\n -->\n\n\n<template>\n <tr>\n <td style=\"width:25%;\">\n <a :href=\"'./budgets/show/' + budget.id\">{{ budget.name }}</a>\n </td>\n <td class=\"align-middle text-right\">\n <span class=\"text-danger\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: budget.currency_code}).format(parseFloat(budget.spent)) }}\n </span>\n </td>\n </tr>\n</template>\n\n<script>\nexport default {\n name: \"BudgetRow\",\n created() {\n this.locale = localStorage.locale ?? 'en-US';\n },\n data() {\n return {\n locale: 'en-US',\n }\n },\n props: {\n budget: {\n type: Object,\n default: {}\n }\n }\n}\n</script>\n\n<style scoped>\n\n</style>","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BudgetListGroup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BudgetListGroup.vue?vue&type=script&lang=js&\"","<!--\n - BudgetListGroup.vue\n - Copyright (c) 2020 james@firefly-iii.org\n -\n - This file is part of Firefly III (https://github.com/firefly-iii).\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <https://www.gnu.org/licenses/>.\n -->\n\n<template>\n <div class=\"card\">\n <div class=\"card-header\">\n <h3 class=\"card-title\">{{ title }}</h3>\n </div>\n <div class=\"card-body table-responsive p-0\">\n <table class=\"table table-sm\">\n <tbody>\n <BudgetLimitRow v-for=\"(budgetLimit, key) in budgetLimits\" v-bind:key=\"key\" :budgetLimit=\"budgetLimit\"/>\n <BudgetRow v-for=\"(budget, key) in budgets\" v-bind:key=\"key\" :budget=\"budget\"/>\n </tbody>\n </table>\n </div>\n <div class=\"card-footer\">\n <a class=\"btn btn-default button-sm\" href=\"./budgets\"><i class=\"far fa-money-bill-alt\"></i> {{ $t('firefly.go_to_budgets') }}</a>\n </div>\n </div>\n</template>\n\n<script>\nimport BudgetLimitRow from \"./BudgetLimitRow\";\nimport BudgetRow from \"./BudgetRow\";\n\nexport default {\n name: \"BudgetListGroup\",\n components: {BudgetLimitRow, BudgetRow},\n props: {\n title: String,\n budgetLimits: Array,\n budgets: Array,\n },\n}\n</script>\n\n<style scoped>\n\n</style>","import { render, staticRenderFns } from \"./BudgetRow.vue?vue&type=template&id=2fc8f640&scoped=true&\"\nimport script from \"./BudgetRow.vue?vue&type=script&lang=js&\"\nexport * from \"./BudgetRow.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 \"2fc8f640\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',{staticStyle:{\"width\":\"25%\"}},[_c('a',{attrs:{\"href\":'./budgets/show/' + _vm.budget.id}},[_vm._v(_vm._s(_vm.budget.name))])]),_vm._v(\" \"),_c('td',{staticClass:\"align-middle text-right\"},[_c('span',{staticClass:\"text-danger\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budget.currency_code}).format(parseFloat(_vm.budget.spent)))+\"\\n \")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./BudgetListGroup.vue?vue&type=template&id=658dd996&scoped=true&\"\nimport script from \"./BudgetListGroup.vue?vue&type=script&lang=js&\"\nexport * from \"./BudgetListGroup.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 \"658dd996\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.title))])]),_vm._v(\" \"),_c('div',{staticClass:\"card-body table-responsive p-0\"},[_c('table',{staticClass:\"table table-sm\"},[_c('tbody',[_vm._l((_vm.budgetLimits),function(budgetLimit,key){return _c('BudgetLimitRow',{key:key,attrs:{\"budgetLimit\":budgetLimit}})}),_vm._v(\" \"),_vm._l((_vm.budgets),function(budget,key){return _c('BudgetRow',{key:key,attrs:{\"budget\":budget}})})],2)])]),_vm._v(\" \"),_c('div',{staticClass:\"card-footer\"},[_c('a',{staticClass:\"btn btn-default button-sm\",attrs:{\"href\":\"./budgets\"}},[_c('i',{staticClass:\"far fa-money-bill-alt\"}),_vm._v(\" \"+_vm._s(_vm.$t('firefly.go_to_budgets')))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - MainBudgetList.vue\n - Copyright (c) 2020 james@firefly-iii.org\n -\n - This file is part of Firefly III (https://github.com/firefly-iii).\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <https://www.gnu.org/licenses/>.\n -->\n\n<template>\n <div>\n <!-- daily budgets (will be the exception, I expect) -->\n <div v-if=\"!loading\" class=\"row\">\n <div v-if=\"budgetLimits.daily.length > 0\" class=\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n <BudgetListGroup :budgetLimits=budgetLimits.daily :title=\"$t('firefly.daily_budgets')\"\n />\n </div>\n <div v-if=\"budgetLimits.weekly.length > 0\" class=\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n <BudgetListGroup :budgetLimits=budgetLimits.weekly :title=\"$t('firefly.weekly_budgets')\"\n />\n </div>\n <div v-if=\"budgetLimits.monthly.length > 0\" class=\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n <BudgetListGroup :budgetLimits=budgetLimits.monthly :title=\"$t('firefly.monthly_budgets')\"\n />\n </div>\n <div v-if=\"budgetLimits.quarterly.length > 0\" class=\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n <BudgetListGroup :budgetLimits=budgetLimits.quarterly :title=\"$t('firefly.quarterly_budgets')\"\n />\n </div>\n <div v-if=\"budgetLimits.half_year.length > 0\" class=\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n <BudgetListGroup :budgetLimits=budgetLimits.half_year :title=\"$t('firefly.half_year_budgets')\"\n />\n </div>\n <div v-if=\"budgetLimits.yearly.length > 0\" class=\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n <BudgetListGroup :budgetLimits=budgetLimits.yearly :title=\"$t('firefly.yearly_budgets')\"\n />\n </div>\n <div v-if=\"budgetLimits.other.length > 0 || rawBudgets.length > 0\" class=\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n <BudgetListGroup :budgetLimits=budgetLimits.other :budgets=\"rawBudgets\" :title=\"$t('firefly.other_budgets')\"\n />\n </div>\n </div>\n <div v-if=\"loading && !error\" class=\"row\">\n <div class=\"col\">\n <div class=\"card\">\n <div class=\"card-body\">\n <div class=\"text-center\">\n <i class=\"fas fa-spinner fa-spin\"></i>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport BudgetListGroup from \"./BudgetListGroup\";\nimport {createNamespacedHelpers} from \"vuex\";\n\nconst {mapState, mapGetters, mapActions, mapMutations} = createNamespacedHelpers('dashboard/index')\n\nexport default {\n name: \"MainBudgetList\",\n components: {BudgetListGroup},\n data() {\n return {\n budgetList: ['daily', 'weekly', 'monthly', 'quarterly', 'half_year', 'yearly', 'other'],\n budgetLimits: {\n daily: [],\n weekly: [],\n monthly: [],\n quarterly: [],\n half_year: [],\n yearly: [],\n other: [],\n },\n budgets: {}, // used to collect some meta data.\n rawBudgets: [],\n locale: 'en-US',\n ready: false,\n loading: true,\n error: false\n }\n },\n created() {\n this.ready = true;\n this.locale = localStorage.locale ?? 'en-US';\n },\n watch: {\n datesReady: function (value) {\n if (true === value) {\n this.getBudgets();\n }\n },\n start: function () {\n if (false === this.loading) {\n this.getBudgets();\n }\n },\n end: function () {\n if (false === this.loading) {\n this.getBudgets();\n }\n },\n },\n computed: {\n ...mapGetters(['start', 'end']),\n 'datesReady': function () {\n return null !== this.start && null !== this.end && this.ready;\n }\n },\n methods:\n {\n getBudgets: function () {\n this.budgets = {};\n this.rawBudgets = [];\n this.budgetLimits = {\n daily: [],\n weekly: [],\n monthly: [],\n quarterly: [],\n half_year: [],\n yearly: [],\n other: [],\n };\n this.loading = true;\n let startStr = this.start.toISOString().split('T')[0];\n let endStr = this.end.toISOString().split('T')[0];\n axios.get('./api/v1/budgets?start=' + startStr + '&end=' + endStr)\n .then(response => {\n this.parseBudgets(response.data);\n }\n );\n },\n parseBudgets(data) {\n for (let i in data.data) {\n if (data.data.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n let current = data.data[i];\n if (false === current.attributes.active) {\n // skip inactive budgets\n continue;\n }\n for (let ii in current.attributes.spent) {\n if (current.attributes.spent.hasOwnProperty(ii) && /^0$|^[1-9]\\d*$/.test(ii) && ii <= 4294967294) {\n let spentData = current.attributes.spent[ii];\n this.rawBudgets.push(\n {\n id: parseInt(current.id),\n name: current.attributes.name,\n currency_id: parseInt(spentData.currency_id),\n currency_code: spentData.currency_code,\n spent: spentData.sum\n }\n );\n console.log('Added budget ' + current.attributes.name + ' (' + spentData.currency_code + ')');\n }\n }\n }\n }\n this.getBudgetLimits();\n },\n getBudgetLimits() {\n let startStr = this.start.toISOString().split('T')[0];\n let endStr = this.end.toISOString().split('T')[0];\n axios.get('./api/v1/budget-limits?start=' + startStr + '&end=' + endStr)\n .then(response => {\n this.parseBudgetLimits(response.data);\n this.loading = false;\n }\n );\n },\n parseBudgetLimits(data) {\n // collect budget meta data.\n for (let i in data.included) {\n if (data.included.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n let current = data.included[i];\n let currentId = parseInt(current.id);\n this.budgets[currentId] =\n {\n id: currentId,\n name: current.attributes.name,\n };\n console.log('Collected meta data: budget #' + currentId + ' is named ' + current.attributes.name);\n }\n }\n\n for (let i in data.data) {\n if (data.data.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n let current = data.data[i];\n let currentId = parseInt(current.id);\n let budgetId = parseInt(current.attributes.budget_id);\n let currencyId = parseInt(current.attributes.currency_id);\n let spentFloat = parseFloat(current.attributes.spent);\n let amount = parseFloat(current.attributes.amount);\n let period = current.attributes.period ?? 'other';\n let pctGreen = 0;\n let pctOrange = 0;\n let pctRed = 0;\n console.log('Collected \"' + period + '\" budget limit #' + currentId + ' (part of budget #' + budgetId + ')');\n console.log('Spent ' + spentFloat + ' of ' + amount);\n\n // remove budget info from rawBudgets if it's there:\n this.filterBudgets(budgetId, currencyId);\n\n // spent within budget:\n if (0.0 !== spentFloat && spentFloat * -1 < amount) {\n pctGreen = (spentFloat * -1) / (amount * 100);\n }\n\n // spent over budget\n if (0.0 !== spentFloat && (spentFloat * -1) > amount) {\n pctOrange = (amount / (spentFloat * -1)) * 100;\n pctRed = 100 - pctOrange;\n }\n let obj = {\n id: currentId,\n amount: current.attributes.amount,\n budget_id: budgetId,\n budget_name: this.budgets[current.attributes.budget_id].name,\n currency_id: currencyId,\n currency_code: current.attributes.currency_code,\n period: current.attributes.period,\n start: new Date(current.attributes.start),\n end: new Date(current.attributes.end),\n spent: current.attributes.spent,\n pctGreen: pctGreen,\n pctOrange: pctOrange,\n pctRed: pctRed,\n };\n\n this.budgetLimits[period].push(obj);\n }\n }\n },\n\n filterBudgets(budgetId, currencyId) {\n for (let i in this.rawBudgets) {\n if (this.rawBudgets.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n if (this.rawBudgets[i].currency_id === currencyId && this.rawBudgets[i].id === budgetId) {\n console.log('Budget ' + this.rawBudgets[i].name + ' with currency ' + this.rawBudgets[i].currency_code + ' will be removed in favor of a budget limit.');\n this.rawBudgets.splice(parseInt(i), 1);\n }\n }\n }\n }\n }\n}\n</script>\n\n<style scoped>\n\n</style>","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainBudgetList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainBudgetList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MainBudgetList.vue?vue&type=template&id=5d7e4c93&scoped=true&\"\nimport script from \"./MainBudgetList.vue?vue&type=script&lang=js&\"\nexport * from \"./MainBudgetList.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 \"5d7e4c93\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(!_vm.loading)?_c('div',{staticClass:\"row\"},[(_vm.budgetLimits.daily.length > 0)?_c('div',{staticClass:\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\"},[_c('BudgetListGroup',{attrs:{\"budgetLimits\":_vm.budgetLimits.daily,\"title\":_vm.$t('firefly.daily_budgets')}})],1):_vm._e(),_vm._v(\" \"),(_vm.budgetLimits.weekly.length > 0)?_c('div',{staticClass:\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\"},[_c('BudgetListGroup',{attrs:{\"budgetLimits\":_vm.budgetLimits.weekly,\"title\":_vm.$t('firefly.weekly_budgets')}})],1):_vm._e(),_vm._v(\" \"),(_vm.budgetLimits.monthly.length > 0)?_c('div',{staticClass:\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\"},[_c('BudgetListGroup',{attrs:{\"budgetLimits\":_vm.budgetLimits.monthly,\"title\":_vm.$t('firefly.monthly_budgets')}})],1):_vm._e(),_vm._v(\" \"),(_vm.budgetLimits.quarterly.length > 0)?_c('div',{staticClass:\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\"},[_c('BudgetListGroup',{attrs:{\"budgetLimits\":_vm.budgetLimits.quarterly,\"title\":_vm.$t('firefly.quarterly_budgets')}})],1):_vm._e(),_vm._v(\" \"),(_vm.budgetLimits.half_year.length > 0)?_c('div',{staticClass:\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\"},[_c('BudgetListGroup',{attrs:{\"budgetLimits\":_vm.budgetLimits.half_year,\"title\":_vm.$t('firefly.half_year_budgets')}})],1):_vm._e(),_vm._v(\" \"),(_vm.budgetLimits.yearly.length > 0)?_c('div',{staticClass:\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\"},[_c('BudgetListGroup',{attrs:{\"budgetLimits\":_vm.budgetLimits.yearly,\"title\":_vm.$t('firefly.yearly_budgets')}})],1):_vm._e(),_vm._v(\" \"),(_vm.budgetLimits.other.length > 0 || _vm.rawBudgets.length > 0)?_c('div',{staticClass:\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\"},[_c('BudgetListGroup',{attrs:{\"budgetLimits\":_vm.budgetLimits.other,\"budgets\":_vm.rawBudgets,\"title\":_vm.$t('firefly.other_budgets')}})],1):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('div',{staticClass:\"row\"},[_vm._m(0)]):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})])])])])}]\n\nexport { render, staticRenderFns }","<!--\n - MainCreditList.vue\n - Copyright (c) 2020 james@firefly-iii.org\n -\n - This file is part of Firefly III (https://github.com/firefly-iii).\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <https://www.gnu.org/licenses/>.\n -->\n\n<template>\n <div class=\"card\">\n <div class=\"card-header\">\n <h3 class=\"card-title\">{{ $t('firefly.revenue_accounts') }}</h3>\n </div>\n <!-- body if loading -->\n <div v-if=\"loading && !error\" class=\"card-body\">\n <div class=\"text-center\">\n <i class=\"fas fa-spinner fa-spin\"></i>\n </div>\n </div>\n <!-- body if error -->\n <div v-if=\"error\" class=\"card-body\">\n <div class=\"text-center\">\n <i class=\"fas fa-exclamation-triangle text-danger\"></i>\n </div>\n </div>\n <!-- body if normal -->\n <div v-if=\"!loading && !error\" class=\"card-body table-responsive p-0\">\n <table class=\"table table-sm\">\n <tbody>\n <tr v-for=\"entry in income\">\n <td style=\"width:20%;\"><a :href=\"'./accounts/show/' + entry.id\">{{ entry.name }}</a></td>\n <td class=\"align-middle\">\n <div v-if=\"entry.pct > 0\" class=\"progress\">\n <div :aria-valuenow=\"entry.pct\" :style=\"{ width: entry.pct + '%'}\" aria-valuemax=\"100\"\n aria-valuemin=\"0\" class=\"progress-bar progress-bar-striped bg-success\"\n role=\"progressbar\">\n <span v-if=\"entry.pct > 20\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: entry.currency_code}).format(entry.difference_float) }}\n </span>\n </div>\n <span v-if=\"entry.pct <= 20\" style=\"line-height: 16px;\">&nbsp;\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: entry.currency_code}).format(entry.difference_float) }}\n </span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n <div class=\"card-footer\">\n <a class=\"btn btn-default button-sm\" href=\"./transactions/deposit\"><i class=\"far fa-money-bill-alt\"></i> {{ $t('firefly.go_to_deposits') }}</a>\n </div>\n </div>\n</template>\n\n<script>\n\nimport {createNamespacedHelpers} from \"vuex\";\n\nconst {mapState, mapGetters, mapActions, mapMutations} = createNamespacedHelpers('dashboard/index')\n\n// TODO same as credit list but reversed\n\nexport default {\n name: \"MainCreditList\",\n data() {\n return {\n locale: 'en-US',\n income: [],\n max: 0,\n loading: true,\n error: false\n }\n },\n created() {\n this.locale = localStorage.locale ?? 'en-US';\n this.ready = true;\n },\n computed: {\n ...mapGetters([\n 'start',\n 'end'\n ]),\n 'datesReady': function () {\n return null !== this.start && null !== this.end && this.ready;\n }\n },\n watch: {\n datesReady: function (value) {\n if (true === value) {\n this.getIncome();\n }\n },\n start: function () {\n if (false === this.loading) {\n this.getIncome();\n }\n },\n end: function () {\n if (false === this.loading) {\n this.getIncome();\n }\n },\n },\n methods: {\n getIncome() {\n this.loading = true;\n this.income = [];\n this.error = false;\n let startStr = this.start.toISOString().split('T')[0];\n let endStr = this.end.toISOString().split('T')[0];\n axios.get('./api/v1/insight/income/revenue?start=' + startStr + '&end=' + endStr)\n .then(response => {\n // do something with response.\n this.parseIncome(response.data);\n this.loading = false;\n }).catch(error => {\n this.error = true\n });\n },\n parseIncome(data) {\n for (let mainKey in data) {\n if (data.hasOwnProperty(mainKey)) {\n mainKey = parseInt(mainKey);\n // contains currency info and entries.\n let current = data[mainKey];\n current.pct = 0;\n this.max = current.difference_float > this.max ? current.difference_float : this.max;\n this.income.push(current);\n }\n }\n if (0 === this.max) {\n this.max = 1;\n }\n // now sort + pct:\n for (let i in this.income) {\n if (this.income.hasOwnProperty(i)) {\n let current = this.income[i];\n current.pct = (current.difference_float / this.max) * 100;\n this.income[i] = current;\n }\n }\n this.income.sort((a,b) => (a.pct > b.pct) ? -1 : ((b.pct > a.pct) ? 1 : 0));\n }\n }\n}\n</script>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainCreditList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainCreditList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MainCreditList.vue?vue&type=template&id=2b1b601e&\"\nimport script from \"./MainCreditList.vue?vue&type=script&lang=js&\"\nexport * from \"./MainCreditList.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.$t('firefly.revenue_accounts')))])]),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(0)]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(1)]):_vm._e(),_vm._v(\" \"),(!_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body table-responsive p-0\"},[_c('table',{staticClass:\"table table-sm\"},[_c('tbody',_vm._l((_vm.income),function(entry){return _c('tr',[_c('td',{staticStyle:{\"width\":\"20%\"}},[_c('a',{attrs:{\"href\":'./accounts/show/' + entry.id}},[_vm._v(_vm._s(entry.name))])]),_vm._v(\" \"),_c('td',{staticClass:\"align-middle\"},[(entry.pct > 0)?_c('div',{staticClass:\"progress\"},[_c('div',{staticClass:\"progress-bar progress-bar-striped bg-success\",style:({ width: entry.pct + '%'}),attrs:{\"aria-valuenow\":entry.pct,\"aria-valuemax\":\"100\",\"aria-valuemin\":\"0\",\"role\":\"progressbar\"}},[(entry.pct > 20)?_c('span',[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: entry.currency_code}).format(entry.difference_float))+\"\\n \")]):_vm._e()]),_vm._v(\" \"),(entry.pct <= 20)?_c('span',{staticStyle:{\"line-height\":\"16px\"}},[_vm._v(\" \\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: entry.currency_code}).format(entry.difference_float))+\"\\n \")]):_vm._e()]):_vm._e()])])}),0)])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"card-footer\"},[_c('a',{staticClass:\"btn btn-default button-sm\",attrs:{\"href\":\"./transactions/deposit\"}},[_c('i',{staticClass:\"far fa-money-bill-alt\"}),_vm._v(\" \"+_vm._s(_vm.$t('firefly.go_to_deposits')))])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})])}]\n\nexport { render, staticRenderFns }","<!--\n - MainDebitList.vue\n - Copyright (c) 2020 james@firefly-iii.org\n -\n - This file is part of Firefly III (https://github.com/firefly-iii).\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <https://www.gnu.org/licenses/>.\n -->\n\n<template>\n <div class=\"card\">\n <div class=\"card-header\">\n <h3 class=\"card-title\">{{ $t('firefly.expense_accounts') }}</h3>\n </div>\n <!-- body if loading -->\n <div v-if=\"loading && !error\" class=\"card-body\">\n <div class=\"text-center\">\n <i class=\"fas fa-spinner fa-spin\"></i>\n </div>\n </div>\n <!-- body if error -->\n <div v-if=\"error\" class=\"card-body\">\n <div class=\"text-center\">\n <i class=\"fas fa-exclamation-triangle text-danger\"></i>\n </div>\n </div>\n <!-- body if normal -->\n <div v-if=\"!loading && !error\" class=\"card-body table-responsive p-0\">\n <table class=\"table table-sm\">\n <tbody>\n <tr v-for=\"entry in expenses\">\n <td style=\"width:20%;\"><a :href=\"'./accounts/show/' + entry.id\">{{ entry.name }}</a></td>\n <td class=\"align-middle\">\n <div v-if=\"entry.pct > 0\" class=\"progress\">\n <div :aria-valuenow=\"entry.pct\" :style=\"{ width: entry.pct + '%'}\" aria-valuemax=\"100\"\n aria-valuemin=\"0\" class=\"progress-bar progress-bar-striped bg-danger\"\n role=\"progressbar\">\n <span v-if=\"entry.pct > 20\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: entry.currency_code}).format(entry.difference_float) }}\n </span>\n </div>\n <span v-if=\"entry.pct <= 20\" style=\"line-height: 16px;\">&nbsp;\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: entry.currency_code}).format(entry.difference_float) }}\n </span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n <div class=\"card-footer\">\n <a class=\"btn btn-default button-sm\" href=\"./transactions/withdrawal\"><i class=\"far fa-money-bill-alt\"></i> {{ $t('firefly.go_to_withdrawals') }}</a>\n </div>\n </div>\n</template>\n\n<script>\n\nimport {createNamespacedHelpers} from \"vuex\";\n\nconst {mapState, mapGetters, mapActions, mapMutations} = createNamespacedHelpers('dashboard/index')\n\n\nexport default {\n name: \"MainDebitList\",\n data() {\n return {\n locale: 'en-US',\n expenses: [],\n min: 0,\n loading: true,\n error: false\n }\n },\n created() {\n this.locale = localStorage.locale ?? 'en-US';\n this.ready = true;\n },\n computed: {\n ...mapGetters([\n 'start',\n 'end'\n ]),\n 'datesReady': function () {\n return null !== this.start && null !== this.end && this.ready;\n }\n },\n watch: {\n datesReady: function (value) {\n if (true === value) {\n this.getExpenses();\n }\n },\n start: function () {\n if (false === this.loading) {\n this.getExpenses();\n }\n },\n end: function () {\n if (false === this.loading) {\n this.getExpenses();\n }\n },\n },\n methods: {\n getExpenses() {\n this.loading = true;\n this.error = false;\n this.expenses = [];\n let startStr = this.start.toISOString().split('T')[0];\n let endStr = this.end.toISOString().split('T')[0];\n axios.get('./api/v1/insight/expense/expense?start=' + startStr + '&end=' + endStr)\n .then(response => {\n // do something with response.\n this.parseExpenses(response.data);\n this.loading = false\n }).catch(error => {\n this.error = true\n });\n },\n parseExpenses(data) {\n for (let mainKey in data) {\n if (data.hasOwnProperty(mainKey) && /^0$|^[1-9]\\d*$/.test(mainKey) && mainKey <= 4294967294) {\n let current = data[mainKey];\n current.pct = 0;\n\n this.min = current.difference_float < this.min ? current.difference_float : this.min;\n this.expenses.push(current);\n }\n }\n\n if (0 === this.min) {\n this.min = -1;\n }\n // now sort + pct:\n for (let i in this.expenses) {\n if (this.expenses.hasOwnProperty(i)) {\n let current = this.expenses[i];\n current.pct = (current.difference_float*-1 / this.min*-1) * 100;\n this.expenses[i] = current;\n }\n }\n this.expenses.sort((a,b) => (a.pct > b.pct) ? -1 : ((b.pct > a.pct) ? 1 : 0));\n\n }\n }\n}\n</script>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainDebitList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainDebitList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MainDebitList.vue?vue&type=template&id=a1a8ea6c&\"\nimport script from \"./MainDebitList.vue?vue&type=script&lang=js&\"\nexport * from \"./MainDebitList.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.$t('firefly.expense_accounts')))])]),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(0)]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(1)]):_vm._e(),_vm._v(\" \"),(!_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body table-responsive p-0\"},[_c('table',{staticClass:\"table table-sm\"},[_c('tbody',_vm._l((_vm.expenses),function(entry){return _c('tr',[_c('td',{staticStyle:{\"width\":\"20%\"}},[_c('a',{attrs:{\"href\":'./accounts/show/' + entry.id}},[_vm._v(_vm._s(entry.name))])]),_vm._v(\" \"),_c('td',{staticClass:\"align-middle\"},[(entry.pct > 0)?_c('div',{staticClass:\"progress\"},[_c('div',{staticClass:\"progress-bar progress-bar-striped bg-danger\",style:({ width: entry.pct + '%'}),attrs:{\"aria-valuenow\":entry.pct,\"aria-valuemax\":\"100\",\"aria-valuemin\":\"0\",\"role\":\"progressbar\"}},[(entry.pct > 20)?_c('span',[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: entry.currency_code}).format(entry.difference_float))+\"\\n \")]):_vm._e()]),_vm._v(\" \"),(entry.pct <= 20)?_c('span',{staticStyle:{\"line-height\":\"16px\"}},[_vm._v(\" \\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: entry.currency_code}).format(entry.difference_float))+\"\\n \")]):_vm._e()]):_vm._e()])])}),0)])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"card-footer\"},[_c('a',{staticClass:\"btn btn-default button-sm\",attrs:{\"href\":\"./transactions/withdrawal\"}},[_c('i',{staticClass:\"far fa-money-bill-alt\"}),_vm._v(\" \"+_vm._s(_vm.$t('firefly.go_to_withdrawals')))])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainPiggyList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainPiggyList.vue?vue&type=script&lang=js&\"","<!--\n - MainPiggyList.vue\n - Copyright (c) 2020 james@firefly-iii.org\n -\n - This file is part of Firefly III (https://github.com/firefly-iii).\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <https://www.gnu.org/licenses/>.\n -->\n\n<template>\n <div class=\"card\">\n <div class=\"card-header\">\n <h3 class=\"card-title\">{{ $t('firefly.piggy_banks') }}</h3>\n </div>\n\n <!-- body if loading -->\n <div v-if=\"loading && !error\" class=\"card-body\">\n <div class=\"text-center\">\n <i class=\"fas fa-spinner fa-spin\"></i>\n </div>\n </div>\n <!-- body if error -->\n <div v-if=\"error\" class=\"card-body\">\n <div class=\"text-center\">\n <i class=\"fas fa-exclamation-triangle text-danger\"></i>\n </div>\n </div>\n <!-- body if normal -->\n <div v-if=\"!loading && !error\" class=\"card-body table-responsive p-0\">\n <table class=\"table table-striped\">\n <caption style=\"display:none;\">{{ $t('firefly.piggy_banks') }}</caption>\n <thead>\n <tr>\n <th scope=\"col\" style=\"width:35%;\">{{ $t('list.piggy_bank') }}</th>\n <th scope=\"col\" style=\"width:40%;\">{{ $t('list.percentage') }} <small>/ {{ $t('list.amount') }}</small></th>\n </tr>\n </thead>\n <tbody>\n <tr v-for=\"piggy in this.piggy_banks\">\n <td>\n <a :href=\"'./piggy-banks/show/' + piggy.id\" :title=\"piggy.attributes.name\">{{ piggy.attributes.name }}</a>\n <small v-if=\"piggy.attributes.object_group_title\" class=\"text-muted\">\n <br/>\n {{ piggy.attributes.object_group_title }}\n </small>\n </td>\n <td>\n <div class=\"progress-group\">\n <div class=\"progress progress-sm\">\n <div v-if=\"piggy.attributes.pct < 100\" :style=\"{'width': piggy.attributes.pct + '%'}\" class=\"progress-bar progress-bar-striped primary\"></div>\n <div v-if=\"100 === piggy.attributes.pct\" :style=\"{'width': piggy.attributes.pct + '%'}\"\n class=\"progress-bar progress-bar-striped bg-success\"></div>\n </div>\n </div>\n <span class=\"text-success\">\n {{\n Intl.NumberFormat(locale, {style: 'currency', currency: piggy.attributes.currency_code}).format(piggy.attributes.current_amount)\n }}\n </span>\n of\n <span class=\"text-success\">{{\n Intl.NumberFormat(locale, {\n style: 'currency',\n currency: piggy.attributes.currency_code\n }).format(piggy.attributes.target_amount)\n }}</span>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n <div class=\"card-footer\">\n <a class=\"btn btn-default button-sm\" href=\"./piggy-banks\"><i class=\"far fa-money-bill-alt\"></i> {{ $t('firefly.go_to_piggies') }}</a>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n name: \"MainPiggyList\",\n data() {\n return {\n piggy_banks: [],\n loading: true,\n error: false,\n locale: 'en-US'\n }\n },\n created() {\n this.locale = localStorage.locale ?? 'en-US';\n axios.get('./api/v1/piggy_banks')\n .then(response => {\n this.loadPiggyBanks(response.data.data);\n this.loading = false;\n }\n ).catch(error => {\n this.error = true\n });\n },\n methods: {\n loadPiggyBanks(data) {\n for (let key in data) {\n if (data.hasOwnProperty(key) && /^0$|^[1-9]\\d*$/.test(key) && key <= 4294967294) {\n let piggy = data[key];\n if (0.0 !== parseFloat(piggy.attributes.left_to_save)) {\n piggy.attributes.pct = (parseFloat(piggy.attributes.current_amount) / parseFloat(piggy.attributes.target_amount)) * 100;\n this.piggy_banks.push(piggy);\n }\n }\n }\n this.piggy_banks.sort(function (a, b) {\n return b.attributes.pct - a.attributes.pct;\n });\n }\n }\n}\n</script>\n\n<style scoped>\n\n</style>\n","import { render, staticRenderFns } from \"./MainPiggyList.vue?vue&type=template&id=c17c9a5a&scoped=true&\"\nimport script from \"./MainPiggyList.vue?vue&type=script&lang=js&\"\nexport * from \"./MainPiggyList.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 \"c17c9a5a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.$t('firefly.piggy_banks')))])]),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(0)]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(1)]):_vm._e(),_vm._v(\" \"),(!_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body table-responsive p-0\"},[_c('table',{staticClass:\"table table-striped\"},[_c('caption',{staticStyle:{\"display\":\"none\"}},[_vm._v(_vm._s(_vm.$t('firefly.piggy_banks')))]),_vm._v(\" \"),_c('thead',[_c('tr',[_c('th',{staticStyle:{\"width\":\"35%\"},attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('list.piggy_bank')))]),_vm._v(\" \"),_c('th',{staticStyle:{\"width\":\"40%\"},attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('list.percentage'))+\" \"),_c('small',[_vm._v(\"/ \"+_vm._s(_vm.$t('list.amount')))])])])]),_vm._v(\" \"),_c('tbody',_vm._l((this.piggy_banks),function(piggy){return _c('tr',[_c('td',[_c('a',{attrs:{\"href\":'./piggy-banks/show/' + piggy.id,\"title\":piggy.attributes.name}},[_vm._v(_vm._s(piggy.attributes.name))]),_vm._v(\" \"),(piggy.attributes.object_group_title)?_c('small',{staticClass:\"text-muted\"},[_c('br'),_vm._v(\"\\n \"+_vm._s(piggy.attributes.object_group_title)+\"\\n \")]):_vm._e()]),_vm._v(\" \"),_c('td',[_c('div',{staticClass:\"progress-group\"},[_c('div',{staticClass:\"progress progress-sm\"},[(piggy.attributes.pct < 100)?_c('div',{staticClass:\"progress-bar progress-bar-striped primary\",style:({'width': piggy.attributes.pct + '%'})}):_vm._e(),_vm._v(\" \"),(100 === piggy.attributes.pct)?_c('div',{staticClass:\"progress-bar progress-bar-striped bg-success\",style:({'width': piggy.attributes.pct + '%'})}):_vm._e()])]),_vm._v(\" \"),_c('span',{staticClass:\"text-success\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: piggy.attributes.currency_code}).format(piggy.attributes.current_amount))+\"\\n \")]),_vm._v(\"\\n of\\n \"),_c('span',{staticClass:\"text-success\"},[_vm._v(_vm._s(Intl.NumberFormat(_vm.locale, {\n style: 'currency',\n currency: piggy.attributes.currency_code\n }).format(piggy.attributes.target_amount)))])])])}),0)])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"card-footer\"},[_c('a',{staticClass:\"btn btn-default button-sm\",attrs:{\"href\":\"./piggy-banks\"}},[_c('i',{staticClass:\"far fa-money-bill-alt\"}),_vm._v(\" \"+_vm._s(_vm.$t('firefly.go_to_piggies')))])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionListLarge.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionListLarge.vue?vue&type=script&lang=js&\"","<!--\n - TransactionListLarge.vue\n - Copyright (c) 2020 james@firefly-iii.org\n -\n - This file is part of Firefly III (https://github.com/firefly-iii).\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <https://www.gnu.org/licenses/>.\n -->\n\n<template>\n <table class=\"table table-striped table-sm\">\n <caption style=\"display:none;\">{{ $t('firefly.transaction_table_description') }}</caption>\n <thead>\n <tr>\n <th class=\"text-left\" scope=\"col\">{{ $t('firefly.description') }}</th>\n <th scope=\"col\">{{ $t('firefly.opposing_account') }}</th>\n <th class=\"text-right\" scope=\"col\">{{ $t('firefly.amount') }}</th>\n <th scope=\"col\">{{ $t('firefly.category') }}</th>\n <th scope=\"col\">{{ $t('firefly.budget') }}</th>\n </tr>\n </thead>\n <tbody>\n <tr v-for=\"transaction in this.transactions\">\n <td>\n <a :href=\"'transactions/show/' + transaction.id \" :title=\"transaction.date\">\n <span v-if=\"transaction.attributes.transactions.length > 1\">{{ transaction.attributes.group_title }}</span>\n <span v-if=\"1===transaction.attributes.transactions.length\">{{ transaction.attributes.transactions[0].description }}</span>\n </a>\n </td>\n <td>\n <span v-for=\"tr in transaction.attributes.transactions\">\n <a v-if=\"'withdrawal' === tr.type\" :href=\"'accounts/show/' + tr.destination_id\">{{ tr.destination_name }}</a>\n <a v-if=\"'deposit' === tr.type\" :href=\"'accounts/show/' + tr.source_id\">{{ tr.source_name }}</a>\n <a v-if=\"'transfer' === tr.type && parseInt(tr.source_id) === account_id\" :href=\"'accounts/show/' + tr.destination_id\">{{ tr.destination_name }}</a>\n <a v-if=\"'transfer' === tr.type && parseInt(tr.destination_id) === account_id\" :href=\"'accounts/show/' + tr.source_id\">{{ tr.source_name }}</a>\n <br/>\n </span>\n </td>\n <td style=\"text-align:right;\">\n <span v-for=\"tr in transaction.attributes.transactions\">\n <span v-if=\"'withdrawal' === tr.type\" class=\"text-danger\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1) }}<br>\n </span>\n <span v-if=\"'deposit' === tr.type\" class=\"text-success\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount) }}<br>\n </span>\n <span v-if=\"'transfer' === tr.type && parseInt(tr.source_id) === account_id\" class=\"text-info\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1) }}<br>\n </span>\n <span v-if=\"'transfer' === tr.type && parseInt(tr.destination_id) === account_id\" class=\"text-info\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount) }}<br>\n </span>\n </span>\n </td>\n <td>\n <span v-for=\"tr in transaction.attributes.transactions\">\n <a v-if=\"0!==tr.category_id\" :href=\"'categories/show/' + tr.category_id\">{{ tr.category_name }}</a><br/>\n </span>\n </td>\n <td>\n <span v-for=\"tr in transaction.attributes.transactions\">\n <a v-if=\"0!==tr.budget_id\" :href=\"'budgets/show/' + tr.budget_id\">{{ tr.budget_name }}</a><br/>\n </span>\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script>\nexport default {\n name: \"TransactionListLarge\",\n data() {\n return {\n locale: 'en-US'\n }\n },\n created() {\n this.locale = localStorage.locale ?? 'en-US';\n },\n props: {\n transactions: {\n type: Array,\n default: function () {\n return [];\n }\n },\n account_id: {\n type: Number,\n default: function () {\n return 0;\n }\n },\n }\n}\n</script>\n\n<style scoped>\n\n</style>\n","import { render, staticRenderFns } from \"./TransactionListLarge.vue?vue&type=template&id=6e420753&scoped=true&\"\nimport script from \"./TransactionListLarge.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionListLarge.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 \"6e420753\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table',{staticClass:\"table table-striped table-sm\"},[_c('caption',{staticStyle:{\"display\":\"none\"}},[_vm._v(_vm._s(_vm.$t('firefly.transaction_table_description')))]),_vm._v(\" \"),_c('thead',[_c('tr',[_c('th',{staticClass:\"text-left\",attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.description')))]),_vm._v(\" \"),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.opposing_account')))]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\",attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.amount')))]),_vm._v(\" \"),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.category')))]),_vm._v(\" \"),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.budget')))])])]),_vm._v(\" \"),_c('tbody',_vm._l((this.transactions),function(transaction){return _c('tr',[_c('td',[_c('a',{attrs:{\"href\":'transactions/show/' + transaction.id,\"title\":transaction.date}},[(transaction.attributes.transactions.length > 1)?_c('span',[_vm._v(_vm._s(transaction.attributes.group_title))]):_vm._e(),_vm._v(\" \"),(1===transaction.attributes.transactions.length)?_c('span',[_vm._v(_vm._s(transaction.attributes.transactions[0].description))]):_vm._e()])]),_vm._v(\" \"),_c('td',_vm._l((transaction.attributes.transactions),function(tr){return _c('span',[('withdrawal' === tr.type)?_c('a',{attrs:{\"href\":'accounts/show/' + tr.destination_id}},[_vm._v(_vm._s(tr.destination_name))]):_vm._e(),_vm._v(\" \"),('deposit' === tr.type)?_c('a',{attrs:{\"href\":'accounts/show/' + tr.source_id}},[_vm._v(_vm._s(tr.source_name))]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.source_id) === _vm.account_id)?_c('a',{attrs:{\"href\":'accounts/show/' + tr.destination_id}},[_vm._v(_vm._s(tr.destination_name))]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.destination_id) === _vm.account_id)?_c('a',{attrs:{\"href\":'accounts/show/' + tr.source_id}},[_vm._v(_vm._s(tr.source_name))]):_vm._e(),_vm._v(\" \"),_c('br')])}),0),_vm._v(\" \"),_c('td',{staticStyle:{\"text-align\":\"right\"}},_vm._l((transaction.attributes.transactions),function(tr){return _c('span',[('withdrawal' === tr.type)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1))),_c('br')]):_vm._e(),_vm._v(\" \"),('deposit' === tr.type)?_c('span',{staticClass:\"text-success\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount))),_c('br')]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.source_id) === _vm.account_id)?_c('span',{staticClass:\"text-info\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1))),_c('br')]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.destination_id) === _vm.account_id)?_c('span',{staticClass:\"text-info\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount))),_c('br')]):_vm._e()])}),0),_vm._v(\" \"),_c('td',_vm._l((transaction.attributes.transactions),function(tr){return _c('span',[(0!==tr.category_id)?_c('a',{attrs:{\"href\":'categories/show/' + tr.category_id}},[_vm._v(_vm._s(tr.category_name))]):_vm._e(),_c('br')])}),0),_vm._v(\" \"),_c('td',_vm._l((transaction.attributes.transactions),function(tr){return _c('span',[(0!==tr.budget_id)?_c('a',{attrs:{\"href\":'budgets/show/' + tr.budget_id}},[_vm._v(_vm._s(tr.budget_name))]):_vm._e(),_c('br')])}),0)])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionListMedium.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionListMedium.vue?vue&type=script&lang=js&\"","<!--\n - TransactionListMedium.vue\n - Copyright (c) 2020 james@firefly-iii.org\n -\n - This file is part of Firefly III (https://github.com/firefly-iii).\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <https://www.gnu.org/licenses/>.\n -->\n\n<template>\n <table class=\"table table-striped table-sm\">\n <caption style=\"display:none;\">{{ $t('firefly.transaction_table_description') }}</caption>\n <thead>\n <tr>\n <th class=\"text-left\" scope=\"col\">{{ $t('firefly.description') }}</th>\n <th scope=\"col\">{{ $t('firefly.opposing_account') }}</th>\n <th class=\"text-right\" scope=\"col\">{{ $t('firefly.amount') }}</th>\n </tr>\n </thead>\n <tbody>\n <tr v-for=\"transaction in this.transactions\">\n <td>\n <a :href=\"'transactions/show/' + transaction.id \" :title=\"transaction.date\">\n <span v-if=\"transaction.attributes.transactions.length > 1\">{{ transaction.attributes.group_title }}</span>\n <span v-if=\"1===transaction.attributes.transactions.length\">{{ transaction.attributes.transactions[0].description }}</span>\n </a>\n </td>\n <td>\n <span v-for=\"tr in transaction.attributes.transactions\">\n <a v-if=\"'withdrawal' === tr.type\" :href=\"'accounts/show/' + tr.destination_id\">{{ tr.destination_name }}</a>\n <a v-if=\"'deposit' === tr.type\" :href=\"'accounts/show/' + tr.source_id\">{{ tr.source_name }}</a>\n <a v-if=\"'transfer' === tr.type && parseInt(tr.source_id) === account_id\" :href=\"'accounts/show/' + tr.destination_id\">{{ tr.destination_name }}</a>\n <a v-if=\"'transfer' === tr.type && parseInt(tr.destination_id) === account_id\" :href=\"'accounts/show/' + tr.source_id\">{{ tr.source_name }}</a>\n <br/>\n </span>\n </td>\n <td style=\"text-align:right;\">\n <span v-for=\"tr in transaction.attributes.transactions\">\n <span v-if=\"'withdrawal' === tr.type\" class=\"text-danger\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1) }}<br>\n </span>\n <span v-if=\"'deposit' === tr.type\" class=\"text-success\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount) }}<br>\n </span>\n <span v-if=\"'transfer' === tr.type && parseInt(tr.source_id) === account_id\" class=\"text-info\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1) }}<br>\n </span>\n <span v-if=\"'transfer' === tr.type && parseInt(tr.destination_id) === account_id\" class=\"text-info\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount) }}<br>\n </span>\n </span>\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script>\nexport default {\n name: \"TransactionListMedium\",\n data() {\n return {\n locale: 'en-US'\n }\n },\n created() {\n this.locale = localStorage.locale ?? 'en-US';\n },\n props: {\n transactions: {\n type: Array,\n default: function () {\n return [];\n }\n },\n account_id: {\n type: Number,\n default: function () {\n return 0;\n }\n },\n }\n}\n</script>\n\n<style scoped>\n\n</style>\n","import { render, staticRenderFns } from \"./TransactionListMedium.vue?vue&type=template&id=0d4f7042&scoped=true&\"\nimport script from \"./TransactionListMedium.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionListMedium.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 \"0d4f7042\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table',{staticClass:\"table table-striped table-sm\"},[_c('caption',{staticStyle:{\"display\":\"none\"}},[_vm._v(_vm._s(_vm.$t('firefly.transaction_table_description')))]),_vm._v(\" \"),_c('thead',[_c('tr',[_c('th',{staticClass:\"text-left\",attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.description')))]),_vm._v(\" \"),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.opposing_account')))]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\",attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.amount')))])])]),_vm._v(\" \"),_c('tbody',_vm._l((this.transactions),function(transaction){return _c('tr',[_c('td',[_c('a',{attrs:{\"href\":'transactions/show/' + transaction.id,\"title\":transaction.date}},[(transaction.attributes.transactions.length > 1)?_c('span',[_vm._v(_vm._s(transaction.attributes.group_title))]):_vm._e(),_vm._v(\" \"),(1===transaction.attributes.transactions.length)?_c('span',[_vm._v(_vm._s(transaction.attributes.transactions[0].description))]):_vm._e()])]),_vm._v(\" \"),_c('td',_vm._l((transaction.attributes.transactions),function(tr){return _c('span',[('withdrawal' === tr.type)?_c('a',{attrs:{\"href\":'accounts/show/' + tr.destination_id}},[_vm._v(_vm._s(tr.destination_name))]):_vm._e(),_vm._v(\" \"),('deposit' === tr.type)?_c('a',{attrs:{\"href\":'accounts/show/' + tr.source_id}},[_vm._v(_vm._s(tr.source_name))]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.source_id) === _vm.account_id)?_c('a',{attrs:{\"href\":'accounts/show/' + tr.destination_id}},[_vm._v(_vm._s(tr.destination_name))]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.destination_id) === _vm.account_id)?_c('a',{attrs:{\"href\":'accounts/show/' + tr.source_id}},[_vm._v(_vm._s(tr.source_name))]):_vm._e(),_vm._v(\" \"),_c('br')])}),0),_vm._v(\" \"),_c('td',{staticStyle:{\"text-align\":\"right\"}},_vm._l((transaction.attributes.transactions),function(tr){return _c('span',[('withdrawal' === tr.type)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1))),_c('br')]):_vm._e(),_vm._v(\" \"),('deposit' === tr.type)?_c('span',{staticClass:\"text-success\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount))),_c('br')]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.source_id) === _vm.account_id)?_c('span',{staticClass:\"text-info\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1))),_c('br')]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.destination_id) === _vm.account_id)?_c('span',{staticClass:\"text-info\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount))),_c('br')]):_vm._e()])}),0)])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionListSmall.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionListSmall.vue?vue&type=script&lang=js&\"","<!--\n - TransactionListSmall.vue\n - Copyright (c) 2020 james@firefly-iii.org\n -\n - This file is part of Firefly III (https://github.com/firefly-iii).\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <https://www.gnu.org/licenses/>.\n -->\n\n<template>\n <table class=\"table table-striped table-sm\">\n <caption style=\"display:none;\">{{ $t('firefly.transaction_table_description') }}</caption>\n <thead>\n <tr>\n <th class=\"text-left\" scope=\"col\">{{ $t('firefly.description') }}</th>\n <th class=\"text-right\" scope=\"col\">{{ $t('firefly.amount') }}</th>\n </tr>\n </thead>\n <tbody>\n <tr v-for=\"transaction in this.transactions\">\n <td>\n <a :href=\"'transactions/show/' + transaction.id \"\n :title=\"new Intl.DateTimeFormat(locale, { year: 'numeric', month: 'long', day: 'numeric' }).format(new Date(transaction.attributes.transactions[0].date))\">\n <span v-if=\"transaction.attributes.transactions.length > 1\">{{ transaction.attributes.group_title }}</span>\n <span v-if=\"1===transaction.attributes.transactions.length\">{{ transaction.attributes.transactions[0].description }}</span>\n </a>\n </td>\n <td style=\"text-align:right;\">\n <span v-for=\"tr in transaction.attributes.transactions\">\n <span v-if=\"'withdrawal' === tr.type\" class=\"text-danger\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1) }}<br>\n </span>\n <span v-if=\"'deposit' === tr.type\" class=\"text-success\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount) }}<br>\n </span>\n <span v-if=\"'transfer' === tr.type && parseInt(tr.source_id) === account_id\" class=\"text-info\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1) }}<br>\n </span>\n <span v-if=\"'transfer' === tr.type && parseInt(tr.destination_id) === account_id\" class=\"text-info\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount) }}<br>\n </span>\n </span>\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script>\nexport default {\n name: \"TransactionListSmall\",\n data() {\n return {\n locale: 'en-US'\n }\n },\n created() {\n this.locale = localStorage.locale ?? 'en-US';\n },\n methods: {},\n props: {\n transactions: {\n type: Array,\n default: function () {\n return [];\n }\n },\n account_id: {\n type: Number,\n default: function () {\n return 0;\n }\n },\n }\n}\n</script>\n\n<style scoped>\n\n</style>\n","import { render, staticRenderFns } from \"./TransactionListSmall.vue?vue&type=template&id=4cd7a656&scoped=true&\"\nimport script from \"./TransactionListSmall.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionListSmall.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 \"4cd7a656\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table',{staticClass:\"table table-striped table-sm\"},[_c('caption',{staticStyle:{\"display\":\"none\"}},[_vm._v(_vm._s(_vm.$t('firefly.transaction_table_description')))]),_vm._v(\" \"),_c('thead',[_c('tr',[_c('th',{staticClass:\"text-left\",attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.description')))]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\",attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.amount')))])])]),_vm._v(\" \"),_c('tbody',_vm._l((this.transactions),function(transaction){return _c('tr',[_c('td',[_c('a',{attrs:{\"href\":'transactions/show/' + transaction.id,\"title\":new Intl.DateTimeFormat(_vm.locale, { year: 'numeric', month: 'long', day: 'numeric' }).format(new Date(transaction.attributes.transactions[0].date))}},[(transaction.attributes.transactions.length > 1)?_c('span',[_vm._v(_vm._s(transaction.attributes.group_title))]):_vm._e(),_vm._v(\" \"),(1===transaction.attributes.transactions.length)?_c('span',[_vm._v(_vm._s(transaction.attributes.transactions[0].description))]):_vm._e()])]),_vm._v(\" \"),_c('td',{staticStyle:{\"text-align\":\"right\"}},_vm._l((transaction.attributes.transactions),function(tr){return _c('span',[('withdrawal' === tr.type)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1))),_c('br')]):_vm._e(),_vm._v(\" \"),('deposit' === tr.type)?_c('span',{staticClass:\"text-success\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount))),_c('br')]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.source_id) === _vm.account_id)?_c('span',{staticClass:\"text-info\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1))),_c('br')]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.destination_id) === _vm.account_id)?_c('span',{staticClass:\"text-info\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount))),_c('br')]):_vm._e()])}),0)])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - MainCategoryList.vue\n - Copyright (c) 2020 james@firefly-iii.org\n -\n - This file is part of Firefly III (https://github.com/firefly-iii).\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <https://www.gnu.org/licenses/>.\n -->\n\n<template>\n <div class=\"card\">\n <div class=\"card-header\">\n <h3 class=\"card-title\">{{ $t('firefly.categories') }}</h3>\n </div>\n <!-- body if loading -->\n <div v-if=\"loading && !error\" class=\"card-body\">\n <div class=\"text-center\">\n <i class=\"fas fa-spinner fa-spin\"></i>\n </div>\n </div>\n <!-- body if error -->\n <div v-if=\"error\" class=\"card-body\">\n <div class=\"text-center\">\n <i class=\"fas fa-exclamation-triangle text-danger\"></i>\n </div>\n </div>\n <!-- body if normal -->\n <div v-if=\"!loading && !error\" class=\"card-body table-responsive p-0\">\n <table class=\"table table-sm\">\n <tbody>\n <tr v-for=\"category in sortedList\">\n <td style=\"width:20%;\">\n <a :href=\"'./categories/show/' + category.id\">{{ category.name }}</a>\n </td>\n <td class=\"align-middle\">\n <!-- SPENT -->\n <div v-if=\"category.spentPct > 0\" class=\"progress\">\n <div :aria-valuenow=\"category.spentPct\" :style=\"{ width: category.spentPct + '%'}\" aria-valuemax=\"100\"\n aria-valuemin=\"0\" class=\"progress-bar progress-bar-striped bg-danger\"\n role=\"progressbar\">\n <span v-if=\"category.spentPct > 20\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: category.currency_code}).format(category.spent) }}\n </span>\n </div>\n <span v-if=\"category.spentPct <= 20\" class=\"progress-label\" style=\"line-height: 16px;\">&nbsp;\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: category.currency_code}).format(category.spent) }}\n </span>\n\n </div>\n\n <!-- EARNED -->\n <div v-if=\"category.earnedPct > 0\" class=\"progress justify-content-end\" title=\"hello2\">\n <span v-if=\"category.earnedPct <= 20\" style=\"line-height: 16px;\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: category.currency_code}).format(category.earned) }}\n &nbsp;</span>\n <div :aria-valuenow=\"category.earnedPct\" :style=\"{ width: category.earnedPct + '%'}\" aria-valuemax=\"100\"\n aria-valuemin=\"0\" class=\"progress-bar progress-bar-striped bg-success\"\n role=\"progressbar\" title=\"hello\">\n <span v-if=\"category.earnedPct > 20\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: category.currency_code}).format(category.earned) }}\n </span>\n </div>\n </div>\n\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n</template>\n\n<script>\nimport {createNamespacedHelpers} from \"vuex\";\n\nconst {mapState, mapGetters, mapActions, mapMutations} = createNamespacedHelpers('dashboard/index')\n\nexport default {\n name: \"MainCategoryList\",\n\n created() {\n this.locale = localStorage.locale ?? 'en-US';\n this.ready = true;\n },\n data() {\n return {\n locale: 'en-US',\n categories: [],\n sortedList: [],\n spent: 0,\n earned: 0,\n loading: true,\n error: false\n }\n },\n computed: {\n ...mapGetters(['start', 'end']),\n 'datesReady': function () {\n return null !== this.start && null !== this.end && this.ready;\n }\n },\n watch: {\n datesReady: function (value) {\n if (true === value) {\n this.getCategories();\n }\n },\n start: function () {\n if (false === this.loading) {\n this.getCategories();\n }\n },\n end: function () {\n if (false === this.loading) {\n this.getCategories();\n }\n },\n },\n methods:\n {\n getCategories() {\n this.categories = [];\n this.sortedList = [];\n this.spent = 0;\n this.earned = 0;\n this.loading = true;\n let startStr = this.start.toISOString().split('T')[0];\n let endStr = this.end.toISOString().split('T')[0];\n axios.get('./api/v1/categories?start=' + startStr + '&end=' + endStr)\n .then(response => {\n this.parseCategories(response.data);\n this.loading = false;\n }\n ).catch(error => {\n this.error = true;\n });\n },\n parseCategories(data) {\n for (let i in data.data) {\n if (data.data.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n let current = data.data[i];\n let entryKey = null;\n let categoryId = parseInt(current.id);\n\n // loop spent info:\n for (let ii in current.attributes.spent) {\n if (current.attributes.spent.hasOwnProperty(ii) && /^0$|^[1-9]\\d*$/.test(ii) && ii <= 4294967294) {\n let spentData = current.attributes.spent[ii];\n entryKey = spentData.currency_id + '-' + current.id;\n\n // does the categories list thing have this combo? if not, create it.\n this.categories[entryKey] = this.categories[entryKey] ??\n {\n id: categoryId,\n name: current.attributes.name,\n currency_code: spentData.currency_code,\n currency_symbol: spentData.currency_symbol,\n spent: 0,\n earned: 0,\n spentPct: 0,\n earnedPct: 0,\n };\n this.categories[entryKey].spent = parseFloat(spentData.sum);\n this.spent = parseFloat(spentData.sum) < this.spent ? parseFloat(spentData.sum) : this.spent;\n }\n }\n\n // loop earned info\n for (let ii in current.attributes.earned) {\n if (current.attributes.earned.hasOwnProperty(ii) && /^0$|^[1-9]\\d*$/.test(ii) && ii <= 4294967294) {\n let earnedData = current.attributes.earned[ii];\n entryKey = earnedData.currency_id + '-' + current.id;\n\n // does the categories list thing have this combo? if not, create it.\n this.categories[entryKey] = this.categories[entryKey] ??\n {\n id: categoryId,\n name: current.attributes.name,\n currency_code: earnedData.currency_code,\n currency_symbol: earnedData.currency_symbol,\n spent: 0,\n earned: 0,\n spentPct: 0,\n earnedPct: 0,\n };\n this.categories[entryKey].earned = parseFloat(earnedData.sum);\n this.earned = parseFloat(earnedData.sum) > this.earned ? parseFloat(earnedData.sum) : this.earned;\n }\n }\n }\n }\n this.sortCategories();\n },\n sortCategories() {\n // no longer care about keys:\n let array = [];\n for (let i in this.categories) {\n if (this.categories.hasOwnProperty(i)) {\n array.push(this.categories[i]);\n }\n }\n array.sort(function (one, two) {\n return (one.spent + one.earned) - (two.spent + two.earned);\n });\n for (let i in array) {\n if (array.hasOwnProperty(i)) {\n let current = array[i];\n current.spentPct = (current.spent / this.spent) * 100;\n current.earnedPct = (current.earned / this.earned) * 100;\n this.sortedList.push(current);\n }\n }\n }\n }\n}\n</script>\n\n<style scoped>\n\n</style>","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainCategoryList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainCategoryList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MainCategoryList.vue?vue&type=template&id=098366f9&scoped=true&\"\nimport script from \"./MainCategoryList.vue?vue&type=script&lang=js&\"\nexport * from \"./MainCategoryList.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 \"098366f9\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.$t('firefly.categories')))])]),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(0)]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(1)]):_vm._e(),_vm._v(\" \"),(!_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body table-responsive p-0\"},[_c('table',{staticClass:\"table table-sm\"},[_c('tbody',_vm._l((_vm.sortedList),function(category){return _c('tr',[_c('td',{staticStyle:{\"width\":\"20%\"}},[_c('a',{attrs:{\"href\":'./categories/show/' + category.id}},[_vm._v(_vm._s(category.name))])]),_vm._v(\" \"),_c('td',{staticClass:\"align-middle\"},[(category.spentPct > 0)?_c('div',{staticClass:\"progress\"},[_c('div',{staticClass:\"progress-bar progress-bar-striped bg-danger\",style:({ width: category.spentPct + '%'}),attrs:{\"aria-valuenow\":category.spentPct,\"aria-valuemax\":\"100\",\"aria-valuemin\":\"0\",\"role\":\"progressbar\"}},[(category.spentPct > 20)?_c('span',[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: category.currency_code}).format(category.spent))+\"\\n \")]):_vm._e()]),_vm._v(\" \"),(category.spentPct <= 20)?_c('span',{staticClass:\"progress-label\",staticStyle:{\"line-height\":\"16px\"}},[_vm._v(\" \\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: category.currency_code}).format(category.spent))+\"\\n \")]):_vm._e()]):_vm._e(),_vm._v(\" \"),(category.earnedPct > 0)?_c('div',{staticClass:\"progress justify-content-end\",attrs:{\"title\":\"hello2\"}},[(category.earnedPct <= 20)?_c('span',{staticStyle:{\"line-height\":\"16px\"}},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: category.currency_code}).format(category.earned))+\"\\n  \")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"progress-bar progress-bar-striped bg-success\",style:({ width: category.earnedPct + '%'}),attrs:{\"aria-valuenow\":category.earnedPct,\"aria-valuemax\":\"100\",\"aria-valuemin\":\"0\",\"role\":\"progressbar\",\"title\":\"hello\"}},[(category.earnedPct > 20)?_c('span',[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: category.currency_code}).format(category.earned))+\"\\n \")]):_vm._e()])]):_vm._e()])])}),0)])]):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})])}]\n\nexport { render, staticRenderFns }","/*\n * dashboard.js\n * Copyright (c) 2020 james@firefly-iii.org\n *\n * This file is part of Firefly III (https://github.com/firefly-iii).\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <https://www.gnu.org/licenses/>.\n */\n\nimport Dashboard from \"../components/dashboard/Dashboard\";\nimport TopBoxes from \"../components/dashboard/TopBoxes\";\nimport MainAccount from \"../components/dashboard/MainAccount\";\nimport MainAccountList from \"../components/dashboard/MainAccountList\";\nimport MainBillsList from \"../components/dashboard/MainBillsList\";\nimport MainBudgetList from \"../components/dashboard/MainBudgetList\";\nimport MainCreditList from \"../components/dashboard/MainCreditList\";\nimport MainDebitList from \"../components/dashboard/MainDebitList\";\nimport MainPiggyList from \"../components/dashboard/MainPiggyList\";\nimport TransactionListLarge from \"../components/transactions/TransactionListLarge\";\nimport TransactionListMedium from \"../components/transactions/TransactionListMedium\";\nimport TransactionListSmall from \"../components/transactions/TransactionListSmall\";\nimport Calendar from \"../components/dashboard/Calendar\";\nimport MainCategoryList from \"../components/dashboard/MainCategoryList\";\nimport Vue from \"vue\";\nimport Vuex from 'vuex'\nimport store from '../components/store';\n\n/**\n * First we will load Axios via bootstrap.js\n * jquery and bootstrap-sass preloaded in app.js\n * vue, uiv and vuei18n are in app_vue.js\n */\n\nrequire('../bootstrap');\nrequire('chart.js');\n\nVue.component('transaction-list-large', TransactionListLarge);\nVue.component('transaction-list-medium', TransactionListMedium);\nVue.component('transaction-list-small', TransactionListSmall);\n\n// components as an example\n\nVue.component('dashboard', Dashboard);\nVue.component('top-boxes', TopBoxes);\nVue.component('main-account', MainAccount);\nVue.component('main-account-list', MainAccountList);\nVue.component('main-bills-list', MainBillsList);\nVue.component('main-budget-list', MainBudgetList);\nVue.component('main-category-list', MainCategoryList);\nVue.component('main-debit-list', MainDebitList);\nVue.component('main-credit-list', MainCreditList);\nVue.component('main-piggy-list', MainPiggyList);\n\nVue.use(Vuex);\n\nlet i18n = require('../i18n');\nlet props = {};\n\nnew Vue({\n i18n,\n store,\n el: \"#dashboard\",\n render: (createElement) => {\n return createElement(Dashboard, {props: props});\n },\n beforeCreate() {\n // TODO migrate to \"root\" store.\n this.$store.commit('initialiseStore');\n this.$store.dispatch('updateCurrencyPreference');\n this.$store.dispatch('root/initialiseStore');\n this.$store.dispatch('dashboard/index/initialiseStore');\n },\n });\nnew Vue({\n i18n,\n store,\n el: \"#calendar\",\n render: (createElement) => {\n return createElement(Calendar, {props: props});\n },\n // TODO init store as well?\n });"],"sourceRoot":""}