diff --git a/src/components/desktop/TreeMapChart.vue b/src/components/desktop/TreeMapChart.vue
new file mode 100644
index 00000000..114de62b
--- /dev/null
+++ b/src/components/desktop/TreeMapChart.vue
@@ -0,0 +1,242 @@
+
+
+
+
+
+
+
diff --git a/src/core/explorer.ts b/src/core/explorer.ts
index 20748d07..c9a6bd99 100644
--- a/src/core/explorer.ts
+++ b/src/core/explorer.ts
@@ -382,6 +382,7 @@ export enum TransactionExplorerChartTypeValue {
Area100PercentStacked = 'area100%Stacked',
BubbleGrouped = 'bubbleGrouped',
Radar = 'radar',
+ Treemap = 'treemap',
Heatmap = 'heatmap',
CalendarHeatmap = 'calendarHeatmap'
}
@@ -399,6 +400,7 @@ export class TransactionExplorerChartType implements NameValue {
public static readonly AreaStacked = new TransactionExplorerChartType('Area Chart (Stacked)', TransactionExplorerChartTypeValue.AreaStacked, undefined, true, undefined);
public static readonly Area100PercentStacked = new TransactionExplorerChartType('Area Chart (100% Stacked)', TransactionExplorerChartTypeValue.Area100PercentStacked, undefined, true, undefined);
public static readonly BubbleGrouped = new TransactionExplorerChartType('Bubble Chart (Grouped)', TransactionExplorerChartTypeValue.BubbleGrouped, undefined, true, undefined);
+ public static readonly Treemap = new TransactionExplorerChartType('Treemap Chart', TransactionExplorerChartTypeValue.Treemap, undefined, true, undefined);
public static readonly Heatmap = new TransactionExplorerChartType('Heatmap Chart', TransactionExplorerChartTypeValue.Heatmap, undefined, true, undefined);
public static readonly CalendarHeatmap = new TransactionExplorerChartType('Calendar Heatmap Chart', TransactionExplorerChartTypeValue.CalendarHeatmap, TransactionExplorerDataDimensionType.DateTimeByYearMonthDay, false, ChartSortingType.DisplayOrder.type);
diff --git a/src/desktop-main.ts b/src/desktop-main.ts
index 77bac5a3..e133276e 100644
--- a/src/desktop-main.ts
+++ b/src/desktop-main.ts
@@ -60,6 +60,7 @@ import {
BoxplotChart,
CandlestickChart,
RadarChart,
+ TreemapChart,
HeatmapChart,
SankeyChart
} from 'echarts/charts';
@@ -115,6 +116,7 @@ import PieChartComponent from '@/components/desktop/PieChart.vue';
import RadarChartComponent from '@/components/desktop/RadarChart.vue';
import AxisChart from '@/components/desktop/AxisChart.vue';
import TrendsChart from '@/components/desktop/TrendsChart.vue';
+import TreeMapChart from '@/components/desktop/TreeMapChart.vue';
import HeatMapChart from '@/components/desktop/HeatMapChart.vue';
import CalendarHeatMapChart from '@/components/desktop/CalendarHeatMapChart.vue';
import RenameDialog from '@/components/desktop/RenameDialog.vue';
@@ -520,6 +522,7 @@ echarts.use([
BoxplotChart,
CandlestickChart,
RadarChart,
+ TreemapChart,
HeatmapChart,
SankeyChart,
GridComponent,
@@ -568,6 +571,7 @@ app.component('PieChart', PieChartComponent);
app.component('RadarChart', RadarChartComponent);
app.component('AxisChart', AxisChart);
app.component('TrendsChart', TrendsChart);
+app.component('TreeMapChart', TreeMapChart);
app.component('HeatMapChart', HeatMapChart);
app.component('CalendarHeatMapChart', CalendarHeatMapChart);
app.component('RenameDialog', RenameDialog);
diff --git a/src/locales/de.json b/src/locales/de.json
index 6bb75a9a..ee2ad99f 100644
--- a/src/locales/de.json
+++ b/src/locales/de.json
@@ -1603,6 +1603,7 @@
"Area Chart (Stacked)": "Flächendiagramm (Gestapelt)",
"Area Chart (100% Stacked)": "Flächendiagramm (100% Gestapelt)",
"Bubble Chart (Grouped)": "Blasendiagramm (Gruppiert)",
+ "Treemap Chart": "Treemap Chart",
"Heatmap Chart": "Heatmap Chart",
"Calendar Heatmap Chart": "Calendar Heatmap Chart",
"Sort by": "Sortieren nach",
diff --git a/src/locales/en.json b/src/locales/en.json
index 99163155..faddb388 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -1603,6 +1603,7 @@
"Area Chart (Stacked)": "Area Chart (Stacked)",
"Area Chart (100% Stacked)": "Area Chart (100% Stacked)",
"Bubble Chart (Grouped)": "Bubble Chart (Grouped)",
+ "Treemap Chart": "Treemap Chart",
"Heatmap Chart": "Heatmap Chart",
"Calendar Heatmap Chart": "Calendar Heatmap Chart",
"Sort by": "Sort by",
diff --git a/src/locales/es.json b/src/locales/es.json
index 96a3194f..6a53f6ed 100644
--- a/src/locales/es.json
+++ b/src/locales/es.json
@@ -1603,6 +1603,7 @@
"Area Chart (Stacked)": "Gráfico de área (apilado)",
"Area Chart (100% Stacked)": "Gráfico de área (100 % apilado)",
"Bubble Chart (Grouped)": "Gráfico de burbujas (agrupado)",
+ "Treemap Chart": "Treemap Chart",
"Heatmap Chart": "Heatmap Chart",
"Calendar Heatmap Chart": "Calendar Heatmap Chart",
"Sort by": "Ordenar por",
diff --git a/src/locales/fr.json b/src/locales/fr.json
index bcefd732..a1db59dd 100644
--- a/src/locales/fr.json
+++ b/src/locales/fr.json
@@ -1603,6 +1603,7 @@
"Area Chart (Stacked)": "Area Chart (Stacked)",
"Area Chart (100% Stacked)": "Area Chart (100% Stacked)",
"Bubble Chart (Grouped)": "Bubble Chart (Grouped)",
+ "Treemap Chart": "Treemap Chart",
"Heatmap Chart": "Heatmap Chart",
"Calendar Heatmap Chart": "Calendar Heatmap Chart",
"Sort by": "Trier par",
diff --git a/src/locales/it.json b/src/locales/it.json
index 9013eb8a..61044507 100644
--- a/src/locales/it.json
+++ b/src/locales/it.json
@@ -1603,6 +1603,7 @@
"Area Chart (Stacked)": "Area Chart (Stacked)",
"Area Chart (100% Stacked)": "Area Chart (100% Stacked)",
"Bubble Chart (Grouped)": "Bubble Chart (Grouped)",
+ "Treemap Chart": "Treemap Chart",
"Heatmap Chart": "Heatmap Chart",
"Calendar Heatmap Chart": "Calendar Heatmap Chart",
"Sort by": "Ordina per",
diff --git a/src/locales/ja.json b/src/locales/ja.json
index 620537e3..475eb29f 100644
--- a/src/locales/ja.json
+++ b/src/locales/ja.json
@@ -1603,6 +1603,7 @@
"Area Chart (Stacked)": "Area Chart (Stacked)",
"Area Chart (100% Stacked)": "Area Chart (100% Stacked)",
"Bubble Chart (Grouped)": "Bubble Chart (Grouped)",
+ "Treemap Chart": "Treemap Chart",
"Heatmap Chart": "Heatmap Chart",
"Calendar Heatmap Chart": "Calendar Heatmap Chart",
"Sort by": "ソート順",
diff --git a/src/locales/kn.json b/src/locales/kn.json
index 08656fdd..635d1553 100644
--- a/src/locales/kn.json
+++ b/src/locales/kn.json
@@ -1603,6 +1603,7 @@
"Area Chart (Stacked)": "Area Chart (Stacked)",
"Area Chart (100% Stacked)": "Area Chart (100% Stacked)",
"Bubble Chart (Grouped)": "Bubble Chart (Grouped)",
+ "Treemap Chart": "Treemap Chart",
"Heatmap Chart": "Heatmap Chart",
"Calendar Heatmap Chart": "Calendar Heatmap Chart",
"Sort by": "ಇದರ ಪ್ರಕಾರ ವಿಂಗಡಿಸಿ",
diff --git a/src/locales/ko.json b/src/locales/ko.json
index dc1a2205..1e8a0a5a 100644
--- a/src/locales/ko.json
+++ b/src/locales/ko.json
@@ -1603,6 +1603,7 @@
"Area Chart (Stacked)": "누적 영역 차트",
"Area Chart (100% Stacked)": "100% 누적 영역 차트",
"Bubble Chart (Grouped)": "그룹화된 버블 차트",
+ "Treemap Chart": "Treemap Chart",
"Heatmap Chart": "Heatmap Chart",
"Calendar Heatmap Chart": "Calendar Heatmap Chart",
"Sort by": "정렬 기준",
diff --git a/src/locales/nl.json b/src/locales/nl.json
index c6f9eeed..1b12870c 100644
--- a/src/locales/nl.json
+++ b/src/locales/nl.json
@@ -1603,6 +1603,7 @@
"Area Chart (Stacked)": "Area Chart (Stacked)",
"Area Chart (100% Stacked)": "Area Chart (100% Stacked)",
"Bubble Chart (Grouped)": "Bubble Chart (Grouped)",
+ "Treemap Chart": "Treemap Chart",
"Heatmap Chart": "Heatmap Chart",
"Calendar Heatmap Chart": "Calendar Heatmap Chart",
"Sort by": "Sorteren op",
diff --git a/src/locales/pt_BR.json b/src/locales/pt_BR.json
index a9ce0d7f..b50ac6a6 100644
--- a/src/locales/pt_BR.json
+++ b/src/locales/pt_BR.json
@@ -1603,6 +1603,7 @@
"Area Chart (Stacked)": "Gráfico de Área (Empilhado)",
"Area Chart (100% Stacked)": "Gráfico de Área (100% Empilhado)",
"Bubble Chart (Grouped)": "Gráfico de Bolhas (Agrupado)",
+ "Treemap Chart": "Treemap Chart",
"Heatmap Chart": "Heatmap Chart",
"Calendar Heatmap Chart": "Calendar Heatmap Chart",
"Sort by": "Ordenar por",
diff --git a/src/locales/ru.json b/src/locales/ru.json
index a821da1d..6ec596fa 100644
--- a/src/locales/ru.json
+++ b/src/locales/ru.json
@@ -1603,6 +1603,7 @@
"Area Chart (Stacked)": "Диаграмма с областями (с накоплением)",
"Area Chart (100% Stacked)": "Диаграмма с областями (с 100% накоплением)",
"Bubble Chart (Grouped)": "Пузырьковая диаграмма (сгрупированная)",
+ "Treemap Chart": "Treemap Chart",
"Heatmap Chart": "Heatmap Chart",
"Calendar Heatmap Chart": "Calendar Heatmap Chart",
"Sort by": "Сортировать по",
diff --git a/src/locales/sl.json b/src/locales/sl.json
index fcd9a979..c96bf38b 100644
--- a/src/locales/sl.json
+++ b/src/locales/sl.json
@@ -1603,6 +1603,7 @@
"Area Chart (Stacked)": "Naložen ploskovni grafikon",
"Area Chart (100% Stacked)": "100-odstotno naložen ploskovni grafikon",
"Bubble Chart (Grouped)": "Grupiran mehurčni grafikon",
+ "Treemap Chart": "Treemap Chart",
"Heatmap Chart": "Heatmap Chart",
"Calendar Heatmap Chart": "Calendar Heatmap Chart",
"Sort by": "Razvrsti po",
diff --git a/src/locales/ta.json b/src/locales/ta.json
index 00ca8cd2..d5b36ad2 100644
--- a/src/locales/ta.json
+++ b/src/locales/ta.json
@@ -1603,6 +1603,7 @@
"Area Chart (Stacked)": "பரப்பு வரைபடம் (அடுக்கப்பட்ட)",
"Area Chart (100% Stacked)": "பரப்பு வரைபடம் (100% அடுக்கப்பட்ட)",
"Bubble Chart (Grouped)": "குமிழி வரைபடம் (குழுவாக்கப்பட்ட)",
+ "Treemap Chart": "Treemap Chart",
"Heatmap Chart": "Heatmap Chart",
"Calendar Heatmap Chart": "Calendar Heatmap Chart",
"Sort by": "இதன் வகை வரிசைப்படுத்து",
diff --git a/src/locales/th.json b/src/locales/th.json
index f11963bd..5fcf1e2f 100644
--- a/src/locales/th.json
+++ b/src/locales/th.json
@@ -1603,6 +1603,7 @@
"Area Chart (Stacked)": "Area Chart (Stacked)",
"Area Chart (100% Stacked)": "Area Chart (100% Stacked)",
"Bubble Chart (Grouped)": "Bubble Chart (Grouped)",
+ "Treemap Chart": "Treemap Chart",
"Heatmap Chart": "Heatmap Chart",
"Calendar Heatmap Chart": "Calendar Heatmap Chart",
"Sort by": "จัดเรียงตาม",
diff --git a/src/locales/tr.json b/src/locales/tr.json
index ec5a7d24..d0c2b70d 100644
--- a/src/locales/tr.json
+++ b/src/locales/tr.json
@@ -1603,6 +1603,7 @@
"Area Chart (Stacked)": "Area Chart (Stacked)",
"Area Chart (100% Stacked)": "Area Chart (100% Stacked)",
"Bubble Chart (Grouped)": "Bubble Chart (Grouped)",
+ "Treemap Chart": "Treemap Chart",
"Heatmap Chart": "Heatmap Chart",
"Calendar Heatmap Chart": "Calendar Heatmap Chart",
"Sort by": "Sıralama ölçütü",
diff --git a/src/locales/uk.json b/src/locales/uk.json
index e35ad1ef..392c181f 100644
--- a/src/locales/uk.json
+++ b/src/locales/uk.json
@@ -1603,6 +1603,7 @@
"Area Chart (Stacked)": "Area Chart (Stacked)",
"Area Chart (100% Stacked)": "Area Chart (100% Stacked)",
"Bubble Chart (Grouped)": "Bubble Chart (Grouped)",
+ "Treemap Chart": "Treemap Chart",
"Heatmap Chart": "Heatmap Chart",
"Calendar Heatmap Chart": "Calendar Heatmap Chart",
"Sort by": "Сортувати за",
diff --git a/src/locales/vi.json b/src/locales/vi.json
index 5882b7e7..56f05f7a 100644
--- a/src/locales/vi.json
+++ b/src/locales/vi.json
@@ -1603,6 +1603,7 @@
"Area Chart (Stacked)": "Area Chart (Stacked)",
"Area Chart (100% Stacked)": "Area Chart (100% Stacked)",
"Bubble Chart (Grouped)": "Bubble Chart (Grouped)",
+ "Treemap Chart": "Treemap Chart",
"Heatmap Chart": "Heatmap Chart",
"Calendar Heatmap Chart": "Calendar Heatmap Chart",
"Sort by": "Sắp xếp theo",
diff --git a/src/locales/zh_Hans.json b/src/locales/zh_Hans.json
index e59bba5a..de8197d8 100644
--- a/src/locales/zh_Hans.json
+++ b/src/locales/zh_Hans.json
@@ -1603,6 +1603,7 @@
"Area Chart (Stacked)": "面积图(堆叠)",
"Area Chart (100% Stacked)": "面积图(100%堆叠)",
"Bubble Chart (Grouped)": "气泡图(分组)",
+ "Treemap Chart": "矩形树图",
"Heatmap Chart": "热力图",
"Calendar Heatmap Chart": "日历热力图",
"Sort by": "排序方式",
diff --git a/src/locales/zh_Hant.json b/src/locales/zh_Hant.json
index 6af48dee..8c1cfe94 100644
--- a/src/locales/zh_Hant.json
+++ b/src/locales/zh_Hant.json
@@ -1603,6 +1603,7 @@
"Area Chart (Stacked)": "面積圖(堆疊)",
"Area Chart (100% Stacked)": "面積圖(100%堆疊)",
"Bubble Chart (Grouped)": "氣泡圖(分組)",
+ "Treemap Chart": "矩形樹狀圖",
"Heatmap Chart": "熱力圖",
"Calendar Heatmap Chart": "日曆熱力圖",
"Sort by": "排序方式",
diff --git a/src/views/desktop/insights/tabs/ExplorerChartTab.vue b/src/views/desktop/insights/tabs/ExplorerChartTab.vue
index 891ae8d6..8bd5a72a 100644
--- a/src/views/desktop/insights/tabs/ExplorerChartTab.vue
+++ b/src/views/desktop/insights/tabs/ExplorerChartTab.vue
@@ -181,6 +181,30 @@
v-else-if="!loading"
/>
+
+
+
+
import AxisChart, { type AxisChartDisplayType } from '@/components/desktop/AxisChart.vue';
+import TreeMapChart from '@/components/desktop/TreeMapChart.vue';
import HeatMapChart from '@/components/desktop/HeatMapChart.vue';
import { computed, useTemplateRef } from 'vue';
@@ -269,6 +294,7 @@ import { getCurrentDateTime, parseDateTimeFromString } from '@/lib/datetime.ts';
import { sortStatisticsItems } from '@/lib/statistics.ts';
type AxisChartType = InstanceType;
+type TreeMapChartType = InstanceType;
type HeatMapChartType = InstanceType;
interface InsightsExplorerDataTableTabProps {
@@ -332,6 +358,7 @@ const userStore = useUserStore();
const explorersStore = useExplorersStore();
const axisChart = useTemplateRef('axisChart');
+const treemapChart = useTemplateRef('treemapChart');
const heatmapChart = useTemplateRef('heatmapChart');
const defaultCurrency = computed(() => userStore.currentUserDefaultCurrency);
@@ -933,6 +960,18 @@ function buildExportResults(): { headers: string[], data: string[][], supportedM
data: results.data,
supportedMermaidCharts: supportedMermaidCharts
};
+ } else if (TransactionExplorerChartType.valueOf(currentExplorer.value.chartType)?.seriesDimensionRequired && currentExplorer.value.chartType === TransactionExplorerChartType.Treemap.value) {
+ const results = treemapChart.value?.exportData();
+
+ if (!results) {
+ return undefined;
+ }
+
+ return {
+ headers: results.headers,
+ data: results.data,
+ supportedMermaidCharts: undefined
+ };
} else if (TransactionExplorerChartType.valueOf(currentExplorer.value.chartType)?.seriesDimensionRequired && currentExplorer.value.chartType === TransactionExplorerChartType.Heatmap.value) {
const results = heatmapChart.value?.exportData();