add boxplot chart in reconciliation statement dialog

This commit is contained in:
MaysWind
2026-03-08 23:33:46 +08:00
parent d601e01029
commit edcf33f49c
25 changed files with 159 additions and 15 deletions
@@ -44,6 +44,8 @@ export interface AccountBalanceTrendsChartItem {
maximumBalance: number; maximumBalance: number;
medianBalance: number; medianBalance: number;
averageBalance: number; averageBalance: number;
q1Balance: number;
q3Balance: number;
} }
export interface CommonAccountBalanceTrendsChartProps { export interface CommonAccountBalanceTrendsChartProps {
@@ -162,6 +164,8 @@ export function useAccountBalanceTrendsChartBase(props: CommonAccountBalanceTren
let lastMaximumBalance = lastClosingBalance; let lastMaximumBalance = lastClosingBalance;
let lastMedianBalance = lastClosingBalance; let lastMedianBalance = lastClosingBalance;
let lastAverageBalance = lastClosingBalance; let lastAverageBalance = lastClosingBalance;
let lastQ1Balance = lastClosingBalance;
let lastQ3Balance = lastClosingBalance;
for (const dateRange of allDateRanges.value) { for (const dateRange of allDateRanges.value) {
const minDateTime = parseDateTimeFromUnixTime(dateRange.minUnixTime); const minDateTime = parseDateTimeFromUnixTime(dateRange.minUnixTime);
@@ -205,6 +209,8 @@ export function useAccountBalanceTrendsChartBase(props: CommonAccountBalanceTren
const maximumBalance = Math.max(...dataItems.map(item => item.accountClosingBalance)); const maximumBalance = Math.max(...dataItems.map(item => item.accountClosingBalance));
const medianBalance = allDataItemsSortedByClosingBalance[Math.floor(allDataItemsSortedByClosingBalance.length / 2)]!.accountClosingBalance; const medianBalance = allDataItemsSortedByClosingBalance[Math.floor(allDataItemsSortedByClosingBalance.length / 2)]!.accountClosingBalance;
const averageBalance = Math.trunc(sumAmounts(dataItems.map(item => item.accountClosingBalance)) / dataItems.length); const averageBalance = Math.trunc(sumAmounts(dataItems.map(item => item.accountClosingBalance)) / dataItems.length);
const q1Balance = allDataItemsSortedByClosingBalance[Math.floor(allDataItemsSortedByClosingBalance.length / 4)]!.accountClosingBalance;
const q3Balance = allDataItemsSortedByClosingBalance[Math.floor(allDataItemsSortedByClosingBalance.length * 3 / 4)]!.accountClosingBalance;
if (props.account.isAsset) { if (props.account.isAsset) {
lastOpeningBalance = openingBalance; lastOpeningBalance = openingBalance;
@@ -213,6 +219,8 @@ export function useAccountBalanceTrendsChartBase(props: CommonAccountBalanceTren
lastMaximumBalance = maximumBalance; lastMaximumBalance = maximumBalance;
lastMedianBalance = medianBalance; lastMedianBalance = medianBalance;
lastAverageBalance = averageBalance; lastAverageBalance = averageBalance;
lastQ1Balance = q1Balance;
lastQ3Balance = q3Balance;
} else if (props.account.isLiability) { } else if (props.account.isLiability) {
lastOpeningBalance = -openingBalance; lastOpeningBalance = -openingBalance;
lastClosingBalance = -closingBalance; lastClosingBalance = -closingBalance;
@@ -220,6 +228,8 @@ export function useAccountBalanceTrendsChartBase(props: CommonAccountBalanceTren
lastMaximumBalance = -maximumBalance; lastMaximumBalance = -maximumBalance;
lastMedianBalance = -medianBalance; lastMedianBalance = -medianBalance;
lastAverageBalance = -averageBalance; lastAverageBalance = -averageBalance;
lastQ1Balance = -q1Balance;
lastQ3Balance = -q3Balance;
} else { } else {
lastOpeningBalance = openingBalance; lastOpeningBalance = openingBalance;
lastClosingBalance = closingBalance; lastClosingBalance = closingBalance;
@@ -227,6 +237,8 @@ export function useAccountBalanceTrendsChartBase(props: CommonAccountBalanceTren
lastMaximumBalance = maximumBalance; lastMaximumBalance = maximumBalance;
lastMedianBalance = medianBalance; lastMedianBalance = medianBalance;
lastAverageBalance = averageBalance; lastAverageBalance = averageBalance;
lastQ1Balance = q1Balance;
lastQ3Balance = q3Balance;
} }
} }
@@ -237,7 +249,9 @@ export function useAccountBalanceTrendsChartBase(props: CommonAccountBalanceTren
minimumBalance: lastMinimumBalance, minimumBalance: lastMinimumBalance,
maximumBalance: lastMaximumBalance, maximumBalance: lastMaximumBalance,
medianBalance: lastMedianBalance, medianBalance: lastMedianBalance,
averageBalance: lastAverageBalance averageBalance: lastAverageBalance,
q1Balance: lastQ1Balance,
q3Balance: lastQ3Balance
}); });
lastOpeningBalance = lastClosingBalance; lastOpeningBalance = lastClosingBalance;
@@ -78,6 +78,9 @@ const allSeries = computed<AccountBalanceTrendsChartDataItem[]>(() => {
series.areaStyle = {}; series.areaStyle = {};
} else if (props.type === AccountBalanceTrendChartType.Column.type) { } else if (props.type === AccountBalanceTrendChartType.Column.type) {
series.type = 'bar'; series.type = 'bar';
} else if (props.type === AccountBalanceTrendChartType.Boxplot.type) {
series.type = 'boxplot';
series.itemStyle.borderColor = series.itemStyle.color;
} else if (props.type === AccountBalanceTrendChartType.Candlestick.type) { } else if (props.type === AccountBalanceTrendChartType.Candlestick.type) {
const expenseIncomeAmountColor = getExpenseAndIncomeAmountColor(userStore.currentUserExpenseAmountColor, userStore.currentUserIncomeAmountColor, isDarkMode.value); const expenseIncomeAmountColor = getExpenseAndIncomeAmountColor(userStore.currentUserExpenseAmountColor, userStore.currentUserIncomeAmountColor, isDarkMode.value);
series.type = 'candlestick'; series.type = 'candlestick';
@@ -88,7 +91,15 @@ const allSeries = computed<AccountBalanceTrendsChartDataItem[]>(() => {
} }
for (const item of allDataItems.value) { for (const item of allDataItems.value) {
if (props.type === AccountBalanceTrendChartType.Candlestick.type) { if (props.type === AccountBalanceTrendChartType.Boxplot.type) {
series.data.push([
item.minimumBalance,
item.q1Balance,
item.medianBalance,
item.q3Balance,
item.maximumBalance
]);
} else if (props.type === AccountBalanceTrendChartType.Candlestick.type) {
series.data.push([ series.data.push([
item.openingBalance, item.openingBalance,
item.closingBalance, item.closingBalance,
@@ -114,20 +125,26 @@ const yAxisWidth = computed<number>(() => {
for (const series of allSeries.value) { for (const series of allSeries.value) {
for (const data of series.data) { for (const data of series.data) {
let value: number; let currentMinValue: number;
let currentMaxValue: number;
if (isArray(data)) { if (isArray(data) && props.type === AccountBalanceTrendChartType.Boxplot.type) {
value = data[1] as number; // for candlestick, use closing balance currentMinValue = data[0] as number;
currentMaxValue = data[4] as number;
} else if (isArray(data) && props.type === AccountBalanceTrendChartType.Candlestick.type) {
currentMinValue = data[2] as number;
currentMaxValue = data[3] as number;
} else { } else {
value = data as number; // for line or bar chart currentMinValue = data as number;
currentMaxValue = data as number;
} }
if (value > maxValue) { if (currentMaxValue > maxValue) {
maxValue = value; maxValue = currentMaxValue;
} }
if (value < minValue) { if (currentMinValue < minValue) {
minValue = value; minValue = currentMinValue;
} }
} }
} }
@@ -172,7 +189,54 @@ const chartOptions = computed<object>(() => {
color: isDarkMode.value ? '#eee' : '#333' color: isDarkMode.value ? '#eee' : '#333'
}, },
formatter: (params: CallbackDataParams[]) => { formatter: (params: CallbackDataParams[]) => {
if (props.type === AccountBalanceTrendChartType.Candlestick.type) { if (props.type === AccountBalanceTrendChartType.Boxplot.type) {
const dataIndex = params[0]!.dataIndex;
const dataItem = allDataItems.value[dataIndex] as AccountBalanceTrendsChartItem;
const displayItems: NameValue[] = [
{
name: tt('Minimum Balance'),
value: formatAmountToLocalizedNumeralsWithCurrency(dataItem.minimumBalance, props.account.currency)
},
{
name: tt('Q1 Balance (First Quartile)'),
value: formatAmountToLocalizedNumeralsWithCurrency(dataItem.q1Balance, props.account.currency)
},
{
name: tt('Median Balance'),
value: formatAmountToLocalizedNumeralsWithCurrency(dataItem.medianBalance, props.account.currency)
},
{
name: tt('Q3 Balance (Third Quartile)'),
value: formatAmountToLocalizedNumeralsWithCurrency(dataItem.q3Balance, props.account.currency)
},
{
name: tt('Maximum Balance'),
value: formatAmountToLocalizedNumeralsWithCurrency(dataItem.maximumBalance, props.account.currency)
},
{
name: tt('Opening Balance'),
value: formatAmountToLocalizedNumeralsWithCurrency(dataItem.openingBalance, props.account.currency)
},
{
name: tt('Closing Balance'),
value: formatAmountToLocalizedNumeralsWithCurrency(dataItem.closingBalance, props.account.currency)
}
];
let tooltip = `${params[0]!.name} ${props.legendName}<br/>`;
for (const [displayItem, index] of itemAndIndex(displayItems)) {
if (index === 5) {
tooltip += '<div style="border-bottom: ' + (isDarkMode.value ? '#eee' : '#333') + ' dashed 1px"></div>';
}
tooltip += `<div><span class="chart-pointer" style="background-color: #${DEFAULT_CHART_COLORS[index]}"></span>`
+ `<span>${displayItem.name}</span><span class="ms-5" style="float: inline-end">${displayItem.value}</span>`
+ `</div>`;
}
return tooltip;
} else if (props.type === AccountBalanceTrendChartType.Candlestick.type) {
const dataIndex = params[0]!.dataIndex; const dataIndex = params[0]!.dataIndex;
const dataItem = allDataItems.value[dataIndex] as AccountBalanceTrendsChartItem; const dataItem = allDataItems.value[dataIndex] as AccountBalanceTrendsChartItem;
const displayItems: NameValue[] = [ const displayItems: NameValue[] = [
@@ -205,8 +269,12 @@ const chartOptions = computed<object>(() => {
let tooltip = `${params[0]!.name} ${props.legendName}<br/>`; let tooltip = `${params[0]!.name} ${props.legendName}<br/>`;
for (const [displayItem, index] of itemAndIndex(displayItems)) { for (const [displayItem, index] of itemAndIndex(displayItems)) {
if (index === 4) {
tooltip += '<div style="border-bottom: ' + (isDarkMode.value ? '#eee' : '#333') + ' dashed 1px"></div>';
}
tooltip += `<div><span class="chart-pointer" style="background-color: #${DEFAULT_CHART_COLORS[index]}"></span>` tooltip += `<div><span class="chart-pointer" style="background-color: #${DEFAULT_CHART_COLORS[index]}"></span>`
+ `<span>${displayItem.name}</span><span class="ms-5" style="float: inline-end">${displayItem.value}</span><br/>` + `<span>${displayItem.name}</span><span class="ms-5" style="float: inline-end">${displayItem.value}</span>`
+ `</div>`; + `</div>`;
} }
@@ -217,7 +285,7 @@ const chartOptions = computed<object>(() => {
return `${params[0]!.name}<br/>` return `${params[0]!.name}<br/>`
+ '<div><span class="chart-pointer" style="background-color: #' + DEFAULT_CHART_COLORS[0] + '"></span>' + '<div><span class="chart-pointer" style="background-color: #' + DEFAULT_CHART_COLORS[0] + '"></span>'
+ `<span>${props.legendName}</span><span class="ms-5" style="float: inline-end">${value}</span><br/>` + `<span>${props.legendName}</span><span class="ms-5" style="float: inline-end">${value}</span>`
+ '</div>'; + '</div>';
} }
} }
@@ -103,6 +103,8 @@ const allVirtualListItems = computed<MobileAccountBalanceTrendsChartItem[]>(() =
averageBalance: dataItem.averageBalance, averageBalance: dataItem.averageBalance,
minimumBalance: dataItem.minimumBalance, minimumBalance: dataItem.minimumBalance,
maximumBalance: dataItem.maximumBalance, maximumBalance: dataItem.maximumBalance,
q1Balance: dataItem.q1Balance,
q3Balance: dataItem.q3Balance,
color: `#${DEFAULT_CHART_COLORS[0] as string}`, color: `#${DEFAULT_CHART_COLORS[0] as string}`,
percent: 0.0 percent: 0.0
}; };
+2 -1
View File
@@ -88,7 +88,8 @@ export class AccountBalanceTrendChartType implements TypeAndName {
public static readonly Area = new AccountBalanceTrendChartType(0, 'Area Chart'); public static readonly Area = new AccountBalanceTrendChartType(0, 'Area Chart');
public static readonly Column = new AccountBalanceTrendChartType(1, 'Column Chart'); public static readonly Column = new AccountBalanceTrendChartType(1, 'Column Chart');
public static readonly Candlestick = new AccountBalanceTrendChartType(2, 'Candlestick Chart'); public static readonly Boxplot = new AccountBalanceTrendChartType(2, 'Boxplot Chart');
public static readonly Candlestick = new AccountBalanceTrendChartType(3, 'Candlestick Chart');
public static readonly Default = TrendChartType.Column; public static readonly Default = TrendChartType.Column;
+2 -1
View File
@@ -52,7 +52,7 @@ import 'vuetify/styles';
import * as echarts from 'echarts/core'; import * as echarts from 'echarts/core';
import { CanvasRenderer } from 'echarts/renderers'; import { CanvasRenderer } from 'echarts/renderers';
import { LineChart, BarChart, PieChart, ScatterChart, CandlestickChart, RadarChart, SankeyChart } from 'echarts/charts'; import { LineChart, BarChart, PieChart, ScatterChart, BoxplotChart, CandlestickChart, RadarChart, SankeyChart } from 'echarts/charts';
import { import {
GridComponent, GridComponent,
TooltipComponent, TooltipComponent,
@@ -503,6 +503,7 @@ echarts.use([
BarChart, BarChart,
PieChart, PieChart,
ScatterChart, ScatterChart,
BoxplotChart,
CandlestickChart, CandlestickChart,
RadarChart, RadarChart,
SankeyChart, SankeyChart,
+3
View File
@@ -1577,6 +1577,7 @@
"Area Chart": "Flächendiagramm", "Area Chart": "Flächendiagramm",
"Column Chart": "Säulendiagramm", "Column Chart": "Säulendiagramm",
"Bubble Chart": "Bubble Chart", "Bubble Chart": "Bubble Chart",
"Boxplot Chart": "Boxplot Chart",
"Candlestick Chart": "Candlestick Chart", "Candlestick Chart": "Candlestick Chart",
"Sankey Chart": "Sankey Chart", "Sankey Chart": "Sankey Chart",
"Column Chart (Stacked)": "Column Chart (Stacked)", "Column Chart (Stacked)": "Column Chart (Stacked)",
@@ -2165,6 +2166,8 @@
"Maximum Balance": "Maximum Balance", "Maximum Balance": "Maximum Balance",
"Median Balance": "Median Balance", "Median Balance": "Median Balance",
"Average Balance": "Average Balance", "Average Balance": "Average Balance",
"Q1 Balance (First Quartile)": "Q1 Balance (First Quartile)",
"Q3 Balance (Third Quartile)": "Q3 Balance (Third Quartile)",
"Outflows By Account": "Outflows By Account", "Outflows By Account": "Outflows By Account",
"Expense By Account": "Ausgaben nach Konto", "Expense By Account": "Ausgaben nach Konto",
"Expense By Primary Category": "Ausgaben nach Primärkategorie", "Expense By Primary Category": "Ausgaben nach Primärkategorie",
+3
View File
@@ -1577,6 +1577,7 @@
"Area Chart": "Area Chart", "Area Chart": "Area Chart",
"Column Chart": "Column Chart", "Column Chart": "Column Chart",
"Bubble Chart": "Bubble Chart", "Bubble Chart": "Bubble Chart",
"Boxplot Chart": "Boxplot Chart",
"Candlestick Chart": "Candlestick Chart", "Candlestick Chart": "Candlestick Chart",
"Sankey Chart": "Sankey Chart", "Sankey Chart": "Sankey Chart",
"Column Chart (Stacked)": "Column Chart (Stacked)", "Column Chart (Stacked)": "Column Chart (Stacked)",
@@ -2165,6 +2166,8 @@
"Maximum Balance": "Maximum Balance", "Maximum Balance": "Maximum Balance",
"Median Balance": "Median Balance", "Median Balance": "Median Balance",
"Average Balance": "Average Balance", "Average Balance": "Average Balance",
"Q1 Balance (First Quartile)": "Q1 Balance (First Quartile)",
"Q3 Balance (Third Quartile)": "Q3 Balance (Third Quartile)",
"Outflows By Account": "Outflows By Account", "Outflows By Account": "Outflows By Account",
"Expense By Account": "Expense By Account", "Expense By Account": "Expense By Account",
"Expense By Primary Category": "Expense By Primary Category", "Expense By Primary Category": "Expense By Primary Category",
+3
View File
@@ -1577,6 +1577,7 @@
"Area Chart": "Gráfico de Área", "Area Chart": "Gráfico de Área",
"Column Chart": "Gráfico de Columnas", "Column Chart": "Gráfico de Columnas",
"Bubble Chart": "Gráfico de Burbujas", "Bubble Chart": "Gráfico de Burbujas",
"Boxplot Chart": "Boxplot Chart",
"Candlestick Chart": "Gráfico de Velas", "Candlestick Chart": "Gráfico de Velas",
"Sankey Chart": "Diagrama de Sankey", "Sankey Chart": "Diagrama de Sankey",
"Column Chart (Stacked)": "Gráfico de columnas (apilado)", "Column Chart (Stacked)": "Gráfico de columnas (apilado)",
@@ -2165,6 +2166,8 @@
"Maximum Balance": "Saldo Máximo", "Maximum Balance": "Saldo Máximo",
"Median Balance": "Saldo Mediano", "Median Balance": "Saldo Mediano",
"Average Balance": "Saldo Medio", "Average Balance": "Saldo Medio",
"Q1 Balance (First Quartile)": "Q1 Balance (First Quartile)",
"Q3 Balance (Third Quartile)": "Q3 Balance (Third Quartile)",
"Outflows By Account": "Salidas por Cuenta", "Outflows By Account": "Salidas por Cuenta",
"Expense By Account": "Gastos por Cuenta", "Expense By Account": "Gastos por Cuenta",
"Expense By Primary Category": "Gastos por Categoría Principal", "Expense By Primary Category": "Gastos por Categoría Principal",
+3
View File
@@ -1577,6 +1577,7 @@
"Area Chart": "Graphique en aires", "Area Chart": "Graphique en aires",
"Column Chart": "Graphique en colonnes", "Column Chart": "Graphique en colonnes",
"Bubble Chart": "Bubble Chart", "Bubble Chart": "Bubble Chart",
"Boxplot Chart": "Boxplot Chart",
"Candlestick Chart": "Graphique en chandelier", "Candlestick Chart": "Graphique en chandelier",
"Sankey Chart": "Sankey Chart", "Sankey Chart": "Sankey Chart",
"Column Chart (Stacked)": "Column Chart (Stacked)", "Column Chart (Stacked)": "Column Chart (Stacked)",
@@ -2165,6 +2166,8 @@
"Maximum Balance": "Solde maximum", "Maximum Balance": "Solde maximum",
"Median Balance": "Solde médian", "Median Balance": "Solde médian",
"Average Balance": "Solde moyen", "Average Balance": "Solde moyen",
"Q1 Balance (First Quartile)": "Q1 Balance (First Quartile)",
"Q3 Balance (Third Quartile)": "Q3 Balance (Third Quartile)",
"Outflows By Account": "Outflows By Account", "Outflows By Account": "Outflows By Account",
"Expense By Account": "Dépenses par compte", "Expense By Account": "Dépenses par compte",
"Expense By Primary Category": "Dépenses par catégorie principale", "Expense By Primary Category": "Dépenses par catégorie principale",
+3
View File
@@ -1577,6 +1577,7 @@
"Area Chart": "Grafico ad area", "Area Chart": "Grafico ad area",
"Column Chart": "Grafico a colonne", "Column Chart": "Grafico a colonne",
"Bubble Chart": "Bubble Chart", "Bubble Chart": "Bubble Chart",
"Boxplot Chart": "Boxplot Chart",
"Candlestick Chart": "Candlestick Chart", "Candlestick Chart": "Candlestick Chart",
"Sankey Chart": "Sankey Chart", "Sankey Chart": "Sankey Chart",
"Column Chart (Stacked)": "Column Chart (Stacked)", "Column Chart (Stacked)": "Column Chart (Stacked)",
@@ -2165,6 +2166,8 @@
"Maximum Balance": "Maximum Balance", "Maximum Balance": "Maximum Balance",
"Median Balance": "Median Balance", "Median Balance": "Median Balance",
"Average Balance": "Average Balance", "Average Balance": "Average Balance",
"Q1 Balance (First Quartile)": "Q1 Balance (First Quartile)",
"Q3 Balance (Third Quartile)": "Q3 Balance (Third Quartile)",
"Outflows By Account": "Outflows By Account", "Outflows By Account": "Outflows By Account",
"Expense By Account": "Spesa per conto", "Expense By Account": "Spesa per conto",
"Expense By Primary Category": "Spesa per categoria principale", "Expense By Primary Category": "Spesa per categoria principale",
+3
View File
@@ -1577,6 +1577,7 @@
"Area Chart": "エリアチャート", "Area Chart": "エリアチャート",
"Column Chart": "列チャート", "Column Chart": "列チャート",
"Bubble Chart": "Bubble Chart", "Bubble Chart": "Bubble Chart",
"Boxplot Chart": "Boxplot Chart",
"Candlestick Chart": "Candlestick Chart", "Candlestick Chart": "Candlestick Chart",
"Sankey Chart": "Sankey Chart", "Sankey Chart": "Sankey Chart",
"Column Chart (Stacked)": "Column Chart (Stacked)", "Column Chart (Stacked)": "Column Chart (Stacked)",
@@ -2165,6 +2166,8 @@
"Maximum Balance": "Maximum Balance", "Maximum Balance": "Maximum Balance",
"Median Balance": "Median Balance", "Median Balance": "Median Balance",
"Average Balance": "Average Balance", "Average Balance": "Average Balance",
"Q1 Balance (First Quartile)": "Q1 Balance (First Quartile)",
"Q3 Balance (Third Quartile)": "Q3 Balance (Third Quartile)",
"Outflows By Account": "Outflows By Account", "Outflows By Account": "Outflows By Account",
"Expense By Account": "口座別の支出", "Expense By Account": "口座別の支出",
"Expense By Primary Category": "一次カテゴリ別の支出", "Expense By Primary Category": "一次カテゴリ別の支出",
+3
View File
@@ -1577,6 +1577,7 @@
"Area Chart": "ಏರಿಯಾ ಚಾರ್ಟ್", "Area Chart": "ಏರಿಯಾ ಚಾರ್ಟ್",
"Column Chart": "ಕಾಲಮ್ ಚಾರ್ಟ್", "Column Chart": "ಕಾಲಮ್ ಚಾರ್ಟ್",
"Bubble Chart": "ಬಬಲ್ ಚಾರ್ಟ್", "Bubble Chart": "ಬಬಲ್ ಚಾರ್ಟ್",
"Boxplot Chart": "Boxplot Chart",
"Candlestick Chart": "ಕ್ಯಾಂಡಲ್‌ಸ್ಟಿಕ್ ಚಾರ್ಟ್", "Candlestick Chart": "ಕ್ಯಾಂಡಲ್‌ಸ್ಟಿಕ್ ಚಾರ್ಟ್",
"Sankey Chart": "ಸ್ಯಾಂಕಿ ಚಾರ್ಟ್", "Sankey Chart": "ಸ್ಯಾಂಕಿ ಚಾರ್ಟ್",
"Column Chart (Stacked)": "Column Chart (Stacked)", "Column Chart (Stacked)": "Column Chart (Stacked)",
@@ -2165,6 +2166,8 @@
"Maximum Balance": "ಗರಿಷ್ಠ ಶೇಷ", "Maximum Balance": "ಗರಿಷ್ಠ ಶೇಷ",
"Median Balance": "ಮಧ್ಯ ಶೇಷ", "Median Balance": "ಮಧ್ಯ ಶೇಷ",
"Average Balance": "ಸರಾಸರಿ ಶೇಷ", "Average Balance": "ಸರಾಸರಿ ಶೇಷ",
"Q1 Balance (First Quartile)": "Q1 Balance (First Quartile)",
"Q3 Balance (Third Quartile)": "Q3 Balance (Third Quartile)",
"Outflows By Account": "ಖಾತೆವಾರು ಹೊರಹರಿವು", "Outflows By Account": "ಖಾತೆವಾರು ಹೊರಹರಿವು",
"Expense By Account": "ಖಾತೆವಾರು ಖರ್ಚು", "Expense By Account": "ಖಾತೆವಾರು ಖರ್ಚು",
"Expense By Primary Category": "ಪ್ರಾಥಮಿಕ ವರ್ಗವಾರು ಖರ್ಚು", "Expense By Primary Category": "ಪ್ರಾಥಮಿಕ ವರ್ಗವಾರು ಖರ್ಚು",
+3
View File
@@ -1577,6 +1577,7 @@
"Area Chart": "영역 차트", "Area Chart": "영역 차트",
"Column Chart": "세로 막대 차트", "Column Chart": "세로 막대 차트",
"Bubble Chart": "버블 차트", "Bubble Chart": "버블 차트",
"Boxplot Chart": "Boxplot Chart",
"Candlestick Chart": "캠들스틱 차트", "Candlestick Chart": "캠들스틱 차트",
"Sankey Chart": "샌키 차트", "Sankey Chart": "샌키 차트",
"Column Chart (Stacked)": "누적 세로 막대 차트", "Column Chart (Stacked)": "누적 세로 막대 차트",
@@ -2165,6 +2166,8 @@
"Maximum Balance": "최대 잔액", "Maximum Balance": "최대 잔액",
"Median Balance": "중앙값 잔액", "Median Balance": "중앙값 잔액",
"Average Balance": "평균 잔액", "Average Balance": "평균 잔액",
"Q1 Balance (First Quartile)": "Q1 Balance (First Quartile)",
"Q3 Balance (Third Quartile)": "Q3 Balance (Third Quartile)",
"Outflows By Account": "Outflows By Account", "Outflows By Account": "Outflows By Account",
"Expense By Account": "계좌별 비용", "Expense By Account": "계좌별 비용",
"Expense By Primary Category": "주요 범주별 비용", "Expense By Primary Category": "주요 범주별 비용",
+3
View File
@@ -1577,6 +1577,7 @@
"Area Chart": "Vlakdiagram", "Area Chart": "Vlakdiagram",
"Column Chart": "Kolomdiagram", "Column Chart": "Kolomdiagram",
"Bubble Chart": "Bubble Chart", "Bubble Chart": "Bubble Chart",
"Boxplot Chart": "Boxplot Chart",
"Candlestick Chart": "Candlestickdiagram", "Candlestick Chart": "Candlestickdiagram",
"Sankey Chart": "Sankey Chart", "Sankey Chart": "Sankey Chart",
"Column Chart (Stacked)": "Column Chart (Stacked)", "Column Chart (Stacked)": "Column Chart (Stacked)",
@@ -2165,6 +2166,8 @@
"Maximum Balance": "Maximumsaldo", "Maximum Balance": "Maximumsaldo",
"Median Balance": "Mediaansaldo", "Median Balance": "Mediaansaldo",
"Average Balance": "Gemiddeld saldo", "Average Balance": "Gemiddeld saldo",
"Q1 Balance (First Quartile)": "Q1 Balance (First Quartile)",
"Q3 Balance (Third Quartile)": "Q3 Balance (Third Quartile)",
"Outflows By Account": "Outflows By Account", "Outflows By Account": "Outflows By Account",
"Expense By Account": "Uitgaven per rekening", "Expense By Account": "Uitgaven per rekening",
"Expense By Primary Category": "Uitgaven per primaire categorie", "Expense By Primary Category": "Uitgaven per primaire categorie",
+3
View File
@@ -1577,6 +1577,7 @@
"Area Chart": "Gráfico de Área", "Area Chart": "Gráfico de Área",
"Column Chart": "Gráfico de Colunas", "Column Chart": "Gráfico de Colunas",
"Bubble Chart": "Bubble Chart", "Bubble Chart": "Bubble Chart",
"Boxplot Chart": "Boxplot Chart",
"Candlestick Chart": "Candlestick Chart", "Candlestick Chart": "Candlestick Chart",
"Sankey Chart": "Sankey Chart", "Sankey Chart": "Sankey Chart",
"Column Chart (Stacked)": "Column Chart (Stacked)", "Column Chart (Stacked)": "Column Chart (Stacked)",
@@ -2165,6 +2166,8 @@
"Maximum Balance": "Maximum Balance", "Maximum Balance": "Maximum Balance",
"Median Balance": "Median Balance", "Median Balance": "Median Balance",
"Average Balance": "Average Balance", "Average Balance": "Average Balance",
"Q1 Balance (First Quartile)": "Q1 Balance (First Quartile)",
"Q3 Balance (Third Quartile)": "Q3 Balance (Third Quartile)",
"Outflows By Account": "Outflows By Account", "Outflows By Account": "Outflows By Account",
"Expense By Account": "Despesa por Conta", "Expense By Account": "Despesa por Conta",
"Expense By Primary Category": "Despesa por Categoria Primária", "Expense By Primary Category": "Despesa por Categoria Primária",
+3
View File
@@ -1577,6 +1577,7 @@
"Area Chart": "Диаграмма с областями", "Area Chart": "Диаграмма с областями",
"Column Chart": "Столбчатая диаграмма", "Column Chart": "Столбчатая диаграмма",
"Bubble Chart": "Пузырьковая диаграмма", "Bubble Chart": "Пузырьковая диаграмма",
"Boxplot Chart": "Boxplot Chart",
"Candlestick Chart": "Свечная диаграмма", "Candlestick Chart": "Свечная диаграмма",
"Sankey Chart": "Санки диаграмма", "Sankey Chart": "Санки диаграмма",
"Column Chart (Stacked)": "Столбчатая диаграмма (с накоплением)", "Column Chart (Stacked)": "Столбчатая диаграмма (с накоплением)",
@@ -2165,6 +2166,8 @@
"Maximum Balance": "Максимальный баланс", "Maximum Balance": "Максимальный баланс",
"Median Balance": "Медианный баланс", "Median Balance": "Медианный баланс",
"Average Balance": "Средний баланс", "Average Balance": "Средний баланс",
"Q1 Balance (First Quartile)": "Q1 Balance (First Quartile)",
"Q3 Balance (Third Quartile)": "Q3 Balance (Third Quartile)",
"Outflows By Account": "Отток по счетам", "Outflows By Account": "Отток по счетам",
"Expense By Account": "Расходы по счетам", "Expense By Account": "Расходы по счетам",
"Expense By Primary Category": "Расходы по основной категории", "Expense By Primary Category": "Расходы по основной категории",
+3
View File
@@ -1577,6 +1577,7 @@
"Area Chart": "Ploskovni grafikon", "Area Chart": "Ploskovni grafikon",
"Column Chart": "Palični grafikon", "Column Chart": "Palični grafikon",
"Bubble Chart": "Mehurčni grafikon", "Bubble Chart": "Mehurčni grafikon",
"Boxplot Chart": "Boxplot Chart",
"Candlestick Chart": "Svečni grafikon", "Candlestick Chart": "Svečni grafikon",
"Sankey Chart": "Sankeyev diagram", "Sankey Chart": "Sankeyev diagram",
"Column Chart (Stacked)": "Naložen palični grafikon", "Column Chart (Stacked)": "Naložen palični grafikon",
@@ -2165,6 +2166,8 @@
"Maximum Balance": "Najvišje stanje", "Maximum Balance": "Najvišje stanje",
"Median Balance": "Mediana stanja", "Median Balance": "Mediana stanja",
"Average Balance": "Povprečno stanje", "Average Balance": "Povprečno stanje",
"Q1 Balance (First Quartile)": "Q1 Balance (First Quartile)",
"Q3 Balance (Third Quartile)": "Q3 Balance (Third Quartile)",
"Outflows By Account": "Odlivi po računih", "Outflows By Account": "Odlivi po računih",
"Expense By Account": "Odhodki po računih", "Expense By Account": "Odhodki po računih",
"Expense By Primary Category": "Odhodki po primarnih kategorijah", "Expense By Primary Category": "Odhodki po primarnih kategorijah",
+3
View File
@@ -1577,6 +1577,7 @@
"Area Chart": "பகுதி விளக்கப்படம்", "Area Chart": "பகுதி விளக்கப்படம்",
"Column Chart": "நெடுவரிசை விளக்கப்படம்", "Column Chart": "நெடுவரிசை விளக்கப்படம்",
"Bubble Chart": "குமிழி விளக்கப்படம்", "Bubble Chart": "குமிழி விளக்கப்படம்",
"Boxplot Chart": "Boxplot Chart",
"Candlestick Chart": "மெழுகுவர்த்தி விளக்கப்படம்", "Candlestick Chart": "மெழுகுவர்த்தி விளக்கப்படம்",
"Sankey Chart": "சாங்கி விளக்கப்படம்", "Sankey Chart": "சாங்கி விளக்கப்படம்",
"Column Chart (Stacked)": "நெடுவரிசை வரைபடம் (அடுக்கப்பட்ட)", "Column Chart (Stacked)": "நெடுவரிசை வரைபடம் (அடுக்கப்பட்ட)",
@@ -2165,6 +2166,8 @@
"Maximum Balance": "அதிகபட்சம் இருப்பு", "Maximum Balance": "அதிகபட்சம் இருப்பு",
"Median Balance": "மத்திய இருப்பு", "Median Balance": "மத்திய இருப்பு",
"Average Balance": "சராசரிசரி இருப்பு", "Average Balance": "சராசரிசரி இருப்பு",
"Q1 Balance (First Quartile)": "Q1 Balance (First Quartile)",
"Q3 Balance (Third Quartile)": "Q3 Balance (Third Quartile)",
"Outflows By Account": "கணக்குவாரி வெளிச்செலவு", "Outflows By Account": "கணக்குவாரி வெளிச்செலவு",
"Expense By Account": "கணக்குவாரி செலவு", "Expense By Account": "கணக்குவாரி செலவு",
"Expense By Primary Category": "முதன்மை வகைவாரி செலவு", "Expense By Primary Category": "முதன்மை வகைவாரி செலவு",
+3
View File
@@ -1577,6 +1577,7 @@
"Area Chart": "กราฟพื้นที่", "Area Chart": "กราฟพื้นที่",
"Column Chart": "กราฟคอลัมน์", "Column Chart": "กราฟคอลัมน์",
"Bubble Chart": "Bubble Chart", "Bubble Chart": "Bubble Chart",
"Boxplot Chart": "Boxplot Chart",
"Candlestick Chart": "กราฟแท่งเทียน", "Candlestick Chart": "กราฟแท่งเทียน",
"Sankey Chart": "Sankey Chart", "Sankey Chart": "Sankey Chart",
"Column Chart (Stacked)": "Column Chart (Stacked)", "Column Chart (Stacked)": "Column Chart (Stacked)",
@@ -2165,6 +2166,8 @@
"Maximum Balance": "ยอดสูงสุด", "Maximum Balance": "ยอดสูงสุด",
"Median Balance": "ยอดกลาง", "Median Balance": "ยอดกลาง",
"Average Balance": "ยอดเฉลี่ย", "Average Balance": "ยอดเฉลี่ย",
"Q1 Balance (First Quartile)": "Q1 Balance (First Quartile)",
"Q3 Balance (Third Quartile)": "Q3 Balance (Third Quartile)",
"Outflows By Account": "Outflows By Account", "Outflows By Account": "Outflows By Account",
"Expense By Account": "ค่าใช้จ่ายตามบัญชี", "Expense By Account": "ค่าใช้จ่ายตามบัญชี",
"Expense By Primary Category": "ค่าใช้จ่ายตามหมวดหลัก", "Expense By Primary Category": "ค่าใช้จ่ายตามหมวดหลัก",
+3
View File
@@ -1577,6 +1577,7 @@
"Area Chart": "Alan Grafiği", "Area Chart": "Alan Grafiği",
"Column Chart": "Sütun Grafiği", "Column Chart": "Sütun Grafiği",
"Bubble Chart": "Kabarcık Grafiği", "Bubble Chart": "Kabarcık Grafiği",
"Boxplot Chart": "Boxplot Chart",
"Candlestick Chart": "Mum Grafiği", "Candlestick Chart": "Mum Grafiği",
"Sankey Chart": "Sankey Diyagramı", "Sankey Chart": "Sankey Diyagramı",
"Column Chart (Stacked)": "Column Chart (Stacked)", "Column Chart (Stacked)": "Column Chart (Stacked)",
@@ -2165,6 +2166,8 @@
"Maximum Balance": "Maksimum Bakiye", "Maximum Balance": "Maksimum Bakiye",
"Median Balance": "Medyan Bakiye", "Median Balance": "Medyan Bakiye",
"Average Balance": "Ortalama Bakiye", "Average Balance": "Ortalama Bakiye",
"Q1 Balance (First Quartile)": "Q1 Balance (First Quartile)",
"Q3 Balance (Third Quartile)": "Q3 Balance (Third Quartile)",
"Outflows By Account": "Hesaba Göre Çıkışlar", "Outflows By Account": "Hesaba Göre Çıkışlar",
"Expense By Account": "Hesaba Göre Gider", "Expense By Account": "Hesaba Göre Gider",
"Expense By Primary Category": "Ana Kategoriye Göre Gider", "Expense By Primary Category": "Ana Kategoriye Göre Gider",
+3
View File
@@ -1577,6 +1577,7 @@
"Area Chart": "Діаграма з областями", "Area Chart": "Діаграма з областями",
"Column Chart": "Стовпчикова діаграма", "Column Chart": "Стовпчикова діаграма",
"Bubble Chart": "Bubble Chart", "Bubble Chart": "Bubble Chart",
"Boxplot Chart": "Boxplot Chart",
"Candlestick Chart": "Candlestick Chart", "Candlestick Chart": "Candlestick Chart",
"Sankey Chart": "Sankey Chart", "Sankey Chart": "Sankey Chart",
"Column Chart (Stacked)": "Column Chart (Stacked)", "Column Chart (Stacked)": "Column Chart (Stacked)",
@@ -2165,6 +2166,8 @@
"Maximum Balance": "Maximum Balance", "Maximum Balance": "Maximum Balance",
"Median Balance": "Median Balance", "Median Balance": "Median Balance",
"Average Balance": "Average Balance", "Average Balance": "Average Balance",
"Q1 Balance (First Quartile)": "Q1 Balance (First Quartile)",
"Q3 Balance (Third Quartile)": "Q3 Balance (Third Quartile)",
"Outflows By Account": "Outflows By Account", "Outflows By Account": "Outflows By Account",
"Expense By Account": "Витрати за рахунками", "Expense By Account": "Витрати за рахунками",
"Expense By Primary Category": "Витрати за основними категоріями", "Expense By Primary Category": "Витрати за основними категоріями",
+3
View File
@@ -1577,6 +1577,7 @@
"Area Chart": "Biểu đồ diện tích", "Area Chart": "Biểu đồ diện tích",
"Column Chart": "Biểu đồ cột", "Column Chart": "Biểu đồ cột",
"Bubble Chart": "Bubble Chart", "Bubble Chart": "Bubble Chart",
"Boxplot Chart": "Boxplot Chart",
"Candlestick Chart": "Candlestick Chart", "Candlestick Chart": "Candlestick Chart",
"Sankey Chart": "Sankey Chart", "Sankey Chart": "Sankey Chart",
"Column Chart (Stacked)": "Column Chart (Stacked)", "Column Chart (Stacked)": "Column Chart (Stacked)",
@@ -2165,6 +2166,8 @@
"Maximum Balance": "Maximum Balance", "Maximum Balance": "Maximum Balance",
"Median Balance": "Median Balance", "Median Balance": "Median Balance",
"Average Balance": "Average Balance", "Average Balance": "Average Balance",
"Q1 Balance (First Quartile)": "Q1 Balance (First Quartile)",
"Q3 Balance (Third Quartile)": "Q3 Balance (Third Quartile)",
"Outflows By Account": "Outflows By Account", "Outflows By Account": "Outflows By Account",
"Expense By Account": "Chi phí theo tài khoản", "Expense By Account": "Chi phí theo tài khoản",
"Expense By Primary Category": "Chi phí theo danh mục chính", "Expense By Primary Category": "Chi phí theo danh mục chính",
+3
View File
@@ -1577,6 +1577,7 @@
"Area Chart": "面积图", "Area Chart": "面积图",
"Column Chart": "柱状图", "Column Chart": "柱状图",
"Bubble Chart": "气泡图", "Bubble Chart": "气泡图",
"Boxplot Chart": "箱线图",
"Candlestick Chart": "K线图", "Candlestick Chart": "K线图",
"Sankey Chart": "桑基图", "Sankey Chart": "桑基图",
"Column Chart (Stacked)": "柱状图(堆叠)", "Column Chart (Stacked)": "柱状图(堆叠)",
@@ -2165,6 +2166,8 @@
"Maximum Balance": "最大余额", "Maximum Balance": "最大余额",
"Median Balance": "中位数余额", "Median Balance": "中位数余额",
"Average Balance": "平均余额", "Average Balance": "平均余额",
"Q1 Balance (First Quartile)": "Q1 余额 (第一四分位数)",
"Q3 Balance (Third Quartile)": "Q3 余额 (第三四分位数)",
"Outflows By Account": "账户流出", "Outflows By Account": "账户流出",
"Expense By Account": "账户支出", "Expense By Account": "账户支出",
"Expense By Primary Category": "一级分类支出", "Expense By Primary Category": "一级分类支出",
+3
View File
@@ -1577,6 +1577,7 @@
"Area Chart": "面積圖", "Area Chart": "面積圖",
"Column Chart": "柱狀圖", "Column Chart": "柱狀圖",
"Bubble Chart": "氣泡圖", "Bubble Chart": "氣泡圖",
"Boxplot Chart": "箱型圖",
"Candlestick Chart": "K線圖", "Candlestick Chart": "K線圖",
"Sankey Chart": "桑基圖", "Sankey Chart": "桑基圖",
"Column Chart (Stacked)": "柱狀圖(堆疊)", "Column Chart (Stacked)": "柱狀圖(堆疊)",
@@ -2165,6 +2166,8 @@
"Maximum Balance": "最大餘額", "Maximum Balance": "最大餘額",
"Median Balance": "中位數餘額", "Median Balance": "中位數餘額",
"Average Balance": "平均餘額", "Average Balance": "平均餘額",
"Q1 Balance (First Quartile)": "Q1 餘額 (第一四分位數)",
"Q3 Balance (Third Quartile)": "Q3 餘額 (第三四分位數)",
"Outflows By Account": "帳戶流出", "Outflows By Account": "帳戶流出",
"Expense By Account": "帳戶支出", "Expense By Account": "帳戶支出",
"Expense By Primary Category": "一級分類支出", "Expense By Primary Category": "一級分類支出",
@@ -381,6 +381,7 @@ const transactionsStore = useTransactionsStore();
const chartTypeIconMap = { const chartTypeIconMap = {
[AccountBalanceTrendChartType.Column.type]: mdiChartBar, [AccountBalanceTrendChartType.Column.type]: mdiChartBar,
[AccountBalanceTrendChartType.Area.type]: mdiChartAreasplineVariant, [AccountBalanceTrendChartType.Area.type]: mdiChartAreasplineVariant,
[AccountBalanceTrendChartType.Boxplot.type]: mdiChartWaterfall,
[AccountBalanceTrendChartType.Candlestick.type]: mdiChartWaterfall, [AccountBalanceTrendChartType.Candlestick.type]: mdiChartWaterfall,
}; };