firefly-iii/public/v2/js/transactions/edit.js.map
2021-07-11 09:31:10 +02:00

1 line
352 KiB
Plaintext
Executable File
Raw Blame History

This file contains invisible Unicode characters

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

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"sources":["webpack:///./src/bootstrap.js","webpack:///./src/components/store/modules/transactions/create.js","webpack:///./src/components/store/modules/transactions/edit.js","webpack:///./src/components/store/modules/dashboard/index.js","webpack:///./src/components/store/modules/root.js","webpack:///./src/components/store/modules/accounts/index.js","webpack:///./src/components/store/index.js","webpack:///./src/i18n.js","webpack:///src/components/transactions/Edit.vue","webpack:///./src/components/transactions/Edit.vue?2e9d","webpack:///./src/components/transactions/Edit.vue","webpack:///./src/components/transactions/Edit.vue?78b4","webpack:///./src/pages/transactions/edit.js","webpack:///./src/shared/transactions.js","webpack:///./src/components/transactions/TransactionTags.vue?1d59","webpack:///src/components/partials/Alert.vue","webpack:///./src/components/partials/Alert.vue?8ba7","webpack:///./src/components/partials/Alert.vue","webpack:///./src/components/partials/Alert.vue?a628","webpack:///./src/components/transactions/SplitForm.vue?a019","webpack:///src/components/transactions/TransactionDescription.vue","webpack:///./src/components/transactions/TransactionDescription.vue?51f7","webpack:///./src/components/transactions/TransactionDescription.vue","webpack:///./src/components/transactions/TransactionDescription.vue?fdcd","webpack:///src/components/transactions/TransactionDate.vue","webpack:///./src/components/transactions/TransactionDate.vue?3867","webpack:///./src/components/transactions/TransactionDate.vue","webpack:///./src/components/transactions/TransactionDate.vue?1d82","webpack:///src/components/transactions/TransactionBudget.vue","webpack:///./src/components/transactions/TransactionBudget.vue?00ee","webpack:///./src/components/transactions/TransactionBudget.vue","webpack:///./src/components/transactions/TransactionBudget.vue?9242","webpack:///src/components/transactions/TransactionAccount.vue","webpack:///./src/components/transactions/TransactionAccount.vue?5275","webpack:///./src/components/transactions/TransactionAccount.vue","webpack:///./src/components/transactions/TransactionAccount.vue?22f4","webpack:///src/components/transactions/SwitchAccount.vue","webpack:///./src/components/transactions/SwitchAccount.vue?2eca","webpack:///./src/components/transactions/SwitchAccount.vue","webpack:///./src/components/transactions/SwitchAccount.vue?e933","webpack:///src/components/transactions/TransactionAmount.vue","webpack:///./src/components/transactions/TransactionAmount.vue?69ff","webpack:///./src/components/transactions/TransactionAmount.vue","webpack:///./src/components/transactions/TransactionAmount.vue?f2f7","webpack:///src/components/transactions/TransactionForeignAmount.vue","webpack:///./src/components/transactions/TransactionForeignAmount.vue?ff11","webpack:///./src/components/transactions/TransactionForeignAmount.vue","webpack:///./src/components/transactions/TransactionForeignAmount.vue?ac9f","webpack:///src/components/transactions/TransactionForeignCurrency.vue","webpack:///./src/components/transactions/TransactionForeignCurrency.vue?f6a0","webpack:///./src/components/transactions/TransactionForeignCurrency.vue","webpack:///./src/components/transactions/TransactionForeignCurrency.vue?a774","webpack:///src/components/transactions/TransactionCustomDates.vue","webpack:///./src/components/transactions/TransactionCustomDates.vue?c6d3","webpack:///./src/components/transactions/TransactionCustomDates.vue","webpack:///./src/components/transactions/TransactionCustomDates.vue?bc65","webpack:///src/components/transactions/TransactionCategory.vue","webpack:///./src/components/transactions/TransactionCategory.vue?b515","webpack:///./src/components/transactions/TransactionCategory.vue","webpack:///./src/components/transactions/TransactionCategory.vue?dc0d","webpack:///src/components/transactions/TransactionBill.vue","webpack:///./src/components/transactions/TransactionBill.vue?9147","webpack:///./src/components/transactions/TransactionBill.vue","webpack:///./src/components/transactions/TransactionBill.vue?2451","webpack:///./src/components/transactions/TransactionTags.vue?756a","webpack:///src/components/transactions/TransactionTags.vue","webpack:///./src/components/transactions/TransactionTags.vue?c786","webpack:///./src/components/transactions/TransactionTags.vue?80e0","webpack:///./src/components/transactions/TransactionTags.vue","webpack:///src/components/transactions/TransactionPiggyBank.vue","webpack:///./src/components/transactions/TransactionPiggyBank.vue?e9e1","webpack:///./src/components/transactions/TransactionPiggyBank.vue","webpack:///./src/components/transactions/TransactionPiggyBank.vue?e513","webpack:///src/components/transactions/TransactionInternalReference.vue","webpack:///./src/components/transactions/TransactionInternalReference.vue?2fd1","webpack:///./src/components/transactions/TransactionInternalReference.vue","webpack:///./src/components/transactions/TransactionInternalReference.vue?9993","webpack:///src/components/transactions/TransactionExternalUrl.vue","webpack:///./src/components/transactions/TransactionExternalUrl.vue?28f8","webpack:///./src/components/transactions/TransactionExternalUrl.vue","webpack:///./src/components/transactions/TransactionExternalUrl.vue?939d","webpack:///src/components/transactions/TransactionNotes.vue","webpack:///./src/components/transactions/TransactionNotes.vue?3804","webpack:///./src/components/transactions/TransactionNotes.vue","webpack:///./src/components/transactions/TransactionNotes.vue?f936","webpack:///./src/components/transactions/TransactionLinks.vue?47fb","webpack:///src/components/transactions/TransactionLinks.vue","webpack:///./src/components/transactions/TransactionLinks.vue?d196","webpack:///./src/components/transactions/TransactionLinks.vue","webpack:///src/components/transactions/TransactionAttachments.vue","webpack:///./src/components/transactions/TransactionAttachments.vue?3db4","webpack:///./src/components/transactions/TransactionAttachments.vue","webpack:///./src/components/transactions/TransactionAttachments.vue?d909","webpack:///src/components/transactions/TransactionLocation.vue","webpack:///./src/components/transactions/TransactionLocation.vue?9e0a","webpack:///./src/components/transactions/TransactionLocation.vue","webpack:///./src/components/transactions/TransactionLocation.vue?6273","webpack:///./src/components/transactions/SplitForm.vue?99bd","webpack:///src/components/transactions/SplitForm.vue","webpack:///./src/components/transactions/SplitForm.vue","webpack:///src/components/transactions/SplitPills.vue","webpack:///./src/components/transactions/SplitPills.vue?cba2","webpack:///./src/components/transactions/SplitPills.vue","webpack:///./src/components/transactions/SplitPills.vue?21df","webpack:///./src/components/transactions/TransactionGroupTitle.vue?67c1","webpack:///src/components/transactions/TransactionGroupTitle.vue","webpack:///./src/components/transactions/TransactionGroupTitle.vue?5049","webpack:///./src/components/transactions/TransactionGroupTitle.vue"],"names":["window","$","jQuery","require","axios","defaults","headers","common","token","document","head","querySelector","content","console","error","localeToken","localStorage","locale","vuei18n","VueI18n","uiv","Vue","lodashClonedeep","namespaced","state","transactionType","groupTitle","transactions","customDateFields","interest_date","book_date","process_date","due_date","payment_date","invoice_date","defaultTransaction","getDefaultTransaction","defaultErrors","getDefaultErrors","getters","accountToTransaction","sourceAllowedTypes","destinationAllowedTypes","allowedOpposingTypes","actions","mutations","addTransaction","newTransaction","errors","push","resetErrors","payload","index","resetTransactions","setGroupTitle","setCustomDateFields","deleteTransaction","splice","length","setTransactionType","setAllowedOpposingTypes","setAccountToTransaction","updateField","field","value","setTransactionError","setDestinationAllowedTypes","setSourceAllowedTypes","viewRange","start","end","defaultStart","defaultEnd","initialiseStore","context","dispatch","get","then","response","data","attributes","oldViewRange","commit","restoreViewRangeDates","viewRangeStart","Date","viewRangeEnd","viewRangeDefaultStart","viewRangeDefaultEnd","restoreViewRange","getItem","setDatesFromViewRange","today","startOfDay","endOfDay","startOfWeek","weekStartsOn","endOfWeek","startOfMonth","endOfMonth","startOfQuarter","endOfQuarter","getMonth","setMonth","setDate","setStart","setItem","setEnd","setDefaultStart","setDefaultEnd","setViewRange","range","listPageSize","timezone","cacheKey","age","object","JSON","parse","now","parseInt","refreshCacheKey","Array","N","join","Math","random","toString","slice","stringify","setCacheKey","setListPageSize","number","setTimezone","orderMode","activeFilter","setOrderMode","setActiveFilter","Vuex","modules","root","root_store","create","transactions_create","edit","transactions_edit","accounts","accounts_index","dashboard","dashboard_index","strict","process","plugins","currencyPreference","setCurrencyPreference","currencyCode","code","currencyId","id","updateCurrencyPreference","currencyResponse","name","symbol","decimal_places","err","module","exports","documentElement","lang","fallbackLocale","messages","created","this","groupId","parts","getTransactionGroup","getAllowedOpposingTypes","getCustomFields","successMessage","errorMessage","warningMessage","type","default","originalTransactions","originalGroupTitle","groupTitleErrors","customFields","Object","returnedGroupId","returnedGroupTitle","date","originalDate","submittedTransaction","submittedAttachments","inError","submittedAttCount","enableSubmit","stayHere","forceTransactionSubmission","components","Alert","SplitPills","SplitForm","TransactionGroupTitle","watch","finaliseSubmission","methods","parseTransactionGroup","group_title","description","hasOwnProperty","i","test","result","parseLinks","transaction_journal_id","parseTransaction","array","charAt","toUpperCase","source_type","destination_type","substring","source_account_id","source_id","source_account_name","source_name","source_account_type","destination_account_id","destination_id","destination_account_name","destination_name","destination_account_type","amount","currency_id","foreign_amount","foreign_currency_id","category","category_name","budget_id","bill_id","tags","substr","internal_reference","external_url","external_uri","external_id","notes","location","zoom_level","longitude","latitude","journalId","parseLink","opposingId","link","outward_id","linkDirection","promises","Promise","resolve","link_type_id","all","journals","journal","linkTypeId","direction","transaction_group_id","responses","currency_code","uploadedAttachment","key","storeLocation","zoomLevel","lng","lat","storeAccountValue","storeDate","storeField","removeTransaction","tab","storeGroupTitle","selectedAttachments","event","preventDefault","submitTransaction","submission","shouldSubmit","newTransactionCount","diff","toLowerCase","currentTransaction","basicFields","ii","fieldName","originalTransaction","submissionFieldName","currentTag","text","shouldLinks","shouldUpload","keys","submitUpdate","submitData","put","url","handleSubmissionResponse","reverse","submitLinks","deleteAllOriginalLinks","submitAttachments","uploadTrigger","hasAttachments","anyAttachments","$t","href","clearTrigger","compareLinks","compare","parseErrors","message","transactionIndex","split","deleteOriginalLinks","transaction","links","newLinks","originalLinks","submitNewLinks","inward_id","linkObject","currentLink","post","submitTransactionLinksX","finalizeSubmitX","submittedLinks","_vm","_h","$createElement","_c","_self","attrs","_v","on","staticClass","_l","$event","model","callback","$$v","$set","expression","_e","_s","directives","rawName","domProps","isArray","_i","$$a","$$el","target","$$c","checked","$$i","concat","i18n","props","store","render","createElement","Edit","beforeCreate","$store","$mount","source","destination","currency","foreign_currency","custom_dates","budget","bill","piggy_bank","source_account_currency_id","source_account_currency_code","source_account_currency_symbol","destination_account_currency_id","destination_account_currency_code","destination_account_currency_symbol","attachments","source_account","name_with_balance","currency_name","currency_decimal_places","destination_account","piggy_bank_id","___CSS_LOADER_EXPORT___","class","descriptions","initialSet","getACURL","clearDescription","getElementsByTagName","query","lookupDescription","$emit","item","slot","localTimeZone","Intl","DateTimeFormat","resolvedOptions","timeZone","systemTimeZone","dateStr","timeStr","localDate","computed","ref","composing","budgetList","emitEvent","collectData","getBudgets","parseBudgets","$$selectedVal","prototype","filter","call","options","o","selected","map","_value","multiple","Number","String","accountTypes","selectedAccount","accountName","selectedAccountTrigger","types","userSelectedAccount","systemReturnedAccount","clearAccount","lookupAccount","createInitialSet","accountKey","visible","scopedSlots","_u","fn","htmlText","required","sourceCurrencySymbol","destinationCurrencySymbol","fractionDigits","transactionAmount","formatNumber","parseFloat","str","toFixed","currencySymbol","srcCurrencySymbol","dstCurrencySymbol","sourceCurrencyId","destinationCurrencyId","isVisible","selectedCurrency","allCurrencies","selectableCurrencies","dstCurrencyId","srcCurrencyId","lockedCurrency","lockCurrency","getAllCurrencies","filterCurrencies","current","dateFields","availableFields","dates","interestDate","bookDate","processDate","dueDate","paymentDate","invoiceDate","isDateField","includes","getFieldValue","setFieldValue","enabled","refInFor","categories","clearCategory","lookupCategory","selectedCategory","set","billList","getBills","parseBills","VueTagsInput","autocompleteItems","debounce","updateTags","tagList","shortList","initItems","clearTimeout","setTimeout","this$1","newTags","piggyList","getPiggies","parsePiggies","piggy","reference","showField","_m","searchResults","include","linkTypes","searching","getLinkTypes","removeLink","getTextForLinkType","selectTransaction","addToSelected","removeFromSelected","selectLinkType","updateSelected","resetModal","search","parseLinkTypes","inward","outward","linkTypeInward","linkTypeOutward","parseSearch","isJournalSelected","getJournalLinkType","link_type_text","NumberFormat","style","format","apply","arguments","staticStyle","linkType","uploads","uploaded","doUpload","$refs","att","selectedFile","createAttachment","filename","attachable_type","attachable_id","uploadAttachment","uploadUri","countAttachment","files","LMap","LTileLayer","LMarker","zoom","center","hasMarker","bounds","marker","prepMap","myMap","mapObject","setObjectLocation","saveZoomLevel","latlng","clearLocation","zoomUpdated","centerUpdated","boundsUpdated","count","allowSwitch","Boolean","splitDate","sourceAccount","destinationAccount","hasMetaFields","requiredFields","TransactionLocation","TransactionAttachments","TransactionNotes","TransactionExternalUrl","TransactionInternalReference","TransactionPiggyBank","TransactionTags","TransactionLinks","TransactionBill","TransactionCategory","TransactionCustomDates","TransactionForeignCurrency","TransactionForeignAmount","TransactionAmount","SwitchAccount","TransactionAccount","TransactionBudget","TransactionDescription","TransactionDate","_g","$listeners","title"],"mappings":"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","file":"/public/js/transactions/edit.js","sourcesContent":["/*\n * bootstrap.js\n * Copyright (c) 2021 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// // imports\nimport Vue from 'vue';\nimport VueI18n from 'vue-i18n'\nimport * as uiv from 'uiv';\n\n// export jquery for others scripts to use\nwindow.$ = window.jQuery = require('jquery');\n\n// axios\nwindow.axios = require('axios');\nwindow.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\n\n// CSRF\nlet token = document.head.querySelector('meta[name=\"csrf-token\"]');\n\nif (token) {\n window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;\n} else {\n console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');\n}\n\n// locale\nlet localeToken = document.head.querySelector('meta[name=\"locale\"]');\n\nif (localeToken) {\n localStorage.locale = localeToken.content;\n} else {\n localStorage.locale = 'en_US';\n}\n\n// admin stuff\nrequire('jquery-ui');\nrequire('bootstrap'); // bootstrap CSS?\n\nrequire('admin-lte/dist/js/adminlte');\nrequire('overlayscrollbars');\n\n\n// vue\nwindow.vuei18n = VueI18n;\nwindow.uiv = uiv;\nVue.use(vuei18n);\nVue.use(uiv);\nwindow.Vue = Vue;","/*\n * create.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\nconst lodashClonedeep = require('lodash.clonedeep');\n\nimport {getDefaultTransaction, getDefaultErrors} from '../../../../shared/transactions';\n\n// initial state\nconst state = () => ({\n transactionType: 'any',\n groupTitle: '',\n transactions: [],\n customDateFields: {\n interest_date: false,\n book_date: false,\n process_date: false,\n due_date: false,\n payment_date: false,\n invoice_date: false,\n },\n defaultTransaction: getDefaultTransaction(),\n defaultErrors: getDefaultErrors()\n }\n)\n\n\n// getters\nconst getters = {\n transactions: state => {\n return state.transactions;\n },\n defaultErrors: state => {\n return state.defaultErrors;\n },\n groupTitle: state => {\n return state.groupTitle;\n },\n transactionType: state => {\n return state.transactionType;\n },\n accountToTransaction: state => {\n// See reference nr. 1\n // possible API point!!\n return state.accountToTransaction;\n },\n defaultTransaction: state => {\n return state.defaultTransaction;\n },\n sourceAllowedTypes: state => {\n return state.sourceAllowedTypes;\n },\n destinationAllowedTypes: state => {\n return state.destinationAllowedTypes;\n },\n allowedOpposingTypes: state => {\n return state.allowedOpposingTypes;\n },\n customDateFields: state => {\n return state.customDateFields;\n }\n // // `getters` is localized to this module's getters\n // // you can use rootGetters via 4th argument of getters\n // someGetter (state, getters, rootState, rootGetters) {\n // getters.someOtherGetter // -> 'foo/someOtherGetter'\n // rootGetters.someOtherGetter // -> 'someOtherGetter'\n // rootGetters['bar/someOtherGetter'] // -> 'bar/someOtherGetter'\n // },\n\n}\n\n// actions\nconst actions = {}\n\n// mutations\nconst mutations = {\n addTransaction(state) {\n let newTransaction = lodashClonedeep(state.defaultTransaction);\n newTransaction.errors = lodashClonedeep(state.defaultErrors);\n state.transactions.push(newTransaction);\n },\n resetErrors(state, payload) {\n //console.log('resetErrors for index ' + payload.index);\n state.transactions[payload.index].errors = lodashClonedeep(state.defaultErrors);\n },\n resetTransactions(state) {\n state.transactions = [];\n },\n setGroupTitle(state, payload) {\n state.groupTitle = payload.groupTitle;\n },\n setCustomDateFields(state, payload) {\n state.customDateFields = payload;\n },\n deleteTransaction(state, payload) {\n state.transactions.splice(payload.index, 1);\n // console.log('Deleted transaction ' + payload.index);\n // console.log(state.transactions);\n if (0 === state.transactions.length) {\n // console.log('array is empty!');\n }\n },\n setTransactionType(state, transactionType) {\n state.transactionType = transactionType;\n },\n setAllowedOpposingTypes(state, allowedOpposingTypes) {\n state.allowedOpposingTypes = allowedOpposingTypes;\n },\n setAccountToTransaction(state, payload) {\n state.accountToTransaction = payload;\n },\n updateField(state, payload) {\n state.transactions[payload.index][payload.field] = payload.value;\n },\n setTransactionError(state, payload) {\n //console.log('Will set transactions[' + payload.index + '][errors][' + payload.field + '] to ');\n //console.log(payload.errors);\n state.transactions[payload.index].errors[payload.field] = payload.errors;\n },\n setDestinationAllowedTypes(state, payload) {\n // console.log('Destination allowed types was changed!');\n state.destinationAllowedTypes = payload;\n },\n setSourceAllowedTypes(state, payload) {\n state.sourceAllowedTypes = payload;\n }\n}\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations\n}\n","/*\n * edit.js\n * Copyright (c) 2021 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// initial state\nconst state = () => ({});\n\n\n// getters\nconst getters = {};\n\n// actions\nconst actions = {};\n\n// mutations\nconst mutations = {};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations\n}\n","/*\n * index.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\n// initial state\nimport startOfDay from \"date-fns/startOfDay\";\nimport endOfDay from 'date-fns/endOfDay'\nimport startOfWeek from 'date-fns/startOfWeek'\nimport endOfWeek from 'date-fns/endOfWeek'\nimport startOfQuarter from 'date-fns/startOfQuarter';\nimport endOfQuarter from 'date-fns/endOfQuarter';\nimport endOfMonth from \"date-fns/endOfMonth\";\nimport startOfMonth from 'date-fns/startOfMonth';\n\nconst state = () => (\n {\n viewRange: 'default',\n start: null,\n end: null,\n defaultStart: null,\n defaultEnd: null,\n }\n)\n\n\n// getters\nconst getters = {\n start: state => {\n return state.start;\n },\n end: state => {\n return state.end;\n },\n defaultStart: state => {\n return state.defaultStart;\n },\n defaultEnd: state => {\n return state.defaultEnd;\n },\n viewRange: state => {\n return state.viewRange;\n }\n}\n\n// actions\nconst actions = {\n initialiseStore(context) {\n // console.log('initialiseStore for dashboard.');\n\n // restore from local storage:\n context.dispatch('restoreViewRange');\n\n axios.get('./api/v1/preferences/viewRange')\n .then(response => {\n let viewRange = response.data.data.attributes.data;\n let oldViewRange = context.getters.viewRange;\n context.commit('setViewRange', viewRange);\n if (viewRange !== oldViewRange) {\n // console.log('View range changed from \"' + oldViewRange + '\" to \"' + viewRange + '\"');\n context.dispatch('setDatesFromViewRange');\n }\n if (viewRange === oldViewRange) {\n // console.log('Restore view range dates');\n context.dispatch('restoreViewRangeDates');\n }\n }\n ).catch(() => {\n context.commit('setViewRange', '1M');\n context.dispatch('setDatesFromViewRange');\n });\n\n },\n restoreViewRangeDates: function (context) {\n // check local storage first?\n if (localStorage.viewRangeStart) {\n // console.log('view range start set from local storage.');\n context.commit('setStart', new Date(localStorage.viewRangeStart));\n }\n if (localStorage.viewRangeEnd) {\n // console.log('view range end set from local storage.');\n context.commit('setEnd', new Date(localStorage.viewRangeEnd));\n }\n // also set default:\n if (localStorage.viewRangeDefaultStart) {\n // console.log('view range default start set from local storage.');\n // console.log(localStorage.viewRangeDefaultStart);\n context.commit('setDefaultStart', new Date(localStorage.viewRangeDefaultStart));\n }\n if (localStorage.viewRangeDefaultEnd) {\n // console.log('view range default end set from local storage.');\n // console.log(localStorage.viewRangeDefaultEnd);\n context.commit('setDefaultEnd', new Date(localStorage.viewRangeDefaultEnd));\n }\n },\n restoreViewRange: function (context) {\n // console.log('restoreViewRange');\n let viewRange = localStorage.getItem('viewRange');\n if (null !== viewRange) {\n // console.log('restored restoreViewRange ' + viewRange );\n context.commit('setViewRange', viewRange);\n }\n },\n setDatesFromViewRange(context) {\n let start;\n let end;\n let viewRange = context.getters.viewRange;\n let today = new Date;\n // console.log('Will recreate view range on ' + viewRange);\n switch (viewRange) {\n case '1D':\n // today:\n start = startOfDay(today);\n end = endOfDay(today);\n break;\n case '1W':\n // this week:\n start = startOfDay(startOfWeek(today, {weekStartsOn: 1}));\n end = endOfDay(endOfWeek(today, {weekStartsOn: 1}));\n break;\n case '1M':\n // this month:\n start = startOfDay(startOfMonth(today));\n end = endOfDay(endOfMonth(today));\n break;\n case '3M':\n // this quarter\n start = startOfDay(startOfQuarter(today));\n end = endOfDay(endOfQuarter(today));\n break;\n case '6M':\n // this half-year\n if (today.getMonth() <= 5) {\n start = new Date(today);\n start.setMonth(0);\n start.setDate(1);\n start = startOfDay(start);\n end = new Date(today);\n end.setMonth(5);\n end.setDate(30);\n end = endOfDay(start);\n }\n if (today.getMonth() > 5) {\n start = new Date(today);\n start.setMonth(6);\n start.setDate(1);\n start = startOfDay(start);\n end = new Date(today);\n end.setMonth(11);\n end.setDate(31);\n end = endOfDay(start);\n }\n break;\n case '1Y':\n // this year\n start = new Date(today);\n start.setMonth(0);\n start.setDate(1);\n start = startOfDay(start);\n\n end = new Date(today);\n end.setMonth(11);\n end.setDate(31);\n end = endOfDay(end);\n break;\n }\n // console.log('Range is ' + viewRange);\n // console.log('Start is ' + start);\n // console.log('End is ' + end);\n context.commit('setStart', start);\n context.commit('setEnd', end);\n context.commit('setDefaultStart', start);\n context.commit('setDefaultEnd', end);\n }\n}\n\n// mutations\nconst mutations = {\n setStart(state, value) {\n state.start = value;\n window.localStorage.setItem('viewRangeStart', value);\n },\n setEnd(state, value) {\n state.end = value;\n window.localStorage.setItem('viewRangeEnd', value);\n },\n setDefaultStart(state, value) {\n state.defaultStart = value;\n window.localStorage.setItem('viewRangeDefaultStart', value);\n },\n setDefaultEnd(state, value) {\n state.defaultEnd = value;\n window.localStorage.setItem('viewRangeDefaultEnd', value);\n },\n setViewRange(state, range) {\n state.viewRange = range;\n window.localStorage.setItem('viewRange', range);\n }\n}\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations\n}\n","/*\n * root.js\n * Copyright (c) 2021 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// initial state\nconst state = () => (\n {\n listPageSize: 33,\n timezone: '',\n cacheKey: {\n age: 0,\n value: 'empty',\n },\n }\n)\n\n\n// getters\nconst getters = {\n listPageSize: state => {\n return state.listPageSize;\n },\n timezone: state => {\n // console.log('Wil return ' + state.listPageSize);\n return state.timezone;\n },\n cacheKey: state => {\n return state.cacheKey.value;\n },\n}\n\n// actions\nconst actions = {\n initialiseStore(context) {\n // cache key auto refreshes every day\n // console.log('Now in initialize store.')\n if (localStorage.cacheKey) {\n // console.log('Storage has cache key: ');\n // console.log(localStorage.cacheKey);\n let object = JSON.parse(localStorage.cacheKey);\n if (Date.now() - object.age > 86400000) {\n // console.log('Key is here but is old.');\n context.commit('refreshCacheKey');\n } else {\n // console.log('Cache key from local storage: ' + object.value);\n context.commit('setCacheKey', object);\n }\n } else {\n // console.log('No key need new one.');\n context.commit('refreshCacheKey');\n }\n if (localStorage.listPageSize) {\n state.listPageSize = localStorage.listPageSize;\n context.commit('setListPageSize', {length: localStorage.listPageSize});\n }\n if (!localStorage.listPageSize) {\n axios.get('./api/v1/preferences/listPageSize')\n .then(response => {\n // console.log('from API: listPageSize is ' + parseInt(response.data.data.attributes.data));\n context.commit('setListPageSize', {length: parseInt(response.data.data.attributes.data)});\n }\n );\n }\n if (localStorage.timezone) {\n state.timezone = localStorage.timezone;\n context.commit('setTimezone', {timezone: localStorage.timezone});\n }\n if (!localStorage.timezone) {\n axios.get('./api/v1/configuration/app.timezone')\n .then(response => {\n context.commit('setTimezone', {timezone: response.data.data.value});\n }\n );\n }\n }\n}\n\n// mutations\nconst mutations = {\n refreshCacheKey(state) {\n let age = Date.now();\n let N = 8;\n let cacheKey = Array(N+1).join((Math.random().toString(36)+'00000000000000000').slice(2, 18)).slice(0, N);\n let object = {age: age, value: cacheKey};\n // console.log('Store new key in string JSON');\n // console.log(JSON.stringify(object));\n localStorage.cacheKey = JSON.stringify(object);\n state.cacheKey = {age: age, value: cacheKey};\n // console.log('Refresh: cachekey is now ' + cacheKey);\n },\n setCacheKey(state, payload) {\n // console.log('Stored cache key in localstorage.');\n // console.log(payload);\n // console.log(JSON.stringify(payload));\n localStorage.cacheKey = JSON.stringify(payload);\n state.cacheKey = payload;\n },\n setListPageSize(state, payload) {\n // console.log('Got a payload in setListPageSize');\n // console.log(payload);\n let number = parseInt(payload.length);\n if (0 !== number) {\n state.listPageSize = number;\n localStorage.listPageSize = number;\n }\n },\n setTimezone(state, payload) {\n\n if ('' !== payload.timezone) {\n state.timezone = payload.timezone;\n localStorage.timezone = payload.timezone;\n }\n },\n}\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations\n}\n","/*\n * index.js\n * Copyright (c) 2021 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// initial state\nconst state = () => (\n {\n orderMode: false,\n activeFilter: 1\n }\n)\n\n\n// getters\nconst getters = {\n orderMode: state => {\n return state.orderMode;\n },\n activeFilter: state => {\n return state.activeFilter;\n }\n}\n\n// actions\nconst actions = {}\n\n// mutations\nconst mutations = {\n setOrderMode(state, payload) {\n state.orderMode = payload;\n },\n setActiveFilter(state, payload) {\n state.activeFilter = payload;\n }\n}\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations\n}\n","/*\n * index.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 Vue from 'vue'\nimport Vuex, {createLogger} from 'vuex'\nimport transactions_create from './modules/transactions/create';\nimport transactions_edit from './modules/transactions/edit';\nimport dashboard_index from './modules/dashboard/index';\nimport root_store from './modules/root';\nimport accounts_index from './modules/accounts/index';\n\nVue.use(Vuex)\nconst debug = process.env.NODE_ENV !== 'production'\n\nexport default new Vuex.Store(\n {\n namespaced: true,\n modules: {\n root: root_store,\n transactions: {\n namespaced: true,\n modules: {\n create: transactions_create,\n edit: transactions_edit\n }\n },\n accounts: {\n namespaced: true,\n modules: {\n index: accounts_index\n },\n },\n dashboard: {\n namespaced: true,\n modules: {\n index: dashboard_index\n }\n }\n },\n strict: debug,\n plugins: debug ? [createLogger()] : [],\n state: {\n currencyPreference: {},\n locale: 'en-US',\n listPageSize: 50\n },\n mutations: {\n setCurrencyPreference(state, payload) {\n state.currencyPreference = payload.payload;\n },\n initialiseStore(state) {\n // console.log('Now in initialiseStore()')\n // if locale in local storage:\n if (localStorage.locale) {\n state.locale = localStorage.locale;\n return;\n }\n\n // set locale from HTML:\n let localeToken = document.head.querySelector('meta[name=\"locale\"]');\n if (localeToken) {\n state.locale = localeToken.content;\n localStorage.locale = localeToken.content;\n }\n }\n },\n getters: {\n currencyCode: state => {\n return state.currencyPreference.code;\n },\n currencyPreference: state => {\n return state.currencyPreference;\n },\n currencyId: state => {\n return state.currencyPreference.id;\n },\n locale: state => {\n return state.locale;\n }\n },\n actions: {\n\n updateCurrencyPreference(context) {\n // console.log('Now in updateCurrencyPreference');\n if (localStorage.currencyPreference) {\n context.commit('setCurrencyPreference', {payload: JSON.parse(localStorage.currencyPreference)});\n return;\n }\n axios.get('./api/v1/currencies/default')\n .then(response => {\n let currencyResponse = {\n id: parseInt(response.data.data.id),\n name: response.data.data.attributes.name,\n symbol: response.data.data.attributes.symbol,\n code: response.data.data.attributes.code,\n decimal_places: parseInt(response.data.data.attributes.decimal_places),\n };\n localStorage.currencyPreference = JSON.stringify(currencyResponse);\n //console.log('getCurrencyPreference from server')\n //console.log(JSON.stringify(currencyResponse));\n context.commit('setCurrencyPreference', {payload: currencyResponse});\n }).catch(err => {\n // console.log('Got error response.');\n console.error(err);\n context.commit('setCurrencyPreference', {\n payload: {\n id: 1,\n name: 'Euro',\n symbol: '€',\n code: 'EUR',\n decimal_places: 2\n }\n });\n });\n\n }\n }\n }\n);","/*\n * i18n.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\n// Create VueI18n instance with options\nmodule.exports = new vuei18n({\n locale: document.documentElement.lang, // set locale\n fallbackLocale: 'en',\n messages: {\n 'bg': require('./locales/bg.json'),\n 'cs': require('./locales/cs.json'),\n 'de': require('./locales/de.json'),\n 'en': require('./locales/en.json'),\n 'en-us': require('./locales/en.json'),\n 'en-gb': require('./locales/en-gb.json'),\n 'es': require('./locales/es.json'),\n 'el': require('./locales/el.json'),\n 'fr': require('./locales/fr.json'),\n 'hu': require('./locales/hu.json'),\n //'id': require('./locales/id.json'),\n 'it': require('./locales/it.json'),\n 'nl': require('./locales/nl.json'),\n 'nb': require('./locales/nb.json'),\n 'pl': require('./locales/pl.json'),\n 'fi': require('./locales/fi.json'),\n 'pt-br': require('./locales/pt-br.json'),\n 'pt-pt': require('./locales/pt.json'),\n 'ro': require('./locales/ro.json'),\n 'ru': require('./locales/ru.json'),\n //'zh': require('./locales/zh.json'),\n 'zh-tw': require('./locales/zh-tw.json'),\n 'zh-cn': require('./locales/zh-cn.json'),\n 'sk': require('./locales/sk.json'),\n 'sv': require('./locales/sv.json'),\n 'vi': require('./locales/vi.json'),\n }\n});\n","<!--\n - Edit.vue\n - Copyright (c) 2021 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 <Alert :message=\"errorMessage\" type=\"danger\"/>\n <Alert :message=\"successMessage\" type=\"success\"/>\n <Alert :message=\"warningMessage\" type=\"warning\"/>\n\n <form @submit=\"submitTransaction\" autocomplete=\"off\">\n <SplitPills\n :transactions=\"transactions\"\n :count=\"transactions.length\"\n\n />\n\n <div class=\"tab-content\">\n <SplitForm\n v-for=\"(transaction, index) in this.transactions\"\n :index=\"index\"\n v-bind:key=\"transaction.transaction_journal_id\"\n :key=\"transaction.transaction_journal_id\"\n :transaction=\"transaction\"\n :date=\"date\"\n :count=\"transactions.length\"\n :transaction-type=\"transactionType\"\n :source-allowed-types=\"sourceAllowedTypes\"\n :allowed-opposing-types=\"allowedOpposingTypes\"\n :custom-fields=\"customFields\"\n :destination-allowed-types=\"destinationAllowedTypes\"\n :allow-switch=\"false\"\n v-on:uploaded-attachments=\"uploadedAttachment($event)\"\n v-on:set-marker-location=\"storeLocation($event)\"\n v-on:set-account=\"storeAccountValue($event)\"\n v-on:set-date=\"storeDate($event)\"\n v-on:set-field=\"storeField($event)\"\n v-on:remove-transaction=\"removeTransaction($event)\"\n v-on:selected-attachments=\"selectedAttachments($event)\"\n />\n </div>\n\n <!-- bottom buttons etc -->\n <div class=\"row\">\n <!-- group title -->\n <div class=\"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12\">\n <div v-if=\"transactions.length > 1\" class=\"card\">\n <div class=\"card-body\">\n <div class=\"row\">\n <div class=\"col\">\n <TransactionGroupTitle v-model=\"this.groupTitle\" :errors=\"this.groupTitleErrors\" v-on:set-group-title=\"storeGroupTitle($event)\"/>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12\">\n <!-- buttons -->\n <div class=\"card\">\n <div class=\"card-body\">\n <div class=\"row\">\n <div class=\"col\">\n <div class=\"text-xs d-none d-lg-block d-xl-block\">\n &nbsp;\n </div>\n <button type=\"button\" class=\"btn btn-outline-primary btn-block\" @click=\"addTransaction\"><span class=\"far fa-clone\"></span>\n {{ $t('firefly.add_another_split') }}\n </button>\n </div>\n <div class=\"col\">\n <div class=\"text-xs d-none d-lg-block d-xl-block\">\n &nbsp;\n </div>\n <button :disabled=\"!enableSubmit\" class=\"btn btn-info btn-block\" @click=\"submitTransaction\">\n <span v-if=\"enableSubmit\"><span class=\"far fa-save\"></span> {{ $t('firefly.update_transaction') }}</span>\n <span v-if=\"!enableSubmit\"><span class=\"fas fa-spinner fa-spin\"></span></span>\n </button>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col\">\n &nbsp;\n </div>\n <div class=\"col\">\n <div class=\"form-check\">\n <input id=\"stayHere\" v-model=\"stayHere\" class=\"form-check-input\" type=\"checkbox\">\n <label class=\"form-check-label\" for=\"stayHere\">\n <span class=\"small\">{{ $t('firefly.after_update_create_another') }}</span>\n </label>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </form>\n </div>\n</template>\n\n<script>\nimport {mapMutations} from \"vuex\";\nimport Alert from '../partials/Alert';\nimport SplitPills from \"./SplitPills\";\nimport SplitForm from \"./SplitForm\";\nimport TransactionGroupTitle from \"./TransactionGroupTitle\";\nimport {getDefaultErrors, getDefaultTransaction} from '../../shared/transactions';\n\nconst lodashClonedeep = require('lodash.clonedeep');\n\nexport default {\n name: \"Edit\",\n created() {\n // console.log('Created');\n let parts = window.location.pathname.split('/');\n this.groupId = parseInt(parts[parts.length - 1]);\n this.transactions = [];\n this.getTransactionGroup();\n this.getAllowedOpposingTypes();\n this.getCustomFields();\n },\n data() {\n return {\n successMessage: {type: String, default: ''},\n errorMessage: {type: String, default: ''},\n warningMessage: {type: String, default: ''},\n\n // transaction props\n transactions: {\n type: Array,\n default: function () {\n return [];\n }\n },\n originalTransactions: {\n type: Array,\n default: function () {\n return [];\n }\n },\n groupTitle: {type: String, default: ''},\n originalGroupTitle: {type: String, default: ''},\n transactionType: {type: String, default: 'any'},\n groupId: {type: Number, default: 0},\n\n // errors in the group title:\n groupTitleErrors: {\n type: Array,\n default: function () {\n return [];\n }\n },\n\n // which custom fields to show\n customFields: {\n type: Object,\n default: function () {\n return {};\n }\n },\n\n // group ID + title once submitted:\n returnedGroupId: {type: Number, default: 0},\n returnedGroupTitle: {type: String, default: ''},\n\n // date and time of the transaction,\n date: {type: String, default: ''},\n originalDate: {type: String, default: ''},\n\n // things the process is done working on (3 phases):\n submittedTransaction: {type: Boolean, default: false},\n // submittedLinks: false,\n submittedAttachments: {type: Number, default: -1}, // -1 = no attachments, 0 = uploading, 1 = uploaded\n inError: {type: Boolean, default: false},\n\n // number of uploaded attachments\n // its an object because we count per transaction journal (which can have multiple attachments)\n // and array doesn't work right.\n submittedAttCount: {\n type: Object,\n default: function () {\n return {};\n }\n },\n\n // meta data for accounts\n allowedOpposingTypes: {\n type: Object,\n default: function () {\n return {};\n }\n },\n destinationAllowedTypes: {\n type: Array,\n default: function () {\n return [];\n }\n },\n sourceAllowedTypes: {\n type: Array,\n default: function () {\n return [];\n }\n },\n\n // states for the form (makes sense right)\n enableSubmit: true,\n stayHere: false,\n\n // force the submission (in case of deletes)\n forceTransactionSubmission: false\n\n }\n },\n components: {\n Alert,\n SplitPills,\n SplitForm,\n TransactionGroupTitle\n },\n\n watch: {\n submittedAttachments: function () {\n this.finaliseSubmission();\n }\n },\n\n methods: {\n ...mapMutations('transactions/create', ['updateField',]),\n /**\n * Grab transaction group from URL and submit GET.\n */\n getTransactionGroup: function () {\n // console.log('getTransactionGroup');\n axios.get('./api/v1/transactions/' + this.groupId)\n .then(response => {\n this.parseTransactionGroup(response.data);\n }\n ).catch(error => {\n //console.log('I failed :(');\n //console.log(error);\n });\n },\n /**\n * Parse transaction group. Title is easy, transactions have their own method.\n * @param response\n */\n parseTransactionGroup: function (response) {\n // console.log('Will now parse');\n // console.log(response);\n let attributes = response.data.attributes;\n let transactions = attributes.transactions.reverse();\n this.groupTitle = attributes.group_title;\n this.originalGroupTitle = attributes.group_title;\n\n this.transactions = [];\n this.originalTransactions = [];\n\n\n //this.returnedGroupId = parseInt(response.data.id);\n this.returnedGroupTitle = null === this.originalGroupTitle ? response.data.attributes.transactions[0].description : this.originalGroupTitle;\n\n for (let i in transactions) {\n if (transactions.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n // console.log('Parsing transaction nr ' + i);\n let result = this.parseTransaction(parseInt(i), transactions[i]);\n this.transactions.push(result);\n this.originalTransactions.push(lodashClonedeep(result));\n // pick up the links of this transaction:\n this.parseLinks(parseInt(result.transaction_journal_id), parseInt(i));\n }\n }\n },\n /**\n * Parse a single transaction.\n *\n * @param index\n * @param array\n */\n parseTransaction: function (index, array) {\n //console.log('index: ' + index);\n if (0 === index) {\n this.transactionType = array.type.charAt(0).toUpperCase() + array.type.slice(1);\n\n // See reference nr. 5\n this.sourceAllowedTypes = [array.source_type];\n this.destinationAllowedTypes = [array.destination_type];\n this.date = array.date.substring(0, 16);\n this.originalDate = array.date.substring(0, 16);\n }\n let result = getDefaultTransaction();\n // parsing here:\n result.description = array.description;\n result.transaction_journal_id = parseInt(array.transaction_journal_id);\n // accounts:\n result.source_account_id = array.source_id;\n result.source_account_name = array.source_name;\n result.source_account_type = array.source_type;\n\n result.destination_account_id = array.destination_id;\n result.destination_account_name = array.destination_name;\n result.destination_account_type = array.destination_type;\n\n // amount:\n result.amount = array.amount;\n result.currency_id = array.currency_id;\n result.foreign_amount = array.foreign_amount;\n result.foreign_currency_id = array.foreign_currency_id;\n\n // meta data\n result.category = array.category_name;\n result.budget_id = array.budget_id;\n result.bill_id = array.bill_id ?? 0;\n\n result.tags = array.tags;\n\n // optional date fields (6x):\n result.interest_date = array.interest_date ? array.interest_date.substr(0, 10) : '';\n result.book_date = array.book_date ? array.book_date.substr(0, 10) : '';\n result.process_date = array.process_date ? array.process_date.substr(0, 10) : '';\n result.due_date = array.due_date ? array.due_date.substr(0, 10) : '';\n result.payment_date = array.payment_date ? array.payment_date.substr(0, 10) : '';\n result.invoice_date = array.invoice_date ? array.invoice_date.substr(0, 10) : '';\n\n // optional other fields:\n result.internal_reference = array.internal_reference;\n result.external_url = array.external_uri;\n result.external_id = array.external_id;\n result.notes = array.notes;\n // location:\n result.location = {\n zoom_level: array.zoom_level,\n longitude: array.longitude,\n latitude: array.latitude,\n };\n result.zoom_level = array.zoom_level;\n result.longitude = array.longitude;\n result.latitude = array.latitude;\n // error handling\n result.errors = getDefaultErrors();\n return result;\n },\n /**\n * Get the links of this transaction group from the API.\n */\n parseLinks: function (journalId, index) {\n axios.get('./api/v1/transaction-journals/' + journalId + '/links')\n .then(response => {\n let links = response.data.data;\n for (let i in links) {\n if (links.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n this.parseLink(links[i], journalId, index);\n }\n }\n });\n },\n\n /**\n * Process individual link from the API.\n */\n parseLink: function (link, journalId, index) {\n let promises = [];\n let opposingId = parseInt(link.attributes.inward_id);\n let linkDirection = 'inward';\n if (opposingId === journalId) {\n opposingId = parseInt(link.attributes.outward_id);\n linkDirection = 'outward';\n }\n // add meta data to promise context.\n promises.push(Promise.resolve(\n {\n link: link,\n journalId: journalId,\n opposingId: opposingId,\n index: index,\n direction: linkDirection\n }\n ));\n\n\n // get stuff from the API:\n promises.push(axios.get('./api/v1/transaction-journals/' + opposingId));\n promises.push(axios.get('./api/v1/transaction_links/' + link.attributes.link_type_id));\n\n Promise.all(promises).then(responses => {\n let journals = responses[1].data.data.attributes.transactions;\n let opposingId = responses[0].opposingId;\n let journal = {};\n // loop over journals to get the correct one:\n for (let i in journals) {\n if (journals.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n if (journals[i].transaction_journal_id === opposingId) {\n journal = journals[i];\n }\n }\n }\n let index = responses[0].index;\n let direction = responses[0].direction;\n let linkTypeId = responses[2].data.data.id;\n let object = {\n id: link.id,\n link_type_id: linkTypeId + '-' + direction,\n transaction_group_id: responses[1].data.data.id,\n transaction_journal_id: journal.transaction_journal_id,\n description: journal.description,\n type: journal.type,\n currency_code: journal.currency_code,\n amount: journal.amount\n };\n this.transactions[index].links.push(object);\n this.originalTransactions[index].links.push(object);\n });\n },\n /**\n * Get API value.\n */\n getAllowedOpposingTypes: function () {\n axios.get('./api/v1/configuration/firefly.allowed_opposing_types')\n .then(response => {\n this.allowedOpposingTypes = response.data.data.value;\n });\n },\n /**\n * Get API value.\n */\n getCustomFields: function () {\n axios.get('./api/v1/preferences/transaction_journal_optional_fields').then(response => {\n this.customFields = response.data.data.attributes.data;\n });\n },\n uploadedAttachment: function (payload) {\n //console.log('event: uploadedAttachment');\n //console.log(payload);\n this.submittedAttachments = 0;\n // console.log('Triggered uploadedAttachment(' + journalId + ')');\n let key = 'str' + payload;\n this.submittedAttCount[key] = 1;\n let count = Object.keys(this.submittedAttCount).length;\n //console.log('Count is now ' + count);\n //console.log('Length is ' + this.transactions.length);\n if (count === this.transactions.length) {\n //console.log('Got them all!');\n // mark the attachments as stored:\n this.submittedAttachments = 1;\n }\n },\n storeLocation: function (payload) {\n this.transactions[payload.index].zoom_level = payload.zoomLevel;\n this.transactions[payload.index].longitude = payload.lng;\n this.transactions[payload.index].latitude = payload.lat;\n },\n storeAccountValue: function (payload) {\n let direction = payload.direction;\n let index = payload.index;\n this.transactions[index][direction + '_account_id'] = payload.id;\n this.transactions[index][direction + '_account_type'] = payload.type;\n this.transactions[index][direction + '_account_name'] = payload.name;\n },\n storeDate: function (payload) {\n this.date = payload.date;\n },\n storeField: function (payload) {\n let field = payload.field;\n if ('category' === field) {\n field = 'category_name';\n }\n this.transactions[payload.index][field] = payload.value;\n\n },\n removeTransaction: function (payload) {\n // console.log('removeTransaction()');\n // console.log('length : ' + this.transactions.length);\n // console.log('Remove index: ' + payload.index);\n\n let index = 0;\n for (let i in this.transactions) {\n if (this.transactions.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n // console.log('Now at index: ' + i);\n if (index === payload.index) {\n this.forceTransactionSubmission = true;\n //console.log('Delete!');\n this.transactions.splice(index, 1);\n //console.log(delete this.transactions[i]);\n }\n index++;\n }\n }\n $('#transactionTabs li:first-child a').tab('show');\n // console.log(this.transactions);\n // this.transactions.splice(payload.index, 1);\n // console.log('length: ' + this.transactions.length);\n\n // this.originalTransactions.splice(payload.index, 1);\n // this kills the original transactions.\n //this.originalTransactions = [];\n },\n storeGroupTitle: function (payload) {\n this.groupTitle = payload;\n },\n selectedAttachments: function (payload) {\n //console.log('Now in selectedAttachments()');\n for (let i in this.transactions) {\n if (this.transactions.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n // console.log('Payload is');\n // console.log(payload);\n if (parseInt(this.transactions[i].transaction_journal_id) === parseInt(payload.id)) {\n // console.log('selectedAttachments ' + payload);\n this.transactions[i].selectedAttachments = true;\n }\n }\n }\n },\n addTransaction: function (event) {\n event.preventDefault();\n let newTransaction = getDefaultTransaction();\n newTransaction.errors = getDefaultErrors();\n this.transactions.push(newTransaction);\n },\n submitTransaction: function (event) {\n // console.log('submitTransaction()');\n event.preventDefault();\n this.enableSubmit = false;\n let submission = {transactions: []};\n\n // parse data to see if we should submit anything at all:\n let shouldSubmit = false;\n let shouldLinks = false;\n let shouldUpload = false;\n\n // if the group title has changed, should submit:\n if (this.groupTitle !== this.originalGroupTitle) {\n submission.group_title = this.groupTitle;\n shouldSubmit = true;\n }\n\n // if something with the group title:\n let newTransactionCount = this.transactions.length;\n if (newTransactionCount > 1 && typeof submission.group_title === 'undefined' && (null === this.originalGroupTitle || '' === this.originalGroupTitle)) {\n submission.group_title = this.transactions[0].description;\n shouldSubmit = true;\n }\n\n // loop each transaction (edited by the user):\n // console.log('Start of loop submitTransaction');\n for (let i in this.transactions) {\n // console.log('Index ' + i);\n if (this.transactions.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n // console.log('Has index ' + i);\n // original transaction present:\n let currentTransaction = this.transactions[i];\n let originalTransaction = this.originalTransactions.hasOwnProperty(i) ? this.originalTransactions[i] : {};\n // the difference:\n let diff = {};\n\n // compare basic fields:\n let basicFields = ['description', 'source_account_id', 'source_account_name', 'destination_account_id', 'destination_account_name', 'amount', 'foreign_amount', 'foreign_currency_id', 'category_name', 'budget_id', 'bill_id', 'interest_date', 'book_date', 'due_date', 'payment_date', 'invoice_date', 'external_url', 'internal_reference', 'external_id', 'notes', 'zoom_level', 'longitude', 'latitude'];\n\n // source and destination are overruled in some cases:\n if (i > 0) {\n // console.log('i > 0');\n diff.type = this.transactionType.toLowerCase();\n if ('deposit' === this.transactionType.toLowerCase() || 'transfer' === this.transactionType.toLowerCase()) {\n // set destination to be whatever is in transaction zero:\n // of the edited transaction\n currentTransaction.destination_account_name = this.transactions[0].destination_account_name;\n currentTransaction.destination_account_id = this.transactions[0].destination_account_id;\n // console.log('Destination is now: #' + currentTransaction.destination_account_id + ': ' + currentTransaction.destination_account_name);\n }\n\n if ('withdrawal' === this.transactionType.toLowerCase() || 'transfer' === this.transactionType.toLowerCase()) {\n // set source to be whatever is in transaction zero:\n currentTransaction.source_account_name = this.transactions[0].source_account_name;\n currentTransaction.source_account_id = this.transactions[0].source_account_id;\n // console.log('Source is now: #' + currentTransaction.source_account_id + ': ' + currentTransaction.source_account_name);\n }\n }\n\n // loop the basic fields and verify\n for (let ii in basicFields) {\n if (basicFields.hasOwnProperty(ii) && /^0$|^[1-9]\\d*$/.test(ii) && ii <= 4294967294) {\n let fieldName = basicFields[ii];\n // console.log('Now at field ' + fieldName);\n let submissionFieldName = fieldName;\n\n // if the original is undefined and the new one is null, just skip it.\n if (currentTransaction[fieldName] === null && 'undefined' === typeof originalTransaction[fieldName]) {\n // console.log('Will continue and skip');\n continue;\n }\n\n if (currentTransaction[fieldName] !== originalTransaction[fieldName] || true === this.forceTransactionSubmission) {\n // console.log('we continue');\n // some fields are ignored:\n if ('foreign_amount' === submissionFieldName && '' === currentTransaction[fieldName]) {\n // console.log('we skip!');\n continue;\n }\n if ('foreign_currency_id' === submissionFieldName && 0 === currentTransaction[fieldName]) {\n // console.log('we skip!');\n continue;\n }\n if ('foreign_currency_id' === submissionFieldName && '0' === currentTransaction[fieldName]) {\n // console.log('we skip!');\n continue;\n }\n\n // some field names may need to be different. little basic but it works:\n if ('source_account_id' === submissionFieldName) {\n submissionFieldName = 'source_id';\n }\n if ('source_account_name' === submissionFieldName) {\n submissionFieldName = 'source_name';\n }\n if ('destination_account_id' === submissionFieldName) {\n submissionFieldName = 'destination_id';\n }\n if ('destination_account_name' === submissionFieldName) {\n submissionFieldName = 'destination_name';\n }\n\n // otherwise save them and remember them for submission:\n diff[submissionFieldName] = currentTransaction[fieldName];\n shouldSubmit = true;\n //console.log('Should submit is now TRUE');\n }\n }\n }\n\n // tags different?\n if (JSON.stringify(currentTransaction.tags) !== JSON.stringify(originalTransaction.tags)) {\n diff.tags = [];\n if (0 !== currentTransaction.tags.length) {\n for (let ii in currentTransaction.tags) {\n if (currentTransaction.tags.hasOwnProperty(ii) && /^0$|^[1-9]\\d*$/.test(ii) && ii <= 4294967294) {\n let currentTag = currentTransaction.tags[ii];\n if (typeof currentTag === 'object' && null !== currentTag) {\n diff.tags.push(currentTag.text);\n }\n if (typeof currentTag === 'string') {\n diff.tags.push(currentTag);\n }\n }\n }\n }\n shouldSubmit = true;\n }\n\n // compare links:\n let newLinks = this.compareLinks(currentTransaction.links);\n let originalLinks = this.compareLinks(originalTransaction.links);\n if (newLinks !== originalLinks) {\n shouldLinks = true;\n }\n if (typeof currentTransaction.selectedAttachments !== 'undefined' && true === currentTransaction.selectedAttachments) {\n shouldUpload = true;\n }\n if (true === shouldSubmit) {\n // set the date to whatever the date is:\n diff.date = this.date;\n }\n\n if (this.date !== this.originalDate) {\n shouldSubmit = true;\n diff.date = this.date;\n }\n\n if (Object.keys(diff).length === 0 && newTransactionCount > 1) {\n // Will submit just the ID!\n diff.transaction_journal_id = originalTransaction.transaction_journal_id;\n submission.transactions.push(lodashClonedeep(diff));\n shouldSubmit = true;\n } else if (Object.keys(diff).length !== 0) {\n // will submit all:\n diff.transaction_journal_id = originalTransaction.transaction_journal_id ?? 0;\n submission.transactions.push(lodashClonedeep(diff));\n shouldSubmit = true;\n }\n // console.log('Should submit index ' + i + '?');\n // console.log(shouldSubmit);\n }\n }\n this.submitUpdate(submission, shouldSubmit, shouldLinks, shouldUpload);\n },\n\n submitData: function (shouldSubmit, submission) {\n // console.log('submitData');\n // console.log(submission);\n if (!shouldSubmit) {\n // console.log('No need to submit transaction.');\n return Promise.resolve({});\n }\n\n const url = './api/v1/transactions/' + this.groupId;\n return axios.put(url, submission);\n\n },\n handleSubmissionResponse: function (response) {\n //console.log('handleSubmissionResponse()');\n // report the transaction is submitted.\n this.submittedTransaction = true;\n let journals = [];\n\n // meanwhile, store the ID and the title in some easy to access variables.\n if (typeof response.data !== 'undefined') {\n this.returnedGroupId = parseInt(response.data.data.id) ?? null;\n this.returnedGroupTitle = null === response.data.data.attributes.group_title ? response.data.data.attributes.transactions[0].description : response.data.data.attributes.group_title;\n\n let result = response.data.data.attributes.transactions\n for (let i in result) {\n if (result.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n journals.push(parseInt(result[i].transaction_journal_id));\n }\n }\n } else {\n for (let i in this.transactions) {\n if (this.transactions.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n journals.push(this.transactions[i].transaction_journal_id);\n }\n }\n }\n journals = journals.reverse();\n return Promise.resolve({journals: journals});\n },\n submitLinks: function (shouldSubmit) {\n //console.log('submitLinks()');\n if (!shouldSubmit) {\n //console.log('no need!');\n return Promise.resolve({});\n }\n return this.deleteAllOriginalLinks().then(() => this.submitNewLinks());\n },\n submitAttachments: function (shouldSubmit, response) {\n // console.log('submitAttachments');\n if (!shouldSubmit) {\n // console.log('no need!');\n this.submittedAttachments = 1;\n return Promise.resolve({});\n }\n //console.log('Do upload thing!');\n //console.log(response);\n let anyAttachments = false;\n for (let i in this.transactions) {\n if (this.transactions.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n let transaction = this.transactions[i];\n let journalId = transaction.transaction_journal_id;\n //console.log(journalId);\n if (typeof response !== 'undefined') {\n journalId = response.journals[i]\n }\n\n let hasAttachments = transaction.selectedAttachments;\n this.transactions[i].transaction_journal_id = journalId;\n this.transactions[i].uploadTrigger = true;\n //console.log('Decided that ' + journalId);\n //console.log('upload index ' + i);\n //console.log(hasAttachments);\n if (hasAttachments) {\n anyAttachments = true;\n }\n }\n }\n if (true === anyAttachments) {\n this.submittedAttachments = 0;\n }\n },\n finaliseSubmission: function () {\n // console.log('finaliseSubmission (' + this.submittedAttachments + ')');\n if (0 === this.submittedAttachments) {\n return;\n }\n // console.log('continue (' + this.submittedAttachments + ')');\n // console.log(this.stayHere);\n // console.log(this.inError);\n if (true === this.stayHere && false === this.inError) {\n //console.log('no error + no changes + no redirect');\n // show message:\n this.errorMessage = '';\n this.warningMessage = '';\n this.successMessage = this.$t('firefly.transaction_updated_link', {ID: this.groupId, title: this.returnedGroupTitle});\n\n }\n // no error + changes + redirect\n if (false === this.stayHere && false === this.inError) {\n //console.log('no error + changes + redirect');\n window.location.href = (window.previousURL ?? '/') + '?transaction_group_id=' + this.groupId + '&message=updated';\n }\n\n this.enableSubmit = true;\n this.submittedAttachments = -1;\n this.inError = false;\n\n for (let i in this.transactions) {\n if (this.transactions.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n if (this.transactions.hasOwnProperty(i)) {\n this.transactions[i].clearTrigger = true;\n }\n }\n }\n },\n submitUpdate: function (submission, shouldSubmit, shouldLinks, shouldUpload) {\n // console.log('submitUpdate()');\n this.inError = false;\n\n this.submitData(shouldSubmit, submission)\n .then(this.handleSubmissionResponse) // error or OK\n .then(response => {\n return Promise.all([\n this.submitLinks(shouldLinks, response),\n this.submitAttachments(shouldUpload, response)]);\n }\n )\n .then(this.finaliseSubmission)\n .catch(this.handleSubmissionError);\n\n\n // if (shouldLinks) {\n // promises.push(this.submitTransactionLinks())\n // }\n // if (!shouldLinks) {\n // promises.push(new Promise((resolve) => {\n // resolve({});\n // }));\n // }\n // if (shouldUpload) {\n // console.log('Attachments = Respond to promise from shouldSubmit/!shouldSubmit');\n // promises.push(submissionPromise.then(result => this.uploadAttachments(result)));\n // }\n // if (!shouldUpload) {\n // promises.push(new Promise((resolve) => {\n // resolve({});\n // }));\n // }\n\n // all promises fulfilled:\n // console.log('All promises done, process results?');\n // Promise.all(promises).then(function (responses) {\n // console.log('I believe all ' + promises.length + ' promises fulfilled!');\n // }).catch(function (errors) {\n // console.log('Somebody errored?');\n // });\n\n //\n //\n //\n // if (shouldSubmit) {\n // console.log('shouldSubmit');\n // // do submission:\n // // console.log(JSON.stringify(submission));\n // // console.log(submission);\n // axios.put(url, submission)\n // .then(response => {\n // // console.log('Response is OK!');\n // // report the transaction is submitted.\n // this.submittedTransaction = true;\n //\n // // submit links and attachments (can only be done when the transaction is created)\n // if (shouldLinks) {\n // console.log('Submit links using return from server:');\n // this.submitTransactionLinks();\n // }\n // if (shouldUpload) {\n // // console.log('Need to upload.');\n // this.submitAttachments(response.data.data.attributes.transactions);\n // }\n // // meanwhile, store the ID and the title in some easy to access variables.\n // this.returnedGroupId = parseInt(response.data.data.id);\n // this.returnedGroupTitle = null === response.data.data.attributes.group_title ? response.data.data.attributes.transactions[0].description : response.data.data.attributes.group_title;\n // }\n // )\n // .catch(error => {\n // console.log('error :(');\n // console.log(error.response.data);\n // // oh noes Firefly III has something to bitch about.\n // this.enableSubmit = true;\n // // report the transaction is submitted.\n // this.submittedTransaction = true;\n // // // also report attachments and links are submitted:\n // this.submittedAttachments = true;\n // this.submittedLinks = true;\n // //\n // // but report an error because error:\n // this.inError = true;\n // this.parseErrors(error.response.data);\n // }\n // );\n // }\n // if (!shouldSubmit && shouldLinks) {\n // // update links\n // console.log('Submit links using whatever is here:');\n // this.submitTransactionLinks();\n // }\n // if (!shouldSubmit && shouldUpload) {\n // // upload\n // // console.log('Need to upload.');\n // this.submitAttachments(this.transactions);\n // }\n },\n compareLinks: function (array) {\n let compare = [];\n for (let i in array) {\n if (array.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n compare.push(\n {\n amount: array[i].amount,\n currency_code: array[i].currency_code,\n description: array[i].description,\n link_type_id: array[i].link_type_id,\n transaction_group_id: array[i].transaction_group_id,\n type: array[i].type,\n }\n );\n }\n }\n return JSON.stringify(compare);\n },\n // uploadAttachments: function (result) {\n// See reference nr. 6\n // if (0 === Object.keys(result).length) {\n //\n // for (let i in this.transactions) {\n // if (this.transactions.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n //\n // //console.log('updateField(' + i + ', transaction_journal_id, ' + result[i].transaction_journal_id + ')');\n // this.updateField({index: i, field: 'transaction_journal_id', value: result[i].transaction_journal_id});\n // }\n // }\n // //console.log('Transactions not changed, use original objects.');\n // } else {\n // //console.log('Transactions changed!');\n // }\n // this.submittedAttachments = 0;\n // },\n\n parseErrors: function (errors) {\n for (let i in this.transactions) {\n if (this.transactions.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n this.resetErrors({index: i});\n }\n }\n this.successMessage = '';\n this.errorMessage = this.$t('firefly.errors_submission');\n if (typeof errors.errors === 'undefined') {\n this.successMessage = '';\n this.errorMessage = errors.message;\n }\n\n let payload;\n let transactionIndex;\n let fieldName;\n\n // fairly basic way of exploding the error array.\n for (const key in errors.errors) {\n // console.log('Error index: \"' + key + '\"');\n if (errors.errors.hasOwnProperty(key)) {\n if (key === 'group_title') {\n this.groupTitleErrors = errors.errors[key];\n continue;\n }\n if (key !== 'group_title') {\n // lol dumbest way to explode \"transactions.0.something\" ever.\n transactionIndex = parseInt(key.split('.')[1]);\n\n fieldName = key.split('.')[2];\n\n // set error in this object thing.\n // console.log('The errors in key \"' + key + '\" are');\n // console.log(errors.errors[key]);\n switch (fieldName) {\n case 'amount':\n case 'description':\n case 'date':\n case 'tags':\n payload = {index: transactionIndex, field: fieldName, errors: errors.errors[key]};\n this.setTransactionError(payload);\n break;\n case 'budget_id':\n payload = {index: transactionIndex, field: 'budget', errors: errors.errors[key]};\n this.setTransactionError(payload);\n break;\n case 'bill_id':\n payload = {index: transactionIndex, field: 'bill', errors: errors.errors[key]};\n this.setTransactionError(payload);\n break;\n case 'piggy_bank_id':\n payload = {index: transactionIndex, field: 'piggy_bank', errors: errors.errors[key]};\n this.setTransactionError(payload);\n break;\n case 'category_name':\n payload = {index: transactionIndex, field: 'category', errors: errors.errors[key]};\n this.setTransactionError(payload);\n break;\n case 'source_name':\n case 'source_id':\n payload = {index: transactionIndex, field: 'source', errors: errors.errors[key]};\n this.setTransactionError(payload);\n break;\n case 'destination_name':\n case 'destination_id':\n payload = {index: transactionIndex, field: 'destination', errors: errors.errors[key]};\n this.setTransactionError(payload);\n break;\n case 'foreign_amount':\n case 'foreign_currency':\n payload = {index: transactionIndex, field: 'foreign_amount', errors: errors.errors[key]};\n this.setTransactionError(payload);\n break;\n }\n }\n // unique some things\n if (typeof this.transactions[transactionIndex] !== 'undefined') {\n //this.transactions[transactionIndex].errors.source = Array.from(new Set(this.transactions[transactionIndex].errors.source));\n //this.transactions[transactionIndex].errors.destination = Array.from(new Set(this.transactions[transactionIndex].errors.destination));\n }\n\n }\n }\n },\n setTransactionError: function (payload) {\n this.transactions[payload.index].errors[payload.field] = payload.errors;\n },\n resetErrors(payload) {\n this.transactions[payload.index].errors = lodashClonedeep(getDefaultErrors());\n },\n\n deleteOriginalLinks: function (transaction) {\n let promises = [];\n for (let i in transaction.links) {\n if (transaction.links.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n let current = transaction.links[i];\n let url = '/api/v1/transaction_links/' + current.id;\n promises.push(axios.delete(url));\n }\n }\n return Promise.all(promises);\n },\n\n deleteAllOriginalLinks: function () {\n //console.log('deleteAllOriginalLinks()');\n // loop to delete old transaction links.\n let promises = [];\n for (let i in this.transactions) {\n if (this.transactions.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n // original transaction present?\n let currentTransaction = this.transactions[i];\n let originalTransaction = this.originalTransactions.hasOwnProperty(i) ? this.originalTransactions[i] : {};\n let newLinks = this.compareLinks(currentTransaction.links);\n let originalLinks = this.compareLinks(originalTransaction.links);\n if (newLinks !== originalLinks) {\n if ('[]' !== originalLinks) {\n promises.push(this.deleteOriginalLinks(originalTransaction));\n }\n } else {\n promises.push(Promise.resolve({}));\n }\n }\n }\n return Promise.all(promises);\n },\n submitNewLinks: function () {\n //console.log('submitNewLinks()');\n let promises = [];\n for (let i in this.transactions) {\n if (this.transactions.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n let currentTransaction = this.transactions[i];\n for (let ii in currentTransaction.links) {\n if (currentTransaction.links.hasOwnProperty(ii) && /^0$|^[1-9]\\d*$/.test(ii) && ii <= 4294967294) {\n let currentLink = currentTransaction.links[ii];\n let linkObject = {\n inward_id: currentTransaction.transaction_journal_id,\n outward_id: currentTransaction.transaction_journal_id,\n link_type_id: 'something'\n };\n\n let parts = currentLink.link_type_id.split('-');\n linkObject.link_type_id = parts[0];\n if ('inward' === parts[1]) {\n linkObject.inward_id = currentLink.transaction_journal_id;\n }\n if ('outward' === parts[1]) {\n linkObject.outward_id = currentLink.transaction_journal_id;\n }\n promises.push(axios.post('./api/v1/transaction_links', linkObject));\n }\n }\n }\n }\n return Promise.all(promises);\n },\n /**\n * Submit transaction links.\n */\n submitTransactionLinksX: function () {\n //return this.deleteAllOriginalLinks().then(() => this.submitNewLinks());\n },\n finalizeSubmitX: function () {\n // console.log('now in finalizeSubmit()');\n // console.log('submittedTransaction : ' + this.submittedTransaction);\n // console.log('submittedLinks : ' + this.submittedLinks);\n // console.log('submittedAttachments : ' + this.submittedAttachments);\n\n if (this.submittedTransaction && this.submittedAttachments && this.submittedLinks) {\n // console.log('all true');\n // console.log('inError = ' + this.inError);\n // console.log('stayHere = ' + this.stayHere);\n // console.log('returnedGroupId = ' + this.returnedGroupId);\n\n // no error + no changes + no redirect\n if (true === this.stayHere && false === this.inError && 0 === this.returnedGroupId) {\n // console.log('no error + no changes + no redirect');\n // show message:\n this.errorMessage = '';\n this.successMessage = '';\n // maybe nothing changed in post\n this.warningMessage = this.$t('firefly.transaction_updated_no_changes', {ID: this.returnedGroupId, title: this.returnedGroupTitle});\n }\n\n // no error + no changes + redirect\n if (false === this.stayHere && false === this.inError && 0 === this.returnedGroupId) {\n // console.log('no error + no changes + redirect');\n window.location.href = (window.previousURL ?? '/') + '?transaction_group_id=' + this.groupId + '&message=no_change';\n }\n // no error + changes + no redirect\n if (true === this.stayHere && false === this.inError && 0 !== this.returnedGroupId) {\n // console.log('no error + changes + redirect');\n // show message:\n this.errorMessage = '';\n this.warningMessage = '';\n // maybe nothing changed in post\n this.successMessage = this.$t('firefly.transaction_updated_link', {ID: this.returnedGroupId, title: this.returnedGroupTitle});\n }\n\n // no error + changes + redirect\n if (false === this.stayHere && false === this.inError && 0 !== this.returnedGroupId) {\n // console.log('no error + changes + redirect');\n window.location.href = (window.previousURL ?? '/') + '?transaction_group_id=' + this.groupId + '&message=updated';\n }\n // console.log('end of the line');\n // enable flags:\n this.enableSubmit = true;\n this.submittedTransaction = false;\n this.submittedLinks = false;\n this.submittedAttachments = false;\n this.inError = false;\n\n // reset attachments (always do this)\n for (let i in this.transactions) {\n if (this.transactions.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n if (this.transactions.hasOwnProperty(i)) {\n// See reference nr. 7\n }\n }\n }\n }\n }\n }\n}\n</script>\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Edit.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Edit.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Edit.vue?vue&type=template&id=7a75420e&\"\nimport script from \"./Edit.vue?vue&type=script&lang=js&\"\nexport * from \"./Edit.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',[_c('Alert',{attrs:{\"message\":_vm.errorMessage,\"type\":\"danger\"}}),_vm._v(\" \"),_c('Alert',{attrs:{\"message\":_vm.successMessage,\"type\":\"success\"}}),_vm._v(\" \"),_c('Alert',{attrs:{\"message\":_vm.warningMessage,\"type\":\"warning\"}}),_vm._v(\" \"),_c('form',{attrs:{\"autocomplete\":\"off\"},on:{\"submit\":_vm.submitTransaction}},[_c('SplitPills',{attrs:{\"transactions\":_vm.transactions,\"count\":_vm.transactions.length}}),_vm._v(\" \"),_c('div',{staticClass:\"tab-content\"},_vm._l((this.transactions),function(transaction,index){return _c('SplitForm',{key:transaction.transaction_journal_id,attrs:{\"index\":index,\"key\":transaction.transaction_journal_id,\"transaction\":transaction,\"date\":_vm.date,\"count\":_vm.transactions.length,\"transaction-type\":_vm.transactionType,\"source-allowed-types\":_vm.sourceAllowedTypes,\"allowed-opposing-types\":_vm.allowedOpposingTypes,\"custom-fields\":_vm.customFields,\"destination-allowed-types\":_vm.destinationAllowedTypes,\"allow-switch\":false},on:{\"uploaded-attachments\":function($event){return _vm.uploadedAttachment($event)},\"set-marker-location\":function($event){return _vm.storeLocation($event)},\"set-account\":function($event){return _vm.storeAccountValue($event)},\"set-date\":function($event){return _vm.storeDate($event)},\"set-field\":function($event){return _vm.storeField($event)},\"remove-transaction\":function($event){return _vm.removeTransaction($event)},\"selected-attachments\":function($event){return _vm.selectedAttachments($event)}}})}),1),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12\"},[(_vm.transactions.length > 1)?_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('TransactionGroupTitle',{attrs:{\"errors\":this.groupTitleErrors},on:{\"set-group-title\":function($event){return _vm.storeGroupTitle($event)}},model:{value:(this.groupTitle),callback:function ($$v) {_vm.$set(this, \"groupTitle\", $$v)},expression:\"this.groupTitle\"}})],1)])])]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12\"},[_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"text-xs d-none d-lg-block d-xl-block\"},[_vm._v(\"\\n  \\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-outline-primary btn-block\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.addTransaction}},[_c('span',{staticClass:\"far fa-clone\"}),_vm._v(\"\\n \"+_vm._s(_vm.$t('firefly.add_another_split'))+\"\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"text-xs d-none d-lg-block d-xl-block\"},[_vm._v(\"\\n  \\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-info btn-block\",attrs:{\"disabled\":!_vm.enableSubmit},on:{\"click\":_vm.submitTransaction}},[(_vm.enableSubmit)?_c('span',[_c('span',{staticClass:\"far fa-save\"}),_vm._v(\" \"+_vm._s(_vm.$t('firefly.update_transaction')))]):_vm._e(),_vm._v(\" \"),(!_vm.enableSubmit)?_c('span',[_c('span',{staticClass:\"fas fa-spinner fa-spin\"})]):_vm._e()])])]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_vm._v(\"\\n  \\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"form-check\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.stayHere),expression:\"stayHere\"}],staticClass:\"form-check-input\",attrs:{\"id\":\"stayHere\",\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.stayHere)?_vm._i(_vm.stayHere,null)>-1:(_vm.stayHere)},on:{\"change\":function($event){var $$a=_vm.stayHere,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.stayHere=$$a.concat([$$v]))}else{$$i>-1&&(_vm.stayHere=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.stayHere=$$c}}}}),_vm._v(\" \"),_c('label',{staticClass:\"form-check-label\",attrs:{\"for\":\"stayHere\"}},[_c('span',{staticClass:\"small\"},[_vm._v(_vm._s(_vm.$t('firefly.after_update_create_another')))])])])])])])])])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\n * edit.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 store from \"../../components/store\";\nimport Edit from \"../../components/transactions/Edit\";\nimport Vue from \"vue\";\n\nrequire('../../bootstrap');\n\nVue.config.productionTip = false;\n// i18n\nlet i18n = require('../../i18n');\n\nlet props = {};\nconst app = new Vue({\n i18n,\n store,\n render(createElement) {\n return createElement(Edit, {props: props});\n },\n beforeCreate() {\n this.$store.commit('initialiseStore');\n this.$store.dispatch('updateCurrencyPreference');\n },\n }).$mount('#transactions_edit');\n","/*\n * transactions.js\n * Copyright (c) 2021 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\nexport function getDefaultErrors() {\n return {\n description: [],\n amount: [],\n source: [],\n destination: [],\n currency: [],\n foreign_currency: [],\n foreign_amount: [],\n date: [],\n custom_dates: [],\n budget: [],\n category: [],\n bill: [],\n tags: [],\n piggy_bank: [],\n internal_reference: [],\n external_url: [],\n notes: [],\n location: []\n };\n}\n\nexport function getDefaultTransaction() {\n return {\n // basic\n description: '',\n transaction_journal_id: 0,\n // accounts:\n source_account_id: null,\n source_account_name: null,\n source_account_type: null,\n\n source_account_currency_id: null,\n source_account_currency_code: null,\n source_account_currency_symbol: null,\n\n destination_account_id: null,\n destination_account_name: null,\n destination_account_type: null,\n\n destination_account_currency_id: null,\n destination_account_currency_code: null,\n destination_account_currency_symbol: null,\n attachments: false,\n selectedAttachments: false,\n uploadTrigger: false,\n clearTrigger: false,\n\n source_account: {\n id: 0,\n name: \"\",\n name_with_balance: \"\",\n type: \"\",\n currency_id: 0,\n currency_name: '',\n currency_code: '',\n currency_decimal_places: 2\n },\n destination_account: {\n id: 0,\n name: \"\",\n type: \"\",\n currency_id: 0,\n currency_name: '',\n currency_code: '',\n currency_decimal_places: 2\n },\n\n // amount:\n amount: '',\n currency_id: 0,\n foreign_amount: '',\n foreign_currency_id: 0,\n\n // meta data\n category: null,\n budget_id: 0,\n bill_id: 0,\n piggy_bank_id: 0,\n tags: [],\n\n // optional date fields (6x):\n interest_date: null,\n book_date: null,\n process_date: null,\n due_date: null,\n payment_date: null,\n invoice_date: null,\n\n // optional other fields:\n internal_reference: null,\n external_url: null,\n external_id: null,\n notes: null,\n\n // transaction links:\n links: [],\n // location:\n zoom_level: null,\n longitude: null,\n latitude: null,\n\n // error handling\n errors: {},\n }\n}\n\nexport function toW3CString(date) {\n // https://gist.github.com/tristanlins/6585391\n let year = date.getFullYear();\n let month = date.getMonth();\n month++;\n if (month < 10) {\n month = '0' + month;\n }\n let day = date.getDate();\n if (day < 10) {\n day = '0' + day;\n }\n let hours = date.getHours();\n if (hours < 10) {\n hours = '0' + hours;\n }\n let minutes = date.getMinutes();\n if (minutes < 10) {\n minutes = '0' + minutes;\n }\n let seconds = date.getSeconds();\n if (seconds < 10) {\n seconds = '0' + seconds;\n }\n let offset = -date.getTimezoneOffset();\n let offsetHours = Math.abs(Math.floor(offset / 60));\n let offsetMinutes = Math.abs(offset) - offsetHours * 60;\n if (offsetHours < 10) {\n offsetHours = '0' + offsetHours;\n }\n if (offsetMinutes < 10) {\n offsetMinutes = '0' + offsetMinutes;\n }\n let offsetSign = '+';\n if (offset < 0) {\n offsetSign = '-';\n }\n return year + '-' + month + '-' + day +\n 'T' + hours + ':' + minutes + ':' + seconds +\n offsetSign + offsetHours + ':' + offsetMinutes;\n}","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".vue-tags-input{display:block;max-width:100%!important}.ti-input,.vue-tags-input{border-radius:.25rem;width:100%}.ti-input{max-width:100%}.ti-new-tag-input{font-size:1rem}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/transactions/TransactionTags.vue\"],\"names\":[],\"mappings\":\"AAsHA,gBAGA,aAAA,CADA,wBAGA,CAEA,0BAHA,oBAAA,CAHA,UAUA,CAJA,UAEA,cAEA,CAEA,kBACA,cACA\",\"sourcesContent\":[\"<!--\\n - TransactionTags.vue\\n - Copyright (c) 2021 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=\\\"form-group\\\">\\n <div class=\\\"text-xs d-none d-lg-block d-xl-block\\\">\\n {{ $t('firefly.tags') }}\\n </div>\\n <div class=\\\"input-group\\\">\\n <vue-tags-input\\n v-model=\\\"currentTag\\\"\\n :add-only-from-autocomplete=\\\"false\\\"\\n :autocomplete-items=\\\"autocompleteItems\\\"\\n :tags=\\\"tags\\\"\\n :title=\\\"$t('firefly.tags')\\\"\\n v-bind:placeholder=\\\"$t('firefly.tags')\\\"\\n @tags-changed=\\\"newTags => this.tags = newTags\\\"\\n />\\n </div>\\n <span v-if=\\\"errors.length > 0\\\">\\n <span v-for=\\\"error in errors\\\" class=\\\"text-danger small\\\">{{ error }}<br/></span>\\n </span>\\n </div>\\n</template>\\n\\n<script>\\nimport VueTagsInput from \\\"@johmun/vue-tags-input\\\";\\nimport axios from \\\"axios\\\";\\n\\nexport default {\\n name: \\\"TransactionTags\\\",\\n components: {\\n VueTagsInput\\n },\\n props: ['value', 'index', 'errors'],\\n data() {\\n return {\\n autocompleteItems: [],\\n debounce: null,\\n tags: [],\\n currentTag: '',\\n updateTags: true, // the idea is that this is always true, except when the tags-function sets the value.\\n tagList: this.value,\\n };\\n },\\n created() {\\n let tags = [];\\n for (let i in this.value) {\\n if (this.value.hasOwnProperty(i) && /^0$|^[1-9]\\\\d*$/.test(i) && i <= 4294967294) {\\n tags.push({text: this.value[i]});\\n }\\n }\\n this.updateTags = false;\\n this.tags = tags;\\n },\\n watch: {\\n 'currentTag': 'initItems',\\n value: function (value) {\\n this.tagList = value;\\n },\\n tagList: function (value) {\\n // console.log('watch tagList');\\n this.$emit('set-field', {field: 'tags', index: this.index, value: value});\\n this.updateTags = false;\\n this.tags = value;\\n },\\n tags: function (value) {\\n if (this.updateTags) {\\n let shortList = [];\\n for (let key in value) {\\n if (value.hasOwnProperty(key)) {\\n shortList.push({text: value[key].text});\\n }\\n }\\n this.tagList = shortList;\\n }\\n this.updateTags = true;\\n }\\n },\\n methods: {\\n initItems() {\\n if (this.currentTag.length < 2) {\\n return;\\n }\\n const url = document.getElementsByTagName('base')[0].href + `api/v1/autocomplete/tags?query=${this.currentTag}`;\\n\\n clearTimeout(this.debounce);\\n this.debounce = setTimeout(() => {\\n axios.get(url).then(response => {\\n this.autocompleteItems = response.data.map(item => {\\n return {text: item.tag};\\n });\\n }).catch(() => console.warn('Oh. Something went wrong loading tags.'));\\n }, 300);\\n },\\n },\\n\\n\\n}\\n</script>\\n<style>\\n.vue-tags-input {\\n width: 100%;\\n max-width: 100% !important;\\n display: block;\\n border-radius: 0.25rem;\\n}\\n\\n.ti-input {\\n border-radius: 0.25rem;\\n max-width: 100%;\\n width: 100%;\\n}\\n\\n.ti-new-tag-input {\\n font-size: 1rem;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","<!--\n - Alert.vue\n - Copyright (c) 2021 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<template>\n <div v-if=\"message.length > 0\" :class=\"'alert alert-' + type + ' alert-dismissible'\">\n <button aria-hidden=\"true\" class=\"close\" data-dismiss=\"alert\" type=\"button\">×</button>\n <h5>\n <span v-if=\"'danger' === type\" class=\"icon fas fa-ban\"></span>\n <span v-if=\"'success' === type\" class=\"icon fas fa-thumbs-up\"></span>\n <span v-if=\"'danger' === type\">{{ $t(\"firefly.flash_error\") }}</span>\n <span v-if=\"'success' === type\">{{ $t(\"firefly.flash_success\") }}</span>\n </h5>\n <span v-html=\"message\"></span>\n </div>\n</template>\n<script>\nexport default {\n name: \"Alert\",\n props: ['message', 'type']\n}\n</script>","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Alert.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Alert.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Alert.vue?vue&type=template&id=45eef68c&\"\nimport script from \"./Alert.vue?vue&type=script&lang=js&\"\nexport * from \"./Alert.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 (_vm.message.length > 0)?_c('div',{class:'alert alert-' + _vm.type + ' alert-dismissible'},[_c('button',{staticClass:\"close\",attrs:{\"aria-hidden\":\"true\",\"data-dismiss\":\"alert\",\"type\":\"button\"}},[_vm._v(\"×\")]),_vm._v(\" \"),_c('h5',[('danger' === _vm.type)?_c('span',{staticClass:\"icon fas fa-ban\"}):_vm._e(),_vm._v(\" \"),('success' === _vm.type)?_c('span',{staticClass:\"icon fas fa-thumbs-up\"}):_vm._e(),_vm._v(\" \"),('danger' === _vm.type)?_c('span',[_vm._v(_vm._s(_vm.$t(\"firefly.flash_error\")))]):_vm._e(),_vm._v(\" \"),('success' === _vm.type)?_c('span',[_vm._v(_vm._s(_vm.$t(\"firefly.flash_success\")))]):_vm._e()]),_vm._v(\" \"),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.message)}})]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:'tab-pane' + (0 === _vm.index ? ' active' : ''),attrs:{\"id\":'split_' + _vm.index}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('firefly.basic_journal_information'))+\"\\n \"),(_vm.count > 1)?_c('span',[_vm._v(\"(\"+_vm._s(_vm.index + 1)+\" / \"+_vm._s(_vm.count)+\") \")]):_vm._e()]),_vm._v(\" \"),(_vm.count>1)?_c('div',{staticClass:\"card-tools\"},[_c('button',{staticClass:\"btn btn-danger btn-xs\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.removeTransaction}},[_c('span',{staticClass:\"fas fa-trash-alt\"})])]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('TransactionDescription',_vm._g({attrs:{\"errors\":_vm.transaction.errors.description,\"index\":_vm.index},model:{value:(_vm.transaction.description),callback:function ($$v) {_vm.$set(_vm.transaction, \"description\", $$v)},expression:\"transaction.description\"}},_vm.$listeners))],1)]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-xl-5 col-lg-5 col-md-10 col-sm-12 col-xs-12\"},[_c('TransactionAccount',_vm._g({attrs:{\"destination-allowed-types\":_vm.destinationAllowedTypes,\"errors\":_vm.transaction.errors.source,\"index\":_vm.index,\"source-allowed-types\":_vm.sourceAllowedTypes,\"transaction-type\":_vm.transactionType,\"direction\":\"source\"},model:{value:(_vm.sourceAccount),callback:function ($$v) {_vm.sourceAccount=$$v},expression:\"sourceAccount\"}},_vm.$listeners))],1),_vm._v(\" \"),_c('div',{staticClass:\"col-xl-2 col-lg-2 col-md-2 col-sm-12 text-center d-none d-sm-block\"},[(0 === _vm.index && _vm.allowSwitch)?_c('SwitchAccount',_vm._g({attrs:{\"index\":_vm.index,\"transaction-type\":_vm.transactionType}},_vm.$listeners)):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"col-xl-5 col-lg-5 col-md-12 col-sm-12 col-xs-12\"},[_c('TransactionAccount',_vm._g({attrs:{\"destination-allowed-types\":_vm.destinationAllowedTypes,\"errors\":_vm.transaction.errors.destination,\"index\":_vm.index,\"transaction-type\":_vm.transactionType,\"source-allowed-types\":_vm.sourceAllowedTypes,\"direction\":\"destination\"},model:{value:(_vm.destinationAccount),callback:function ($$v) {_vm.destinationAccount=$$v},expression:\"destinationAccount\"}},_vm.$listeners))],1)]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-xl-5 col-lg-5 col-md-10 col-sm-12 col-xs-12\"},[_c('TransactionAmount',_vm._g({attrs:{\"amount\":_vm.transaction.amount,\"destination-currency-symbol\":this.transaction.destination_account_currency_symbol,\"errors\":_vm.transaction.errors.amount,\"index\":_vm.index,\"source-currency-symbol\":this.transaction.source_account_currency_symbol,\"transaction-type\":this.transactionType}},_vm.$listeners))],1),_vm._v(\" \"),_c('div',{staticClass:\"col-xl-2 col-lg-2 col-md-2 col-sm-12 text-center d-none d-sm-block\"},[_c('TransactionForeignCurrency',_vm._g({attrs:{\"destination-currency-id\":this.transaction.destination_account_currency_id,\"index\":_vm.index,\"selected-currency-id\":this.transaction.foreign_currency_id,\"source-currency-id\":this.transaction.source_account_currency_id,\"transaction-type\":this.transactionType},model:{value:(_vm.transaction.foreign_currency_id),callback:function ($$v) {_vm.$set(_vm.transaction, \"foreign_currency_id\", $$v)},expression:\"transaction.foreign_currency_id\"}},_vm.$listeners))],1),_vm._v(\" \"),_c('div',{staticClass:\"col-xl-5 col-lg-5 col-md-12 col-sm-12 col-xs-12\"},[_c('TransactionForeignAmount',_vm._g({attrs:{\"destination-currency-id\":this.transaction.destination_account_currency_id,\"errors\":_vm.transaction.errors.foreign_amount,\"index\":_vm.index,\"selected-currency-id\":this.transaction.foreign_currency_id,\"source-currency-id\":this.transaction.source_account_currency_id,\"transaction-type\":this.transactionType},model:{value:(_vm.transaction.foreign_amount),callback:function ($$v) {_vm.$set(_vm.transaction, \"foreign_amount\", $$v)},expression:\"transaction.foreign_amount\"}},_vm.$listeners))],1)]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-xl-5 col-lg-5 col-md-12 col-sm-12 col-xs-12\"},[_c('TransactionDate',_vm._g({attrs:{\"date\":_vm.splitDate,\"errors\":_vm.transaction.errors.date,\"index\":_vm.index}},_vm.$listeners))],1),_vm._v(\" \"),_c('div',{staticClass:\"col-xl-5 col-lg-5 col-md-12 col-sm-12 col-xs-12 offset-xl-2 offset-lg-2\"},[_c('TransactionCustomDates',_vm._g({attrs:{\"book-date\":_vm.transaction.book_date,\"custom-fields\":_vm.customFields,\"due-date\":_vm.transaction.due_date,\"errors\":_vm.transaction.errors.custom_dates,\"index\":_vm.index,\"interest-date\":_vm.transaction.interest_date,\"invoice-date\":_vm.transaction.invoice_date,\"payment-date\":_vm.transaction.payment_date,\"process-date\":_vm.transaction.process_date},on:{\"update:customFields\":function($event){_vm.customFields=$event},\"update:custom-fields\":function($event){_vm.customFields=$event}}},_vm.$listeners))],1)])])])])]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('firefly.transaction_journal_meta'))+\"\\n \"),(_vm.count > 1)?_c('span',[_vm._v(\"(\"+_vm._s(_vm.index + 1)+\" / \"+_vm._s(_vm.count)+\") \")]):_vm._e()])]),_vm._v(\" \"),_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12\"},[(!('Transfer' === _vm.transactionType || 'Deposit' === _vm.transactionType))?_c('TransactionBudget',_vm._g({attrs:{\"errors\":_vm.transaction.errors.budget,\"index\":_vm.index},model:{value:(_vm.transaction.budget_id),callback:function ($$v) {_vm.$set(_vm.transaction, \"budget_id\", $$v)},expression:\"transaction.budget_id\"}},_vm.$listeners)):_vm._e(),_vm._v(\" \"),_c('TransactionCategory',_vm._g({attrs:{\"errors\":_vm.transaction.errors.category,\"index\":_vm.index},model:{value:(_vm.transaction.category),callback:function ($$v) {_vm.$set(_vm.transaction, \"category\", $$v)},expression:\"transaction.category\"}},_vm.$listeners))],1),_vm._v(\" \"),_c('div',{staticClass:\"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12\"},[(!('Transfer' === _vm.transactionType || 'Deposit' === _vm.transactionType))?_c('TransactionBill',_vm._g({attrs:{\"errors\":_vm.transaction.errors.bill,\"index\":_vm.index},model:{value:(_vm.transaction.bill_id),callback:function ($$v) {_vm.$set(_vm.transaction, \"bill_id\", $$v)},expression:\"transaction.bill_id\"}},_vm.$listeners)):_vm._e(),_vm._v(\" \"),_c('TransactionTags',_vm._g({attrs:{\"errors\":_vm.transaction.errors.tags,\"index\":_vm.index},model:{value:(_vm.transaction.tags),callback:function ($$v) {_vm.$set(_vm.transaction, \"tags\", $$v)},expression:\"transaction.tags\"}},_vm.$listeners)),_vm._v(\" \"),(!('Withdrawal' === _vm.transactionType || 'Deposit' === _vm.transactionType))?_c('TransactionPiggyBank',_vm._g({attrs:{\"errors\":_vm.transaction.errors.piggy_bank,\"index\":_vm.index},model:{value:(_vm.transaction.piggy_bank_id),callback:function ($$v) {_vm.$set(_vm.transaction, \"piggy_bank_id\", $$v)},expression:\"transaction.piggy_bank_id\"}},_vm.$listeners)):_vm._e()],1)])])])])]),_vm._v(\" \"),(_vm.hasMetaFields)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('firefly.transaction_journal_extra'))+\"\\n \"),(_vm.count > 1)?_c('span',[_vm._v(\"(\"+_vm._s(_vm.index + 1)+\" / \"+_vm._s(_vm.count)+\") \")]):_vm._e()])]),_vm._v(\" \"),_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12\"},[_c('TransactionInternalReference',_vm._g({attrs:{\"custom-fields\":_vm.customFields,\"errors\":_vm.transaction.errors.internal_reference,\"index\":_vm.index},on:{\"update:customFields\":function($event){_vm.customFields=$event},\"update:custom-fields\":function($event){_vm.customFields=$event}},model:{value:(_vm.transaction.internal_reference),callback:function ($$v) {_vm.$set(_vm.transaction, \"internal_reference\", $$v)},expression:\"transaction.internal_reference\"}},_vm.$listeners)),_vm._v(\" \"),_c('TransactionExternalUrl',_vm._g({attrs:{\"custom-fields\":_vm.customFields,\"errors\":_vm.transaction.errors.external_url,\"index\":_vm.index},on:{\"update:customFields\":function($event){_vm.customFields=$event},\"update:custom-fields\":function($event){_vm.customFields=$event}},model:{value:(_vm.transaction.external_url),callback:function ($$v) {_vm.$set(_vm.transaction, \"external_url\", $$v)},expression:\"transaction.external_url\"}},_vm.$listeners)),_vm._v(\" \"),_c('TransactionNotes',_vm._g({attrs:{\"custom-fields\":_vm.customFields,\"errors\":_vm.transaction.errors.notes,\"index\":_vm.index},on:{\"update:customFields\":function($event){_vm.customFields=$event},\"update:custom-fields\":function($event){_vm.customFields=$event}},model:{value:(_vm.transaction.notes),callback:function ($$v) {_vm.$set(_vm.transaction, \"notes\", $$v)},expression:\"transaction.notes\"}},_vm.$listeners))],1),_vm._v(\" \"),_c('div',{staticClass:\"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12\"},[_c('TransactionAttachments',_vm._g({ref:\"attachments\",attrs:{\"custom-fields\":_vm.customFields,\"index\":_vm.index,\"transaction_journal_id\":_vm.transaction.transaction_journal_id,\"upload-trigger\":_vm.transaction.uploadTrigger,\"clear-trigger\":_vm.transaction.clearTrigger},on:{\"update:customFields\":function($event){_vm.customFields=$event},\"update:custom-fields\":function($event){_vm.customFields=$event}},model:{value:(_vm.transaction.attachments),callback:function ($$v) {_vm.$set(_vm.transaction, \"attachments\", $$v)},expression:\"transaction.attachments\"}},_vm.$listeners)),_vm._v(\" \"),_c('TransactionLocation',_vm._g({attrs:{\"custom-fields\":_vm.customFields,\"errors\":_vm.transaction.errors.location,\"index\":_vm.index},on:{\"update:customFields\":function($event){_vm.customFields=$event},\"update:custom-fields\":function($event){_vm.customFields=$event}},model:{value:(_vm.transaction.location),callback:function ($$v) {_vm.$set(_vm.transaction, \"location\", $$v)},expression:\"transaction.location\"}},_vm.$listeners)),_vm._v(\" \"),_c('TransactionLinks',_vm._g({attrs:{\"custom-fields\":_vm.customFields,\"index\":_vm.index},on:{\"update:customFields\":function($event){_vm.customFields=$event},\"update:custom-fields\":function($event){_vm.customFields=$event}},model:{value:(_vm.transaction.links),callback:function ($$v) {_vm.$set(_vm.transaction, \"links\", $$v)},expression:\"transaction.links\"}},_vm.$listeners))],1)])])])])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - TransactionDescription.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=\"form-group\">\n <vue-typeahead-bootstrap\n v-model=\"description\"\n :data=\"descriptions\"\n :inputClass=\"errors.length > 0 ? 'is-invalid' : ''\"\n :minMatchingChars=\"3\"\n :placeholder=\"$t('firefly.description')\"\n :serializer=\"item => item.description\"\n :showOnFocus=true\n autofocus\n inputName=\"description[]\"\n @input=\"lookupDescription\"\n >\n <template slot=\"append\">\n <div class=\"input-group-append\">\n <button class=\"btn btn-outline-secondary\" tabindex=\"-1\" type=\"button\" v-on:click=\"clearDescription\"><span class=\"far fa-trash-alt\"></span></button>\n </div>\n </template>\n </vue-typeahead-bootstrap>\n <span v-if=\"errors.length > 0\">\n <span v-for=\"error in errors\" class=\"text-danger small\">{{ error }}<br/></span>\n </span>\n </div>\n</template>\n\n<script>\n\nimport VueTypeaheadBootstrap from 'vue-typeahead-bootstrap';\nimport {debounce} from \"lodash\";\n\nexport default {\n props: ['index', 'value', 'errors'],\n components: {VueTypeaheadBootstrap},\n name: \"TransactionDescription\",\n data() {\n return {\n descriptions: [],\n initialSet: [],\n description: this.value,\n }\n },\n created() {\n axios.get(this.getACURL(''))\n .then(response => {\n this.descriptions = response.data;\n this.initialSet = response.data;\n });\n },\n\n methods: {\n clearDescription: function () {\n this.description = '';\n },\n getACURL: function (query) {\n // update autocomplete URL:\n return document.getElementsByTagName('base')[0].href + 'api/v1/autocomplete/transactions?query=' + query;\n },\n lookupDescription: debounce(function () {\n // update autocomplete URL:\n axios.get(this.getACURL(this.value))\n .then(response => {\n this.descriptions = response.data;\n })\n }, 300)\n },\n watch: {\n value: function (value) {\n this.description = value;\n },\n description: function (value) {\n this.$emit('set-field', {field: 'description', index: this.index, value: value});\n }\n },\n}\n</script>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionDescription.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionDescription.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TransactionDescription.vue?vue&type=template&id=375a57e5&\"\nimport script from \"./TransactionDescription.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionDescription.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:\"form-group\"},[_c('vue-typeahead-bootstrap',{attrs:{\"data\":_vm.descriptions,\"inputClass\":_vm.errors.length > 0 ? 'is-invalid' : '',\"minMatchingChars\":3,\"placeholder\":_vm.$t('firefly.description'),\"serializer\":function (item) { return item.description; },\"showOnFocus\":true,\"autofocus\":\"\",\"inputName\":\"description[]\"},on:{\"input\":_vm.lookupDescription},model:{value:(_vm.description),callback:function ($$v) {_vm.description=$$v},expression:\"description\"}},[_c('template',{slot:\"append\"},[_c('div',{staticClass:\"input-group-append\"},[_c('button',{staticClass:\"btn btn-outline-secondary\",attrs:{\"tabindex\":\"-1\",\"type\":\"button\"},on:{\"click\":_vm.clearDescription}},[_c('span',{staticClass:\"far fa-trash-alt\"})])])])],2),_vm._v(\" \"),(_vm.errors.length > 0)?_c('span',_vm._l((_vm.errors),function(error){return _c('span',{staticClass:\"text-danger small\"},[_vm._v(_vm._s(error)),_c('br')])}),0):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - TransactionDate.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=\"form-group\" v-if=\"0===index\">\n <div class=\"text-xs d-none d-lg-block d-xl-block\">\n {{ $t('firefly.date_and_time') }}\n </div>\n <div class=\"input-group\">\n <input\n ref=\"date\"\n v-model=\"dateStr\"\n :class=\"errors.length > 0 ? 'form-control is-invalid' : 'form-control'\"\n :placeholder=\"dateStr\"\n :title=\"$t('firefly.date')\"\n autocomplete=\"off\"\n name=\"date[]\"\n type=\"date\"\n >\n <input\n ref=\"time\"\n v-model=\"timeStr\"\n :class=\"errors.length > 0 ? 'form-control is-invalid' : 'form-control'\"\n :placeholder=\"timeStr\"\n :title=\"$t('firefly.time')\"\n autocomplete=\"off\"\n name=\"time[]\"\n type=\"time\"\n >\n </div>\n <span v-if=\"errors.length > 0\">\n <span v-for=\"error in errors\" class=\"text-danger small\">{{ error }}<br/></span>\n </span>\n <span class=\"text-muted small\">{{ localTimeZone }}:{{ systemTimeZone }}</span>\n </div>\n</template>\n\n<script>\n\nimport {mapGetters} from \"vuex\";\n\nexport default {\n props: ['index', 'errors', 'date'],\n name: \"TransactionDate\",\n created() {\n this.localTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n this.systemTimeZone = this.timezone;\n // console.log('TransactionDate: ' + this.date);\n // split date and time:\n let parts = this.date.split('T');\n this.dateStr = parts[0];\n this.timeStr = parts[1];\n\n },\n data() {\n return {\n localDate: this.date,\n localTimeZone: '',\n systemTimeZone: '',\n timeStr: '',\n dateStr: '',\n }\n },\n watch: {\n dateStr: function (value) {\n this.$emit('set-date', {date: value + 'T' + this.timeStr});\n },\n timeStr: function (value) {\n this.$emit('set-date', {date: this.dateStr + 'T' + value});\n }\n },\n methods: {},\n computed: {\n ...mapGetters('root', ['timezone']),\n }\n}\n</script>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionDate.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionDate.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TransactionDate.vue?vue&type=template&id=67a4f77b&\"\nimport script from \"./TransactionDate.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionDate.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 (0===_vm.index)?_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"text-xs d-none d-lg-block d-xl-block\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('firefly.date_and_time'))+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.dateStr),expression:\"dateStr\"}],ref:\"date\",class:_vm.errors.length > 0 ? 'form-control is-invalid' : 'form-control',attrs:{\"placeholder\":_vm.dateStr,\"title\":_vm.$t('firefly.date'),\"autocomplete\":\"off\",\"name\":\"date[]\",\"type\":\"date\"},domProps:{\"value\":(_vm.dateStr)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.dateStr=$event.target.value}}}),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.timeStr),expression:\"timeStr\"}],ref:\"time\",class:_vm.errors.length > 0 ? 'form-control is-invalid' : 'form-control',attrs:{\"placeholder\":_vm.timeStr,\"title\":_vm.$t('firefly.time'),\"autocomplete\":\"off\",\"name\":\"time[]\",\"type\":\"time\"},domProps:{\"value\":(_vm.timeStr)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.timeStr=$event.target.value}}})]),_vm._v(\" \"),(_vm.errors.length > 0)?_c('span',_vm._l((_vm.errors),function(error){return _c('span',{staticClass:\"text-danger small\"},[_vm._v(_vm._s(error)),_c('br')])}),0):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"text-muted small\"},[_vm._v(_vm._s(_vm.localTimeZone)+\":\"+_vm._s(_vm.systemTimeZone))])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - TransactionBudget.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=\"form-group\">\n <div class=\"text-xs d-none d-lg-block d-xl-block\">\n {{ $t('firefly.budget') }}\n </div>\n <div class=\"input-group\">\n <select\n ref=\"budget\"\n v-model=\"budget\"\n :class=\"errors.length > 0 ? 'form-control is-invalid' : 'form-control'\"\n :title=\"$t('firefly.budget')\"\n autocomplete=\"off\"\n name=\"budget_id[]\"\n >\n <option v-for=\"budget in this.budgetList\" :label=\"budget.name\" :value=\"budget.id\">{{ budget.name }}</option>\n </select>\n </div>\n <span v-if=\"errors.length > 0\">\n <span v-for=\"error in errors\" class=\"text-danger small\">{{ error }}<br/></span>\n </span>\n </div>\n</template>\n\n<script>\nexport default {\n props: ['index', 'value', 'errors'],\n name: \"TransactionBudget\",\n data() {\n return {\n budgetList: [],\n budget: this.value,\n emitEvent: true\n }\n },\n created() {\n this.collectData();\n },\n methods: {\n collectData() {\n this.budgetList.push(\n {\n id: 0,\n name: this.$t('firefly.no_budget'),\n }\n );\n this.getBudgets();\n },\n getBudgets() {\n axios.get('./api/v1/budgets')\n .then(response => {\n this.parseBudgets(response.data);\n }\n );\n },\n parseBudgets(data) {\n for (let key in data.data) {\n if (data.data.hasOwnProperty(key) && /^0$|^[1-9]\\d*$/.test(key) && key <= 4294967294) {\n let current = data.data[key];\n if(!current.attributes.active) {\n continue;\n }\n this.budgetList.push(\n {\n id: parseInt(current.id),\n name: current.attributes.name\n }\n );\n }\n }\n },\n },\n watch: {\n value: function (value) {\n this.emitEvent = false;\n this.budget = value;\n },\n budget: function (value) {\n this.$emit('set-field', {field: 'budget_id', index: this.index, value: value});\n }\n },\n}\n</script>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionBudget.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionBudget.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TransactionBudget.vue?vue&type=template&id=54257463&\"\nimport script from \"./TransactionBudget.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionBudget.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:\"form-group\"},[_c('div',{staticClass:\"text-xs d-none d-lg-block d-xl-block\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('firefly.budget'))+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.budget),expression:\"budget\"}],ref:\"budget\",class:_vm.errors.length > 0 ? 'form-control is-invalid' : 'form-control',attrs:{\"title\":_vm.$t('firefly.budget'),\"autocomplete\":\"off\",\"name\":\"budget_id[]\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.budget=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((this.budgetList),function(budget){return _c('option',{attrs:{\"label\":budget.name},domProps:{\"value\":budget.id}},[_vm._v(_vm._s(budget.name))])}),0)]),_vm._v(\" \"),(_vm.errors.length > 0)?_c('span',_vm._l((_vm.errors),function(error){return _c('span',{staticClass:\"text-danger small\"},[_vm._v(_vm._s(error)),_c('br')])}),0):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - TransactionAccount.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=\"form-group\">\n <div v-if=\"visible\" class=\"text-xs d-none d-lg-block d-xl-block\">\n <span v-if=\"0 === this.index\">{{ $t('firefly.' + this.direction + '_account') }}</span>\n <span v-if=\"this.index > 0\" class=\"text-warning\">{{ $t('firefly.first_split_overrules_' + this.direction) }}</span>\n </div>\n <div v-if=\"!visible\" class=\"text-xs d-none d-lg-block d-xl-block\">\n &nbsp;\n </div>\n <vue-typeahead-bootstrap\n v-if=\"visible\"\n v-model=\"accountName\"\n :data=\"accounts\"\n :inputClass=\"errors.length > 0 ? 'is-invalid' : ''\"\n :inputName=\"direction + '[]'\"\n :minMatchingChars=\"3\"\n :placeholder=\"$t('firefly.' + direction + '_account')\"\n :serializer=\"item => item.name_with_balance\"\n :showOnFocus=true\n aria-autocomplete=\"none\"\n autocomplete=\"off\"\n @hit=\"userSelectedAccount\"\n @input=\"lookupAccount\"\n >\n\n <template slot=\"suggestion\" slot-scope=\"{ data, htmlText }\">\n <div :title=\"data.type\" class=\"d-flex\">\n <span v-html=\"htmlText\"></span><br>\n </div>\n </template>\n <template slot=\"append\">\n <div class=\"input-group-append\">\n <button class=\"btn btn-outline-secondary\" tabindex=\"-1\" type=\"button\" v-on:click=\"clearAccount\"><span class=\"far fa-trash-alt\"></span></button>\n </div>\n </template>\n </vue-typeahead-bootstrap>\n <div v-if=\"!visible\" class=\"form-control-static\">\n <span class=\"small text-muted\"><em>{{ $t('firefly.first_split_decides') }}</em></span>\n </div>\n <span v-if=\"errors.length > 0\">\n <span v-for=\"error in errors\" class=\"text-danger small\">{{ error }}<br/></span>\n </span>\n </div>\n</template>\n\n<script>\n\nimport VueTypeaheadBootstrap from 'vue-typeahead-bootstrap';\nimport {debounce} from 'lodash';\n\nexport default {\n name: \"TransactionAccount\",\n components: {VueTypeaheadBootstrap},\n props: {\n index: {\n type: Number,\n },\n direction: {\n type: String,\n },\n value: {\n type: Object,\n default: () => ({})\n },\n errors: {\n type: Array,\n default: () => ([])\n },\n sourceAllowedTypes: {\n type: Array,\n default: () => ([])\n },\n destinationAllowedTypes: {\n type: Array,\n default: () => ([])\n },\n transactionType: {\n type: String,\n default: 'any'\n },\n },\n data() {\n return {\n query: '',\n accounts: [],\n accountTypes: [],\n initialSet: [],\n selectedAccount: {},\n accountName: '',\n selectedAccountTrigger: false,\n }\n },\n created() {\n this.accountName = this.value.name ?? '';\n // console.log('TransactionAccount::created() direction=' + this.direction + ', type=' + this.transactionType + ' , name=\"' + this.accountName + '\"');\n this.selectedAccountTrigger = true;\n },\n methods: {\n getACURL: function (types, query) {\n return './api/v1/autocomplete/accounts?types=' + types.join(',') + '&query=' + query;\n },\n userSelectedAccount: function (event) {\n // console.log('userSelectedAccount!');\n // console.log('To prevent invalid propogation, set selectedAccountTrigger = true');\n this.selectedAccountTrigger = true;\n this.selectedAccount = event;\n },\n systemReturnedAccount: function (event) {\n //console.log('systemReturnedAccount!');\n //console.log('To prevent invalid propogation, set selectedAccountTrigger = false');\n this.selectedAccountTrigger = false;\n this.selectedAccount = event;\n },\n clearAccount: function () {\n //// console.log('TransactionAccount::clearAccount()');\n this.accounts = this.initialSet;\n //this.account = {name: '', type: 'no_type', id: null, currency_id: null, currency_code: null, currency_symbol: null};\n this.accountName = '';\n },\n lookupAccount: debounce(function () {\n //// console.log('TransactionAccount::lookupAccount()');\n //// console.log('In lookupAccount()');\n if (0 === this.accountTypes.length) {\n // set the types from the default types for this direction:\n this.accountTypes = 'source' === this.direction ? this.sourceAllowedTypes : this.destinationAllowedTypes;\n }\n // // console.log(this.direction + ': Will search for types:');\n // // console.log(this.accountTypes);\n\n // update autocomplete URL:\n axios.get(this.getACURL(this.accountTypes, this.accountName))\n .then(response => {\n //// console.log('Got a response!');\n this.accounts = response.data;\n //// console.log(response.data);\n })\n }, 300),\n\n createInitialSet: function () {\n //// console.log('TransactionAccount::createInitialSet()');\n let types = this.sourceAllowedTypes;\n if ('destination' === this.direction) {\n types = this.destinationAllowedTypes;\n }\n // // console.log('createInitialSet() direction=' + this.direction + ' resets to these types:');\n // // console.log(types);\n\n axios.get(this.getACURL(types, ''))\n .then(response => {\n this.accounts = response.data;\n this.initialSet = response.data;\n });\n }\n },\n watch: {\n sourceAllowedTypes: function (value) {\n //// console.log('TransactionAccount::sourceAllowedTypes()');\n // // console.log(this.direction + ' account noticed change in sourceAllowedTypes');\n // // console.log(value);\n this.createInitialSet();\n },\n destinationAllowedTypes: function (value) {\n //// console.log('TransactionAccount::destinationAllowedTypes()');\n // // console.log(this.direction + ' account noticed change in destinationAllowedTypes');\n // // console.log(value);\n this.createInitialSet();\n },\n /**\n * Triggered when the user selects an account from the auto-complete.\n *\n * @param value\n */\n selectedAccount: function (value) {\n //console.log('TransactionAccount::watch selectedAccount()');\n // console.log(value);\n if (true === this.selectedAccountTrigger) {\n // console.log('$emit alles!');\n this.$emit('set-account',\n {\n index: this.index,\n direction: this.direction,\n id: value.id,\n type: value.type,\n name: value.name,\n currency_id: value.currency_id,\n currency_code: value.currency_code,\n currency_symbol: value.currency_symbol,\n }\n );\n //console.log('watch::selectedAccount() will now set accountName because selectedAccountTrigger = true');\n this.accountName = value.name;\n }\n if (false === this.selectedAccountTrigger) {\n //console.log('watch::selectedAccount() will NOT set accountName because selectedAccountTrigger = false');\n }\n if (false === this.selectedAccountTrigger && this.accountName !== value.name && null !== value.name) {\n //console.log('watch::selectedAccount() will set accountName. selectedAccountTrigger = false but name is different (\"' + this.accountName + '\" > \"' + value.name + '\")');\n this.selectedAccountTrigger = true;\n this.accountName = value.name;\n }\n\n },\n accountName: function (value) {\n // console.log('now at watch accountName(\"' + value + '\")');\n // console.log(this.selectedAccountTrigger);\n if (true === this.selectedAccountTrigger) {\n // console.log('Do nothing because selectedAccountTrigger = true');\n }\n if (false === this.selectedAccountTrigger) {\n // console.log('$emit name from watch::accountName() because selectedAccountTrigger = false');\n this.$emit('set-account',\n {\n index: this.index,\n direction: this.direction,\n id: null,\n type: null,\n name: value,\n currency_id: null,\n currency_code: null,\n currency_symbol: null,\n }\n );\n // this.account = {name: value, type: null, id: null, currency_id: null, currency_code: null, currency_symbol: null};\n }\n // console.log('set selectedAccountTrigger to be FALSE');\n this.selectedAccountTrigger = false;\n },\n value: function (value) {\n //console.log('TransactionAccount(' + this.index + ')::watch value(' + JSON.stringify(value) + ')');\n this.systemReturnedAccount(value);\n\n // // console.log('Index ' + this.index + ' nwAct: ', value);\n // // console.log(this.direction + ' account overruled by external forces.');\n // // console.log(value);\n //this.account = value;\n //this.selectedAccountTrigger = true;\n // this.accountName = value.name ?? '';\n // if(null !== value.id) {\n // return;\n // }\n // this.selectedAccountTrigger = true;\n //\n // // console.log('Set selectedAccountTrigger = true');\n // this.selectedAccount = value;\n }\n },\n computed: {\n accountKey: {\n get() {\n return 'source' === this.direction ? 'source_account' : 'destination_account';\n }\n },\n visible: {\n get() {\n // index 0 is always visible:\n if (0 === this.index) {\n return true;\n }\n // // console.log('Direction of account ' + this.index + ' is ' + this.direction + '(' + this.transactionType + ')');\n // // console.log(this.transactionType);\n if ('source' === this.direction) {\n return 'any' === this.transactionType || 'Deposit' === this.transactionType || typeof this.transactionType === 'undefined';\n }\n if ('destination' === this.direction) {\n return 'any' === this.transactionType || 'Withdrawal' === this.transactionType || typeof this.transactionType === 'undefined';\n }\n return false;\n }\n }\n }\n}\n</script>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionAccount.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionAccount.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TransactionAccount.vue?vue&type=template&id=49893d47&\"\nimport script from \"./TransactionAccount.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionAccount.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:\"form-group\"},[(_vm.visible)?_c('div',{staticClass:\"text-xs d-none d-lg-block d-xl-block\"},[(0 === this.index)?_c('span',[_vm._v(_vm._s(_vm.$t('firefly.' + this.direction + '_account')))]):_vm._e(),_vm._v(\" \"),(this.index > 0)?_c('span',{staticClass:\"text-warning\"},[_vm._v(_vm._s(_vm.$t('firefly.first_split_overrules_' + this.direction)))]):_vm._e()]):_vm._e(),_vm._v(\" \"),(!_vm.visible)?_c('div',{staticClass:\"text-xs d-none d-lg-block d-xl-block\"},[_vm._v(\"\\n  \\n \")]):_vm._e(),_vm._v(\" \"),(_vm.visible)?_c('vue-typeahead-bootstrap',{attrs:{\"data\":_vm.accounts,\"inputClass\":_vm.errors.length > 0 ? 'is-invalid' : '',\"inputName\":_vm.direction + '[]',\"minMatchingChars\":3,\"placeholder\":_vm.$t('firefly.' + _vm.direction + '_account'),\"serializer\":function (item) { return item.name_with_balance; },\"showOnFocus\":true,\"aria-autocomplete\":\"none\",\"autocomplete\":\"off\"},on:{\"hit\":_vm.userSelectedAccount,\"input\":_vm.lookupAccount},scopedSlots:_vm._u([{key:\"suggestion\",fn:function(ref){\nvar data = ref.data;\nvar htmlText = ref.htmlText;\nreturn [_c('div',{staticClass:\"d-flex\",attrs:{\"title\":data.type}},[_c('span',{domProps:{\"innerHTML\":_vm._s(htmlText)}}),_c('br')])]}}],null,false,1423807661),model:{value:(_vm.accountName),callback:function ($$v) {_vm.accountName=$$v},expression:\"accountName\"}},[_vm._v(\" \"),_c('template',{slot:\"append\"},[_c('div',{staticClass:\"input-group-append\"},[_c('button',{staticClass:\"btn btn-outline-secondary\",attrs:{\"tabindex\":\"-1\",\"type\":\"button\"},on:{\"click\":_vm.clearAccount}},[_c('span',{staticClass:\"far fa-trash-alt\"})])])])],2):_vm._e(),_vm._v(\" \"),(!_vm.visible)?_c('div',{staticClass:\"form-control-static\"},[_c('span',{staticClass:\"small text-muted\"},[_c('em',[_vm._v(_vm._s(_vm.$t('firefly.first_split_decides')))])])]):_vm._e(),_vm._v(\" \"),(_vm.errors.length > 0)?_c('span',_vm._l((_vm.errors),function(error){return _c('span',{staticClass:\"text-danger small\"},[_vm._v(_vm._s(error)),_c('br')])}),0):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SwitchAccount.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=\"form-group\">\n <div class=\"text-xs d-none d-lg-block d-xl-block\">\n <span v-if=\"'any' !== this.transactionType\" class=\"text-muted\">\n {{ $t('firefly.' + this.transactionType) }}\n </span>\n <span v-if=\"'any' === this.transactionType\" class=\"text-muted\">&nbsp;</span>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n name: \"SwitchAccount\",\n props: ['index', 'transactionType'],\n methods: {\n // switchAccounts() {\n // this.$emit('switch-accounts', this.index);\n // }\n }\n}\n</script>\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SwitchAccount.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SwitchAccount.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SwitchAccount.vue?vue&type=template&id=7ccf55e2&\"\nimport script from \"./SwitchAccount.vue?vue&type=script&lang=js&\"\nexport * from \"./SwitchAccount.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:\"form-group\"},[_c('div',{staticClass:\"text-xs d-none d-lg-block d-xl-block\"},[('any' !== this.transactionType)?_c('span',{staticClass:\"text-muted\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('firefly.' + this.transactionType))+\"\\n \")]):_vm._e(),_vm._v(\" \"),('any' === this.transactionType)?_c('span',{staticClass:\"text-muted\"},[_vm._v(\" \")]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - TransactionAmount.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=\"form-group\">\n <div class=\"text-xs\">{{ $t('firefly.amount') }}</div>\n <div class=\"input-group\">\n <div v-if=\"currencySymbol\" class=\"input-group-prepend\">\n <div class=\"input-group-text\">{{ currencySymbol }}</div>\n </div>\n <input\n v-model=\"transactionAmount\"\n :class=\"errors.length > 0 ? 'form-control is-invalid' : 'form-control'\"\n :placeholder=\"$t('firefly.amount')\"\n :title=\"$t('firefly.amount')\"\n autocomplete=\"off\"\n name=\"amount[]\"\n type=\"number\"\n step=\"any\"\n >\n </div>\n <span v-if=\"errors.length > 0\">\n <span v-for=\"error in errors\" class=\"text-danger small\">{{ error }}<br/></span>\n </span>\n </div>\n</template>\n\n<script>\n\nexport default {\n name: \"TransactionAmount\",\n props: {\n index: {\n type: Number,\n default: 0,\n required: true\n },\n errors: {},\n amount: {},\n transactionType: {},\n sourceCurrencySymbol: {},\n destinationCurrencySymbol: {},\n fractionDigits: {\n default: 2,\n required: false\n },\n },\n created() {\n if ('' !== this.amount) {\n this.emitEvent = false;\n this.transactionAmount = this.formatNumber(this.amount);\n }\n },\n methods: {\n formatNumber(str) {\n return parseFloat(str).toFixed(this.fractionDigits);\n }\n },\n data() {\n return {\n transactionAmount: this.amount,\n currencySymbol: null,\n srcCurrencySymbol: this.sourceCurrencySymbol,\n dstCurrencySymbol: this.destinationCurrencySymbol,\n emitEvent: true\n }\n },\n watch: {\n transactionAmount: function (value) {\n if (true === this.emitEvent) {\n this.$emit('set-field', {field: 'amount', index: this.index, value: value});\n }\n this.emitEvent = true;\n },\n amount: function (value) {\n this.transactionAmount = value;\n },\n sourceCurrencySymbol: function (value) {\n this.srcCurrencySymbol = value;\n },\n destinationCurrencySymbol: function (value) {\n this.dstCurrencySymbol = value;\n },\n transactionType: function (value) {\n switch (value) {\n case 'Transfer':\n case 'Withdrawal':\n this.currencySymbol = this.srcCurrencySymbol;\n break;\n case 'Deposit':\n this.currencySymbol = this.dstCurrencySymbol;\n }\n },\n },\n}\n</script>\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionAmount.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionAmount.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TransactionAmount.vue?vue&type=template&id=0b4c09d0&\"\nimport script from \"./TransactionAmount.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionAmount.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:\"form-group\"},[_c('div',{staticClass:\"text-xs\"},[_vm._v(_vm._s(_vm.$t('firefly.amount')))]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[(_vm.currencySymbol)?_c('div',{staticClass:\"input-group-prepend\"},[_c('div',{staticClass:\"input-group-text\"},[_vm._v(_vm._s(_vm.currencySymbol))])]):_vm._e(),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.transactionAmount),expression:\"transactionAmount\"}],class:_vm.errors.length > 0 ? 'form-control is-invalid' : 'form-control',attrs:{\"placeholder\":_vm.$t('firefly.amount'),\"title\":_vm.$t('firefly.amount'),\"autocomplete\":\"off\",\"name\":\"amount[]\",\"type\":\"number\",\"step\":\"any\"},domProps:{\"value\":(_vm.transactionAmount)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.transactionAmount=$event.target.value}}})]),_vm._v(\" \"),(_vm.errors.length > 0)?_c('span',_vm._l((_vm.errors),function(error){return _c('span',{staticClass:\"text-danger small\"},[_vm._v(_vm._s(error)),_c('br')])}),0):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - TransactionForeignAmount.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 <!-- FOREIGN AMOUNT -->\n <div v-if=\"isVisible\" class=\"form-group\">\n <div class=\"text-xs\">{{ $t('form.foreign_amount') }}</div>\n <div class=\"input-group\">\n <input\n v-model=\"amount\"\n :class=\"errors.length > 0 ? 'form-control is-invalid' : 'form-control'\"\n :placeholder=\"$t('form.foreign_amount')\"\n :title=\"$t('form.foreign_amount')\"\n autocomplete=\"off\"\n name=\"foreign_amount[]\"\n type=\"number\"\n >\n </div>\n <span v-if=\"errors.length > 0\">\n <span v-for=\"error in errors\" class=\"text-danger small\">{{ error }}<br/></span>\n </span>\n </div>\n</template>\n\n<script>\nexport default {\n name: \"TransactionForeignAmount\",\n props: {\n index: {},\n errors: {},\n value: {},\n transactionType: {},\n sourceCurrencyId: {},\n destinationCurrencyId: {},\n fractionDigits: {\n type: Number,\n default: 2\n }\n },\n data() {\n return {\n amount: this.value,\n emitEvent: true\n }\n },\n created() {\n if ('' !== this.amount) {\n this.emitEvent = false;\n this.amount = this.formatNumber(this.amount);\n }\n },\n methods: {\n formatNumber(str) {\n return parseFloat(str).toFixed(this.fractionDigits);\n }\n },\n watch: {\n amount: function (value) {\n if (true === this.emitEvent) {\n this.$emit('set-field', {field: 'foreign_amount', index: this.index, value: value});\n }\n this.emitEvent = true;\n },\n value: function (value) {\n this.amount = value;\n\n\n }\n },\n computed: {\n isVisible: {\n get() {\n return !('transfer' === this.transactionType.toLowerCase() && parseInt(this.sourceCurrencyId) === parseInt(this.destinationCurrencyId));\n }\n },\n }\n}\n</script>\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionForeignAmount.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionForeignAmount.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TransactionForeignAmount.vue?vue&type=template&id=c2e81206&\"\nimport script from \"./TransactionForeignAmount.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionForeignAmount.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 (_vm.isVisible)?_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"text-xs\"},[_vm._v(_vm._s(_vm.$t('form.foreign_amount')))]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.amount),expression:\"amount\"}],class:_vm.errors.length > 0 ? 'form-control is-invalid' : 'form-control',attrs:{\"placeholder\":_vm.$t('form.foreign_amount'),\"title\":_vm.$t('form.foreign_amount'),\"autocomplete\":\"off\",\"name\":\"foreign_amount[]\",\"type\":\"number\"},domProps:{\"value\":(_vm.amount)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.amount=$event.target.value}}})]),_vm._v(\" \"),(_vm.errors.length > 0)?_c('span',_vm._l((_vm.errors),function(error){return _c('span',{staticClass:\"text-danger small\"},[_vm._v(_vm._s(error)),_c('br')])}),0):_vm._e()]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - TransactionForeignCurrency.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 <!-- FOREIGN Currency -->\n <div v-if=\"isVisible\" class=\"form-group\">\n <div class=\"text-xs\">&nbsp;</div>\n <div class=\"input-group\">\n <select v-model=\"selectedCurrency\" class=\"form-control\" name=\"foreign_currency_id[]\">\n <option v-for=\"currency in selectableCurrencies\" :label=\"currency.name\" :value=\"currency.id\">{{ currency.name }}</option>\n </select>\n </div>\n </div>\n</template>\n<script>\n\nexport default {\n name: \"TransactionForeignCurrency\",\n props: [\n 'index',\n 'transactionType',\n 'sourceCurrencyId',\n 'destinationCurrencyId',\n 'selectedCurrencyId',\n 'value'\n ],\n data() {\n return {\n selectedCurrency: this.value,\n allCurrencies: [],\n selectableCurrencies: [],\n dstCurrencyId: this.destinationCurrencyId,\n srcCurrencyId: this.sourceCurrencyId,\n lockedCurrency: 0,\n emitEvent: true\n }\n },\n watch: {\n value: function (value) {\n this.selectedCurrency = value;\n },\n sourceCurrencyId: function (value) {\n // console.log('Watch sourceCurrencyId');\n this.srcCurrencyId = value;\n this.lockCurrency();\n },\n destinationCurrencyId: function (value) {\n // console.log('Watch destinationCurrencyId');\n this.dstCurrencyId = value;\n this.lockCurrency();\n },\n selectedCurrency: function (value) {\n this.$emit('set-field', {field: 'foreign_currency_id', index: this.index, value: value});\n },\n transactionType: function (value) {\n this.lockCurrency();\n },\n },\n created: function () {\n // console.log('Created TransactionForeignCurrency');\n this.getAllCurrencies();\n },\n methods: {\n lockCurrency: function () {\n // console.log('Lock currency (' + this.transactionType + ')');\n this.lockedCurrency = 0;\n if ('transfer' === this.transactionType.toLowerCase()) {\n // console.log('IS a transfer!');\n this.lockedCurrency = parseInt(this.dstCurrencyId);\n this.selectedCurrency = parseInt(this.dstCurrencyId);\n }\n this.filterCurrencies();\n },\n getAllCurrencies: function () {\n axios.get('./api/v1/autocomplete/currencies')\n .then(response => {\n this.allCurrencies = response.data;\n this.filterCurrencies();\n }\n );\n\n },\n filterCurrencies() {\n // console.log('filterCurrencies');\n // console.log(this.lockedCurrency);\n // if a currency is locked only that currency can (and must) be selected:\n if (0 !== this.lockedCurrency) {\n // console.log('Here we are');\n for (let key in this.allCurrencies) {\n if (this.allCurrencies.hasOwnProperty(key) && /^0$|^[1-9]\\d*$/.test(key) && key <= 4294967294) {\n let current = this.allCurrencies[key];\n if (parseInt(current.id) === this.lockedCurrency) {\n this.selectableCurrencies = [current];\n this.selectedCurrency = current.id;\n }\n }\n }\n // if source + dest ID are the same, skip the whole field.\n\n return;\n }\n\n this.selectableCurrencies = [\n {\n \"id\": 0,\n \"name\": this.$t('firefly.no_currency')\n }\n ];\n for (let key in this.allCurrencies) {\n if (this.allCurrencies.hasOwnProperty(key) && /^0$|^[1-9]\\d*$/.test(key) && key <= 4294967294) {\n let current = this.allCurrencies[key];\n this.selectableCurrencies.push(current);\n }\n }\n }\n },\n computed: {\n isVisible: function () {\n return !('transfer' === this.transactionType.toLowerCase() && parseInt(this.srcCurrencyId) === parseInt(this.dstCurrencyId));\n }\n }\n}\n</script>\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionForeignCurrency.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionForeignCurrency.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TransactionForeignCurrency.vue?vue&type=template&id=7826af29&\"\nimport script from \"./TransactionForeignCurrency.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionForeignCurrency.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 (_vm.isVisible)?_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"text-xs\"},[_vm._v(\" \")]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedCurrency),expression:\"selectedCurrency\"}],staticClass:\"form-control\",attrs:{\"name\":\"foreign_currency_id[]\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selectedCurrency=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.selectableCurrencies),function(currency){return _c('option',{attrs:{\"label\":currency.name},domProps:{\"value\":currency.id}},[_vm._v(_vm._s(currency.name))])}),0)])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - TransactionCustomDates.vue\n - Copyright (c) 2021 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 <div v-for=\"(enabled, name) in availableFields\" class=\"form-group\">\n <div v-if=\"enabled && isDateField(name)\" class=\"text-xs d-none d-lg-block d-xl-block\">\n {{ $t('form.' + name) }}\n </div>\n <div v-if=\"enabled && isDateField(name)\" class=\"input-group\">\n <input\n :ref=\"name\"\n :name=\"name + '[]'\"\n :placeholder=\"$t('form.' + name)\"\n :title=\"$t('form.' + name)\"\n :value=\"getFieldValue(name)\"\n autocomplete=\"off\"\n class=\"form-control\"\n type=\"date\"\n @change=\"setFieldValue($event, name)\"\n >\n </div>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n name: \"TransactionCustomDates\",\n props: [\n 'index',\n 'errors',\n 'customFields',\n 'interestDate',\n 'bookDate',\n 'processDate',\n 'dueDate',\n 'paymentDate',\n 'invoiceDate'\n ],\n data() {\n return {\n dateFields: ['interest_date', 'book_date', 'process_date', 'due_date', 'payment_date', 'invoice_date'],\n availableFields: this.customFields,\n dates: {\n interest_date: this.interestDate,\n book_date: this.bookDate,\n process_date: this.processDate,\n due_date: this.dueDate,\n payment_date: this.paymentDate,\n invoice_date: this.invoiceDate,\n }\n ,\n }\n },\n watch: {\n customFields: function (value) {\n this.availableFields = value;\n },\n interestDate: function (value) {\n this.dates.interest_date = value;\n },\n bookDate: function (value) {\n this.dates.book_date = value;\n },\n processDate: function (value) {\n this.dates.process_date = value;\n },\n dueDate: function (value) {\n this.dates.due_date = value;\n },\n paymentDate: function (value) {\n this.dates.payment_date = value;\n },\n invoiceDate: function (value) {\n this.dates.invoice_date = value;\n },\n },\n methods: {\n isDateField: function (name) {\n return this.dateFields.includes(name)\n },\n getFieldValue(field) {\n return this.dates[field] ?? '';\n },\n setFieldValue(event, field) {\n this.$emit('set-field', {field: field, index: this.index, value: event.target.value});\n },\n }\n}\n</script>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionCustomDates.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionCustomDates.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TransactionCustomDates.vue?vue&type=template&id=728c6420&\"\nimport script from \"./TransactionCustomDates.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionCustomDates.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',_vm._l((_vm.availableFields),function(enabled,name){return _c('div',{staticClass:\"form-group\"},[(enabled && _vm.isDateField(name))?_c('div',{staticClass:\"text-xs d-none d-lg-block d-xl-block\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('form.' + name))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(enabled && _vm.isDateField(name))?_c('div',{staticClass:\"input-group\"},[_c('input',{ref:name,refInFor:true,staticClass:\"form-control\",attrs:{\"name\":name + '[]',\"placeholder\":_vm.$t('form.' + name),\"title\":_vm.$t('form.' + name),\"autocomplete\":\"off\",\"type\":\"date\"},domProps:{\"value\":_vm.getFieldValue(name)},on:{\"change\":function($event){return _vm.setFieldValue($event, name)}}})]):_vm._e()])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - TransactionCategory.vue\n - Copyright (c) 2021 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=\"form-group\">\n <div class=\"text-xs d-none d-lg-block d-xl-block\">\n {{ $t('firefly.category') }}\n </div>\n\n <vue-typeahead-bootstrap\n v-model=\"category\"\n :data=\"categories\"\n :inputClass=\"errors.length > 0 ? 'is-invalid' : ''\"\n :minMatchingChars=\"3\"\n :placeholder=\"$t('firefly.category')\"\n :serializer=\"item => item.name\"\n :showOnFocus=true\n inputName=\"category[]\"\n @hit=\"selectedCategory = $event\"\n @input=\"lookupCategory\"\n >\n <template slot=\"append\">\n <div class=\"input-group-append\">\n <button class=\"btn btn-outline-secondary\" tabindex=\"-1\" type=\"button\" v-on:click=\"clearCategory\"><span class=\"far fa-trash-alt\"></span></button>\n </div>\n </template>\n </vue-typeahead-bootstrap>\n <span v-if=\"errors.length > 0\">\n <span v-for=\"error in errors\" class=\"text-danger small\">{{ error }}<br/></span>\n </span>\n </div>\n</template>\n\n<script>\n\nimport VueTypeaheadBootstrap from 'vue-typeahead-bootstrap';\nimport {debounce} from \"lodash\";\n\nexport default {\n props: ['value', 'index', 'errors'],\n components: {VueTypeaheadBootstrap},\n name: \"TransactionCategory\",\n data() {\n return {\n categories: [],\n initialSet: [],\n category: this.value\n }\n },\n\n created() {\n //console.log('Created category(' + this.index + ') \"' + this.value + '\"');\n // initial list of accounts:\n axios.get(this.getACURL(''))\n .then(response => {\n this.categories = response.data;\n this.initialSet = response.data;\n });\n },\n\n methods: {\n clearCategory: function () {\n this.category = '';\n },\n getACURL: function (query) {\n // update autocomplete URL:\n // console.log('getACURL(\"' + query + '\")');\n return document.getElementsByTagName('base')[0].href + 'api/v1/autocomplete/categories?query=' + query;\n },\n lookupCategory: debounce(function () {\n // update autocomplete URL:\n //console.log('Do a search for \"'+this.category+'\"');\n axios.get(this.getACURL(this.category))\n .then(response => {\n this.categories = response.data;\n })\n }, 300)\n },\n watch: {\n value: function (value) {\n this.category = value ?? '';\n },\n category: function (value) {\n this.$emit('set-field', {field: 'category', index: this.index, value: value});\n }\n },\n computed: {\n selectedCategory: {\n get() {\n return this.categories[this.index].name;\n },\n set(value) {\n this.category = value.name;\n }\n }\n }\n}\n</script>","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionCategory.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionCategory.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TransactionCategory.vue?vue&type=template&id=7b821709&\"\nimport script from \"./TransactionCategory.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionCategory.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:\"form-group\"},[_c('div',{staticClass:\"text-xs d-none d-lg-block d-xl-block\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('firefly.category'))+\"\\n \")]),_vm._v(\" \"),_c('vue-typeahead-bootstrap',{attrs:{\"data\":_vm.categories,\"inputClass\":_vm.errors.length > 0 ? 'is-invalid' : '',\"minMatchingChars\":3,\"placeholder\":_vm.$t('firefly.category'),\"serializer\":function (item) { return item.name; },\"showOnFocus\":true,\"inputName\":\"category[]\"},on:{\"hit\":function($event){_vm.selectedCategory = $event},\"input\":_vm.lookupCategory},model:{value:(_vm.category),callback:function ($$v) {_vm.category=$$v},expression:\"category\"}},[_c('template',{slot:\"append\"},[_c('div',{staticClass:\"input-group-append\"},[_c('button',{staticClass:\"btn btn-outline-secondary\",attrs:{\"tabindex\":\"-1\",\"type\":\"button\"},on:{\"click\":_vm.clearCategory}},[_c('span',{staticClass:\"far fa-trash-alt\"})])])])],2),_vm._v(\" \"),(_vm.errors.length > 0)?_c('span',_vm._l((_vm.errors),function(error){return _c('span',{staticClass:\"text-danger small\"},[_vm._v(_vm._s(error)),_c('br')])}),0):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - TransactionBill.vue\n - Copyright (c) 2021 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=\"form-group\">\n <div class=\"text-xs d-none d-lg-block d-xl-block\">\n {{ $t('firefly.bill') }}\n </div>\n <div class=\"input-group\">\n <select\n ref=\"bill\"\n v-model=\"bill\"\n :class=\"errors.length > 0 ? 'form-control is-invalid' : 'form-control'\"\n :title=\"$t('firefly.bill')\"\n autocomplete=\"off\"\n name=\"bill_id[]\"\n >\n <option v-for=\"bill in this.billList\" :label=\"bill.name\" :value=\"bill.id\">{{ bill.name }}</option>\n\n </select>\n </div>\n <span v-if=\"errors.length > 0\">\n <span v-for=\"error in errors\" class=\"text-danger small\">{{ error }}<br/></span>\n </span>\n </div>\n</template>\n\n<script>\nexport default {\n props: ['value', 'index', 'errors'],\n name: \"TransactionBill\",\n data() {\n return {\n billList: [],\n bill: this.value,\n }\n },\n created() {\n this.collectData();\n },\n methods: {\n collectData() {\n this.billList.push(\n {\n id: 0,\n name: this.$t('firefly.no_bill'),\n }\n );\n this.getBills();\n },\n getBills() {\n axios.get('./api/v1/bills')\n .then(response => {\n this.parseBills(response.data);\n }\n );\n },\n parseBills(data) {\n for (let key in data.data) {\n if (data.data.hasOwnProperty(key) && /^0$|^[1-9]\\d*$/.test(key) && key <= 4294967294) {\n let current = data.data[key];\n this.billList.push(\n {\n id: parseInt(current.id),\n name: current.attributes.name\n }\n );\n }\n }\n },\n },\n watch: {\n value: function (value) {\n this.emitEvent = false;\n this.bill = value;\n },\n bill: function (value) {\n this.$emit('set-field', {field: 'bill_id', index: this.index, value: value});\n }\n },\n}\n</script>\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionBill.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionBill.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TransactionBill.vue?vue&type=template&id=e612fb9c&\"\nimport script from \"./TransactionBill.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionBill.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:\"form-group\"},[_c('div',{staticClass:\"text-xs d-none d-lg-block d-xl-block\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('firefly.bill'))+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.bill),expression:\"bill\"}],ref:\"bill\",class:_vm.errors.length > 0 ? 'form-control is-invalid' : 'form-control',attrs:{\"title\":_vm.$t('firefly.bill'),\"autocomplete\":\"off\",\"name\":\"bill_id[]\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.bill=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((this.billList),function(bill){return _c('option',{attrs:{\"label\":bill.name},domProps:{\"value\":bill.id}},[_vm._v(_vm._s(bill.name))])}),0)]),_vm._v(\" \"),(_vm.errors.length > 0)?_c('span',_vm._l((_vm.errors),function(error){return _c('span',{staticClass:\"text-danger small\"},[_vm._v(_vm._s(error)),_c('br')])}),0):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {\nvar this$1 = this;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"text-xs d-none d-lg-block d-xl-block\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('firefly.tags'))+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_c('vue-tags-input',{attrs:{\"add-only-from-autocomplete\":false,\"autocomplete-items\":_vm.autocompleteItems,\"tags\":_vm.tags,\"title\":_vm.$t('firefly.tags'),\"placeholder\":_vm.$t('firefly.tags')},on:{\"tags-changed\":function (newTags) { return this$1.tags = newTags; }},model:{value:(_vm.currentTag),callback:function ($$v) {_vm.currentTag=$$v},expression:\"currentTag\"}})],1),_vm._v(\" \"),(_vm.errors.length > 0)?_c('span',_vm._l((_vm.errors),function(error){return _c('span',{staticClass:\"text-danger small\"},[_vm._v(_vm._s(error)),_c('br')])}),0):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - TransactionTags.vue\n - Copyright (c) 2021 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=\"form-group\">\n <div class=\"text-xs d-none d-lg-block d-xl-block\">\n {{ $t('firefly.tags') }}\n </div>\n <div class=\"input-group\">\n <vue-tags-input\n v-model=\"currentTag\"\n :add-only-from-autocomplete=\"false\"\n :autocomplete-items=\"autocompleteItems\"\n :tags=\"tags\"\n :title=\"$t('firefly.tags')\"\n v-bind:placeholder=\"$t('firefly.tags')\"\n @tags-changed=\"newTags => this.tags = newTags\"\n />\n </div>\n <span v-if=\"errors.length > 0\">\n <span v-for=\"error in errors\" class=\"text-danger small\">{{ error }}<br/></span>\n </span>\n </div>\n</template>\n\n<script>\nimport VueTagsInput from \"@johmun/vue-tags-input\";\nimport axios from \"axios\";\n\nexport default {\n name: \"TransactionTags\",\n components: {\n VueTagsInput\n },\n props: ['value', 'index', 'errors'],\n data() {\n return {\n autocompleteItems: [],\n debounce: null,\n tags: [],\n currentTag: '',\n updateTags: true, // the idea is that this is always true, except when the tags-function sets the value.\n tagList: this.value,\n };\n },\n created() {\n let tags = [];\n for (let i in this.value) {\n if (this.value.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n tags.push({text: this.value[i]});\n }\n }\n this.updateTags = false;\n this.tags = tags;\n },\n watch: {\n 'currentTag': 'initItems',\n value: function (value) {\n this.tagList = value;\n },\n tagList: function (value) {\n // console.log('watch tagList');\n this.$emit('set-field', {field: 'tags', index: this.index, value: value});\n this.updateTags = false;\n this.tags = value;\n },\n tags: function (value) {\n if (this.updateTags) {\n let shortList = [];\n for (let key in value) {\n if (value.hasOwnProperty(key)) {\n shortList.push({text: value[key].text});\n }\n }\n this.tagList = shortList;\n }\n this.updateTags = true;\n }\n },\n methods: {\n initItems() {\n if (this.currentTag.length < 2) {\n return;\n }\n const url = document.getElementsByTagName('base')[0].href + `api/v1/autocomplete/tags?query=${this.currentTag}`;\n\n clearTimeout(this.debounce);\n this.debounce = setTimeout(() => {\n axios.get(url).then(response => {\n this.autocompleteItems = response.data.map(item => {\n return {text: item.tag};\n });\n }).catch(() => console.warn('Oh. Something went wrong loading tags.'));\n }, 300);\n },\n },\n\n\n}\n</script>\n<style>\n.vue-tags-input {\n width: 100%;\n max-width: 100% !important;\n display: block;\n border-radius: 0.25rem;\n}\n\n.ti-input {\n border-radius: 0.25rem;\n max-width: 100%;\n width: 100%;\n}\n\n.ti-new-tag-input {\n font-size: 1rem;\n}\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionTags.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionTags.vue?vue&type=script&lang=js&\"","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-9[0].rules[0].use[1]!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-9[0].rules[0].use[2]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionTags.vue?vue&type=style&index=0&lang=css&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./TransactionTags.vue?vue&type=template&id=dbf814e6&\"\nimport script from \"./TransactionTags.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionTags.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TransactionTags.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 - TransactionPiggyBank.vue\n - Copyright (c) 2021 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=\"form-group\">\n <div class=\"text-xs d-none d-lg-block d-xl-block\">\n {{ $t('firefly.piggy_bank') }}\n </div>\n <div class=\"input-group\">\n <select\n ref=\"piggy_bank_id\"\n v-model=\"piggy_bank_id\"\n :class=\"errors.length > 0 ? 'form-control is-invalid' : 'form-control'\"\n :title=\"$t('firefly.piggy_bank')\"\n autocomplete=\"off\"\n name=\"piggy_bank_id[]\"\n >\n <option v-for=\"piggy in this.piggyList\" :label=\"piggy.name_with_balance\" :value=\"piggy.id\">{{ piggy.name_with_balance }}</option>\n\n </select>\n </div>\n <span v-if=\"errors.length > 0\">\n <span v-for=\"error in errors\" class=\"text-danger small\">{{ error }}<br/></span>\n </span>\n </div>\n</template>\n\n<script>\n\nexport default {\n props: ['index', 'value', 'errors'],\n name: \"TransactionPiggyBank\",\n data() {\n return {\n piggyList: [],\n piggy_bank_id: this.value,\n }\n },\n created() {\n this.collectData();\n },\n methods: {\n collectData() {\n this.piggyList.push(\n {\n id: 0,\n name_with_balance: this.$t('firefly.no_piggy_bank'),\n }\n );\n this.getPiggies();\n },\n getPiggies() {\n axios.get('./api/v1/autocomplete/piggy-banks-with-balance')\n .then(response => {\n this.parsePiggies(response.data);\n }\n );\n },\n parsePiggies(data) {\n for (let key in data) {\n if (data.hasOwnProperty(key) && /^0$|^[1-9]\\d*$/.test(key) && key <= 4294967294) {\n let current = data[key];\n this.piggyList.push(\n {\n id: parseInt(current.id),\n name_with_balance: current.name_with_balance\n }\n );\n }\n }\n },\n },\n watch: {\n value: function (value) {\n this.piggy_bank_id = value;\n },\n piggy_bank_id: function (value) {\n this.$emit('set-field', {field: 'piggy_bank_id', index: this.index, value: value});\n this.emitEvent = true;\n }\n }\n}\n</script>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionPiggyBank.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionPiggyBank.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TransactionPiggyBank.vue?vue&type=template&id=18aafbc0&\"\nimport script from \"./TransactionPiggyBank.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionPiggyBank.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:\"form-group\"},[_c('div',{staticClass:\"text-xs d-none d-lg-block d-xl-block\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('firefly.piggy_bank'))+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.piggy_bank_id),expression:\"piggy_bank_id\"}],ref:\"piggy_bank_id\",class:_vm.errors.length > 0 ? 'form-control is-invalid' : 'form-control',attrs:{\"title\":_vm.$t('firefly.piggy_bank'),\"autocomplete\":\"off\",\"name\":\"piggy_bank_id[]\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.piggy_bank_id=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((this.piggyList),function(piggy){return _c('option',{attrs:{\"label\":piggy.name_with_balance},domProps:{\"value\":piggy.id}},[_vm._v(_vm._s(piggy.name_with_balance))])}),0)]),_vm._v(\" \"),(_vm.errors.length > 0)?_c('span',_vm._l((_vm.errors),function(error){return _c('span',{staticClass:\"text-danger small\"},[_vm._v(_vm._s(error)),_c('br')])}),0):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - TransactionInternalReference.vue\n - Copyright (c) 2021 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 v-if=\"showField\" class=\"form-group\">\n <div class=\"text-xs d-none d-lg-block d-xl-block\">\n {{ $t('firefly.internal_reference') }}\n </div>\n <div class=\"input-group\">\n <input\n v-model=\"reference\"\n :class=\"errors.length > 0 ? 'form-control is-invalid' : 'form-control'\"\n :placeholder=\"$t('firefly.internal_reference')\"\n name=\"internal_reference[]\"\n type=\"text\"\n />\n <div class=\"input-group-append\">\n <button class=\"btn btn-outline-secondary\" tabindex=\"-1\" type=\"button\"><span class=\"far fa-trash-alt\"></span></button>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n props: ['index', 'value', 'errors', 'customFields'],\n name: \"TransactionInternalReference\",\n data() {\n return {\n reference: this.value,\n availableFields: this.customFields,\n emitEvent: true\n }\n },\n computed: {\n showField: function () {\n if ('internal_reference' in this.availableFields) {\n return this.availableFields.internal_reference;\n }\n return false;\n }\n },\n methods: {},\n watch: {\n customFields: function (value) {\n this.availableFields = value;\n },\n value: function (value) {\n this.emitEvent = false;\n this.reference = value;\n },\n reference: function (value) {\n this.$emit('set-field', {field: 'internal_reference', index: this.index, value: value});\n }\n }\n}\n</script>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionInternalReference.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionInternalReference.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TransactionInternalReference.vue?vue&type=template&id=94f353c2&\"\nimport script from \"./TransactionInternalReference.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionInternalReference.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 (_vm.showField)?_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"text-xs d-none d-lg-block d-xl-block\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('firefly.internal_reference'))+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.reference),expression:\"reference\"}],class:_vm.errors.length > 0 ? 'form-control is-invalid' : 'form-control',attrs:{\"placeholder\":_vm.$t('firefly.internal_reference'),\"name\":\"internal_reference[]\",\"type\":\"text\"},domProps:{\"value\":(_vm.reference)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.reference=$event.target.value}}}),_vm._v(\" \"),_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:\"input-group-append\"},[_c('button',{staticClass:\"btn btn-outline-secondary\",attrs:{\"tabindex\":\"-1\",\"type\":\"button\"}},[_c('span',{staticClass:\"far fa-trash-alt\"})])])}]\n\nexport { render, staticRenderFns }","<!--\n - TransactionInternalReference.vue\n - Copyright (c) 2021 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 v-if=\"showField\" class=\"form-group\">\n <div class=\"text-xs d-none d-lg-block d-xl-block\">\n {{ $t('firefly.external_url') }}\n </div>\n <div class=\"input-group\">\n <input\n v-model=\"url\"\n :class=\"errors.length > 0 ? 'form-control is-invalid' : 'form-control'\"\n :placeholder=\"$t('firefly.external_url')\"\n name=\"external_url[]\"\n type=\"url\"\n />\n <div class=\"input-group-append\">\n <button class=\"btn btn-outline-secondary\" tabindex=\"-1\" type=\"button\"><span class=\"far fa-trash-alt\"></span></button>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n props: ['index', 'value', 'errors', 'customFields'],\n name: \"TransactionExternalUrl\",\n data() {\n return {\n url: this.value,\n availableFields: this.customFields,\n }\n },\n computed: {\n showField: function () {\n if ('external_uri' in this.availableFields) {\n return this.availableFields.external_uri;\n }\n return false;\n }\n },\n methods: {},\n watch: {\n customFields: function (value) {\n this.availableFields = value;\n },\n value: function (value) {\n this.url = value;\n },\n url: function (value) {\n this.$emit('set-field', {field: 'external_url', index: this.index, value: value});\n }\n }\n}\n</script>\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionExternalUrl.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionExternalUrl.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TransactionExternalUrl.vue?vue&type=template&id=7a5ee5e8&\"\nimport script from \"./TransactionExternalUrl.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionExternalUrl.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 (_vm.showField)?_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"text-xs d-none d-lg-block d-xl-block\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('firefly.external_url'))+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.url),expression:\"url\"}],class:_vm.errors.length > 0 ? 'form-control is-invalid' : 'form-control',attrs:{\"placeholder\":_vm.$t('firefly.external_url'),\"name\":\"external_url[]\",\"type\":\"url\"},domProps:{\"value\":(_vm.url)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.url=$event.target.value}}}),_vm._v(\" \"),_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:\"input-group-append\"},[_c('button',{staticClass:\"btn btn-outline-secondary\",attrs:{\"tabindex\":\"-1\",\"type\":\"button\"}},[_c('span',{staticClass:\"far fa-trash-alt\"})])])}]\n\nexport { render, staticRenderFns }","<!--\n - TransactionNotes.vue\n - Copyright (c) 2021 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 <div v-if=\"showField\" class=\"form-group\">\n <div class=\"text-xs d-none d-lg-block d-xl-block\">\n {{ $t('firefly.notes') }}\n </div>\n <div class=\"input-group\">\n <textarea\n v-model=\"notes\"\n :class=\"errors.length > 0 ? 'form-control is-invalid' : 'form-control'\"\n :placeholder=\"$t('firefly.notes')\"\n ></textarea>\n </div>\n </div>\n\n</template>\n\n<script>\nexport default {\n props: ['index', 'value', 'errors', 'customFields'],\n name: \"TransactionNotes\",\n data() {\n return {\n notes: this.value,\n availableFields: this.customFields,\n }\n },\n computed: {\n showField: function () {\n if ('notes' in this.availableFields) {\n return this.availableFields.notes;\n }\n return false;\n }\n },\n watch: {\n value: function (value) {\n this.notes = value;\n },\n customFields: function (value) {\n this.availableFields = value;\n },\n notes: function (value) {\n this.$emit('set-field', {field: 'notes', index: this.index, value: value});\n }\n }\n}\n</script>\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionNotes.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionNotes.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TransactionNotes.vue?vue&type=template&id=606fd0df&\"\nimport script from \"./TransactionNotes.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionNotes.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 (_vm.showField)?_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"text-xs d-none d-lg-block d-xl-block\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('firefly.notes'))+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.notes),expression:\"notes\"}],class:_vm.errors.length > 0 ? 'form-control is-invalid' : 'form-control',attrs:{\"placeholder\":_vm.$t('firefly.notes')},domProps:{\"value\":(_vm.notes)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.notes=$event.target.value}}})])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.showField)?_c('div',[_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"text-xs d-none d-lg-block d-xl-block\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('firefly.journal_links'))+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[(_vm.links.length === 0)?_c('p',[_c('button',{staticClass:\"btn btn-default btn-xs\",attrs:{\"type\":\"button\",\"data-target\":\"#linkModal\",\"data-toggle\":\"modal\"},on:{\"click\":_vm.resetModal}},[_c('span',{staticClass:\"fas fa-plus\"}),_vm._v(\" Add transaction link\")])]):_vm._e(),_vm._v(\" \"),(_vm.links.length > 0)?_c('ul',{staticClass:\"list-group\"},_vm._l((_vm.links),function(transaction,index){return _c('li',{key:index,staticClass:\"list-group-item\"},[_c('em',[_vm._v(_vm._s(_vm.getTextForLinkType(transaction.link_type_id)))]),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"./transaction/show/\" + transaction.transaction_group_id}},[_vm._v(_vm._s(transaction.description))]),_vm._v(\" \"),(transaction.type === 'withdrawal')?_c('span',[_vm._v(\"\\n (\"),_c('span',{staticClass:\"text-danger\"},[_vm._v(_vm._s(Intl.NumberFormat(_vm.locale, {\n style: 'currency',\n currency: transaction.currency_code\n }).format(parseFloat(transaction.amount) * -1)))]),_vm._v(\")\\n \")]):_vm._e(),_vm._v(\" \"),(transaction.type === 'deposit')?_c('span',[_vm._v(\"\\n (\"),_c('span',{staticClass:\"text-success\"},[_vm._v(_vm._s(Intl.NumberFormat(_vm.locale, {\n style: 'currency',\n currency: transaction.currency_code\n }).format(parseFloat(transaction.amount))))]),_vm._v(\")\\n \")]):_vm._e(),_vm._v(\" \"),(transaction.type === 'transfer')?_c('span',[_vm._v(\"\\n (\"),_c('span',{staticClass:\"text-info\"},[_vm._v(_vm._s(Intl.NumberFormat(_vm.locale, {\n style: 'currency',\n currency: transaction.currency_code\n }).format(parseFloat(transaction.amount))))]),_vm._v(\")\\n \")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"btn-group btn-group-xs float-right\"},[_c('button',{staticClass:\"btn btn-xs btn-danger\",attrs:{\"type\":\"button\",\"tabindex\":\"-1\"},on:{\"click\":function($event){return _vm.removeLink(index)}}},[_c('span',{staticClass:\"far fa-trash-alt\"})])])])}),0):_vm._e(),_vm._v(\" \"),(_vm.links.length > 0)?_c('div',{staticClass:\"form-text\"},[_c('button',{staticClass:\"btn btn-default\",attrs:{\"type\":\"button\",\"data-target\":\"#linkModal\",\"data-toggle\":\"modal\"},on:{\"click\":_vm.resetModal}},[_c('span',{staticClass:\"fas fa-plus\"})])]):_vm._e()])])]),_vm._v(\" \"),_c('div',{ref:\"linkModal\",staticClass:\"modal\",attrs:{\"id\":\"linkModal\",\"tabindex\":\"-1\"}},[_c('div',{staticClass:\"modal-dialog modal-lg\"},[_c('div',{staticClass:\"modal-content\"},[_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"modal-body\"},[_c('div',{staticClass:\"container-fluid\"},[_vm._m(1),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('form',{attrs:{\"autocomplete\":\"off\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.search.apply(null, arguments)}}},[_c('div',{staticClass:\"input-group\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.query),expression:\"query\"}],staticClass:\"form-control\",attrs:{\"id\":\"query\",\"autocomplete\":\"off\",\"maxlength\":\"255\",\"name\":\"search\",\"placeholder\":\"Search query\",\"type\":\"text\"},domProps:{\"value\":(_vm.query)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.query=$event.target.value}}}),_vm._v(\" \"),_vm._m(2)])])])]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[(_vm.searching)?_c('span',[_c('span',{staticClass:\"fas fa-spinner fa-spin\"})]):_vm._e(),_vm._v(\" \"),(_vm.searchResults.length > 0)?_c('h4',[_vm._v(_vm._s(_vm.$t('firefly.search_results')))]):_vm._e(),_vm._v(\" \"),(_vm.searchResults.length > 0)?_c('table',{staticClass:\"table table-sm\"},[_c('caption',{staticStyle:{\"display\":\"none\"}},[_vm._v(_vm._s(_vm.$t('firefly.search_results')))]),_vm._v(\" \"),_c('thead',[_c('tr',[_c('th',{staticStyle:{\"width\":\"33%\"},attrs:{\"scope\":\"col\",\"colspan\":\"2\"}},[_vm._v(_vm._s(_vm.$t('firefly.include')))]),_vm._v(\" \"),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.transaction')))])])]),_vm._v(\" \"),_c('tbody',_vm._l((_vm.searchResults),function(result){return _c('tr',[_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(result.selected),expression:\"result.selected\"}],staticClass:\"form-control\",attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(result.selected)?_vm._i(result.selected,null)>-1:(result.selected)},on:{\"change\":[function($event){var $$a=result.selected,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(result, \"selected\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(result, \"selected\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(result, \"selected\", $$c)}},function($event){return _vm.selectTransaction($event)}]}})]),_vm._v(\" \"),_c('td',[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(result.link_type_id),expression:\"result.link_type_id\"}],staticClass:\"form-control\",on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(result, \"link_type_id\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])},function($event){return _vm.selectLinkType($event)}]}},_vm._l((_vm.linkTypes),function(linkType){return _c('option',{attrs:{\"label\":linkType.type},domProps:{\"value\":linkType.id + '-' + linkType.direction}},[_vm._v(_vm._s(linkType.type)+\"\\n \")])}),0)]),_vm._v(\" \"),_c('td',[_c('a',{attrs:{\"href\":'./transactions/show/' + result.transaction_group_id}},[_vm._v(_vm._s(result.description))]),_vm._v(\" \"),(result.type === 'withdrawal')?_c('span',[_vm._v(\"\\n (\"),_c('span',{staticClass:\"text-danger\"},[_vm._v(_vm._s(Intl.NumberFormat(_vm.locale, {\n style: 'currency',\n currency: result.currency_code\n }).format(parseFloat(result.amount) * -1)))]),_vm._v(\")\\n \")]):_vm._e(),_vm._v(\" \"),(result.type === 'deposit')?_c('span',[_vm._v(\"\\n (\"),_c('span',{staticClass:\"text-success\"},[_vm._v(_vm._s(Intl.NumberFormat(_vm.locale, {\n style: 'currency',\n currency: result.currency_code\n }).format(parseFloat(result.amount))))]),_vm._v(\")\\n \")]):_vm._e(),_vm._v(\" \"),(result.type === 'transfer')?_c('span',[_vm._v(\"\\n (\"),_c('span',{staticClass:\"text-info\"},[_vm._v(_vm._s(Intl.NumberFormat(_vm.locale, {\n style: 'currency',\n currency: result.currency_code\n }).format(parseFloat(result.amount))))]),_vm._v(\")\\n \")]):_vm._e(),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('em',[_c('a',{attrs:{\"href\":'./accounts/show/' + result.source_id}},[_vm._v(_vm._s(result.source_name))]),_vm._v(\"\\n →\\n \"),_c('a',{attrs:{\"href\":'./accounts/show/' + result.destination_id}},[_vm._v(_vm._s(result.destination_name))])])])])}),0)]):_vm._e()])])])]),_vm._v(\" \"),_vm._m(3)])])])]):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal-header\"},[_c('h5',{staticClass:\"modal-title\"},[_vm._v(\"Transaction thing dialog.\")]),_vm._v(\" \"),_c('button',{staticClass:\"close\",attrs:{\"aria-label\":\"Close\",\"data-dismiss\":\"modal\",\"type\":\"button\"}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"×\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('p',[_vm._v(\"\\n Use this form to search for transactions you wish to link to this one. When in doubt, use \"),_c('code',[_vm._v(\"id:*\")]),_vm._v(\" where the ID is the number from\\n the URL.\\n \")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"input-group-append\"},[_c('button',{staticClass:\"btn btn-default\",attrs:{\"type\":\"submit\"}},[_c('span',{staticClass:\"fas fa-search\"}),_vm._v(\" Search\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-secondary\",attrs:{\"data-dismiss\":\"modal\",\"type\":\"button\"}},[_vm._v(\"Close\")])])}]\n\nexport { render, staticRenderFns }","<!--\n - TransactionLinks.vue\n - Copyright (c) 2021 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 v-if=\"showField\">\n <div class=\"form-group\">\n <div class=\"text-xs d-none d-lg-block d-xl-block\">\n {{ $t('firefly.journal_links') }}\n </div>\n <div class=\"row\">\n <div class=\"col\">\n <p v-if=\"links.length === 0\">\n <button type=\"button\" class=\"btn btn-default btn-xs\" data-target=\"#linkModal\" @click=\"resetModal\" data-toggle=\"modal\"><span class=\"fas fa-plus\"></span> Add transaction link</button>\n </p>\n <ul v-if=\"links.length > 0\" class=\"list-group\">\n <li v-for=\"(transaction, index) in links\" class=\"list-group-item\" v-bind:key=\"index\">\n <em>{{ getTextForLinkType(transaction.link_type_id) }}</em>\n <a :href='\"./transaction/show/\" + transaction.transaction_group_id'>{{ transaction.description }}</a>\n\n <span v-if=\"transaction.type === 'withdrawal'\">\n (<span class=\"text-danger\">{{\n Intl.NumberFormat(locale, {\n style: 'currency',\n currency: transaction.currency_code\n }).format(parseFloat(transaction.amount) * -1)\n }}</span>)\n </span>\n <span v-if=\"transaction.type === 'deposit'\">\n (<span class=\"text-success\">{{\n Intl.NumberFormat(locale, {\n style: 'currency',\n currency: transaction.currency_code\n }).format(parseFloat(transaction.amount))\n }}</span>)\n </span>\n <span v-if=\"transaction.type === 'transfer'\">\n (<span class=\"text-info\">{{\n Intl.NumberFormat(locale, {\n style: 'currency',\n currency: transaction.currency_code\n }).format(parseFloat(transaction.amount))\n }}</span>)\n </span>\n <div class=\"btn-group btn-group-xs float-right\">\n <button type=\"button\" class=\"btn btn-xs btn-danger\" @click=\"removeLink(index)\" tabindex=\"-1\"><span class=\"far fa-trash-alt\"></span></button>\n </div>\n </li>\n </ul>\n <div v-if=\"links.length > 0\" class=\"form-text\">\n <button type=\"button\" class=\"btn btn-default\" @click=\"resetModal\" data-target=\"#linkModal\" data-toggle=\"modal\"><span class=\"fas fa-plus\"></span></button>\n </div>\n </div>\n </div>\n </div>\n <!-- modal -->\n <div id=\"linkModal\" class=\"modal\" tabindex=\"-1\" ref=\"linkModal\">\n <div class=\"modal-dialog modal-lg\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Transaction thing dialog.</h5>\n <button aria-label=\"Close\" class=\"close\" data-dismiss=\"modal\" type=\"button\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\"col\">\n <p>\n Use this form to search for transactions you wish to link to this one. When in doubt, use <code>id:*</code> where the ID is the number from\n the URL.\n </p>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col\">\n <form v-on:submit.prevent=\"search\" autocomplete=\"off\">\n <div class=\"input-group\">\n <input id=\"query\" v-model=\"query\" autocomplete=\"off\" class=\"form-control\" maxlength=\"255\" name=\"search\"\n placeholder=\"Search query\" type=\"text\">\n <div class=\"input-group-append\">\n <button class=\"btn btn-default\" type=\"submit\"><span class=\"fas fa-search\"></span> Search</button>\n </div>\n </div>\n </form>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col\">\n <span v-if=\"searching\"><span class=\"fas fa-spinner fa-spin\"></span></span>\n <h4 v-if=\"searchResults.length > 0\">{{ $t('firefly.search_results') }}</h4>\n <table v-if=\"searchResults.length > 0\" class=\"table table-sm\">\n <caption style=\"display:none;\">{{ $t('firefly.search_results') }}</caption>\n <thead>\n <tr>\n <th scope=\"col\" colspan=\"2\" style=\"width:33%\">{{ $t('firefly.include') }}</th>\n <th scope=\"col\">{{ $t('firefly.transaction') }}</th>\n </tr>\n </thead>\n <tbody>\n <tr v-for=\"result in searchResults\">\n <td>\n <input v-model=\"result.selected\" class=\"form-control\"\n type=\"checkbox\"\n @change=\"selectTransaction($event)\"\n />\n </td>\n <td>\n <select\n v-model=\"result.link_type_id\"\n class=\"form-control\"\n @change=\"selectLinkType($event)\"\n >\n <option v-for=\"linkType in linkTypes\" :label=\"linkType.type\" :value=\"linkType.id + '-' + linkType.direction\">{{\n linkType.type\n }}\n </option>\n </select>\n </td>\n <td>\n <a :href=\"'./transactions/show/' + result.transaction_group_id\">{{ result.description }}</a>\n <span v-if=\"result.type === 'withdrawal'\">\n (<span class=\"text-danger\">{{\n Intl.NumberFormat(locale, {\n style: 'currency',\n currency: result.currency_code\n }).format(parseFloat(result.amount) * -1)\n }}</span>)\n </span>\n <span v-if=\"result.type === 'deposit'\">\n (<span class=\"text-success\">{{\n Intl.NumberFormat(locale, {\n style: 'currency',\n currency: result.currency_code\n }).format(parseFloat(result.amount))\n }}</span>)\n </span>\n <span v-if=\"result.type === 'transfer'\">\n (<span class=\"text-info\">{{\n Intl.NumberFormat(locale, {\n style: 'currency',\n currency: result.currency_code\n }).format(parseFloat(result.amount))\n }}</span>)\n </span>\n <br/>\n <em>\n <a :href=\"'./accounts/show/' + result.source_id\">{{ result.source_name }}</a>\n &rarr;\n <a :href=\"'./accounts/show/' + result.destination_id\">{{ result.destination_name }}</a>\n </em>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button class=\"btn btn-secondary\" data-dismiss=\"modal\" type=\"button\">Close</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nconst lodashClonedeep = require('lodash.clonedeep');\n// See reference nr. 3\nexport default {\n props: ['index', 'value', 'errors', 'customFields'],\n name: \"TransactionLinks\",\n data() {\n return {\n searchResults: [],\n include: [],\n locale: 'en-US',\n linkTypes: [],\n query: '',\n searching: false,\n links: this.value,\n availableFields: this.customFields,\n emitEvent: true\n }\n },\n created() {\n this.locale = localStorage.locale ?? 'en-US';\n this.emitEvent = false;\n this.links = lodashClonedeep(this.value);\n this.getLinkTypes();\n\n },\n computed: {\n showField: function () {\n if ('links' in this.availableFields) {\n return this.availableFields.links;\n }\n return false;\n }\n },\n watch: {\n value: function (value) {\n if (null !== value) {\n this.emitEvent = false;\n this.links = lodashClonedeep(value);\n }\n },\n links: function (value) {\n if (true === this.emitEvent) {\n this.$emit('set-field', {index: this.index, field: 'links', value: lodashClonedeep(value)});\n }\n this.emitEvent = true;\n },\n customFields: function (value) {\n this.availableFields = value;\n }\n },\n methods: {\n removeLink: function (index) {\n this.links.splice(index, 1);\n },\n getTextForLinkType: function (linkTypeId) {\n let parts = linkTypeId.split('-');\n for (let i in this.linkTypes) {\n if (this.linkTypes.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n let current = this.linkTypes[i];\n if (parts[0] === current.id && parts[1] === current.direction) {\n return current.type;\n }\n }\n }\n return 'text for #' + linkTypeId;\n },\n selectTransaction: function (event) {\n for (let i in this.searchResults) {\n if (this.searchResults.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n let current = this.searchResults[i];\n if (current.selected) {\n this.addToSelected(current);\n }\n if (!current.selected) {\n // remove from\n this.removeFromSelected(current);\n }\n }\n }\n },\n selectLinkType: function (event) {\n for (let i in this.searchResults) {\n if (this.searchResults.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n let current = this.searchResults[i];\n this.updateSelected(current.transaction_journal_id, current.link_type_id);\n }\n }\n },\n updateSelected(journalId, linkTypeId) {\n for (let i in this.links) {\n if (this.links.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n let current = this.links[i];\n if (parseInt(current.transaction_journal_id) === journalId) {\n this.links[i].link_type_id = linkTypeId;\n }\n }\n }\n },\n addToSelected(journal) {\n let result = this.links.find(({transaction_journal_id}) => transaction_journal_id === journal.transaction_journal_id);\n if (typeof result === 'undefined') {\n this.links.push(journal);\n }\n },\n removeFromSelected(journal) {\n for (let i in this.links) {\n if (this.links.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n let current = this.links[i];\n if (current.transaction_journal_id === journal.transaction_journal_id) {\n this.links.splice(parseInt(i), 1);\n }\n }\n }\n },\n getLinkTypes: function () {\n let url = './api/v1/link_types';\n axios.get(url)\n .then(response => {\n this.parseLinkTypes(response.data);\n }\n );\n },\n resetModal: function() {\n this.search();\n },\n parseLinkTypes: function (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 linkTypeInward = {\n id: current.id,\n type: current.attributes.inward,\n direction: 'inward'\n };\n let linkTypeOutward = {\n id: current.id,\n type: current.attributes.outward,\n direction: 'outward'\n };\n if (linkTypeInward.type === linkTypeOutward.type) {\n linkTypeInward.type = linkTypeInward.type + ' (←)';\n linkTypeOutward.type = linkTypeOutward.type + ' (→)';\n }\n this.linkTypes.push(linkTypeInward);\n this.linkTypes.push(linkTypeOutward);\n }\n }\n },\n search: function () {\n if('' === this.query) {\n this.searchResults = [];\n return;\n }\n this.searching = true;\n this.searchResults = [];\n let url = './api/v1/search/transactions?limit=10&query=' + this.query;\n axios.get(url)\n .then(response => {\n this.parseSearch(response.data);\n }\n );\n },\n parseSearch: function (data) {\n for (let i in data.data) {\n if (data.data.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n for (let ii in data.data[i].attributes.transactions) {\n if (data.data[i].attributes.transactions.hasOwnProperty(ii) && /^0$|^[1-9]\\d*$/.test(ii) && ii <= 4294967294) {\n let current = data.data[i].attributes.transactions[ii];\n current.transaction_group_id = parseInt(data.data[i].id);\n current.selected = this.isJournalSelected(current.transaction_journal_id);\n current.link_type_id = this.getJournalLinkType(current.transaction_journal_id);\n current.link_type_text = '';\n this.searchResults.push(current);\n }\n }\n }\n }\n this.searching = false;\n },\n getJournalLinkType: function (journalId) {\n for (let i in this.links) {\n if (this.links.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n let current = this.links[i];\n if (current.transaction_journal_id === journalId) {\n return current.link_type_id;\n }\n }\n }\n return '1-inward';\n },\n isJournalSelected: function (journalId) {\n for (let i in this.links) {\n if (this.links.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n let current = this.links[i];\n if (current.transaction_journal_id === journalId) {\n return true;\n }\n }\n }\n return false;\n }\n }\n}\n</script>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionLinks.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionLinks.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TransactionLinks.vue?vue&type=template&id=7826e6c4&\"\nimport script from \"./TransactionLinks.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionLinks.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 - TransactionAttachments.vue\n - Copyright (c) 2021 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 v-if=\"showField\" class=\"form-group\">\n <div class=\"text-xs d-none d-lg-block d-xl-block\">\n {{ $t('firefly.attachments') }}\n </div>\n <div class=\"input-group\">\n <input\n ref=\"att\"\n class=\"form-control\"\n multiple\n @change=\"selectedFile\"\n name=\"attachments[]\"\n type=\"file\"\n />\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n name: \"TransactionAttachments\",\n props: ['transaction_journal_id', 'customFields', 'index', 'uploadTrigger', 'clearTrigger'],\n data() {\n return {\n availableFields: this.customFields,\n uploads: 0,\n created: 0,\n uploaded: 0,\n }\n },\n watch: {\n customFields: function (value) {\n this.availableFields = value;\n },\n uploadTrigger: function () {\n // console.log('uploadTrigger(' + this.transaction_journal_id + ',' + this.index + ')');\n this.doUpload();\n },\n clearTrigger: function () {\n // console.log('clearTrigger(' + this.transaction_journal_id + ',' + this.index + ')');\n this.$refs.att.value = null;\n },\n transaction_journal_id: function (value) {\n // console.log('watch transaction_journal_id: ' + value + ' (index ' + this.index + ')');\n }\n },\n computed: {\n showField: function () {\n if ('attachments' in this.availableFields) {\n return this.availableFields.attachments;\n }\n return false;\n }\n },\n methods: {\n selectedFile: function () {\n this.$emit('selected-attachments', {index: this.index, id: this.transaction_journal_id});\n },\n createAttachment: function (name) {\n // console.log('Now in createAttachment()');\n const uri = './api/v1/attachments';\n const data = {\n filename: name,\n attachable_type: 'TransactionJournal',\n attachable_id: this.transaction_journal_id,\n };\n // create new attachment:\n return axios.post(uri, data);\n },\n uploadAttachment: function (attachmentId, data) {\n this.created++;\n // console.log('Now in uploadAttachment()');\n const uploadUri = './api/v1/attachments/' + attachmentId + '/upload';\n return axios.post(uploadUri, data)\n },\n countAttachment: function () {\n this.uploaded++;\n // console.log('Uploaded ' + this.uploaded + ' / ' + this.uploads);\n if (this.uploaded >= this.uploads) {\n // console.log('All files uploaded. Emit event for ' + this.transaction_journal_id + '(' + this.index + ')');\n this.$emit('uploaded-attachments', this.transaction_journal_id);\n }\n },\n doUpload: function () {\n let files = this.$refs.att.files;\n this.uploads = files.length;\n // loop all files and create attachments.\n for (let i in files) {\n if (files.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n // console.log('Now at file ' + (parseInt(i) + 1) + ' / ' + files.length);\n // read file into file reader:\n let current = files[i];\n let fileReader = new FileReader();\n let theParent = this; // dont ask me why i need to do this.\n fileReader.onloadend = evt => {\n if (evt.target.readyState === FileReader.DONE) {\n // console.log('I am done reading file ' + (parseInt(i) + 1));\n this.createAttachment(current.name).then(response => {\n // console.log('Created attachment. Now upload (1)');\n return theParent.uploadAttachment(response.data.data.id, new Blob([evt.target.result]));\n }).then(theParent.countAttachment);\n }\n }\n fileReader.readAsArrayBuffer(current);\n }\n }\n if (0 === files.length) {\n //console.log('No files to upload. Emit event!');\n this.$emit('uploaded-attachments', this.transaction_journal_id);\n }\n // Promise.all(promises).then(response => {\n // console.log('All files uploaded. Emit event!');\n // this.$emit('uploaded-attachments', this.transaction_journal_id);\n // });\n }\n }\n\n}\n</script>\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionAttachments.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionAttachments.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TransactionAttachments.vue?vue&type=template&id=0364e752&\"\nimport script from \"./TransactionAttachments.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionAttachments.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 (_vm.showField)?_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"text-xs d-none d-lg-block d-xl-block\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('firefly.attachments'))+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_c('input',{ref:\"att\",staticClass:\"form-control\",attrs:{\"multiple\":\"\",\"name\":\"attachments[]\",\"type\":\"file\"},on:{\"change\":_vm.selectedFile}})])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - TransactionLocation.vue\n - Copyright (c) 2021 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 v-if=\"showField\" class=\"form-group\">\n <div class=\"text-xs d-none d-lg-block d-xl-block\">\n {{ $t('firefly.location') }}\n </div>\n <div style=\"width:100%;height:300px;\">\n <l-map\n ref=\"myMap\"\n :center=\"center\"\n :zoom=\"zoom\" style=\"width:100%;height:300px;\"\n @ready=\"prepMap()\"\n @update:zoom=\"zoomUpdated\"\n @update:center=\"centerUpdated\"\n @update:bounds=\"boundsUpdated\"\n >\n <l-tile-layer :url=\"url\"></l-tile-layer>\n <l-marker :lat-lng=\"marker\" :visible=\"hasMarker\"></l-marker>\n </l-map>\n <span>\n <button class=\"btn btn-default btn-xs\" @click=\"clearLocation\">{{ $t('firefly.clear_location') }}</button>\n </span>\n </div>\n <p>&nbsp;</p>\n </div>\n</template>\n\n<script>\n\n// If you need to reference 'L', such as in 'L.icon', then be sure to\n// explicitly import 'leaflet' into your component\n// import L from 'leaflet';\nimport {LMap, LMarker, LTileLayer} from 'vue2-leaflet';\nimport 'leaflet/dist/leaflet.css';\n\nimport L from 'leaflet';\n\ndelete L.Icon.Default.prototype._getIconUrl;\n\nL.Icon.Default.mergeOptions({\n iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),\n iconUrl: require('leaflet/dist/images/marker-icon.png'),\n shadowUrl: require('leaflet/dist/images/marker-shadow.png')\n });\n\nexport default {\n name: \"TransactionLocation\",\n props: {\n index: {},\n value: {\n type: Object,\n required: false\n },\n errors: {},\n customFields: {},\n },\n components: {\n LMap,\n LTileLayer,\n LMarker,\n },\n created() {\n if (null === this.value || typeof this.value === 'undefined') {\n axios.get('./api/v1/configuration/firefly.default_location').then(response => {\n this.zoom = parseInt(response.data.data.value.zoom_level);\n this.center =\n [\n parseFloat(response.data.data.value.latitude),\n parseFloat(response.data.data.value.longitude),\n ]\n ;\n });\n return;\n }\n if (null !== this.value.zoom_level && null !== this.value.latitude && null !== this.value.longitude) {\n this.zoom = this.value.zoom_level;\n this.center = [\n parseFloat(this.value.latitude),\n parseFloat(this.value.longitude),\n ];\n this.hasMarker = true;\n }\n },\n data() {\n return {\n availableFields: this.customFields,\n url: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',\n zoom: 3,\n center: [0, 0],\n bounds: null,\n map: null,\n hasMarker: false,\n marker: [0, 0],\n }\n },\n methods: {\n prepMap: function () {\n this.map = this.$refs.myMap.mapObject;\n this.map.on('contextmenu', this.setObjectLocation);\n this.map.on('zoomend', this.saveZoomLevel);\n },\n setObjectLocation: function (event) {\n this.marker = [event.latlng.lat, event.latlng.lng];\n this.hasMarker = true;\n this.emitEvent();\n },\n saveZoomLevel: function () {\n this.emitEvent();\n },\n clearLocation: function () {\n this.hasMarker = false;\n this.emitEvent();\n },\n emitEvent() {\n this.$emit('set-marker-location', {\n index: this.index,\n zoomLevel: this.zoom,\n lat: this.marker[0],\n lng: this.marker[1],\n hasMarker: this.hasMarker\n }\n );\n },\n zoomUpdated(zoom) {\n this.zoom = zoom;\n },\n centerUpdated(center) {\n this.center = center;\n },\n boundsUpdated(bounds) {\n this.bounds = bounds;\n }\n },\n computed: {\n showField: function () {\n if ('location' in this.availableFields) {\n return this.availableFields.location;\n }\n return false;\n }\n },\n watch: {\n customFields: function (value) {\n this.availableFields = value;\n },\n }\n}\n</script>\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionLocation.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionLocation.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TransactionLocation.vue?vue&type=template&id=26d78234&\"\nimport script from \"./TransactionLocation.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionLocation.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 (_vm.showField)?_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"text-xs d-none d-lg-block d-xl-block\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('firefly.location'))+\"\\n \")]),_vm._v(\" \"),_c('div',{staticStyle:{\"width\":\"100%\",\"height\":\"300px\"}},[_c('l-map',{ref:\"myMap\",staticStyle:{\"width\":\"100%\",\"height\":\"300px\"},attrs:{\"center\":_vm.center,\"zoom\":_vm.zoom},on:{\"ready\":function($event){return _vm.prepMap()},\"update:zoom\":_vm.zoomUpdated,\"update:center\":_vm.centerUpdated,\"update:bounds\":_vm.boundsUpdated}},[_c('l-tile-layer',{attrs:{\"url\":_vm.url}}),_vm._v(\" \"),_c('l-marker',{attrs:{\"lat-lng\":_vm.marker,\"visible\":_vm.hasMarker}})],1),_vm._v(\" \"),_c('span',[_c('button',{staticClass:\"btn btn-default btn-xs\",on:{\"click\":_vm.clearLocation}},[_vm._v(_vm._s(_vm.$t('firefly.clear_location')))])])],1),_vm._v(\" \"),_c('p',[_vm._v(\" \")])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SplitForm.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SplitForm.vue?vue&type=script&lang=js&\"","<!--\n - SplitForm.vue\n - Copyright (c) 2021 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 :id=\"'split_' + index\" :class=\"'tab-pane' + (0 === index ? ' active' : '')\">\n <div class=\"row\">\n <div class=\"col\">\n <div class=\"card\">\n <div class=\"card-header\">\n <h3 class=\"card-title\">\n {{ $t('firefly.basic_journal_information') }}\n <span v-if=\"count > 1\">({{ index + 1 }} / {{ count }}) </span>\n </h3>\n <div v-if=\"count>1\" class=\"card-tools\">\n <button type=\"button\" class=\"btn btn-danger btn-xs\" @click=\"removeTransaction\"><span class=\"fas fa-trash-alt\"></span></button>\n </div>\n </div>\n\n <div class=\"card-body\">\n <!-- start of body -->\n <div class=\"row\">\n <div class=\"col\">\n <TransactionDescription\n v-model=\"transaction.description\"\n v-on=\"$listeners\"\n :errors=\"transaction.errors.description\"\n :index=\"index\"\n ></TransactionDescription>\n </div>\n </div>\n <!-- source and destination -->\n <div class=\"row\">\n <div class=\"col-xl-5 col-lg-5 col-md-10 col-sm-12 col-xs-12\">\n <!-- SOURCE -->\n <TransactionAccount\n v-model=\"sourceAccount\"\n v-on=\"$listeners\"\n :destination-allowed-types=\"destinationAllowedTypes\"\n :errors=\"transaction.errors.source\"\n :index=\"index\"\n :source-allowed-types=\"sourceAllowedTypes\"\n :transaction-type=\"transactionType\"\n direction=\"source\"\n />\n </div>\n <!-- switcharoo! -->\n <div class=\"col-xl-2 col-lg-2 col-md-2 col-sm-12 text-center d-none d-sm-block\">\n <SwitchAccount\n v-if=\"0 === index && allowSwitch\"\n v-on=\"$listeners\"\n :index=\"index\"\n :transaction-type=\"transactionType\"\n />\n </div>\n\n <!-- destination -->\n <div class=\"col-xl-5 col-lg-5 col-md-12 col-sm-12 col-xs-12\">\n <!-- DESTINATION -->\n <TransactionAccount\n v-model=\"destinationAccount\"\n v-on=\"$listeners\"\n :destination-allowed-types=\"destinationAllowedTypes\"\n :errors=\"transaction.errors.destination\"\n :index=\"index\"\n :transaction-type=\"transactionType\"\n :source-allowed-types=\"sourceAllowedTypes\"\n direction=\"destination\"\n />\n </div>\n </div>\n\n\n <!-- amount -->\n <div class=\"row\">\n <div class=\"col-xl-5 col-lg-5 col-md-10 col-sm-12 col-xs-12\">\n <!-- AMOUNT -->\n <TransactionAmount\n v-on=\"$listeners\"\n :amount=\"transaction.amount\"\n :destination-currency-symbol=\"this.transaction.destination_account_currency_symbol\"\n :errors=\"transaction.errors.amount\"\n :index=\"index\"\n :source-currency-symbol=\"this.transaction.source_account_currency_symbol\"\n :transaction-type=\"this.transactionType\"\n />\n </div>\n <div class=\"col-xl-2 col-lg-2 col-md-2 col-sm-12 text-center d-none d-sm-block\">\n <TransactionForeignCurrency\n v-model=\"transaction.foreign_currency_id\"\n v-on=\"$listeners\"\n :destination-currency-id=\"this.transaction.destination_account_currency_id\"\n :index=\"index\"\n :selected-currency-id=\"this.transaction.foreign_currency_id\"\n :source-currency-id=\"this.transaction.source_account_currency_id\"\n :transaction-type=\"this.transactionType\"\n />\n </div>\n <div class=\"col-xl-5 col-lg-5 col-md-12 col-sm-12 col-xs-12\">\n <!--\n The reason that TransactionAmount gets the symbols and\n TransactionForeignAmount gets the ID's of the currencies is\n because ultimately TransactionAmount doesn't decide which\n currency id is submitted to Firefly III.\n -->\n <TransactionForeignAmount\n v-model=\"transaction.foreign_amount\"\n v-on=\"$listeners\"\n :destination-currency-id=\"this.transaction.destination_account_currency_id\"\n :errors=\"transaction.errors.foreign_amount\"\n :index=\"index\"\n :selected-currency-id=\"this.transaction.foreign_currency_id\"\n :source-currency-id=\"this.transaction.source_account_currency_id\"\n :transaction-type=\"this.transactionType\"\n />\n </div>\n </div>\n\n <!-- dates -->\n <div class=\"row\">\n <div class=\"col-xl-5 col-lg-5 col-md-12 col-sm-12 col-xs-12\">\n <TransactionDate\n v-on=\"$listeners\"\n :date=\"splitDate\"\n :errors=\"transaction.errors.date\"\n :index=\"index\"\n />\n </div>\n\n <div class=\"col-xl-5 col-lg-5 col-md-12 col-sm-12 col-xs-12 offset-xl-2 offset-lg-2\">\n <TransactionCustomDates\n v-on=\"$listeners\"\n :book-date=\"transaction.book_date\"\n :custom-fields.sync=\"customFields\"\n :due-date=\"transaction.due_date\"\n :errors=\"transaction.errors.custom_dates\"\n :index=\"index\"\n :interest-date=\"transaction.interest_date\"\n :invoice-date=\"transaction.invoice_date\"\n :payment-date=\"transaction.payment_date\"\n :process-date=\"transaction.process_date\"\n />\n </div>\n </div>\n\n <!-- end of body -->\n </div>\n </div>\n </div>\n </div> <!-- end of basic card -->\n\n <!-- card for meta -->\n <div class=\"row\">\n <div class=\"col\">\n <div class=\"card\">\n <div class=\"card-header\">\n <h3 class=\"card-title\">\n {{ $t('firefly.transaction_journal_meta') }}\n <span v-if=\"count > 1\">({{ index + 1 }} / {{ count }}) </span>\n </h3>\n </div>\n <div class=\"card-body\">\n <!-- start of body -->\n <!-- meta -->\n <div class=\"row\">\n <div class=\"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12\">\n <TransactionBudget\n v-if=\"!('Transfer' === transactionType || 'Deposit' === transactionType)\"\n v-model=\"transaction.budget_id\"\n v-on=\"$listeners\"\n :errors=\"transaction.errors.budget\"\n :index=\"index\"\n />\n <TransactionCategory\n v-model=\"transaction.category\"\n v-on=\"$listeners\"\n :errors=\"transaction.errors.category\"\n :index=\"index\"\n />\n </div>\n <div class=\"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12\">\n <TransactionBill\n v-if=\"!('Transfer' === transactionType || 'Deposit' === transactionType)\"\n v-model=\"transaction.bill_id\"\n v-on=\"$listeners\"\n :errors=\"transaction.errors.bill\"\n :index=\"index\"\n />\n <TransactionTags\n v-model=\"transaction.tags\"\n v-on=\"$listeners\"\n :errors=\"transaction.errors.tags\"\n :index=\"index\"\n />\n <TransactionPiggyBank\n v-if=\"!('Withdrawal' === transactionType || 'Deposit' === transactionType)\"\n v-model=\"transaction.piggy_bank_id\"\n v-on=\"$listeners\"\n :errors=\"transaction.errors.piggy_bank\"\n :index=\"index\"\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- end card for meta -->\n <!-- card for extra -->\n <div v-if=\"hasMetaFields\" class=\"row\">\n <div class=\"col\">\n <div class=\"card\">\n <div class=\"card-header\">\n <h3 class=\"card-title\">\n {{ $t('firefly.transaction_journal_extra') }}\n <span v-if=\"count > 1\">({{ index + 1 }} / {{ count }}) </span>\n </h3>\n </div>\n <div class=\"card-body\">\n <!-- start of body -->\n <div class=\"row\">\n <div class=\"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12\">\n\n <TransactionInternalReference\n v-model=\"transaction.internal_reference\"\n v-on=\"$listeners\"\n :custom-fields.sync=\"customFields\"\n :errors=\"transaction.errors.internal_reference\"\n :index=\"index\"\n />\n\n <TransactionExternalUrl\n v-model=\"transaction.external_url\"\n v-on=\"$listeners\"\n :custom-fields.sync=\"customFields\"\n :errors=\"transaction.errors.external_url\"\n :index=\"index\"\n />\n <TransactionNotes\n v-model=\"transaction.notes\"\n v-on=\"$listeners\"\n :custom-fields.sync=\"customFields\"\n :errors=\"transaction.errors.notes\"\n :index=\"index\"\n />\n </div>\n <div class=\"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12\">\n\n <TransactionAttachments\n ref=\"attachments\"\n v-model=\"transaction.attachments\"\n v-on=\"$listeners\"\n :custom-fields.sync=\"customFields\"\n :index=\"index\"\n :transaction_journal_id=\"transaction.transaction_journal_id\"\n :upload-trigger=\"transaction.uploadTrigger\"\n :clear-trigger=\"transaction.clearTrigger\"\n />\n <TransactionLocation\n v-model=\"transaction.location\"\n v-on=\"$listeners\"\n :custom-fields.sync=\"customFields\"\n :errors=\"transaction.errors.location\"\n :index=\"index\"\n />\n\n <TransactionLinks\n v-model=\"transaction.links\"\n v-on=\"$listeners\"\n :custom-fields.sync=\"customFields\"\n :index=\"index\"\n />\n </div>\n\n </div>\n <!-- end of body -->\n </div>\n </div>\n </div>\n </div>\n <!-- end card for extra -->\n <!-- end of card -->\n </div>\n</template>\n\n<script>\n\nimport TransactionDescription from \"./TransactionDescription\";\nimport TransactionDate from \"./TransactionDate\";\nimport TransactionBudget from \"./TransactionBudget\";\nimport TransactionAccount from \"./TransactionAccount\";\nimport SwitchAccount from \"./SwitchAccount\";\nimport TransactionAmount from \"./TransactionAmount\";\nimport TransactionForeignAmount from \"./TransactionForeignAmount\";\nimport TransactionForeignCurrency from \"./TransactionForeignCurrency\";\nimport TransactionCustomDates from \"./TransactionCustomDates\";\nimport TransactionCategory from \"./TransactionCategory\";\nimport TransactionBill from \"./TransactionBill\";\nimport TransactionTags from \"./TransactionTags\";\nimport TransactionPiggyBank from \"./TransactionPiggyBank\";\nimport TransactionInternalReference from \"./TransactionInternalReference\";\nimport TransactionExternalUrl from \"./TransactionExternalUrl\";\nimport TransactionNotes from \"./TransactionNotes\";\nimport TransactionLinks from \"./TransactionLinks\";\nimport TransactionAttachments from \"./TransactionAttachments\";\nimport SplitPills from \"./SplitPills\";\nimport TransactionLocation from \"./TransactionLocation\";\n\nexport default {\n name: \"SplitForm\",\n props: {\n transaction: {\n type: Object,\n required: true\n },\n count: {\n type: Number,\n required: true\n },\n customFields: {\n type: Object,\n required: false\n },\n index: {\n type: Number,\n required: true\n },\n date: {\n type: String,\n required: true\n },\n transactionType: {\n type: String,\n required: true\n },\n sourceAllowedTypes: {\n type: Array,\n required: false,\n default: function () {\n return [];\n }\n }, // allowed source account types.\n destinationAllowedTypes: {\n type: Array,\n required: false,\n default: function () {\n return [];\n }\n },\n // allow switch?\n allowSwitch: {\n type: Boolean,\n required: false,\n default: false\n }\n\n },\n created() {\n // console.log('SplitForm(' + this.index + ')');\n },\n methods: {\n removeTransaction: function () {\n // console.log('Will remove transaction ' + this.index);\n this.$emit('remove-transaction', {index: this.index});\n },\n },\n computed: {\n splitDate: function () {\n return this.date;\n },\n sourceAccount: function () {\n //console.log('computed::sourceAccount(' + this.index + ')');\n return {\n id: this.transaction.source_account_id,\n name: this.transaction.source_account_name,\n type: this.transaction.source_account_type,\n };\n //console.log(JSON.stringify(value));\n //return value;\n },\n destinationAccount: function () {\n //console.log('computed::destinationAccount(' + this.index + ')');\n return {\n id: this.transaction.destination_account_id,\n name: this.transaction.destination_account_name,\n type: this.transaction.destination_account_type,\n };\n //console.log(JSON.stringify(value));\n //return value;\n },\n hasMetaFields: function () {\n let requiredFields = [\n 'internal_reference',\n 'notes',\n 'attachments',\n 'external_uri',\n 'location',\n 'links',\n ];\n for (let field in this.customFields) {\n if (this.customFields.hasOwnProperty(field)) {\n if (requiredFields.includes(field)) {\n if (true === this.customFields[field]) {\n return true;\n }\n }\n }\n }\n return false;\n }\n },\n components: {\n TransactionLocation,\n SplitPills,\n TransactionAttachments,\n TransactionNotes,\n TransactionExternalUrl,\n TransactionInternalReference,\n TransactionPiggyBank,\n TransactionTags,\n TransactionLinks,\n TransactionBill,\n TransactionCategory,\n TransactionCustomDates,\n TransactionForeignCurrency,\n TransactionForeignAmount,\n TransactionAmount,\n SwitchAccount,\n TransactionAccount,\n TransactionBudget,\n TransactionDescription,\n TransactionDate\n },\n}\n</script>\n","import { render, staticRenderFns } from \"./SplitForm.vue?vue&type=template&id=8d9e74a0&\"\nimport script from \"./SplitForm.vue?vue&type=script&lang=js&\"\nexport * from \"./SplitForm.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 - SplitPills.vue\n - Copyright (c) 2021 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 v-if=\"transactions.length > 1\" class=\"row\">\n <div class=\"col\">\n <!-- tabs -->\n <ul class=\"nav nav-pills ml-auto p-2\" id=\"transactionTabs\">\n <li v-for=\"(transaction, index) in this.transactions\" class=\"nav-item\"><a :class=\"'nav-link' + (0 === index ? ' active' : '')\"\n :href=\"'#split_' + index\"\n data-toggle=\"pill\">\n <span v-if=\"'' !== transaction.description\">{{ transaction.description }}</span>\n <span v-if=\"'' === transaction.description\">Split {{ index + 1 }}</span>\n </a></li>\n </ul>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n name: \"SplitPills\",\n props: {\n transactions: {\n type: Array,\n required: true,\n default: function() {\n return [];\n }\n },\n count: {\n type: Number,\n required: true\n },\n }\n}\n</script>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SplitPills.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SplitPills.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SplitPills.vue?vue&type=template&id=6bee3f8d&\"\nimport script from \"./SplitPills.vue?vue&type=script&lang=js&\"\nexport * from \"./SplitPills.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 (_vm.transactions.length > 1)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('ul',{staticClass:\"nav nav-pills ml-auto p-2\",attrs:{\"id\":\"transactionTabs\"}},_vm._l((this.transactions),function(transaction,index){return _c('li',{staticClass:\"nav-item\"},[_c('a',{class:'nav-link' + (0 === index ? ' active' : ''),attrs:{\"href\":'#split_' + index,\"data-toggle\":\"pill\"}},[('' !== transaction.description)?_c('span',[_vm._v(_vm._s(transaction.description))]):_vm._e(),_vm._v(\" \"),('' === transaction.description)?_c('span',[_vm._v(\"Split \"+_vm._s(index + 1))]):_vm._e()])])}),0)])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"text-xs d-none d-lg-block d-xl-block\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('firefly.split_transaction_title'))+\"\\n \")]),_vm._v(\" \"),_c('vue-typeahead-bootstrap',{attrs:{\"data\":_vm.descriptions,\"inputClass\":_vm.errors.length > 0 ? 'is-invalid' : '',\"minMatchingChars\":3,\"placeholder\":_vm.$t('firefly.split_transaction_title'),\"serializer\":function (item) { return item.description; },\"showOnFocus\":true,\"inputName\":\"group_title\"},on:{\"input\":_vm.lookupDescription},model:{value:(_vm.title),callback:function ($$v) {_vm.title=$$v},expression:\"title\"}},[_c('template',{slot:\"append\"},[_c('div',{staticClass:\"input-group-append\"},[_c('button',{staticClass:\"btn btn-outline-secondary\",attrs:{\"tabindex\":\"-1\",\"type\":\"button\"},on:{\"click\":_vm.clearDescription}},[_c('span',{staticClass:\"far fa-trash-alt\"})])])])],2),_vm._v(\" \"),(_vm.errors.length > 0)?_c('span',_vm._l((_vm.errors),function(error){return _c('span',{staticClass:\"text-danger small\"},[_vm._v(_vm._s(error)),_c('br')])}),0):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - TransactionGroupTitle.vue\n - Copyright (c) 2021 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=\"form-group\">\n <div class=\"text-xs d-none d-lg-block d-xl-block\">\n {{ $t('firefly.split_transaction_title') }}\n </div>\n <vue-typeahead-bootstrap\n v-model=\"title\"\n :data=\"descriptions\"\n :inputClass=\"errors.length > 0 ? 'is-invalid' : ''\"\n :minMatchingChars=\"3\"\n :placeholder=\"$t('firefly.split_transaction_title')\"\n :serializer=\"item => item.description\"\n :showOnFocus=true\n inputName=\"group_title\"\n @input=\"lookupDescription\"\n >\n <template slot=\"append\">\n <div class=\"input-group-append\">\n <button class=\"btn btn-outline-secondary\" tabindex=\"-1\" type=\"button\" v-on:click=\"clearDescription\"><span class=\"far fa-trash-alt\"></span></button>\n </div>\n </template>\n </vue-typeahead-bootstrap>\n\n <span v-if=\"errors.length > 0\">\n <span v-for=\"error in errors\" class=\"text-danger small\">{{ error }}<br/></span>\n </span>\n\n </div>\n</template>\n\n<script>\nimport VueTypeaheadBootstrap from 'vue-typeahead-bootstrap';\nimport {debounce} from \"lodash\";\n\nexport default {\n props: ['value', 'errors'],\n name: \"TransactionGroupTitle\",\n components: {VueTypeaheadBootstrap},\n data() {\n return {\n descriptions: [],\n initialSet: [],\n title: this.value,\n emitEvent: true\n }\n },\n\n created() {\n axios.get(this.getACURL(''))\n .then(response => {\n this.descriptions = response.data;\n this.initialSet = response.data;\n });\n },\n watch: {\n value: function (value) {\n this.title = value;\n },\n title: function (value) {\n this.$emit('set-group-title', value);\n }\n },\n methods: {\n clearDescription: function () {\n this.title = '';\n },\n getACURL: function (query) {\n // update autocomplete URL:\n return document.getElementsByTagName('base')[0].href + 'api/v1/autocomplete/transactions?query=' + query;\n },\n lookupDescription: debounce(function () {\n // update autocomplete URL:\n axios.get(this.getACURL(this.title))\n .then(response => {\n this.descriptions = response.data;\n })\n }, 300)\n }\n}\n</script>\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionGroupTitle.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionGroupTitle.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TransactionGroupTitle.vue?vue&type=template&id=4bdb785a&\"\nimport script from \"./TransactionGroupTitle.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionGroupTitle.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"],"sourceRoot":""}