Update frontend.

This commit is contained in:
James Cole
2021-02-25 06:27:43 +01:00
parent 6bd6b1eb95
commit 9aa743b31b
47 changed files with 586 additions and 475 deletions

View File

@@ -222,6 +222,11 @@ const mutations = {
},
deleteTransaction(state, payload) {
state.transactions.splice(payload.index, 1);
// console.log('Deleted transaction ' + payload.index);
// console.log(state.transactions);
if(0===state.transactions.length) {
// console.log('array is empty!');
}
},
setTransactionType(state, transactionType) {
state.transactionType = transactionType;

View File

@@ -39,6 +39,7 @@
v-on:set-date="storeDate($event)"
v-on:set-time="storeTime($event)"
v-on:set-field="storeField($event)"
v-on:remove-transaction="removeTransaction($event)"
/>
</div>
@@ -49,7 +50,7 @@
<div class="card-body">
<div class="row">
<div class="col">
<TransactionGroupTitle v-model="this.groupTitle" :errors="this.groupTitleErrors"/>
<TransactionGroupTitle v-model="this.groupTitle" :errors="this.groupTitleErrors" v-on:set-group-title="storeGroupTitle($event)"/>
</div>
</div>
</div>
@@ -174,6 +175,9 @@ export default {
])
},
watch: {
transactions: function () {
// console.log('updated transactions');
},
submittedTransaction: function () {
// see finalizeSubmit()
this.finalizeSubmit();
@@ -193,6 +197,7 @@ export default {
*/
...mapMutations(
[
'setGroupTitle',
'addTransaction',
'deleteTransaction',
'setAllowedOpposingTypes',
@@ -208,8 +213,9 @@ export default {
/**
* Removes a split from the array.
*/
removeTransaction: function (index) {
this.$store.commit('transactions/create/deleteTransaction', {index: index});
removeTransaction: function (payload) {
// console.log('Triggered to remove transaction ' + payload.index);
this.$store.commit('transactions/create/deleteTransaction', payload);
},
/**
* This method grabs the users preferred custom transaction fields. It's used when configuring the
@@ -229,13 +235,13 @@ export default {
* forwarded.
*/
finalizeSubmit() {
console.log('finalizeSubmit (' + this.submittedTransaction + ', ' + this.submittedAttachments + ', ' + this.submittedLinks + ')');
// console.log('finalizeSubmit (' + this.submittedTransaction + ', ' + this.submittedAttachments + ', ' + this.submittedLinks + ')');
if (this.submittedTransaction && this.submittedAttachments && this.submittedLinks) {
console.log('all true');
console.log('createAnother = ' + this.createAnother);
console.log('inError = ' + this.inError);
// console.log('all true');
// console.log('createAnother = ' + this.createAnother);
// console.log('inError = ' + this.inError);
if (false === this.createAnother && false === this.inError) {
console.log('redirect');
// console.log('redirect');
window.location.href = (window.previousURL ?? '/') + '?transaction_group_id=' + this.returnedGroupId + '&message=created';
return;
}
@@ -282,7 +288,7 @@ export default {
* need to happen in the right order.
*/
submitTransaction: function () {
console.log('submitTransaction()');
// console.log('submitTransaction()');
// disable the submit button:
this.enableSubmit = false;
@@ -290,13 +296,13 @@ export default {
const url = './api/v1/transactions';
const data = this.convertData();
console.log('Will submit:');
console.log(data);
// console.log('Will submit:');
// console.log(data);
// POST the transaction.
axios.post(url, data)
.then(response => {
console.log('Response is OK!');
// console.log('Response is OK!');
// report the transaction is submitted.
this.submittedTransaction = true;
@@ -334,12 +340,13 @@ export default {
* The ID is set via the store.
*/
submitAttachments: function (data, response) {
console.log('submitAttachments()');
// console.log('submitAttachments()');
let result = response.data.data.attributes.transactions
for (let i in data.transactions) {
if (data.transactions.hasOwnProperty(i) && /^0$|^[1-9]\d*$/.test(i) && i <= 4294967294) {
if (result.hasOwnProperty(i)) {
this.updateField({index: i, field: 'transaction_journal_id', value: result[0].transaction_journal_id});
// console.log('updateField(' + i + ', transaction_journal_id, ' + result[i].transaction_journal_id + ')');
this.updateField({index: i, field: 'transaction_journal_id', value: result[i].transaction_journal_id});
}
}
}
@@ -352,13 +359,16 @@ export default {
* Once the number of components matches the number of splits we know all attachments have been uploaded.
*/
uploadedAttachment: function (journalId) {
console.log('Triggered uploadedAttachment(' + journalId + ')');
// console.log('Triggered uploadedAttachment(' + journalId + ')');
let key = 'str' + journalId;
this.submittedAttCount[key] = 1;
let count = Object.keys(this.submittedAttCount).length;
// console.log('Count is now ' + count);
// console.log('Length is ' + this.transactions.length);
if (count === this.transactions.length) {
// mark the attachments as stored:
this.submittedAttachments = true;
// console.log('Got them all!');
}
},
/**
@@ -395,6 +405,10 @@ export default {
storeTime: function (value) {
this.setTime(value.time)
},
storeGroupTitle: function (value) {
// console.log('set group title: ' + value);
this.setGroupTitle({groupTitle: value});
},
/**
* Calculate the transaction type based on what's currently in the store.
@@ -590,6 +604,7 @@ export default {
let data = {
'transactions': []
};
//console.log('Group title is: "' + this.groupTitle + '"');
if (this.groupTitle.length > 0) {
data.group_title = this.groupTitle;
}
@@ -599,7 +614,7 @@ export default {
data.transactions.push(this.convertSplit(i, this.transactions[i]));
}
}
if (data.transactions.length > 1) {
if (data.transactions.length > 1 && '' !== data.transactions[0].description) {
data.group_title = data.transactions[0].description;
}
@@ -651,7 +666,7 @@ export default {
},
switchAccounts: function (index) {
console.log('user wants to switch Accounts');
// console.log('user wants to switch Accounts');
let origSourceId = this.transactions[index].source_account_id;
let origSourceName = this.transactions[index].source_account_name;
let origSourceType = this.transactions[index].source_account_type;

View File

@@ -28,6 +28,9 @@
{{ $t('firefly.basic_journal_information') }}
<span v-if="count > 1">({{ index + 1 }} / {{ count }}) </span>
</h3>
<div class="card-tools" v-if="count>1">
<button class="btn btn-danger btn-xs" @click="removeTransaction"><i class="fas fa-trash-alt"></i></button>
</div>
</div>
<div class="card-body">
<!-- start of body -->
@@ -93,6 +96,7 @@
<div class="col-xl-2 col-lg-2 col-md-2 col-sm-12 text-center d-none d-sm-block">
<TransactionForeignCurrency
v-on="$listeners"
v-model="transaction.foreign_currency_id"
:transaction-type="this.transactionType"
:source-currency-id="this.transaction.source_account_currency_id"
:destination-currency-id="this.transaction.destination_account_currency_id"
@@ -111,6 +115,7 @@
:index="index"
v-on="$listeners"
:errors="transaction.errors.foreign_amount"
v-model="transaction.foreign_amount"
:transaction-type="this.transactionType"
:source-currency-id="this.transaction.source_account_currency_id"
:destination-currency-id="this.transaction.destination_account_currency_id"
@@ -322,7 +327,12 @@ export default {
'index',
'submittedTransaction' // need to know if transaction is submitted.
],
// TODO get rid of mapped getters.
methods: {
removeTransaction: function () {
// console.log('Will remove transaction ' + this.index);
this.$emit('remove-transaction', {index: this.index});
},
},
computed: {
...mapGetters(['transactionType', 'date', 'time']),
splitDate: function () {

View File

@@ -135,7 +135,7 @@ export default {
},
watch: {
selectedAccount: function (value) {
console.log('Emit on selected account');
// console.log('Emit on selected account');
this.selectedAccountTrigger = true;
this.account = value;
@@ -155,7 +155,7 @@ export default {
},
accountName: function (value) {
if (false === this.selectedAccountTrigger) {
console.log('Save to change name!');
// console.log('Save to change name!');
this.$emit('set-account',
{
index: this.index,
@@ -190,10 +190,12 @@ export default {
}
},
value: function (value) {
console.log(this.direction + ' account overruled by external forces.');
// console.log('Index ' + this.index + ' nwAct: ', value);
// console.log(this.direction + ' account overruled by external forces.');
// console.log(value);
this.account = value;
this.selectedAccountTrigger = true;
this.accountName = value.name;
this.accountName = value.name ?? '';
}
},
computed: {

View File

@@ -46,7 +46,10 @@
export default {
name: "TransactionAmount",
props: [
'index', 'errors', 'amount', 'transactionType',
'index',
'errors',
'amount',
'transactionType',
'sourceCurrencySymbol',
'destinationCurrencySymbol',
],
@@ -71,7 +74,6 @@ export default {
destinationCurrencySymbol: function (value) {
this.dstCurrencySymbol = value;
},
transactionType: function (value) {
switch (value) {
case 'Transfer':

View File

@@ -50,7 +50,7 @@ export default {
},
transaction_journal_id: function (value) {
if (!this.showField) {
console.log('Field is hidden. Emit event!');
// console.log('Field is hidden. Emit event!');
this.$emit('uploaded-attachments', value);
return;
}
@@ -71,7 +71,7 @@ export default {
},
methods: {
doUpload: function () {
console.log('Now in doUpload() for ' + this.$refs.att.files.length + ' files.');
// console.log('Now in doUpload() for ' + this.$refs.att.files.length + ' files.');
for (let i in this.$refs.att.files) {
if (this.$refs.att.files.hasOwnProperty(i) && /^0$|^[1-9]\d*$/.test(i) && i <= 4294967294) {
let current = this.$refs.att.files[i];
@@ -94,7 +94,7 @@ export default {
.post(uploadUri, new Blob([evt.target.result]))
.then(attachmentResponse => {
// TODO feedback etc.
console.log('Uploaded a file. Emit event!');
// console.log('Uploaded a file. Emit event!');
// console.log(attachmentResponse);
theParent.$emit('uploaded-attachments', this.transaction_journal_id);
});
@@ -105,7 +105,7 @@ export default {
}
}
if (0 === this.$refs.att.files.length) {
console.log('No files to upload. Emit event!');
// console.log('No files to upload. Emit event!');
this.$emit('uploaded-attachments', this.transaction_journal_id);
}
}

View File

@@ -50,7 +50,8 @@ export default {
data() {
return {
billList: [],
bill: this.value
bill: this.value,
emitEvent: true
}
},
created() {
@@ -88,8 +89,15 @@ export default {
},
},
watch: {
value: function (value) {
this.emitEvent = false;
this.bill = value;
},
bill: function (value) {
this.$emit('set-field', {field: 'bill_id', index: this.index, value: value});
if (true === this.emitEvent) {
this.$emit('set-field', {field: 'bill_id', index: this.index, value: value});
}
this.emitEvent = true;
}
},
}

View File

@@ -49,7 +49,8 @@ export default {
data() {
return {
budgetList: [],
budget: this.value
budget: this.value,
emitEvent: true
}
},
created() {
@@ -87,6 +88,10 @@ export default {
},
},
watch: {
value: function (value) {
this.emitEvent = false;
this.budget = value;
},
budget: function (value) {
this.$emit('set-field', {field: 'budget_id', index: this.index, value: value});
}

View File

@@ -61,7 +61,8 @@ export default {
return {
categories: [],
initialSet: [],
category: this.value
category: this.value,
emitEvent: true
}
},
@@ -77,7 +78,7 @@ export default {
methods: {
clearCategory: function () {
this.category = null;
this.category = '';
},
getACURL: function (query) {
// update autocomplete URL:
@@ -92,6 +93,10 @@ export default {
}, 300)
},
watch: {
value: function (value) {
this.emitEvent = false;
this.category = value ?? '';
},
category: function (value) {
this.$emit('set-field', {field: 'category', index: this.index, value: value});
}

View File

@@ -74,7 +74,25 @@ export default {
watch: {
customFields: function (value) {
this.availableFields = value;
}
},
interestDate: function(value) {
this.dates.interest_date = value;
},
bookDate: function(value) {
this.dates.book_date = value;
},
processDate: function(value) {
this.dates.process_date = value;
},
dueDate: function(value) {
this.dates.due_date = value;
},
paymentDate: function(value) {
this.dates.payment_date = value;
},
invoiceDate: function(value) {
this.dates.invoice_date = value;
},
},
methods: {
isDateField: function (name) {

View File

@@ -57,7 +57,8 @@ export default {
return {
descriptions: [],
initialSet: [],
description: this.value
description: this.value,
sendEvent: true
}
},
created() {
@@ -85,9 +86,15 @@ export default {
}, 300)
},
watch: {
value: function (value) {
this.sendEvent = false;
this.description = value;
},
description: function (value) {
this.$emit('set-field', {field: 'description', index: this.index, value: value});
//
if (true === this.sendEvent) {
this.$emit('set-field', {field: 'description', index: this.index, value: value});
}
this.sendEvent = true;
}
},
}

View File

@@ -45,7 +45,7 @@ export default {
data() {
return {
url: this.value,
availableFields: this.customFields
availableFields: this.customFields,
}
},
computed: {
@@ -61,8 +61,11 @@ export default {
customFields: function (value) {
this.availableFields = value;
},
value: function (value) {
this.url = value;
},
url: function (value) {
this.$emit('set-field', {field: 'external_url', index: index, value: value});
this.$emit('set-field', {field: 'external_url', index: this.index, value: value});
}
}
}

View File

@@ -43,23 +43,24 @@
export default {
name: "TransactionForeignAmount",
props: [
'index',
'errors',
'transactionType',
'sourceCurrencyId',
'destinationCurrencyId'
'index',
'errors',
'value',
'transactionType',
'sourceCurrencyId',
'destinationCurrencyId'
],
data() {
return {
amount: ''
// currencySymbol: '',
// allCurrencies: [],
// selectableCurrencies: [],
amount: this.value
}
},
watch: {
amount: function(value) {
amount: function (value) {
this.$emit('set-field', {field: 'foreign_amount', index: this.index, value: value});
},
value: function (value) {
this.amount = value;
}
},
computed: {

View File

@@ -38,27 +38,32 @@ export default {
'transactionType',
'sourceCurrencyId',
'destinationCurrencyId',
'selectedCurrencyId'
'selectedCurrencyId',
'value'
],
data() {
return {
selectedCurrency: 0,
selectedCurrency: this.value,
allCurrencies: [],
selectableCurrencies: [],
dstCurrencyId: this.destinationCurrencyId,
srcCurrencyId: this.sourceCurrencyId,
lockedCurrency: 0,
emitEvent: true
}
},
watch: {
value: function (value) {
this.selectedCurrency = value;
},
sourceCurrencyId: function (value) {
this.srcCurrencyId = value;
},
destinationCurrencyId: function (value) {
this.dstCurrencyId = value;
},
selectedCurrency: function(value) {
this.$emit('set-field',{field: 'foreign_currency_id', index: this.index, value: value});
selectedCurrency: function (value) {
this.$emit('set-field', {field: 'foreign_currency_id', index: this.index, value: value});
},
transactionType: function (value) {
this.lockedCurrency = 0;

View File

@@ -51,9 +51,7 @@
<script>
import VueTypeaheadBootstrap from 'vue-typeahead-bootstrap';
import {debounce} from "lodash";
import {createNamespacedHelpers} from "vuex";
const {mapState, mapGetters, mapActions, mapMutations} = createNamespacedHelpers('transactions/create')
export default {
props: ['value', 'errors'],
name: "TransactionGroupTitle",
@@ -62,7 +60,8 @@ export default {
return {
descriptions: [],
initialSet: [],
title: this.value
title: this.value,
emitEvent: true
}
},
@@ -74,24 +73,15 @@ export default {
});
},
watch: {
value: function (value) {
this.title = value;
},
title: function (value) {
//console.log('set');
this.setGroupTitle({groupTitle: value});
this.$emit('set-group-title', value);
}
},
methods: {
...mapMutations(
[
'setGroupTitle'
],
),
...mapGetters(
[
'groupTitle'
]
),
clearDescription: function () {
this.setGroupTitle({groupTitle: ''});
this.title = '';
},
getACURL: function (query) {

View File

@@ -45,7 +45,8 @@ export default {
data() {
return {
reference: this.value,
availableFields: this.customFields
availableFields: this.customFields,
emitEvent: true
}
},
computed: {
@@ -62,6 +63,10 @@ export default {
customFields: function (value) {
this.availableFields = value;
},
value: function (value) {
this.emitEvent = false;
this.reference = value;
},
reference: function (value) {
this.$emit('set-field', {field: 'internal_reference', index: this.index, value: value});
}

View File

@@ -197,8 +197,9 @@ export default {
linkTypes: [],
query: '',
searching: false,
links: [],
availableFields: this.customFields
links: this.value,
availableFields: this.customFields,
emitEvent: true
}
},
created() {
@@ -215,8 +216,15 @@ export default {
}
},
watch: {
value: function (value) {
this.emitEvent = false;
this.links = lodashClonedeep(value);
},
links: function (value) {
this.$emit('set-field', {index: this.index, field: 'links', value: lodashClonedeep(value)});
if (true === this.emitEvent) {
this.$emit('set-field', {index: this.index, field: 'links', value: lodashClonedeep(value)});
}
this.emitEvent = true;
},
customFields: function (value) {
this.availableFields = value;

View File

@@ -42,7 +42,8 @@ export default {
data() {
return {
notes: this.value,
availableFields: this.customFields
availableFields: this.customFields,
emitEvent: true
}
},
computed: {
@@ -54,11 +55,18 @@ export default {
}
},
watch: {
value: function (value) {
this.emitEvent = false;
this.notes = value;
},
customFields: function (value) {
this.availableFields = value;
},
notes: function (value) {
this.$emit('set-field', {field: 'notes', index: this.index, value: value});
if (true === this.emitEvent) {
this.$emit('set-field', {field: 'notes', index: this.index, value: value});
}
this.emitEvent = true;
}
}
}

View File

@@ -51,7 +51,8 @@ export default {
data() {
return {
piggyList: [],
piggy_bank_id: this.value
piggy_bank_id: this.value,
emitEvent: true
}
},
created() {
@@ -89,8 +90,15 @@ export default {
},
},
watch: {
value: function (value) {
this.emitEvent = false;
this.piggy_bank_id = value;
},
piggy_bank_id: function (value) {
this.$emit('set-field', {field: 'piggy_bank_id', index: this.index, value: value});
if (true === this.emitEvent) {
this.$emit('set-field', {field: 'piggy_bank_id', index: this.index, value: value});
}
this.emitEvent = true;
}
}
}

View File

@@ -57,13 +57,21 @@ export default {
tags: [],
currentTag: '',
updateTags: true, // the idea is that this is always true, except when the tags-function sets the value.
tagList: this.value
tagList: this.value,
emitEvent: true
};
},
watch: {
'currentTag': 'initItems',
value: function (value) {
this.emitEvent = false;
this.tagList = value;
},
tagList: function (value) {
this.$emit('set-field', {field: 'tags', index: this.index, value: value});
if (true === this.emitEvent) {
this.$emit('set-field', {field: 'tags', index: this.index, value: value});
}
this.emitEvent = true;
this.updateTags = false;
this.tags = value;
},

View File

@@ -77,9 +77,9 @@
"first_split_overrules_source": "Die erste Aufteilung k\u00f6nnte das Quellkonto \u00fcberschreiben",
"first_split_overrules_destination": "Die erste Aufteilung k\u00f6nnte das Zielkonto \u00fcberschreiben",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Buchung #{ID} (\"{title}\")<\/a> wurde gespeichert.",
"custom_period": "Custom period",
"reset_to_current": "Reset to current period",
"select_period": "Select a period",
"custom_period": "Benutzerdefinierter Zeitraum",
"reset_to_current": "Auf aktuellen Zeitraum zur\u00fccksetzen",
"select_period": "Zeitraum ausw\u00e4hlen",
"location": "Standort",
"other_budgets": "Zeitlich befristete Budgets",
"journal_links": "Buchungsverkn\u00fcpfungen",

View File

@@ -77,9 +77,9 @@
"first_split_overrules_source": "La premi\u00e8re ventilation peut remplacer le compte source",
"first_split_overrules_destination": "La premi\u00e8re ventilation peut remplacer le compte de destination",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">L'op\u00e9ration n\u00b0{ID} (\"{title}\")<\/a> a \u00e9t\u00e9 enregistr\u00e9e.",
"custom_period": "Custom period",
"reset_to_current": "Reset to current period",
"select_period": "Select a period",
"custom_period": "P\u00e9riode personnalis\u00e9e",
"reset_to_current": "R\u00e9initialiser \u00e0 la p\u00e9riode en cours",
"select_period": "S\u00e9lectionnez une p\u00e9riode",
"location": "Emplacement",
"other_budgets": "Budgets \u00e0 p\u00e9riode personnalis\u00e9e",
"journal_links": "Liens d'op\u00e9ration",

View File

@@ -77,9 +77,9 @@
"first_split_overrules_source": "La prima suddivisione potrebbe sovrascrivere l'account di origine",
"first_split_overrules_destination": "La prima suddivisione potrebbe sovrascrivere l'account di destinazione",
"transaction_stored_link": "La <a href=\"transactions\/show\/{ID}\">transazione #{ID} (\"{title}\")<\/a> \u00e8 stata salvata.",
"custom_period": "Custom period",
"reset_to_current": "Reset to current period",
"select_period": "Select a period",
"custom_period": "Periodo personalizzato",
"reset_to_current": "Ripristina il periodo corrente",
"select_period": "Seleziona il periodo",
"location": "Posizione",
"other_budgets": "Budget a periodi personalizzati",
"journal_links": "Collegamenti della transazione",

View File

@@ -77,9 +77,9 @@
"first_split_overrules_source": "Pierwszy podzia\u0142 mo\u017ce nadpisa\u0107 konto \u017ar\u00f3d\u0142owe",
"first_split_overrules_destination": "Pierwszy podzia\u0142 mo\u017ce nadpisa\u0107 konto docelowe",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transakcja #{ID} (\"{title}\")<\/a> zosta\u0142a zapisana.",
"custom_period": "Custom period",
"reset_to_current": "Reset to current period",
"select_period": "Select a period",
"custom_period": "Okres niestandardowy",
"reset_to_current": "Przywr\u00f3\u0107 do bie\u017c\u0105cego okresu",
"select_period": "Wybierz okres",
"location": "Lokalizacja",
"other_budgets": "Bud\u017cety niestandardowe",
"journal_links": "Powi\u0105zane transakcje",

View File

@@ -77,9 +77,9 @@
"first_split_overrules_source": "A primeira divis\u00e3o pode anular a conta de origem",
"first_split_overrules_destination": "A primeira divis\u00e3o pode anular a conta de destino",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transa\u00e7\u00e3o #{ID} (\"{title}\")<\/a> foi salva.",
"custom_period": "Custom period",
"reset_to_current": "Reset to current period",
"select_period": "Select a period",
"custom_period": "Per\u00edodo personalizado",
"reset_to_current": "Redefinir para o per\u00edodo atual",
"select_period": "Selecione um per\u00edodo",
"location": "Localiza\u00e7\u00e3o",
"other_budgets": "Or\u00e7amentos de per\u00edodos personalizados",
"journal_links": "Transa\u00e7\u00f5es ligadas",

View File

@@ -77,9 +77,9 @@
"first_split_overrules_source": "A primeira divis\u00e3o pode anular a conta de origem",
"first_split_overrules_destination": "A primeira divis\u00e3o pode anular a conta de destino",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transa\u00e7\u00e3o #{ID} (\"{title}\")<\/a> foi guardada.",
"custom_period": "Custom period",
"reset_to_current": "Reset to current period",
"select_period": "Select a period",
"custom_period": "Per\u00edodo personalizado",
"reset_to_current": "Reiniciar o per\u00edodo personalizado",
"select_period": "Selecionar um per\u00edodo",
"location": "Localiza\u00e7\u00e3o",
"other_budgets": "Or\u00e7amentos de tempo personalizado",
"journal_links": "Liga\u00e7\u00f5es de transac\u00e7\u00e3o",

View File

@@ -77,9 +77,9 @@
"first_split_overrules_source": "The first split may overrule the source account",
"first_split_overrules_destination": "The first split may overrule the destination account",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transakcia #{ID} (\"{title}\")<\/a> bola ulo\u017een\u00e1.",
"custom_period": "Custom period",
"reset_to_current": "Reset to current period",
"select_period": "Select a period",
"custom_period": "Vlastn\u00e9 obdobie",
"reset_to_current": "Obnovi\u0165 na aktu\u00e1lne obdobie",
"select_period": "Vyberte obdobie",
"location": "Poloha",
"other_budgets": "\u0160pecifick\u00e9 \u010dasovan\u00e9 rozpo\u010dty",
"journal_links": "Prepojenia transakcie",

View File

@@ -1,8 +1,8 @@
{
"firefly": {
"Transfer": "\u8f6c\u5e10",
"Transfer": "\u8f6c\u8d26",
"Withdrawal": "\u63d0\u6b3e",
"Deposit": "\u5b58\u6b3e",
"Deposit": "\u6536\u5165",
"date_and_time": "\u65e5\u671f\u548c\u65f6\u95f4",
"no_currency": "(\u6ca1\u6709\u8d27\u5e01)",
"date": "\u65e5\u671f",
@@ -17,7 +17,7 @@
"transaction_journal_meta": "\u5143\u4fe1\u606f",
"basic_journal_information": "\u57fa\u7840\u4ea4\u6613\u4fe1\u606f",
"bills_to_pay": "\u5f85\u4ed8\u8d26\u5355",
"left_to_spend": "\u5269\u4f59\u53ef\u82b1\u8d39",
"left_to_spend": "\u5269\u4f59\u652f\u51fa",
"attachments": "\u9644\u4ef6",
"net_worth": "\u51c0\u8d44\u4ea7",
"bill": "\u8d26\u5355",
@@ -40,8 +40,8 @@
"budgets": "\u9884\u7b97",
"categories": "\u5206\u7c7b",
"go_to_budgets": "\u524d\u5f80\u60a8\u7684\u9884\u7b97",
"income": "\u6536\u76ca \/ \u6536\u5165",
"go_to_deposits": "\u524d\u5f80\u5b58\u6b3e",
"income": "\u6536\u5165",
"go_to_deposits": "\u524d\u5f80\u6536\u5165",
"go_to_categories": "\u524d\u5f80\u60a8\u7684\u5206\u7c7b",
"expense_accounts": "\u652f\u51fa\u8d26\u6237",
"go_to_expenses": "\u524d\u5f80\u652f\u51fa",
@@ -73,19 +73,19 @@
"create_another": "\u4fdd\u5b58\u540e\uff0c\u8fd4\u56de\u6b64\u9875\u9762\u4ee5\u521b\u5efa\u65b0\u8bb0\u5f55",
"reset_after": "\u63d0\u4ea4\u540e\u91cd\u7f6e\u8868\u5355",
"bill_paid_on": "\u652f\u4ed8\u4e8e {date}",
"first_split_decides": "\u9996\u6b21\u62c6\u5206\u51b3\u5b9a\u6b64\u5b57\u6bb5\u7684\u503c",
"first_split_overrules_source": "The first split may overrule the source account",
"first_split_overrules_destination": "The first split may overrule the destination account",
"first_split_decides": "\u9996\u7b14\u62c6\u5206\u51b3\u5b9a\u6b64\u5b57\u6bb5\u7684\u503c",
"first_split_overrules_source": "\u9996\u7b14\u62c6\u5206\u53ef\u80fd\u8986\u76d6\u6765\u6e90\u8d26\u6237",
"first_split_overrules_destination": "\u9996\u7b14\u62c6\u5206\u53ef\u80fd\u8986\u76d6\u76ee\u6807\u8d26\u6237",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">\u4ea4\u6613 #{ID} (\u201c{title}\u201d)<\/a> \u5df2\u4fdd\u5b58\u3002",
"custom_period": "Custom period",
"reset_to_current": "Reset to current period",
"select_period": "Select a period",
"custom_period": "\u81ea\u5b9a\u4e49\u5468\u671f",
"reset_to_current": "\u91cd\u7f6e\u4e3a\u5f53\u524d\u5468\u671f",
"select_period": "\u9009\u62e9\u5468\u671f",
"location": "\u4f4d\u7f6e",
"other_budgets": "\u81ea\u5b9a\u4e49\u533a\u95f4\u9884\u7b97",
"journal_links": "\u4ea4\u6613\u5173\u8054",
"go_to_withdrawals": "\u524d\u5f80\u53d6\u6b3e",
"go_to_withdrawals": "\u524d\u5f80\u652f\u51fa",
"revenue_accounts": "\u6536\u5165\u8d26\u6237",
"add_another_split": "\u589e\u52a0\u62c6\u5206"
"add_another_split": "\u589e\u52a0\u53e6\u4e00\u7b14\u62c6\u5206"
},
"list": {
"piggy_bank": "\u5b58\u94b1\u7f50",
@@ -97,7 +97,7 @@
"lastActivity": "\u4e0a\u6b21\u6d3b\u52a8",
"currentBalance": "\u76ee\u524d\u4f59\u989d",
"balanceDiff": "\u4f59\u989d\u5dee",
"next_expected_match": "\u4e0b\u4e00\u6b21\u9884\u671f\u5339\u914d"
"next_expected_match": "\u9884\u671f\u4e0b\u6b21\u652f\u4ed8"
},
"config": {
"html_language": "zh-cn"

View File

@@ -9,10 +9,10 @@
dependencies:
"@babel/highlight" "^7.12.13"
"@babel/compat-data@^7.11.0", "@babel/compat-data@^7.13.0":
version "7.13.0"
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.0.tgz#7889eb7ee6518e2afa5d312b15fd7fd1fe9f3744"
integrity sha512-mKgFbYQ+23pjwNGBNPNWrBfa3g/EcmrPnwQpjWoNxq9xYf+M8wcLhMlz/wkWimLjzNzGnl3D+C2186gMzk0VuA==
"@babel/compat-data@^7.13.0", "@babel/compat-data@^7.13.5":
version "7.13.6"
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.6.tgz#11972d07db4c2317afdbf41d6feb3a730301ef4e"
integrity sha512-VhgqKOWYVm7lQXlvbJnWOzwfAQATd2nV52koT0HZ/LdDH0m4DUDwkKYsH+IwpXb+bKPyBJzawA4I6nBKqZcpQw==
"@babel/core@^7.0.0-beta.49", "@babel/core@^7.2.0":
version "7.13.1"
@@ -60,7 +60,7 @@
"@babel/helper-explode-assignable-expression" "^7.12.13"
"@babel/types" "^7.12.13"
"@babel/helper-compilation-targets@^7.10.4", "@babel/helper-compilation-targets@^7.13.0":
"@babel/helper-compilation-targets@^7.13.0":
version "7.13.0"
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.0.tgz#c9cf29b82a76fd637f0faa35544c4ace60a155a1"
integrity sha512-SOWD0JK9+MMIhTQiUVd4ng8f3NXhPVQvTv7D3UN4wbp/6cAHnB2EmMaU1zZA2Hh1gwme+THBrVSqTFxHczTh0Q==
@@ -89,15 +89,15 @@
"@babel/helper-annotate-as-pure" "^7.12.13"
regexpu-core "^4.7.1"
"@babel/helper-define-polyfill-provider@^0.1.0":
version "0.1.0"
resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.0.tgz#a9e8a161bb594a6a26ba93f68efd475c935a1727"
integrity sha512-/nX4CQRve5OZsc0FsvkuefeIQFG7GQo2X5GbD/seME7Tu4s2gHuQfXTIKup++/W9K1SWi2dTe7H9zhgJxhn/pA==
"@babel/helper-define-polyfill-provider@^0.1.2":
version "0.1.2"
resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.2.tgz#619f01afe1deda460676c25c463b42eaefdb71a2"
integrity sha512-hWeolZJivTNGHXHzJjQz/NwDaG4mGXf22ZroOP8bQYgvHNzaQ5tylsVbAcAS2oDjXBwpu8qH2I/654QFS2rDpw==
dependencies:
"@babel/helper-compilation-targets" "^7.10.4"
"@babel/helper-module-imports" "^7.10.4"
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/traverse" "^7.11.5"
"@babel/helper-compilation-targets" "^7.13.0"
"@babel/helper-module-imports" "^7.12.13"
"@babel/helper-plugin-utils" "^7.13.0"
"@babel/traverse" "^7.13.0"
debug "^4.1.1"
lodash.debounce "^4.0.8"
resolve "^1.14.2"
@@ -141,7 +141,7 @@
dependencies:
"@babel/types" "^7.13.0"
"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13":
"@babel/helper-module-imports@^7.12.13":
version "7.12.13"
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz#ec67e4404f41750463e455cc3203f6a32e93fcb0"
integrity sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==
@@ -254,14 +254,14 @@
js-tokens "^4.0.0"
"@babel/parser@^7.12.13", "@babel/parser@^7.13.0":
version "7.13.0"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.0.tgz#49b9b6ee213e5634fa80361dae139effef893f78"
integrity sha512-w80kxEMFhE3wjMOQkfdTvv0CSdRSJZptIlLhU4eU/coNJeWjduspUFz+IRnBbAq6m5XYBFMoT1TNkk9K9yf10g==
version "7.13.4"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.4.tgz#340211b0da94a351a6f10e63671fa727333d13ab"
integrity sha512-uvoOulWHhI+0+1f9L4BoozY7U5cIkZ9PgJqvb041d6vypgUmtVPG4vmGm4pSggjl8BELzvHyUeJSUyEMY6b+qA==
"@babel/plugin-proposal-async-generator-functions@^7.13.0":
version "7.13.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.0.tgz#42f4a4922c973ceb70bfd4708daf55601fe25434"
integrity sha512-3Loqr0+jE2/yqp29VnW1YqcWjGnIQwICotlrMfn6+1Ih2MBIbaaIFpJ5fnmYmGSUa9vwMhHOh2rMAqUH7NMWmQ==
"@babel/plugin-proposal-async-generator-functions@^7.13.5":
version "7.13.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.5.tgz#69e3fbb9958949b09036e27b26eba1aafa1ba3db"
integrity sha512-8cErJEDzhZgNKzYyjCKsHuyPqtWxG8gc9h4OFSUDJu0vCAOsObPU2LcECnW0kJwh/b+uUz46lObVzIXw0fzAbA==
dependencies:
"@babel/helper-plugin-utils" "^7.13.0"
"@babel/helper-remap-async-to-generator" "^7.13.0"
@@ -647,15 +647,15 @@
"@babel/helper-plugin-utils" "^7.12.13"
"@babel/plugin-transform-runtime@^7.2.0":
version "7.13.2"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.13.2.tgz#c50f0ee426c12fd3c647d0f23cc2e872d011e137"
integrity sha512-WGvQwEanjiNgSnStXz5XKCs+S3HSw04eQM+tCIoPVTGbSWkSoxt1HlnmB6YFrEJcWlVh8Jqg43DGvLPlX/rWZw==
version "7.13.7"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.13.7.tgz#a856b53681da9193d98dfb03d8192b0a3f4cdd8a"
integrity sha512-pXfYTTSbU5ThVTUyQ6TUdUkonZYKKq8M6vDUkFCjFw8vT42hhayrbJPVWGC7B97LkzFYBtdW/SBGVZtRaopW6Q==
dependencies:
"@babel/helper-module-imports" "^7.12.13"
"@babel/helper-plugin-utils" "^7.13.0"
babel-plugin-polyfill-corejs2 "^0.1.2"
babel-plugin-polyfill-corejs3 "^0.1.2"
babel-plugin-polyfill-regenerator "^0.1.1"
babel-plugin-polyfill-corejs2 "^0.1.4"
babel-plugin-polyfill-corejs3 "^0.1.3"
babel-plugin-polyfill-regenerator "^0.1.2"
semver "7.0.0"
"@babel/plugin-transform-shorthand-properties@^7.12.13":
@@ -710,15 +710,15 @@
"@babel/helper-plugin-utils" "^7.12.13"
"@babel/preset-env@^7.2.0":
version "7.13.0"
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.13.0.tgz#6ecc3daf63627792ec03d1076dbb54b4928a9e0d"
integrity sha512-UeU4bHlskjdwqNnaiBEYTXbL7dtuUDtOOkcS2c64wR2UqwUMzlRsvxoKQtsVJR579dS3Wmxnb7HRc9U5mSzQhA==
version "7.13.5"
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.13.5.tgz#68b3bbc821a97fcdbf4bd0f6895b83d07f84f33e"
integrity sha512-xUeKBIIcbwxGevyWMSWZOW98W1lp7toITvVsMxSddCEQy932yYiF4fCB+CG3E/MXzFX3KbefgvCqEQ7TDoE6UQ==
dependencies:
"@babel/compat-data" "^7.13.0"
"@babel/compat-data" "^7.13.5"
"@babel/helper-compilation-targets" "^7.13.0"
"@babel/helper-plugin-utils" "^7.13.0"
"@babel/helper-validator-option" "^7.12.17"
"@babel/plugin-proposal-async-generator-functions" "^7.13.0"
"@babel/plugin-proposal-async-generator-functions" "^7.13.5"
"@babel/plugin-proposal-class-properties" "^7.13.0"
"@babel/plugin-proposal-dynamic-import" "^7.12.17"
"@babel/plugin-proposal-export-namespace-from" "^7.12.13"
@@ -777,9 +777,9 @@
"@babel/plugin-transform-unicode-regex" "^7.12.13"
"@babel/preset-modules" "^0.1.3"
"@babel/types" "^7.13.0"
babel-plugin-polyfill-corejs2 "^0.1.2"
babel-plugin-polyfill-corejs3 "^0.1.2"
babel-plugin-polyfill-regenerator "^0.1.1"
babel-plugin-polyfill-corejs2 "^0.1.4"
babel-plugin-polyfill-corejs3 "^0.1.3"
babel-plugin-polyfill-regenerator "^0.1.2"
core-js-compat "^3.9.0"
semver "7.0.0"
@@ -795,9 +795,9 @@
esutils "^2.0.2"
"@babel/runtime@^7.2.0", "@babel/runtime@^7.8.4":
version "7.13.2"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.2.tgz#9511c87d2808b2cf5fb9e9c5cf0d1ab789d75499"
integrity sha512-U9plpxyudmZNYe12YI6cXyeWTWYCTq2u1h+C0XVtC3+BoiuzTh1BHlMJgxMrbKTombYkf7wQGqoxYkptFehuZw==
version "7.13.7"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.7.tgz#d494e39d198ee9ca04f4dcb76d25d9d7a1dc961a"
integrity sha512-h+ilqoX998mRVM5FtB5ijRuHUDVt5l3yfoOi2uh18Z/O3hvyaHQ39NpxVkCIG5yFs+mLq/ewFp8Bss6zmWv6ZA==
dependencies:
regenerator-runtime "^0.13.4"
@@ -810,7 +810,7 @@
"@babel/parser" "^7.12.13"
"@babel/types" "^7.12.13"
"@babel/traverse@^7.11.5", "@babel/traverse@^7.13.0":
"@babel/traverse@^7.13.0":
version "7.13.0"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.0.tgz#6d95752475f86ee7ded06536de309a65fc8966cc"
integrity sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==
@@ -860,9 +860,9 @@
integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==
"@popperjs/core@^2.8.2":
version "2.8.3"
resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.8.3.tgz#8b4eae3d9dd470c022cb9238128db8b1906e7fca"
integrity sha512-olsVs3lo8qKycPoWAUv4bMyoTGVXsEpLR9XxGk3LJR5Qa92a1Eg/Fj1ATdhwtC/6VMaKtsz1nSAeheD2B2Ru9A==
version "2.8.4"
resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.8.4.tgz#6f1744b0f69f507a433f42874cc3b2eb4b11b337"
integrity sha512-h0lY7g36rhjNV8KVHKS3/BEOgfsxu0AiRI8+ry5IFBGEsQFkpjxtcpVc9ndN8zrKUeMZXAWMc7eQMepfgykpxQ==
"@types/chart.js@^2.7.55":
version "2.9.30"
@@ -1368,29 +1368,29 @@ babel-plugin-dynamic-import-node@^2.3.3:
dependencies:
object.assign "^4.1.0"
babel-plugin-polyfill-corejs2@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.1.2.tgz#3e5e7ef339dd84ca34c6a20605e6d4ef62aba3b1"
integrity sha512-sSGAKN95gTnXjg3RtGI9QBW/xSqXy5fo2Bt+W5WkhconIO+QxuDZChyjZYiY90xE3MQRI1k73Dh/HAe86cWf8A==
babel-plugin-polyfill-corejs2@^0.1.4:
version "0.1.6"
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.1.6.tgz#947a1227efa1a14ce09ac5fafc66ce8e039071e2"
integrity sha512-1PfghLDuzX5lFY6XXO0hrfxwYf0LD9YajMWeQBGNaPNLQ35paV7YB4hlFW+HfwFS5kcp4rtPI/237xLfQ1ah8A==
dependencies:
"@babel/compat-data" "^7.11.0"
"@babel/helper-define-polyfill-provider" "^0.1.0"
"@babel/compat-data" "^7.13.0"
"@babel/helper-define-polyfill-provider" "^0.1.2"
semver "^6.1.1"
babel-plugin-polyfill-corejs3@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.2.tgz#39b0d46744360738237bd54052af852c84d74ebf"
integrity sha512-7neRvPKcdvZ4X9IpYBCmT+ceVUKC1idX7DJN5sRtiPP9d0ABD6k5x/QvXTiz/9wMp86FBDX6Gz0g7WQY2lRfgw==
babel-plugin-polyfill-corejs3@^0.1.3:
version "0.1.4"
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.4.tgz#2ae290200e953bade30907b7a3bebcb696e6c59d"
integrity sha512-ysSzFn/qM8bvcDAn4mC7pKk85Y5dVaoa9h4u0mHxOEpDzabsseONhUpR7kHxpUinfj1bjU7mUZqD23rMZBoeSg==
dependencies:
"@babel/helper-define-polyfill-provider" "^0.1.0"
"@babel/helper-define-polyfill-provider" "^0.1.2"
core-js-compat "^3.8.1"
babel-plugin-polyfill-regenerator@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.1.1.tgz#3b9b907d1554747ff131bd5c6da81713e342db73"
integrity sha512-QZlnPDLX2JEXP8RQGeP4owNxRKUAqHD+rdlyRHV8ENeCcI9ni2qT9IzxT9jYW1aZrxCgehD31LztlMaA68zoqQ==
babel-plugin-polyfill-regenerator@^0.1.2:
version "0.1.3"
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.1.3.tgz#350f857225fc640ae1ec78d1536afcbb457db841"
integrity sha512-hRjTJQiOYt/wBKEc+8V8p9OJ9799blAJcuKzn1JXh3pApHoWl1Emxh2BHc6MC7Qt6bbr3uDpNxaYQnATLIudEg==
dependencies:
"@babel/helper-define-polyfill-provider" "^0.1.0"
"@babel/helper-define-polyfill-provider" "^0.1.2"
balanced-match@^1.0.0:
version "1.0.0"
@@ -1458,14 +1458,14 @@ bluebird@^3.1.1, bluebird@^3.5.5:
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
version "4.11.9"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828"
integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==
version "4.12.0"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
bn.js@^5.0.0, bn.js@^5.1.1:
version "5.1.3"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b"
integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==
version "5.2.0"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002"
integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==
body-parser@1.19.0:
version "1.19.0"
@@ -2671,9 +2671,9 @@ ejs@^2.6.1:
integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==
electron-to-chromium@^1.3.649:
version "1.3.672"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.672.tgz#3a6e335016dab4bc584d5292adc4f98f54541f6a"
integrity sha512-gFQe7HBb0lbOMqK2GAS5/1F+B0IMdYiAgB9OT/w1F4M7lgJK2aNOMNOM622aEax+nS1cTMytkiT0uMOkbtFmHw==
version "1.3.673"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.673.tgz#b4f81c930b388f962b7eba20d0483299aaa40913"
integrity sha512-ms+QR2ckfrrpEAjXweLx6kNCbpAl66DcW//3BZD4BV5KhUgr0RZRce1ON/9J3QyA3JO28nzgb5Xv8DnPr05ILg==
elliptic@^6.5.3:
version "6.5.4"
@@ -4797,9 +4797,9 @@ node-notifier@^9.0.0:
which "^2.0.2"
node-releases@^1.1.70:
version "1.1.70"
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.70.tgz#66e0ed0273aa65666d7fe78febe7634875426a08"
integrity sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==
version "1.1.71"
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb"
integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==
normalize-path@^2.1.1:
version "2.1.1"
@@ -6465,19 +6465,19 @@ string-width@^4.1.0, string-width@^4.2.0:
strip-ansi "^6.0.0"
string.prototype.trimend@^1.0.1, string.prototype.trimend@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b"
integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==
version "1.0.4"
resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80"
integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==
dependencies:
call-bind "^1.0.0"
call-bind "^1.0.2"
define-properties "^1.1.3"
string.prototype.trimstart@^1.0.1, string.prototype.trimstart@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa"
integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==
version "1.0.4"
resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed"
integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==
dependencies:
call-bind "^1.0.0"
call-bind "^1.0.2"
define-properties "^1.1.3"
string_decoder@^1.0.0, string_decoder@^1.1.1:
@@ -6984,9 +6984,9 @@ vue-hot-reload-api@^2.3.0:
integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==
vue-i18n@^8.22.2:
version "8.22.4"
resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-8.22.4.tgz#255cbdab4ffa7337c5819b82dd171208af74e385"
integrity sha512-XLI5s0AdqMP2Lf4I4CmdmOq8kjb5DDFGR77wAuxCfpEuYSfhTRyyx6MetgZMiL6Lxa0DasjBOiOcciU3NkL3/Q==
version "8.23.0"
resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-8.23.0.tgz#4a65681a1dfe716d47e1d00ddbd6e0b88ea36735"
integrity sha512-mXgniaumwca8tKdp55fmvqIcW658vQQXq0zEyRHp8sgZ6t+Md+Whhu6CCPg9/erVNlvpKzsGsucGjt2N8GrFCA==
vue-loader@^15.4.2:
version "15.9.6"