{"version":3,"sources":["webpack:///./src/components/widgets/incomeWidget/incomeWidget.vue?f101","webpack:///./src/javascript/widgetManager.js","webpack:///./src/components/widgets/incomeWidget/incomeWidget.vue?9bb1","webpack:///src/components/widgets/incomeWidget/incomeWidget.vue","webpack:///./src/components/widgets/incomeWidget/incomeWidget.vue?ac85","webpack:///./src/components/widgets/incomeWidget/incomeWidget.vue?503c","webpack:///../../../src/components/VChip/VChip.ts"],"names":["widgetManager","tableData","tableTotal","itemsMinusDeleted","tableRow","name","value","percentage","clearTableRow","this","buildTable","period","i","length","isItemWithinPeriod","transactionBalances","transactionDate","convertToTableRow","addToTableData","calculatePercentages","parseFloat","toFixed","item","push","globalFunctions","stringify","category","transactionAmount","clearOldData","itemDate","start","end","date","Date","returnFormattedDateFromCalendar","dateSplit","split","parseInt","buildIncomeCategoryTotals","getIncomeItemsFromStoreAndRemoveDeletedItems","items","getIncomeTransactions","store","state","Transactions","removeDeletedObjectsFromItems","incomes","transactionType","buildExpenseCategoryTotals","getExpenseItemsFromStoreAndRemoveDeletedItems","getExpenseTransactions","expenses","buildBudgetTotals","getBudgetItemsFromStoreAndRemoveDeletedItems","createTableRows","buildBudgetTable","buildSingleBudgetTotals","budgetId","buildSingleBudgetTable","budgetManager","findBudgetById","Budgets","budgetBalance","getActiveBudgetBalance","addToBudgetTableData","budget","budgetName","amountSpent","budgetAmount","returnIncomeCategoriesAndThereItems","buildJsonObject","jsonObject","k","returnExpenseCategoriesAndThereItems","render","_vm","_h","$createElement","_c","_self","staticClass","staticStyle","attrs","_v","_s","component","tag","cType","_e","formattedTableTotal","on","$event","$router","path","query","staticRenderFns","VChip","VContainer","VDivider","VLayout","VSpacer","props","active","type","default","activeClass","chipGroup","close","closeIcon","closeLabel","disabled","draggable","filter","filterIcon","label","link","outlined","pill","textColor","data","proxyClass","computed","classes","groupClasses","hasClose","Boolean","isClickable","created","breakingProps","original","replacement","methods","click","genFilter","children","left","genClose","right","size","$vuetify","lang","t","e","genContent","$slots","tabindex","setBackgroundColor","color","h","setTextColor"],"mappings":"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","file":"js/chunk-5ae20cc1.83407e33.js","sourcesContent":["export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./incomeWidget.vue?vue&type=style&index=0&lang=css&\"","import { store } from '../store/storeMain'\r\n//import { transactionManager } from './transactionManager'\r\nimport { globalFunctions } from './globalFunctions'\r\nimport { budgetManager } from './budgetManager'\r\n\r\nexport const widgetManager = {\r\n tableData: [],\r\n tableTotal: 0,\r\n itemsMinusDeleted: [],\r\n tableRow: {\r\n name: '',\r\n value: 0,\r\n percentage: 0\r\n },\r\n clearTableRow: function () {\r\n this.tableRow.name = ''\r\n this.tableRow.value = 0\r\n this.tableRow.percentage = 0\r\n },\r\n buildTable: function (period) {\r\n for (let i = 0; i < this.itemsMinusDeleted.length; i++) {\r\n\r\n if (this.isItemWithinPeriod(\r\n this.itemsMinusDeleted[i].transactionBalances[this.itemsMinusDeleted[i].transactionBalances.length - 1].transactionDate,\r\n period)) {\r\n\r\n this.convertToTableRow(this.itemsMinusDeleted[i])\r\n\r\n this.addToTableData()\r\n\r\n this.calculatePercentages()\r\n }\r\n }\r\n },\r\n calculatePercentages: function () {\r\n for (let i = 0; i < this.tableData.length; i++) {\r\n this.tableData[i].percentage = ((parseFloat(this.tableData[i].value) / parseFloat(this.tableTotal)) * 100).toFixed(2)\r\n }\r\n },\r\n addToTableData: function () {\r\n let item = this.tableRow\r\n\r\n if (this.tableData.length === 0) {\r\n this.tableData.push(globalFunctions.stringify(item))\r\n this.tableTotal = parseFloat(this.tableTotal) + parseFloat(item.value)\r\n }\r\n else {\r\n for (let i = 0; i < this.tableData.length; i++) {\r\n if (this.tableData[i].name === item.name) {\r\n this.tableData[i].value = parseFloat(this.tableData[i].value) + parseFloat(item.value)\r\n this.tableTotal = parseFloat(this.tableTotal) + parseFloat(item.value)\r\n break\r\n }\r\n else if (i === this.tableData.length - 1) {\r\n this.tableData.push(globalFunctions.stringify(item))\r\n this.tableTotal = parseFloat(this.tableTotal) + parseFloat(item.value)\r\n break\r\n }\r\n }\r\n }\r\n },\r\n convertToTableRow: function (item) {\r\n this.clearTableRow()\r\n\r\n this.tableRow.name = item.category\r\n\r\n for (let i = 0; i < item.transactionBalances.length; i++) {\r\n this.tableRow.value = parseFloat(this.tableRow.value) + parseFloat(item.transactionBalances[i].transactionAmount)\r\n }\r\n },\r\n clearOldData: function () {\r\n this.tableData = []\r\n this.tableTotal = 0,\r\n this.itemsMinusDeleted = []\r\n },\r\n isItemWithinPeriod: function (itemDate, period) {\r\n let start = ''\r\n let end = ''\r\n let date = new Date(this.returnFormattedDateFromCalendar(itemDate))\r\n\r\n let dateSplit = period.split(\" - \")\r\n\r\n start = new Date(dateSplit[0])\r\n end = new Date(dateSplit[1])\r\n\r\n if (date >= start && date <= end) {\r\n return true\r\n }\r\n\r\n return false\r\n },\r\n returnFormattedDateFromCalendar(date) {\r\n let dateSplit = date.split(\"-\")\r\n\r\n return (dateSplit[0] + \"-\" + parseInt(dateSplit[1]) + \"-\" + (parseInt(dateSplit[2])))\r\n },\r\n \r\n\r\n ///////////////////////////////////////////////////////////////////////\r\n //Income Specific\r\n ///////////////////////////////////////////////////////////////////////\r\n\r\n buildIncomeCategoryTotals: function (period) {\r\n this.clearOldData()\r\n this.getIncomeItemsFromStoreAndRemoveDeletedItems()\r\n\r\n this.buildTable(period)\r\n\r\n return {\r\n tableData: this.tableData,\r\n tableTotal: this.tableTotal\r\n }\r\n },\r\n getIncomeItemsFromStoreAndRemoveDeletedItems: function () {\r\n this.items = this.getIncomeTransactions(store.state.Transactions)\r\n\r\n\r\n ///Remove deleted items from items array\r\n this.itemsMinusDeleted = globalFunctions.removeDeletedObjectsFromItems(this.items)\r\n },\r\n getIncomeTransactions: function (items) {\r\n let incomes = []\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n if (items[i].transactionType === \"income\") {\r\n incomes.push(items[i])\r\n }\r\n }\r\n\r\n return incomes\r\n },\r\n\r\n\r\n ///////////////////////////////////////////////////////////////////////\r\n //Expense Specific\r\n ///////////////////////////////////////////////////////////////////////\r\n\r\n buildExpenseCategoryTotals: function (period) {\r\n this.clearOldData()\r\n this.getExpenseItemsFromStoreAndRemoveDeletedItems()\r\n\r\n this.buildTable(period)\r\n\r\n return {\r\n tableData: this.tableData,\r\n tableTotal: this.tableTotal\r\n }\r\n },\r\n getExpenseItemsFromStoreAndRemoveDeletedItems: function () {\r\n this.items = this.getExpenseTransactions(store.state.Transactions)\r\n\r\n ///Remove deleted items from items array\r\n this.itemsMinusDeleted = globalFunctions.removeDeletedObjectsFromItems(this.items)\r\n },\r\n getExpenseTransactions: function (items) {\r\n let expenses = []\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n if (items[i].transactionType === \"expense\") {\r\n expenses.push(items[i])\r\n }\r\n }\r\n\r\n return expenses\r\n },\r\n\r\n\r\n ///////////////////////////////////////////////////////////////////////\r\n //Budget Specific\r\n ///////////////////////////////////////////////////////////////////////\r\n\r\n buildBudgetTotals: function (date) {\r\n this.clearOldData()\r\n this.getBudgetItemsFromStoreAndRemoveDeletedItems()\r\n\r\n this.createTableRows()\r\n\r\n this.buildBudgetTable(date)\r\n\r\n if (this.tableData[0].value === 0 && this.tableData[1].value === 0) {\r\n this.tableData = []\r\n }\r\n\r\n return {\r\n tableData: this.tableData,\r\n tableTotal: this.tableTotal\r\n }\r\n },\r\n buildSingleBudgetTotals: function (budgetId, date) {\r\n this.clearOldData()\r\n this.getBudgetItemsFromStoreAndRemoveDeletedItems()\r\n\r\n this.createTableRows()\r\n\r\n this.buildSingleBudgetTable(budgetManager.findBudgetById(budgetId), date)\r\n\r\n if (this.tableData[0].value === 0 && this.tableData[1].value === 0) {\r\n this.tableData = []\r\n }\r\n\r\n return {\r\n tableData: this.tableData,\r\n tableTotal: this.tableTotal\r\n }\r\n },\r\n getBudgetItemsFromStoreAndRemoveDeletedItems: function () {\r\n this.items = store.state.Budgets\r\n\r\n\r\n ///Remove deleted items from items array\r\n this.itemsMinusDeleted = globalFunctions.removeDeletedObjectsFromItems(this.items)\r\n },\r\n createTableRows: function () {\r\n this.tableData.push({\r\n name: 'Spent',\r\n value: 0,\r\n percentage: 0\r\n },\r\n {\r\n name: 'Remaining',\r\n value: 0,\r\n percentage: 0\r\n })\r\n },\r\n buildBudgetTable: function (date) {\r\n for (let i = 0; i < this.itemsMinusDeleted.length; i++) {\r\n let budgetBalance = budgetManager.getActiveBudgetBalance(this.itemsMinusDeleted[i], date)\r\n\r\n this.addToBudgetTableData(budgetBalance)\r\n\r\n this.calculatePercentages()\r\n }\r\n },\r\n buildSingleBudgetTable: function (budget, date) {\r\n for (let i = 0; i < this.itemsMinusDeleted.length; i++) {\r\n if (this.itemsMinusDeleted[i].budgetName === budget.budgetName) {\r\n let budgetBalance = budgetManager.getActiveBudgetBalance(this.itemsMinusDeleted[i], date)\r\n\r\n this.addToBudgetTableData(budgetBalance)\r\n\r\n this.calculatePercentages()\r\n }\r\n }\r\n },\r\n addToBudgetTableData: function (item) {\r\n //Update Spent\r\n this.tableData[0].value = parseFloat(this.tableData[0].value) + parseFloat(item.amountSpent)\r\n\r\n //Update Remaining\r\n this.tableData[1].value = parseFloat(this.tableData[1].value) + (parseFloat(item.budgetAmount) - parseFloat(item.amountSpent))\r\n\r\n this.tableTotal = parseFloat(this.tableTotal) + parseFloat(item.budgetAmount)\r\n },\r\n\r\n}\r\n\r\n\r\n///////////////////////////////////////////////////////////////////////\r\n//Income Items By Category Functions\r\n///////////////////////////////////////////////////////////////////////\r\n\r\nexport const returnIncomeCategoriesAndThereItems = (period) => {\r\n let items = getIncomeItemsFromStoreAndRemoveDeletedItems()\r\n\r\n return buildJsonObject(period, items)\r\n}\r\n\r\nexport const getIncomeItemsFromStoreAndRemoveDeletedItems = () => {\r\n let items = widgetManager.getIncomeTransactions(store.state.Transactions)\r\n\r\n ///Remove deleted items from items array\r\n return globalFunctions.removeDeletedObjectsFromItems(items)\r\n}\r\n\r\nexport const buildJsonObject = (period, items) => {\r\n let jsonObject = []\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n\r\n if (widgetManager.isItemWithinPeriod(\r\n items[i].transactionBalances[items[0].transactionBalances.length - 1].transactionDate,\r\n period)) {\r\n\r\n if (jsonObject.length === 0) {\r\n jsonObject[0] = [items[i].category, [items[i]]]\r\n\r\n continue\r\n }\r\n\r\n for (let k = 0; k < jsonObject.length; k++) {\r\n if (jsonObject[k][0] === items[i].category) {\r\n jsonObject[k][1].push(items[i])\r\n\r\n continue\r\n } else if (k === jsonObject.length - 1) {\r\n jsonObject.push([items[i].category, [items[i]]])\r\n break\r\n }\r\n }\r\n }\r\n }\r\n\r\n return jsonObject\r\n}\r\n\r\n///////////////////////////////////////////////////////////////////////\r\n//End Of Income Items By Category Functions\r\n///////////////////////////////////////////////////////////////////////\r\n\r\n\r\n///////////////////////////////////////////////////////////////////////\r\n//Expense Items By Category Functions\r\n///////////////////////////////////////////////////////////////////////\r\n\r\nexport const returnExpenseCategoriesAndThereItems = (period) => {\r\n let items = getExpenseItemsFromStoreAndRemoveDeletedItems()\r\n\r\n return buildJsonObject(period, items)\r\n}\r\n\r\nexport const getExpenseItemsFromStoreAndRemoveDeletedItems = () => {\r\n let items = widgetManager.getExpenseTransactions(store.state.Transactions)\r\n\r\n ///Remove deleted items from items array\r\n return globalFunctions.removeDeletedObjectsFromItems(items)\r\n}\r\n\r\n///////////////////////////////////////////////////////////////////////\r\n//End Of Expense Items By Category Functions\r\n///////////////////////////////////////////////////////////////////////\r\n\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"d-flex justify-center\",staticStyle:{\"margin-top\":\"5px\"}},[_c('v-chip',{attrs:{\"outlined\":\"\"}},[_vm._v(_vm._s(_vm.period))])],1),_c(_vm.component,{tag:\"component\",staticStyle:{\"height\":\"250px\"},attrs:{\"value\":_vm.tableData}}),(_vm.cType === 'component')?_c('v-divider'):_vm._e(),(_vm.cType === 'component')?_c('v-container',{staticClass:\"padding-20\",attrs:{\"grid-list-md\":\"\"}},[_c('v-layout',{attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-chip',{attrs:{\"outlined\":\"\"}},[_c('span',{staticStyle:{\"color\":\"#43A047\"}},[_vm._v(\"TOTAL: + \"+_vm._s(_vm.formattedTableTotal))])]),_c('v-spacer'),_c('v-chip',{attrs:{\"outlined\":\"\"},on:{\"click\":function($event){return _vm.$router.push({ path: '/dashboard/widgetSeeMoreContainer',query: { \n name: 'income', \n } })}}},[_vm._v(\"SHOW MORE\")])],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./incomeWidget.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./incomeWidget.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./incomeWidget.vue?vue&type=template&id=05e5fc68&\"\nimport script from \"./incomeWidget.vue?vue&type=script&lang=js&\"\nexport * from \"./incomeWidget.vue?vue&type=script&lang=js&\"\nimport style0 from \"./incomeWidget.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VLayout } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VChip,VContainer,VDivider,VLayout,VSpacer})\n","// Styles\nimport './VChip.sass'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Components\nimport { VExpandXTransition } from '../transitions'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport { breaking } from '../../util/console'\n\n// Types\nimport { PropValidator, PropType } from 'vue/types/options'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Sizeable,\n Routable,\n Themeable,\n GroupableFactory('chipGroup'),\n ToggleableFactory('inputValue')\n).extend({\n name: 'v-chip',\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.chipGroup) return ''\n\n return this.chipGroup.activeClass\n },\n } as any as PropValidator,\n close: Boolean,\n closeIcon: {\n type: String,\n default: '$delete',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n disabled: Boolean,\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: String,\n default: '$complete',\n },\n label: Boolean,\n link: Boolean,\n outlined: Boolean,\n pill: Boolean,\n tag: {\n type: String,\n default: 'span',\n },\n textColor: String,\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-chip--active',\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-chip': true,\n ...Routable.options.computed.classes.call(this),\n 'v-chip--clickable': this.isClickable,\n 'v-chip--disabled': this.disabled,\n 'v-chip--draggable': this.draggable,\n 'v-chip--label': this.label,\n 'v-chip--link': this.isLink,\n 'v-chip--no-color': !this.color,\n 'v-chip--outlined': this.outlined,\n 'v-chip--pill': this.pill,\n 'v-chip--removable': this.hasClose,\n ...this.themeClasses,\n ...this.sizeableClasses,\n ...this.groupClasses,\n }\n },\n hasClose (): boolean {\n return Boolean(this.close)\n },\n isClickable (): boolean {\n return Boolean(\n Routable.options.computed.isClickable.call(this) ||\n this.chipGroup\n )\n },\n },\n\n created () {\n const breakingProps = [\n ['outline', 'outlined'],\n ['selected', 'input-value'],\n ['value', 'active'],\n ['@input', '@active.sync'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n\n this.chipGroup && this.toggle()\n },\n genFilter (): VNode {\n const children = []\n\n if (this.isActive) {\n children.push(\n this.$createElement(VIcon, {\n staticClass: 'v-chip__filter',\n props: { left: true },\n }, this.filterIcon)\n )\n }\n\n return this.$createElement(VExpandXTransition, children)\n },\n genClose (): VNode {\n return this.$createElement(VIcon, {\n staticClass: 'v-chip__close',\n props: {\n right: true,\n size: 18,\n },\n attrs: {\n 'aria-label': this.$vuetify.lang.t(this.closeLabel),\n },\n on: {\n click: (e: Event) => {\n e.stopPropagation()\n e.preventDefault()\n\n this.$emit('click:close')\n this.$emit('update:active', false)\n },\n },\n }, this.closeIcon)\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-chip__content',\n }, [\n this.filter && this.genFilter(),\n this.$slots.default,\n this.hasClose && this.genClose(),\n ])\n },\n },\n\n render (h): VNode {\n const children = [this.genContent()]\n let { tag, data } = this.generateRouteLink()\n\n data.attrs = {\n ...data.attrs,\n draggable: this.draggable ? 'true' : undefined,\n tabindex: this.chipGroup && !this.disabled ? 0 : data.attrs!.tabindex,\n }\n data.directives!.push({\n name: 'show',\n value: this.active,\n })\n data = this.setBackgroundColor(this.color, data)\n\n const color = this.textColor || (this.outlined && this.color)\n\n return h(tag, this.setTextColor(color, data), children)\n },\n})\n"],"sourceRoot":""}