mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-25 18:45:27 -06:00
1 line
224 KiB
Plaintext
Executable File
1 line
224 KiB
Plaintext
Executable File
{"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\"> </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\"> </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\"> </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\"> </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 {{ $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 →\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;\"> \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;\"> \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;\"> \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 </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":""} |