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

1 line
336 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/Create.vue","webpack:///./src/components/transactions/Create.vue?21f2","webpack:///./src/components/transactions/Create.vue","webpack:///./src/components/transactions/Create.vue?f6c7","webpack:///./src/pages/transactions/create.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","components","SplitForm","Alert","SplitPills","TransactionGroupTitle","created","this","date","getFullYear","getDate","type","toUpperCase","substring","getExpectedSourceTypes","getAccountToTransaction","getCustomFields","errorMessage","successMessage","customFields","enableSubmit","createAnother","resetFormAfter","submittedTransaction","submittedLinks","submittedAttachments","inError","submittedAttCount","groupTitleErrors","returnedGroupId","returnedGroupTitle","computed","watch","finaliseSubmission","methods","addTransactionArray","event","preventDefault","removeTransaction","$store","submitData","post","url","handleSubmissionResponse","group_title","description","result","hasOwnProperty","i","test","journals","transaction_journal_id","Promise","resolve","submitLinks","links","ii","currentLink","outward_id","journalId","inward_id","promises","all","submitAttachments","anyAttachments","selectedAttachment","$t","location","href","handleSubmissionError","parseErrors","submitTransaction","uploadedAttachment","key","storeLocation","storeAccountValue","storeField","storeDate","storeGroupTitle","submitTransactionLinks","submitted","total","received","message","transactionIndex","split","fieldName","convertData","convertSplit","synchronizeAccounts","source_name","destination_name","source_id","destination_id","array","destination_account_name","destination_account_id","source_account_name","source_account_id","toLowerCase","currency_id","amount","budget_id","category_name","category","internal_reference","external_url","notes","external_id","zoom_level","longitude","latitude","tags","order","reconciled","attachments","currentSplit","current","text","piggy_bank_id","bill_id","foreign_currency_id","foreign_amount","source_account_currency_id","destination_account_currency_id","link_type_id","linkTypeParts","inwardId","outwardId","newLink","getAllowedOpposingTypes","defaultDestinationAllowedTypes","defaultSourceAllowedTypes","_vm","_h","$createElement","_c","_self","attrs","_v","on","staticClass","_l","transaction","$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","Create","beforeCreate","$mount","source","destination","currency","foreign_currency","custom_dates","budget","bill","piggy_bank","source_account_type","source_account_currency_code","source_account_currency_symbol","destination_account_type","destination_account_currency_code","destination_account_currency_symbol","selectedAttachments","uploadTrigger","clearTrigger","source_account","name_with_balance","currency_name","currency_code","currency_decimal_places","destination_account","___CSS_LOADER_EXPORT___","class","descriptions","initialSet","getACURL","clearDescription","getElementsByTagName","query","lookupDescription","$emit","item","slot","localTimeZone","Intl","DateTimeFormat","resolvedOptions","timeZone","systemTimeZone","dateStr","parts","timeStr","localDate","ref","composing","budgetList","emitEvent","collectData","getBudgets","parseBudgets","$$selectedVal","prototype","filter","call","options","o","selected","map","_value","multiple","Number","direction","String","Object","default","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","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","currentTag","updateTags","tagList","shortList","initItems","clearTimeout","setTimeout","this$1","newTags","piggyList","getPiggies","parsePiggies","piggy","reference","showField","_m","external_uri","searchResults","include","linkTypes","searching","getLinkTypes","removeLink","getTextForLinkType","linkTypeId","selectTransaction","addToSelected","removeFromSelected","selectLinkType","updateSelected","journal","resetModal","search","parseLinkTypes","inward","outward","linkTypeInward","linkTypeOutward","parseSearch","transaction_group_id","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","lat","lng","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/create.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 - Create.vue\n - Copyright (c) 2020 james@firefly-iii.org\n -\n - This file is part of Firefly III (https://github.com/firefly-iii).\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <https://www.gnu.org/licenses/>.\n -->\n\n<template>\n <div>\n <alert :message=\"errorMessage\" type=\"danger\"/>\n <alert :message=\"successMessage\" type=\"success\"/>\n <form @submit=\"submitTransaction\" autocomplete=\"off\">\n <SplitPills :transactions=\"transactions\" :count=\"transactions.length\"/>\n <div class=\"tab-content\">\n <SplitForm\n v-for=\"(transaction, index) in this.transactions\"\n v-bind:key=\"index\"\n :count=\"transactions.length\"\n :custom-fields=\"customFields\"\n :date=\"date\"\n :destination-allowed-types=\"destinationAllowedTypes\"\n :index=\"index\"\n :source-allowed-types=\"sourceAllowedTypes\"\n :submitted-transaction=\"submittedTransaction\"\n :transaction=\"transaction\"\n :transaction-type=\"transactionType\"\n v-on:uploaded-attachments=\"uploadedAttachment($event)\"\n v-on:selected-attachments=\"selectedAttachment($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 />\n </div>\n\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 card-primary\">\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=\"addTransactionArray\"><span class=\"far fa-clone\"></span> {{\n $t('firefly.add_another_split')\n }}\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-success btn-block\" @click=\"submitTransaction\">\n <span v-if=\"enableSubmit\"><span class=\"far fa-save\"></span> {{ $t('firefly.store_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=\"createAnother\" v-model=\"createAnother\" class=\"form-check-input\" type=\"checkbox\">\n <label class=\"form-check-label\" for=\"createAnother\">\n <span class=\"small\">{{ $t('firefly.create_another') }}</span>\n </label>\n </div>\n <div class=\"form-check\">\n <input id=\"resetFormAfter\" v-model=\"resetFormAfter\" :disabled=\"!createAnother\" class=\"form-check-input\" type=\"checkbox\">\n <label class=\"form-check-label\" for=\"resetFormAfter\">\n <span class=\"small\">{{ $t('firefly.reset_after') }}</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 Alert from '../partials/Alert';\nimport SplitPills from \"./SplitPills\";\nimport TransactionGroupTitle from \"./TransactionGroupTitle\";\nimport SplitForm from \"./SplitForm\";\nimport {mapGetters, mapMutations} from \"vuex\";\n\nexport default {\n name: \"Create\",\n components: {\n SplitForm,\n Alert,\n SplitPills,\n TransactionGroupTitle,\n },\n /**\n * Grab some stuff from the API, add the first transaction.\n */\n created() {\n // set transaction type:\n let pathName = window.location.pathname;\n let parts = pathName.split('/');\n let type = parts[parts.length - 1];\n\n // set a basic date-time string:\n let date = new Date;\n this.date = [date.getFullYear(), ('0' + (date.getMonth() + 1)).slice(-2), ('0' + date.getDate()).slice(-2)].join('-') + 'T00:00';\n\n //console.log('Date is set to \"' + this.date + '\"');\n\n this.setTransactionType(type[0].toUpperCase() + type.substring(1));\n this.getExpectedSourceTypes();\n this.getAccountToTransaction();\n this.getCustomFields();\n this.addTransaction();\n },\n data() {\n return {\n // error or success message\n errorMessage: '',\n successMessage: '',\n\n // custom fields to show, useful for components:\n customFields: {},\n\n // states for the form (makes sense right)\n enableSubmit: true,\n createAnother: false,\n resetFormAfter: false,\n\n // things the process is done working on (3 phases):\n submittedTransaction: false,\n submittedLinks: false,\n submittedAttachments: -1, // -1 (no attachments), 0 = uploading, 1 = uploaded\n\n // transaction was actually submitted?\n inError: 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\n // errors in the group title:\n groupTitleErrors: [],\n\n // group ID + title once submitted:\n returnedGroupId: 0,\n returnedGroupTitle: '',\n\n // meta data for accounts\n accountToTransaction: {},\n allowedOpposingTypes: {},\n sourceAllowedTypes: ['Asset account', 'Loan', 'Debt', 'Mortgage', 'Revenue account'],\n destinationAllowedTypes: ['Asset account', 'Loan', 'Debt', 'Mortgage', 'Expense account'],\n\n // date not in the store because it was buggy\n date: ''\n }\n },\n computed: {\n /**\n * Grabbed from the store.\n */\n ...mapGetters('transactions/create', ['transactionType', 'transactions', 'groupTitle', 'defaultErrors']),\n ...mapGetters('root', ['listPageSize'])\n },\n watch: {\n submittedAttachments: function () {\n this.finaliseSubmission();\n }\n },\n methods: {\n /**\n * Store related mutators used by this component.\n */\n ...mapMutations('transactions/create',\n [\n 'setGroupTitle',\n 'addTransaction',\n 'deleteTransaction',\n 'setTransactionError',\n 'setTransactionType',\n 'resetErrors',\n 'updateField',\n 'resetTransactions',\n ]\n ),\n addTransactionArray: function (event) {\n event.preventDefault();\n this.addTransaction();\n },\n /**\n * Removes a split from the array.\n */\n removeTransaction: function (payload) {\n // console.log('Triggered to remove transaction ' + payload.index);\n this.$store.commit('transactions/create/deleteTransaction', payload);\n },\n submitData: function (url, data) {\n return axios.post(url, data);\n },\n handleSubmissionResponse: function (response) {\n // console.log('In handleSubmissionResponse()');\n // save some meta data:\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 let journals = [];\n\n // save separate journal ID's (useful ahead in the process):\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\n return Promise.resolve({journals: journals});\n },\n submitLinks: function (response, submission) {\n let promises = [];\n // for\n for (let i in response.journals) {\n if (response.journals.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n let journalId = response.journals[i];\n let links = submission.transactions[i].links;\n for (let ii in links) {\n if (links.hasOwnProperty(ii) && /^0$|^[1-9]\\d*$/.test(ii) && ii <= 4294967294) {\n let currentLink = links[ii];\n if (0 === currentLink.outward_id) {\n currentLink.outward_id = journalId;\n }\n if (0 === currentLink.inward_id) {\n currentLink.inward_id = journalId;\n }\n promises.push(axios.post('./api/v1/transaction_links', currentLink));\n }\n }\n }\n }\n if (0 === promises.length) {\n return Promise.resolve({response: 'from submitLinks'});\n }\n return Promise.all(promises);\n },\n submitAttachments: function (response, submission) {\n let anyAttachments = false;\n for (let i in response.journals) {\n if (response.journals.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n let journalId = response.journals[i];\n let hasAttachments = submission.transactions[i].attachments;\n // console.log('Decided that ' + journalId);\n // console.log(hasAttachments);\n if (hasAttachments) {\n // console.log('upload!');\n this.updateField({index: i, field: 'transaction_journal_id', value: journalId});\n // set upload trigger?\n this.updateField({index: i, field: 'uploadTrigger', value: true});\n //this.transactions[i].uploadTrigger = true;\n anyAttachments = true;\n }\n }\n }\n\n if (true === anyAttachments) {\n this.submittedAttachments = 0;\n }\n\n return Promise.resolve({response: 'from submitAttachments'});\n },\n selectedAttachment: function (payload) {\n this.updateField({index: payload.index, field: 'attachments', value: true});\n },\n finaliseSubmission: function () {\n // console.log('finaliseSubmission');\n if (0 === this.submittedAttachments) {\n // console.log('submittedAttachments = ' + this.submittedAttachments);\n return;\n }\n // console.log('In finaliseSubmission');\n if (false === this.createAnother) {\n window.location.href = (window.previousURL ?? '/') + '?transaction_group_id=' + this.returnedGroupId + '&message=created';\n return;\n }\n //console.log('Is in error?');\n //console.log(this.inError);\n if (false === this.inError) {\n // show message:\n this.errorMessage = '';\n this.successMessage = this.$t('firefly.transaction_stored_link', {ID: this.returnedGroupId, title: this.returnedGroupTitle});\n }\n // console.log('here we are');\n // enable flags:\n this.enableSubmit = true;\n this.submittedTransaction = false;\n this.submittedAttachments = -1;\n\n // reset attachments + errors\n if (!this.resetFormAfter) {\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.\n // console.log('Reset attachment #' + i);\n this.updateField({index: i, field: 'transaction_journal_id', value: 0});\n this.updateField({index: i, field: 'errors', value: this.defaultErrors})\n }\n }\n }\n }\n // reset the form:\n if (this.resetFormAfter) {\n this.resetTransactions();\n this.addTransaction();\n }\n return Promise.resolve({response: 'from finaliseSubmission'});\n },\n handleSubmissionError: function (error) {\n //console.log('in handleSubmissionError');\n // oh noes Firefly III has something to bitch about.\n this.enableSubmit = true;\n\n // but report an error because error:\n this.inError = true;\n this.parseErrors(error.response.data);\n },\n /**\n * Actually submit the transaction to Firefly III. This is a fairly complex beast of a thing because multiple things\n * need to happen in the right order.\n */\n submitTransaction: function (event) {\n event.preventDefault();\n // console.log('submitTransaction()');\n // disable the submit button:\n this.enableSubmit = false;\n\n // assume nothing breaks\n this.inError = false;\n\n // remove old warnings etc.\n this.successMessage = '';\n this.errorMessage = '';\n\n // convert the data so its ready to be submitted:\n const url = './api/v1/transactions';\n const data = this.convertData();\n\n this.submitData(url, data)\n .then(this.handleSubmissionResponse)\n .then(response => {\n return Promise.all([this.submitLinks(response, data), this.submitAttachments(response, data)]);\n }\n )\n .then(this.finaliseSubmission)\n .catch(this.handleSubmissionError);\n\n },\n /**\n * When a attachment component is done uploading it ends up here. We create an object where we count how many\n * attachment components have reported back they're done uploading. Of course if they have nothing to upload\n * they will be pretty fast in reporting they're done.\n *\n * Once the number of components matches the number of splits we know all attachments have been uploaded.\n */\n uploadedAttachment: function (journalId) {\n this.submittedAttachments = 0;\n // console.log('Triggered uploadedAttachment(' + journalId + ')');\n let key = 'str' + journalId;\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 /**\n * Responds to changed location.\n */\n storeLocation: function (payload) {\n let zoomLevel = payload.hasMarker ? payload.zoomLevel : null;\n let lat = payload.hasMarker ? payload.lat : null;\n let lng = payload.hasMarker ? payload.lng : null;\n this.updateField({index: payload.index, field: 'zoom_level', value: zoomLevel});\n this.updateField({index: payload.index, field: 'latitude', value: lat});\n this.updateField({index: payload.index, field: 'longitude', value: lng});\n },\n /**\n * Responds to changed account.\n */\n storeAccountValue: function (payload) {\n this.updateField({index: payload.index, field: payload.direction + '_account_id', value: payload.id});\n this.updateField({index: payload.index, field: payload.direction + '_account_type', value: payload.type});\n this.updateField({index: payload.index, field: payload.direction + '_account_name', value: payload.name});\n\n this.updateField({index: payload.index, field: payload.direction + '_account_currency_id', value: payload.currency_id});\n this.updateField({index: payload.index, field: payload.direction + '_account_currency_code', value: payload.currency_code});\n this.updateField({index: payload.index, field: payload.direction + '_account_currency_symbol', value: payload.currency_symbol});\n\n //this.calculateTransactionType(payload.index);\n },\n storeField: function (payload) {\n this.updateField(payload);\n },\n storeDate: function (payload) {\n this.date = payload.date;\n },\n storeGroupTitle: function (value) {\n // console.log('set group title: ' + value);\n this.setGroupTitle({groupTitle: value});\n },\n\n /**\n * Submit transaction links.\n */\n submitTransactionLinks(data, response) {\n //console.log('submitTransactionLinks()');\n let promises = [];\n let result = response.data.data.attributes.transactions;\n let total = 0;\n for (let i in data.transactions) {\n if (data.transactions.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n let submitted = data.transactions[i];\n if (result.hasOwnProperty(i)) {\n // found matching created transaction.\n let received = result[i];\n // grab ID from received, loop \"submitted\" transaction links\n for (let ii in submitted.links) {\n if (submitted.links.hasOwnProperty(ii) && /^0$|^[1-9]\\d*$/.test(ii) && ii <= 4294967294) {\n let currentLink = submitted.links[ii];\n total++;\n if (0 === currentLink.outward_id) {\n currentLink.outward_id = received.transaction_journal_id;\n }\n if (0 === currentLink.inward_id) {\n currentLink.inward_id = received.transaction_journal_id;\n }\n // submit transaction link:\n promises.push(axios.post('./api/v1/transaction_links', currentLink).then(response => {\n// See reference nr. 4\n }));\n }\n }\n }\n }\n }\n if (0 === total) {\n this.submittedLinks = true;\n return;\n }\n Promise.all(promises).then(function () {\n this.submittedLinks = true;\n });\n },\n parseErrors: function (errors) {\n for (let i in this.transactions) {\n if (this.transactions.hasOwnProperty(i)) {\n this.resetErrors({index: i});\n }\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\n /**\n *\n */\n convertData: function () {\n //console.log('now in convertData');\n let data = {\n 'transactions': []\n };\n //console.log('Group title is: \"' + this.groupTitle + '\"');\n if (this.groupTitle.length > 0) {\n data.group_title = this.groupTitle;\n //console.log('1) data.group_title is now \"'+data.group_title+'\"');\n }\n\n for (let i in this.transactions) {\n if (this.transactions.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n data.transactions.push(this.convertSplit(i, this.transactions[i]));\n }\n }\n if (data.transactions.length > 1 && '' !== data.transactions[0].description && (null === data.group_title || '' === data.group_title)) {\n data.group_title = data.transactions[0].description;\n //console.log('2) data.group_title is now \"'+data.group_title+'\"');\n }\n\n // depending on the transaction type for this thing, we need to\n // make sure other splits match the data we submit.\n if (data.transactions.length > 1) {\n // console.log('This is a split!');\n data = this.synchronizeAccounts(data);\n }\n\n return data;\n },\n synchronizeAccounts: function (data) {\n // console.log('synchronizeAccounts: ' + this.transactionType);\n // make sure all splits have whatever is in split 0.\n // since its a transfer we can drop the name and use ID's only.\n for (let i in data.transactions) {\n if (data.transactions.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n // console.log('now at ' + i);\n\n // for transfers, overrule both the source and the destination:\n if ('Transfer' === this.transactionType) {\n data.transactions[i].source_name = null;\n data.transactions[i].destination_name = null;\n if (i > 0) {\n data.transactions[i].source_id = data.transactions[0].source_id;\n data.transactions[i].destination_id = data.transactions[0].destination_id;\n }\n }\n // for deposits, overrule the destination and ignore the rest.\n if ('Deposit' === this.transactionType) {\n data.transactions[i].destination_name = null;\n if (i > 0) {\n data.transactions[i].destination_id = data.transactions[0].destination_id;\n }\n }\n\n // for withdrawals, overrule the source and ignore the rest.\n if ('Withdrawal' === this.transactionType) {\n data.transactions[i].source_name = null;\n if (i > 0) {\n data.transactions[i].source_id = data.transactions[0].source_id;\n }\n }\n }\n }\n return data;\n\n },\n\n /**\n *\n * @param key\n * @param array\n */\n convertSplit: function (key, array) {\n if ('' === array.destination_account_name) {\n array.destination_account_name = null;\n }\n if (0 === array.destination_account_id) {\n array.destination_account_name = null;\n }\n\n if ('' === array.source_account_name) {\n array.source_account_name = null;\n }\n if (0 === array.source_account_id) {\n array.source_account_id = null;\n }\n\n let currentSplit = {\n // basic\n description: array.description,\n date: this.date,\n type: this.transactionType.toLowerCase(),\n\n // account\n source_id: array.source_account_id ?? null,\n source_name: array.source_account_name ?? null,\n destination_id: array.destination_account_id ?? null,\n destination_name: array.destination_account_name ?? null,\n\n // amount:\n currency_id: array.currency_id,\n amount: array.amount,\n\n // meta data\n budget_id: array.budget_id,\n category_name: array.category,\n\n // optional date fields (6x):\n interest_date: array.interest_date,\n book_date: array.book_date,\n process_date: array.process_date,\n due_date: array.due_date,\n payment_date: array.payment_date,\n invoice_date: array.invoice_date,\n\n // other optional fields:\n internal_reference: array.internal_reference,\n external_url: array.external_url,\n notes: array.notes,\n external_id: array.external_id,\n\n // location:\n zoom_level: array.zoom_level,\n longitude: array.longitude,\n latitude: array.latitude,\n tags: [],\n\n // from thing:\n order: 0,\n reconciled: false,\n attachments: array.attachments,\n };\n\n if (0 !== array.tags.length) {\n for (let i in array.tags) {\n if (array.tags.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n // array.tags\n let current = array.tags[i];\n if (typeof current === 'object' && null !== current) {\n currentSplit.tags.push(current.text);\n // console.log('Add tag \"' + current.text + '\" from object.');\n continue;\n }\n if (typeof current === 'string') {\n currentSplit.tags.push(current);\n // console.log('Add tag \"' + current + '\" from string.');\n continue;\n }\n // console.log('Is neither.');\n }\n }\n }\n // console.log('Current split tags is now: ');\n // console.log(currentSplit.tags);\n\n // bills and piggy banks\n if (0 !== array.piggy_bank_id) {\n currentSplit.piggy_bank_id = array.piggy_bank_id;\n }\n if (0 !== array.bill_id) {\n currentSplit.bill_id = array.bill_id;\n }\n\n // foreign amount:\n if (0 !== array.foreign_currency_id && '' !== array.foreign_amount) {\n currentSplit.foreign_currency_id = array.foreign_currency_id;\n }\n if ('' !== array.foreign_amount) {\n currentSplit.foreign_amount = array.foreign_amount;\n }\n\n // do transaction type\n // let transactionType;\n // let firstSource;\n // let firstDestination;\n\n // get transaction type from first transaction\n //transactionType = this.transactionType ? this.transactionType.toLowerCase() : 'any';\n //console.log('Transaction type is now ' + transactionType);\n // if the transaction type is invalid, might just be that we can deduce it from\n // the presence of a source or destination account\n //firstSource = this.transactions[0].source_account_type;\n //firstDestination = this.transactions[0].destination_account_type;\n //console.log(this.transactions[0].source_account);\n //console.log(this.transactions[0].destination_account);\n //console.log('Type of first source is ' + firstSource);\n //console.log('Type of first destination is ' + firstDestination);\n\n // default to source:\n currentSplit.currency_id = array.source_account_currency_id;\n // if ('any' === transactionType && ['asset', 'Asset account', 'Loan', 'Debt', 'Mortgage'].includes(firstSource)) {\n // transactionType = 'withdrawal';\n // }\n\n if ('Deposit' === this.transactionType) {\n // transactionType = 'deposit';\n currentSplit.currency_id = array.destination_account_currency_id;\n }\n //currentSplit.type = transactionType;\n //console.log('Final type is ' + transactionType);\n\n let links = [];\n for (let i in array.links) {\n if (array.links.hasOwnProperty(i) && /^0$|^[1-9]\\d*$/.test(i) && i <= 4294967294) {\n let current = array.links[i];\n let linkTypeParts = current.link_type_id.split('-');\n let inwardId = 'outward' === linkTypeParts[1] ? 0 : parseInt(current.transaction_journal_id);\n let outwardId = 'inward' === linkTypeParts[1] ? 0 : parseInt(current.transaction_journal_id);\n let newLink = {\n link_type_id: parseInt(linkTypeParts[0]),\n inward_id: inwardId,\n outward_id: outwardId,\n };\n links.push(newLink);\n }\n }\n currentSplit.links = links;\n if (null === currentSplit.source_id) {\n delete currentSplit.source_id;\n }\n if (null === currentSplit.source_name) {\n delete currentSplit.source_name;\n }\n if (null === currentSplit.destination_id) {\n delete currentSplit.destination_id;\n }\n if (null === currentSplit.destination_name) {\n delete currentSplit.destination_name;\n }\n\n // console.log('Current split is: ');\n // console.log(currentSplit);\n\n // return it.\n return currentSplit;\n },\n /**\n * Get API value.\n */\n getAllowedOpposingTypes: function () {\n axios.get('./api/v1/configuration/firefly.allowed_opposing_types')\n .then(response => {\n // console.log('opposing types things.');\n // console.log(response.data.data.value);\n this.allowedOpposingTypes = response.data.data.value;\n });\n },\n getExpectedSourceTypes: function () {\n axios.get('./api/v1/configuration/firefly.expected_source_types')\n .then(response => {\n //console.log('getExpectedSourceTypes.');\n this.sourceAllowedTypes = response.data.data.value.source[this.transactionType];\n this.destinationAllowedTypes = response.data.data.value.destination[this.transactionType];\n // console.log('Source allowed types for ' + this.transactionType + ' is: ');\n // console.log(this.sourceAllowedTypes);\n\n // console.log('Destination allowed types for ' + this.transactionType + ' is: ');\n // console.log(this.destinationAllowedTypes);\n\n //this.allowedOpposingTypes = response.data.data.value;\n });\n },\n /**\n * Get API value.\n */\n getAccountToTransaction: function () {\n axios.get('./api/v1/configuration/firefly.account_to_transaction')\n .then(response => {\n this.accountToTransaction = response.data.data.value;\n });\n },\n /**\n * This method grabs the users preferred custom transaction fields. It's used when configuring the\n * custom date selects that will be available. It could be something the component does by itself,\n * thereby separating concerns. This is on my list. If it changes to a per-component thing, then\n * it should be done via the create.js Vue store because multiple components are interested in the\n * user's custom transaction fields.\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 setDestinationAllowedTypes: function (value) {\n // console.log('Create::setDestinationAllowedTypes');\n // console.log(value);\n if (0 === value.length) {\n this.destinationAllowedTypes = this.defaultDestinationAllowedTypes;\n //console.log('empty so back to defaults');\n return;\n }\n this.destinationAllowedTypes = value;\n },\n setSourceAllowedTypes(value) {\n // console.log('Create::setSourceAllowedTypes');\n // console.log(value);\n if (0 === value.length) {\n this.sourceAllowedTypes = this.defaultSourceAllowedTypes;\n // console.log('empty so back to defaults');\n return;\n }\n this.sourceAllowedTypes = value;\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!./Create.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!./Create.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Create.vue?vue&type=template&id=273ba2fd&\"\nimport script from \"./Create.vue?vue&type=script&lang=js&\"\nexport * from \"./Create.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('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:index,attrs:{\"count\":_vm.transactions.length,\"custom-fields\":_vm.customFields,\"date\":_vm.date,\"destination-allowed-types\":_vm.destinationAllowedTypes,\"index\":index,\"source-allowed-types\":_vm.sourceAllowedTypes,\"submitted-transaction\":_vm.submittedTransaction,\"transaction\":transaction,\"transaction-type\":_vm.transactionType},on:{\"uploaded-attachments\":function($event){return _vm.uploadedAttachment($event)},\"selected-attachments\":function($event){return _vm.selectedAttachment($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)}}})}),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 card-primary\"},[_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.addTransactionArray}},[_c('span',{staticClass:\"far fa-clone\"}),_vm._v(\" \"+_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-success 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.store_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.createAnother),expression:\"createAnother\"}],staticClass:\"form-check-input\",attrs:{\"id\":\"createAnother\",\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.createAnother)?_vm._i(_vm.createAnother,null)>-1:(_vm.createAnother)},on:{\"change\":function($event){var $$a=_vm.createAnother,$$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.createAnother=$$a.concat([$$v]))}else{$$i>-1&&(_vm.createAnother=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.createAnother=$$c}}}}),_vm._v(\" \"),_c('label',{staticClass:\"form-check-label\",attrs:{\"for\":\"createAnother\"}},[_c('span',{staticClass:\"small\"},[_vm._v(_vm._s(_vm.$t('firefly.create_another')))])])]),_vm._v(\" \"),_c('div',{staticClass:\"form-check\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.resetFormAfter),expression:\"resetFormAfter\"}],staticClass:\"form-check-input\",attrs:{\"id\":\"resetFormAfter\",\"disabled\":!_vm.createAnother,\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.resetFormAfter)?_vm._i(_vm.resetFormAfter,null)>-1:(_vm.resetFormAfter)},on:{\"change\":function($event){var $$a=_vm.resetFormAfter,$$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.resetFormAfter=$$a.concat([$$v]))}else{$$i>-1&&(_vm.resetFormAfter=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.resetFormAfter=$$c}}}}),_vm._v(\" \"),_c('label',{staticClass:\"form-check-label\",attrs:{\"for\":\"resetFormAfter\"}},[_c('span',{staticClass:\"small\"},[_vm._v(_vm._s(_vm.$t('firefly.reset_after')))])])])])])])])])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\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\nimport store from \"../../components/store\";\nimport Create from \"../../components/transactions/Create\";\nimport Vue from \"vue\";\n\nrequire('../../bootstrap');\n\nVue.config.productionTip = false;\n// i18n\nlet i18n = require('../../i18n');\n\n// See reference nr. 3\n// See reference nr. 4\n// See reference nr. 5\n// See reference nr. 6\n// See reference nr. 7\n\nlet props = {};\nconst app = new Vue({\n i18n,\n store,\n render(createElement) {\n return createElement(Create, {props: props});\n },\n beforeCreate() {\n this.$store.dispatch('root/initialiseStore');\n this.$store.commit('initialiseStore');\n this.$store.dispatch('updateCurrencyPreference');\n },\n }).$mount('#transactions_create');\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":""}