diff --git a/TestingArena/ArenaVueUiBullet.vue b/TestingArena/ArenaVueUiBullet.vue
index 2b3d97a7..4bfce8c3 100644
--- a/TestingArena/ArenaVueUiBullet.vue
+++ b/TestingArena/ArenaVueUiBullet.vue
@@ -74,6 +74,8 @@ const model = ref([
{ key: 'style.chart.animation.show', def: true, type: 'checkbox' },
{ key: 'style.chart.animation.animationFrames', def: 60, type:'range', min: 30, max: 255 },
+ { key: 'style.chart.legend.position', def: 'bottom', type: 'select', options: ['top', 'bottom']},
+
{ key: 'style.chart.segments.baseColor', def: '#9A9A9A', type: 'color' },
{ key: 'style.chart.segments.dataLabels.show', def: true, type: 'checkbox' },
{ key: 'style.chart.segments.dataLabels.color', def: '#1A1A1A', type: 'color' },
diff --git a/TestingArena/ArenaVueUiChord.vue b/TestingArena/ArenaVueUiChord.vue
index e6a1322d..8116a962 100644
--- a/TestingArena/ArenaVueUiChord.vue
+++ b/TestingArena/ArenaVueUiChord.vue
@@ -80,6 +80,7 @@ const model = ref([
{ key: 'style.chart.legend.color', def: '#1A1A1A', type: 'color'},
{ key: 'style.chart.legend.fontSize', def: 14, type: 'number', min: 8, max: 42},
{ key: 'style.chart.legend.bold', def: false, type: 'checkbox'},
+ { key: 'style.chart.legend.position', def: 'bottom', type: 'select', options: ['top', 'bottom']},
{ key: 'style.chart.arcs.innerRadiusRatio', def: 1, type: 'number', min: 0.1, max: 1.5, step: 0.1 },
{ key: 'style.chart.arcs.outerRadiusRatio', def: 1, type: 'number', min: 0.1, max: 1.5, step: 0.1 },
diff --git a/TestingArena/ArenaVueUiDonut.vue b/TestingArena/ArenaVueUiDonut.vue
index 790015ff..fc52a1ee 100644
--- a/TestingArena/ArenaVueUiDonut.vue
+++ b/TestingArena/ArenaVueUiDonut.vue
@@ -178,6 +178,7 @@ const model = ref([
{ key: 'style.chart.legend.roundingPercentage', def: 0, type: 'number', min: 0, max: 6, label: 'percentageRounding', category: 'legend' },
{ key: 'style.chart.legend.showPercentage', def: true, type: 'checkbox'},
{ key: 'style.chart.legend.showValue', def: true, type: 'checkbox'},
+ { key: 'style.chart.legend.position', def: 'bottom', type: 'select', options: ['top', 'bottom']},
{ key: 'style.chart.title.text', def: 'Title', type: 'text', label: 'textContent', category: 'title' },
{ key: 'style.chart.title.color', def: '#1A1A1A', type: 'color', label: 'textColor', category: 'title' },
diff --git a/TestingArena/ArenaVueUiDonutEvolution.vue b/TestingArena/ArenaVueUiDonutEvolution.vue
index 569a4640..323fb624 100644
--- a/TestingArena/ArenaVueUiDonutEvolution.vue
+++ b/TestingArena/ArenaVueUiDonutEvolution.vue
@@ -131,6 +131,7 @@ const model = ref([
{ key: 'style.chart.legend.roundingValue', def: 2, type: 'number', min: 0, max: 12},
{ key: 'style.chart.legend.showValue', def: true, type: 'chexkbox'},
{ key: 'style.chart.legend.showPercentage', def: false, type: 'chexkbox'},
+ { key: 'style.chart.legend.position', def: 'bottom', type: 'select', options: ['top', 'bottom']},
{ key: 'table.show', def: false, type: 'checkbox'},
{ key: 'table.responsiveBreakpoint', def: 400, type: 'number', min: 300, max: 800},
diff --git a/TestingArena/ArenaVueUiDumbbell.vue b/TestingArena/ArenaVueUiDumbbell.vue
index 4ca5f62f..bbb51964 100644
--- a/TestingArena/ArenaVueUiDumbbell.vue
+++ b/TestingArena/ArenaVueUiDumbbell.vue
@@ -146,6 +146,8 @@ const model = ref([
{ key: 'style.chart.legend.color', def: '#1A1A1A', type: 'color'},
{ key: 'style.chart.legend.fontSize', def: 14, type: 'number', min: 8, max: 48},
{ key: 'style.chart.legend.bold', def: false, type: 'checkbox'},
+ { key: 'style.chart.legend.position', def: 'bottom', type: 'select', options: ['top', 'bottom']},
+
{ key: 'style.chart.title.text', def: 'Lorem ipsum dolor sit amet', type: 'text'},
{ key: 'style.chart.title.color', def: '#1A1A1A', type: 'color'},
{ key: 'style.chart.title.fontSize', def: 20, type: 'number', min: 8, max: 48},
diff --git a/TestingArena/ArenaVueUiFlow.vue b/TestingArena/ArenaVueUiFlow.vue
index 28be04cf..c3f1cce8 100644
--- a/TestingArena/ArenaVueUiFlow.vue
+++ b/TestingArena/ArenaVueUiFlow.vue
@@ -169,6 +169,9 @@ const model = ref([
{ key: 'style.chart.padding.left', def: 12, type: 'number', min: 0, max: 100 },
{ key: 'style.chart.padding.right', def: 12, type: 'number', min: 0, max: 100 },
{ key: 'style.chart.padding.bottom', def: 12, type: 'number', min: 0, max: 100 },
+
+ { key: 'style.chart.legend.position', def: 'bottom', type: 'select', options: ['top', 'bottom']},
+
{ key: 'style.chart.title.text', def: 'Lorem ipsum dolor', type: 'text' },
{ key: 'style.chart.title.color', def: '#1A1A1A', type: 'color' },
{ key: 'style.chart.title.fontSize', def: 20, type: 'number', min: 8, max: 42 },
diff --git a/TestingArena/ArenaVueUiGalaxy.vue b/TestingArena/ArenaVueUiGalaxy.vue
index 32f51716..92c562ec 100644
--- a/TestingArena/ArenaVueUiGalaxy.vue
+++ b/TestingArena/ArenaVueUiGalaxy.vue
@@ -73,6 +73,7 @@ const model = ref([
{ key: 'style.chart.legend.roundingPercentage', def: 2, type: 'number', min: 0, max: 12},
{ key: 'style.chart.legend.showValue', def: false, type: 'checkbox'},
{ key: 'style.chart.legend.showPercentage', def: true, type: 'checkbox'},
+ { key: 'style.chart.legend.position', def: 'bottom', type: 'select', options: ['top', 'bottom']},
{ key: 'style.chart.title.text', def: 'Lorem ipsum dolor sit amet', type: 'text'},
{ key: 'style.chart.title.color', def: '#1A1A1A', type: 'color'},
diff --git a/TestingArena/ArenaVueUiHistoryPlot.vue b/TestingArena/ArenaVueUiHistoryPlot.vue
index 258652af..d1a5696f 100644
--- a/TestingArena/ArenaVueUiHistoryPlot.vue
+++ b/TestingArena/ArenaVueUiHistoryPlot.vue
@@ -101,6 +101,8 @@ const model = ref([
{ key: 'style.chart.axes.y.name.offsetY', def: 0, type: 'number', min: -100, max: 100},
{ key: 'style.chart.axes.y.name.bold', def: false, type: 'checkbox' },
+ { key: 'style.chart.legend.position', def: 'bottom', type: 'select', options: ['top', 'bottom']},
+
{ key: 'style.chart.plots.radius', def: 16, type: 'range', min: 8, max: 42},
{ key: 'style.chart.plots.stroke', def: '#FFFFFF', type: 'color'},
{ key: 'style.chart.plots.strokeWidth', def: 1, type: 'number', min: 0, max: 12},
diff --git a/TestingArena/ArenaVueUiMoodRadar.vue b/TestingArena/ArenaVueUiMoodRadar.vue
index 8b229958..85106674 100644
--- a/TestingArena/ArenaVueUiMoodRadar.vue
+++ b/TestingArena/ArenaVueUiMoodRadar.vue
@@ -79,6 +79,8 @@ const model = ref([
{ key: 'style.chart.legend.show', def: true, type: 'checkbox'},
{ key: 'style.chart.legend.roundingPercentage', def: 2, type: 'number', min: 0, max: 12},
{ key: 'style.chart.legend.roundingValue', def: 2, type: 'number', min: 0, max: 12},
+ { key: 'style.chart.legend.position', def: 'bottom', type: 'select', options: ['top', 'bottom']},
+
{ key: 'table.show', def: false, type: 'checkbox'},
{ key: 'table.responsiveBreakpoint', def: 300, type: 'number', min: 300, max: 800},
{ key: 'table.columnNames.series', def: 'Series', type: 'text'},
diff --git a/TestingArena/ArenaVueUiNestedDonuts.vue b/TestingArena/ArenaVueUiNestedDonuts.vue
index 5a6ca8eb..99d42af7 100644
--- a/TestingArena/ArenaVueUiNestedDonuts.vue
+++ b/TestingArena/ArenaVueUiNestedDonuts.vue
@@ -130,6 +130,7 @@ const model = ref([
{ key: 'style.chart.legend.roundingPercentage', def: 2, type: 'number', min: 0, max: 12},
{ key: 'style.chart.legend.showValue', def: true, type: 'checkbox'},
{ key: 'style.chart.legend.showPercentage', def: true, type: 'checkbox'},
+ { key: 'style.chart.legend.position', def: 'bottom', type: 'select', options: ['top', 'bottom']},
{ key: 'style.chart.title.text', def: 'Lorem ipsum dolor sit amet', type: 'text'},
{ key: 'style.chart.title.color', def: '#1A1A1A', type: 'color'},
diff --git a/TestingArena/ArenaVueUiOnion.vue b/TestingArena/ArenaVueUiOnion.vue
index 5458c189..9b017bc9 100644
--- a/TestingArena/ArenaVueUiOnion.vue
+++ b/TestingArena/ArenaVueUiOnion.vue
@@ -120,7 +120,7 @@ const model = ref([
{ key: 'style.chart.legend.bold', def: false, type: 'checkbox', label: 'bold', category: 'legend' },
{ key: 'style.chart.legend.roundingValue', def: 0, type: 'number', min: 0, max: 6, label: ['rounding', 'is', 'value'], category: 'legend' },
{ key: 'style.chart.legend.roundingPercentage', def: 0, type: 'number', min: 0, max: 6, label: 'percentageRounding', category: 'legend' },
- { key: 'style.chart.legend.offsetY', def: 0, type: 'number', min: -100, max: 100}, // DEPRECATED (used with useDiv set to false)
+ { key: 'style.chart.legend.position', def: 'bottom', type: 'select', options: ['top', 'bottom']},
{ key: 'style.chart.tooltip.show', def: true, type: 'checkbox' },
{ key: 'style.chart.tooltip.backgroundColor', def: '#FFFFFF', type: 'color' },
diff --git a/TestingArena/ArenaVueUiParallelCoordinatePlot.vue b/TestingArena/ArenaVueUiParallelCoordinatePlot.vue
index f5852476..6b1cfa81 100644
--- a/TestingArena/ArenaVueUiParallelCoordinatePlot.vue
+++ b/TestingArena/ArenaVueUiParallelCoordinatePlot.vue
@@ -131,6 +131,8 @@ const model = ref([
{ key: 'style.chart.legend.color', def: '#1A1A1A', type: 'color' },
{ key: 'style.chart.legend.fontSize', def: 16, type: 'number', min: 8, max: 42 },
{ key: 'style.chart.legend.bold', def: false, type: 'checkbox' },
+ { key: 'style.chart.legend.position', def: 'bottom', type: 'select', options: ['top', 'bottom']},
+
{ key: 'style.chart.tooltip.show', def: true, type: 'checkbox' },
{ key: 'style.chart.tooltip.color', def: '#1A1A1A', type: 'color' },
{ key: 'style.chart.tooltip.backgroundColor', def: '#FFFFFF', type: 'color' },
diff --git a/TestingArena/ArenaVueUiQuadrant.vue b/TestingArena/ArenaVueUiQuadrant.vue
index c3fd1eaf..5c9b8c8b 100644
--- a/TestingArena/ArenaVueUiQuadrant.vue
+++ b/TestingArena/ArenaVueUiQuadrant.vue
@@ -192,6 +192,8 @@ const model = ref([
{ key: 'style.chart.legend.backgroundColor', def: '#FFFFFF', type: 'color'},
{ key: "style.chart.legend.color", def: '#1A1A1A', type: 'color'},
{ key: 'style.chart.legend.fontSize', def: 14, type: 'range', min: 8, max: 48},
+ { key: 'style.chart.legend.position', def: 'bottom', type: 'select', options: ['top', 'bottom']},
+
{ key: 'table.show', def: false, type: 'checkbox'},
{ key: 'table.responsiveBreakdpoint', def: 400, type: 'number', min: 300, max: 800},
{ key: 'table.th.backgroundColor', def: '#FFFFFF', type: 'color'},
diff --git a/TestingArena/ArenaVueUiQuickChart.vue b/TestingArena/ArenaVueUiQuickChart.vue
index 6e113ee3..2e2c496a 100644
--- a/TestingArena/ArenaVueUiQuickChart.vue
+++ b/TestingArena/ArenaVueUiQuickChart.vue
@@ -166,6 +166,8 @@ const model = ref([
{ key: 'legendFontSize', def: 12, type: 'number', min: 8, max: 48},
{ key: 'legendIcon', def: 'starFill', type: 'text'},
{ key: 'legendIconSize', def: 12, type: 'number', min: 8, max: 48},
+ { key: 'legendPosition', def: 'bottom', type: 'select', options: ['top', 'bottom']},
+
{ key: 'lineSmooth', def: true, type: 'checkbox'},
{ key: 'lineAnimated', def: false, type: 'checkbox' },
{ key: 'lineStrokeWidth', def: 2, type:'number', min: 0.5, max: 12, step: 0.5},
diff --git a/TestingArena/ArenaVueUiRadar.vue b/TestingArena/ArenaVueUiRadar.vue
index eac467cf..34f6f1d5 100644
--- a/TestingArena/ArenaVueUiRadar.vue
+++ b/TestingArena/ArenaVueUiRadar.vue
@@ -178,6 +178,8 @@ const model = ref([
{ key: 'style.chart.legend.color', def: '#1A1A1A', type: 'color'},
{ key: 'style.chart.legend.fontSize', def: 14, type: 'range', min: 8, max: 48},
{ key: 'style.chart.legend.roundingPercentage', def: 2, type: 'range', min: 0, max: 12},
+ { key: 'style.chart.legend.position', def: 'bottom', type: 'select', options: ['top', 'bottom']},
+
{ key: 'table.show', def: false, type: 'checkbox'},
{ key: 'table.responsiveBreakpoint', def: 400, type: 'range', min: 300, max: 800},
{ key: 'table.th.backgroundColor', def: '#FFFFFF', type: 'color'},
diff --git a/TestingArena/ArenaVueUiRings.vue b/TestingArena/ArenaVueUiRings.vue
index 7cca3645..4a6fc587 100644
--- a/TestingArena/ArenaVueUiRings.vue
+++ b/TestingArena/ArenaVueUiRings.vue
@@ -110,6 +110,7 @@ const model = ref([
{ key: 'style.chart.legend.roundingPercentage', def: 2, type: 'number', min: 0, max: 12},
{ key: 'style.chart.legend.showValue', def: true, type: 'checkbox' },
{ key: 'style.chart.legend.showPercentage', def: false, type: 'checkbox' },
+ { key: 'style.chart.legend.position', def: 'bottom', type: 'select', options: ['top', 'bottom']},
{ key: 'style.chart.title.text', def: 'Lorem ipsum dolor sit amet', type: 'text'},
{ key: 'style.chart.title.color', def: '#1A1A1A', type: 'color'},
diff --git a/TestingArena/ArenaVueUiScatter.vue b/TestingArena/ArenaVueUiScatter.vue
index 75af82b5..1df8662b 100644
--- a/TestingArena/ArenaVueUiScatter.vue
+++ b/TestingArena/ArenaVueUiScatter.vue
@@ -211,6 +211,7 @@ const model = ref([
{ key: 'style.legend.fontSize', def: 14, type: 'number', min: 6, max: 42 },
{ key: 'style.legend.bold', def: false, type: 'checkbox'},
{ key: 'style.legend.roundingValue', def: 0, type: 'number', min: 0, max: 6},
+ { key: 'style.legend.position', def: 'bottom', type: 'select', options: ['top', 'bottom']},
{ key: 'style.tooltip.show', def: true, type: 'checkbox' },
{ key: 'style.tooltip.backgroundColor', def: '#FFFFFF', type: 'color' },
diff --git a/TestingArena/ArenaVueUiStackbar.vue b/TestingArena/ArenaVueUiStackbar.vue
index 1eaadaaf..998b332e 100644
--- a/TestingArena/ArenaVueUiStackbar.vue
+++ b/TestingArena/ArenaVueUiStackbar.vue
@@ -116,6 +116,7 @@ const model = ref([
{ key: 'style.chart.legend.backgroundColor', def: '#FFFFFF', type: 'color'},
{ key: 'style.chart.legend.color', def: '#1A1A1A', type: 'color'},
{ key: 'style.chart.legend.fontSize', def: 14, type: 'number', min: 8, max: 42},
+ { key: 'style.chart.legend.position', def: 'bottom', type: 'select', options: ['top', 'bottom']},
{ key: 'style.chart.zoom.show', def: true, type: 'checkbox'},
{ key: 'style.chart.zoom.color', def: '#CCCCCC', type: 'color'},
diff --git a/TestingArena/ArenaVueUiTreemap.vue b/TestingArena/ArenaVueUiTreemap.vue
index 45747711..0279a5ed 100644
--- a/TestingArena/ArenaVueUiTreemap.vue
+++ b/TestingArena/ArenaVueUiTreemap.vue
@@ -198,6 +198,7 @@ const model = ref([
{ key: 'style.chart.legend.roundingPercentage', def: 1, type: 'number', min: 0, max: 12},
{ key: 'style.chart.legend.showValue', def: true, type: 'checkbox'},
{ key: 'style.chart.legend.showPercentage', def: false, type: 'checkbox'},
+ { key: 'style.chart.legend.position', def: 'bottom', type: 'select', options: ['top', 'bottom']},
{ key: 'style.chart.title.text', def: "Lorem ipsum dolor sic amet", type: "text"},
{ key: 'style.chart.title.color', def: '#1A1A1A', type: 'color'},
diff --git a/TestingArena/ArenaVueUiWaffle.vue b/TestingArena/ArenaVueUiWaffle.vue
index 6eca6c40..7aab94d9 100644
--- a/TestingArena/ArenaVueUiWaffle.vue
+++ b/TestingArena/ArenaVueUiWaffle.vue
@@ -147,6 +147,7 @@ const model = ref([
{ key: 'style.chart.legend.showValue', def: true, type: 'checkbox'},
{ key: 'style.chart.legend.showPercentage', def: false, type: 'checkbox'},
+ { key: 'style.chart.legend.position', def: 'bottom', type: 'select', options: ['top', 'bottom']},
])
const testCustomTooltip = ref(false);
diff --git a/TestingArena/ArenaVueUiWorld.vue b/TestingArena/ArenaVueUiWorld.vue
index 28bcd248..d8bc744b 100644
--- a/TestingArena/ArenaVueUiWorld.vue
+++ b/TestingArena/ArenaVueUiWorld.vue
@@ -245,6 +245,8 @@ const model = ref([
{ key: 'style.chart.globe.waterColor', def: '#1F77B4', type: 'color'},
{ key: 'style.chart.tooltip.showMinimap', def: true, type: 'checkbox'},
+
+ { key: 'style.chart.legend.position', def: 'bottom', type: 'select', options: ['top', 'bottom']}
]);
const projections = ref([
diff --git a/TestingArena/ArenaVueUiXy.vue b/TestingArena/ArenaVueUiXy.vue
index 7c80a9b6..d10176d5 100644
--- a/TestingArena/ArenaVueUiXy.vue
+++ b/TestingArena/ArenaVueUiXy.vue
@@ -116,13 +116,13 @@ onMounted(() => {
setTimeout(() => {
dataset.value = [
{
- name: "A",
+ name: "Serie A with a long name",
series: [60, 100, 112, 221, 119, 75, null, -226, -243, 198, 156, 127, 120],
type: "bar",
dataLabels: false,
},
{
- name: "B",
+ name: "Serie B with a long name",
series: [60, 75, 119, 201, 109, 85, null, 206, 223, 204, 146, 117, 87],
type: "line",
dataLabels: false,
@@ -132,7 +132,7 @@ onMounted(() => {
useProgression: true
},
{
- name: "C",
+ name: "Serie C with a long name",
series: [60, 75, 11, 20, 10, 8, null, 20, 22, 204, 146, 117, 55],
type: "plot",
dataLabels: false,
@@ -469,6 +469,7 @@ const model = ref([
{ key: 'chart.legend.show', def: true, type: 'checkbox', label: 'show', category: 'legend' },
{ key: 'chart.legend.color', def: '#1A1A1A', type: 'color', label: 'textColor', category: 'legend' },
{ key: 'chart.legend.fontSize', def: 16, type: 'number', min: 10, max: 36, label: 'fontSize', category: 'legend' },
+ { key: 'chart.legend.position', def: 'bottom', type: 'select', options: ['top', 'bottom']},
{ key: 'chart.title.show', def: true, type: 'checkbox', label: 'show', category: 'title' },
{ key: 'chart.title.text', def: 'Title', type: 'text', label: 'textContent', category: 'title' },
diff --git a/TestingArena/ArenaVueUiXyCanvas.vue b/TestingArena/ArenaVueUiXyCanvas.vue
index fd47e5bb..40bf72a6 100644
--- a/TestingArena/ArenaVueUiXyCanvas.vue
+++ b/TestingArena/ArenaVueUiXyCanvas.vue
@@ -131,6 +131,8 @@ const model = ref([
{ key: 'style.chart.legend.show', def: true, type: 'checkbox' },
{ key: 'style.chart.legend.fontSize', def: 16, type: 'number', min: 8, max: 42 },
{ key: 'style.chart.legend.bold', def: false, type: 'checkbox' },
+ { key: 'style.chart.legend.position', def: 'bottom', type: 'select', options: ['top', 'bottom']},
+
{ key: 'style.chart.title.text', def: 'Lorem ipsum placer', type: 'text' },
{ key: 'style.chart.title.color', def: '#1A1A1A', type: 'color' },
{ key: 'style.chart.title.fontSize', def: 20, type: 'number', min: 8, max: 42 },
diff --git a/src/App.vue b/src/App.vue
index 41db49f6..44610766 100755
--- a/src/App.vue
+++ b/src/App.vue
@@ -125,7 +125,7 @@ const mapping = ref({
})
const options = computed(() => Object.keys(mapping.value));
-const selectedComponent = ref('VueUiHeatmap');
+const selectedComponent = ref('VueUiWorld');
/**
* Legacy testing arena where some non chart components can be tested
diff --git a/src/components/vue-ui-bullet.vue b/src/components/vue-ui-bullet.vue
index 8aadadff..e7c6c900 100644
--- a/src/components/vue-ui-bullet.vue
+++ b/src/components/vue-ui-bullet.vue
@@ -49,6 +49,7 @@ const source = ref(null);
const step = ref(0);
const resizeObserver = ref(null);
const observedEl = ref(null);
+const readyTeleport = ref(false);
const isDataset = computed({
get: () => {
@@ -178,7 +179,10 @@ function prepareChart() {
}
}
-onMounted(prepareChart);
+onMounted(() => {
+ readyTeleport.value = true;
+ prepareChart();
+});
const uid = ref(createUid());
@@ -525,6 +529,8 @@ defineExpose({
/>
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/src/components/vue-ui-chord.vue b/src/components/vue-ui-chord.vue
index 2b205797..1a74d0ad 100644
--- a/src/components/vue-ui-chord.vue
+++ b/src/components/vue-ui-chord.vue
@@ -88,6 +88,7 @@ const legendStep = ref(0);
const loaded = ref(false);
const resizeObserver = shallowRef(null);
const observedEl = shallowRef(null);
+const readyTeleport = ref(false);
const FINAL_CONFIG = ref(prepareConfig());
@@ -314,6 +315,7 @@ function checkDataset(){
const loadingTimeout = ref(null);
onMounted(() => {
+ readyTeleport.value = true;
prepareChart();
});
@@ -1010,6 +1012,8 @@ defineExpose({
}" />
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/vue-ui-donut-evolution.vue b/src/components/vue-ui-donut-evolution.vue
index 606abd89..7e831e67 100644
--- a/src/components/vue-ui-donut-evolution.vue
+++ b/src/components/vue-ui-donut-evolution.vue
@@ -88,6 +88,7 @@ const scaleLabels = ref(null);
const timeLabelsEls = ref(null);
const xAxisLabel = ref(null);
const yAxisLabel = ref(null);
+const readyTeleport = ref(false);
const chartTitle = ref(null);
const chartLegend = ref(null);
@@ -108,6 +109,7 @@ const isDataset = computed(() => {
})
onMounted(() => {
+ readyTeleport.value = true;
prepareChart();
});
@@ -931,6 +933,8 @@ defineExpose({
/>
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/vue-ui-donut.vue b/src/components/vue-ui-donut.vue
index 1813b569..94b7cfc7 100644
--- a/src/components/vue-ui-donut.vue
+++ b/src/components/vue-ui-donut.vue
@@ -105,6 +105,7 @@ const noTitle = shallowRef(null);
const titleStep = ref(0);
const tableStep = ref(0);
const legendStep = ref(0);
+const readyTeleport = ref(false);
const labels_value_fontSize = computed({
get: () => FINAL_CONFIG.value.style.chart.layout.labels.percentage.fontSize,
@@ -187,6 +188,7 @@ const resizeAndReflow = () => {
}
onMounted( async() => {
+ readyTeleport.value = true;
prepareChart();
requestAnimationFrame(resizeAndReflow);
});
@@ -1171,6 +1173,8 @@ defineExpose({
}" />
+
+
-
-
+
+
+
diff --git a/src/components/vue-ui-dumbbell.vue b/src/components/vue-ui-dumbbell.vue
index 58be7275..f674082b 100644
--- a/src/components/vue-ui-dumbbell.vue
+++ b/src/components/vue-ui-dumbbell.vue
@@ -87,6 +87,7 @@ const noTitle = ref(null);
const titleStep = ref(0);
const tableStep = ref(0);
const legendStep = ref(0);
+const readyTeleport = ref(false);
const yAxisLabel = ref(null);
const serieLabels = ref(null);
@@ -203,6 +204,7 @@ const resizeObserver = shallowRef(null);
const observedEl = shallowRef(null);
onMounted(() => {
+ readyTeleport.value = true;
prepareChart();
});
@@ -872,6 +874,8 @@ defineExpose({
/>
+
+
-
-
-
-
-
-
-
- {{ legend.name }}
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ {{ legend.name }}
+
+
+
+
+
+
+
+
diff --git a/src/components/vue-ui-flow.vue b/src/components/vue-ui-flow.vue
index 68ce2a38..0a23090a 100644
--- a/src/components/vue-ui-flow.vue
+++ b/src/components/vue-ui-flow.vue
@@ -68,12 +68,14 @@ const chartTitle = ref(null);
const source = ref(null);
const responsiveObserver = ref(null);
const observedEl = ref(null);
+const readyTeleport = ref(false);
const isDataset = computed(() => {
return !!props.dataset && props.dataset.length;
});
onMounted(() => {
+ readyTeleport.value = true;
prepareChart();
});
@@ -950,6 +952,8 @@ defineExpose({
}" />
+
+
-
-
drillCategory(payload)">
-
-
- {{ legend.name }} ({{ legend.count }})
-
-
-
-
-
+
+
+
+
+
+
drillCategory(payload)">
+
+
+ {{ legend.name }} ({{ legend.count }})
+
+
+
+
+
+
diff --git a/src/components/vue-ui-galaxy.vue b/src/components/vue-ui-galaxy.vue
index f8d1c58b..956e30f7 100644
--- a/src/components/vue-ui-galaxy.vue
+++ b/src/components/vue-ui-galaxy.vue
@@ -82,6 +82,7 @@ const source = ref(null);
const noTitle = ref(null);
const resizeObserver = ref(null);
const observedEl = ref(null);
+const readyTeleport = ref(false);
const isDataset = computed(() => {
return !!props.dataset && props.dataset.length;
@@ -117,6 +118,7 @@ const { loading, FINAL_DATASET } = useLoading({
})
onMounted(() => {
+ readyTeleport.value = true;
prepareChart();
});
@@ -630,6 +632,8 @@ defineExpose({
/>
+
+
-
-
-
segregate(legend)"
- >
-
-
- {{ legend.name }}{{ FINAL_CONFIG.style.chart.legend.showPercentage || FINAL_CONFIG.style.chart.legend.showValue ? ':' : ''}} {{ !FINAL_CONFIG.style.chart.legend.showValue ? '' : applyDataLabel(
- FINAL_CONFIG.style.chart.layout.labels.dataLabels.formatter,
- legend.value,
- dataLabel({
- p: FINAL_CONFIG.style.chart.layout.labels.dataLabels.prefix,
- v: legend.value,
- s: FINAL_CONFIG.style.chart.layout.labels.dataLabels.suffix,
- r: FINAL_CONFIG.style.chart.legend.roundingValue
- }),
- { datapoint: legend, seriesIndex: index }
- )
- }}
- {{
- !FINAL_CONFIG.style.chart.legend.showPercentage ? '' :
- !segregated.includes(legend.id)
- ? `${FINAL_CONFIG.style.chart.legend.showValue ? '(' : ''}${isNaN(legend.value / total) ? '-' : dataLabel({
- v: legend.value / total * 100,
- s: '%',
- r: FINAL_CONFIG.style.chart.legend.roundingPercentage
- })}${FINAL_CONFIG.style.chart.legend.showValue ? ')' : ''}`
- : `${FINAL_CONFIG.style.chart.legend.showValue ? '(' : ''}- %${FINAL_CONFIG.style.chart.legend.showValue ? ')' : ''}`
- }}
-
-
-
-
-
-
-
+
+
+
+
+
+
segregate(legend)"
+ >
+
+
+ {{ legend.name }}{{ FINAL_CONFIG.style.chart.legend.showPercentage || FINAL_CONFIG.style.chart.legend.showValue ? ':' : ''}} {{ !FINAL_CONFIG.style.chart.legend.showValue ? '' : applyDataLabel(
+ FINAL_CONFIG.style.chart.layout.labels.dataLabels.formatter,
+ legend.value,
+ dataLabel({
+ p: FINAL_CONFIG.style.chart.layout.labels.dataLabels.prefix,
+ v: legend.value,
+ s: FINAL_CONFIG.style.chart.layout.labels.dataLabels.suffix,
+ r: FINAL_CONFIG.style.chart.legend.roundingValue
+ }),
+ { datapoint: legend, seriesIndex: index }
+ )
+ }}
+ {{
+ !FINAL_CONFIG.style.chart.legend.showPercentage ? '' :
+ !segregated.includes(legend.id)
+ ? `${FINAL_CONFIG.style.chart.legend.showValue ? '(' : ''}${isNaN(legend.value / total) ? '-' : dataLabel({
+ v: legend.value / total * 100,
+ s: '%',
+ r: FINAL_CONFIG.style.chart.legend.roundingPercentage
+ })}${FINAL_CONFIG.style.chart.legend.showValue ? ')' : ''}`
+ : `${FINAL_CONFIG.style.chart.legend.showValue ? '(' : ''}- %${FINAL_CONFIG.style.chart.legend.showValue ? ')' : ''}`
+ }}
+
+
+
+
+
+
+
diff --git a/src/components/vue-ui-history-plot.vue b/src/components/vue-ui-history-plot.vue
index 16eb6842..8eee58f7 100644
--- a/src/components/vue-ui-history-plot.vue
+++ b/src/components/vue-ui-history-plot.vue
@@ -92,6 +92,7 @@ const isFullscreen = ref(false);
const selectedDatapoint = ref(null);
const useCustomFormat = ref(false);
const source = ref(null);
+const readyTeleport = ref(false);
const xAxisLabel = ref(null);
const yAxisLabel = ref(null);
@@ -109,7 +110,10 @@ const isDataset = computed({
const emit = defineEmits(['selectLegend', 'selectDatapoint'])
-onMounted(prepareChart);
+onMounted(() => {
+ readyTeleport.value = true;
+ prepareChart();
+});
const debug = computed(() => !!FINAL_CONFIG.value.debug);
@@ -953,6 +957,8 @@ defineExpose({
/>
+
+
-
-
{ segregate(legend.seriesIndex); selectLegend(legend) }"
- >
-
-
- {{ legend.name }}
-
-
-
-
-
-
+
+
+
+
+
+
{ segregate(legend.seriesIndex); selectLegend(legend) }"
+ >
+
+
+ {{ legend.name }}
+
+
+
+
+
+
+
diff --git a/src/components/vue-ui-mood-radar.vue b/src/components/vue-ui-mood-radar.vue
index 773a59ee..fd2ffba5 100644
--- a/src/components/vue-ui-mood-radar.vue
+++ b/src/components/vue-ui-mood-radar.vue
@@ -74,6 +74,7 @@ const chartLegend = ref(null);
const resizeObserver = ref(null);
const observedEl = ref(null);
const source = ref(null);
+const readyTeleport = ref(false);
const isDataset = computed(() => {
return !!props.dataset && Object.keys(props.dataset).length;
@@ -135,6 +136,7 @@ const { loading, FINAL_DATASET } = useLoading({
});
onMounted(() => {
+ readyTeleport.value = true;
prepareChart();
})
@@ -517,6 +519,8 @@ defineExpose({
}" />
+
+
-
-
-
- selectKey(legend.key)" style="
- display: flex;
- flex-direction: row;
- gap: 3px;
- align-items: center;
- margin: 3px 0;
- ">
-
-
-
-
-
- {{ applyDataLabel(
- FINAL_CONFIG.style.chart.layout.dataLabel.formatter,
- legend.value,
- dataLabel({
- p: FINAL_CONFIG.style.chart.layout.dataLabel.prefix,
- v: legend.value,
- s: FINAL_CONFIG.style.chart.layout.dataLabel.suffix,
- r: FINAL_CONFIG.style.chart.layout.dataLabel.roundingValue
- }),
- { datapoint: legend, seriesIndex: index }
- ) }}({{ dataLabel({
- v: legend.proportion * 100,
- s: '%',
- r: FINAL_CONFIG.style.chart.legend.roundingPercentage
- })}})
-
-
-
-
-
-
+
+
+
+
+
+
+
+ selectKey(legend.key)" style="
+ display: flex;
+ flex-direction: row;
+ gap: 3px;
+ align-items: center;
+ margin: 3px 0;
+ ">
+
+
+
+
+
+ {{ applyDataLabel(
+ FINAL_CONFIG.style.chart.layout.dataLabel.formatter,
+ legend.value,
+ dataLabel({
+ p: FINAL_CONFIG.style.chart.layout.dataLabel.prefix,
+ v: legend.value,
+ s: FINAL_CONFIG.style.chart.layout.dataLabel.suffix,
+ r: FINAL_CONFIG.style.chart.layout.dataLabel.roundingValue
+ }),
+ { datapoint: legend, seriesIndex: index }
+ ) }}({{ dataLabel({
+ v: legend.proportion * 100,
+ s: '%',
+ r: FINAL_CONFIG.style.chart.legend.roundingPercentage
+ })}})
+
+
+
+
+
+
+
diff --git a/src/components/vue-ui-nested-donuts.vue b/src/components/vue-ui-nested-donuts.vue
index 6fd2e9f6..c897f3a9 100644
--- a/src/components/vue-ui-nested-donuts.vue
+++ b/src/components/vue-ui-nested-donuts.vue
@@ -99,6 +99,7 @@ const legendStep = ref(0);
const isFirstLoad = ref(true);
const animatedValues = ref([]);
const ghostSlices = ref([]);
+const readyTeleport = ref(false);
const isFullscreen = ref(false);
function toggleFullscreen(state) {
@@ -368,6 +369,7 @@ async function triggerAnim() {
}
onMounted(async () => {
+ readyTeleport.value = true;
prepareChart();
await triggerAnim();
});
@@ -1279,6 +1281,8 @@ defineExpose({
}" />
+
+
- segregateDonut(legend)">
-
-
- {{ titleSet[0].arcOf }}
-
-
-
-
- {{ legend.name }}{{ FINAL_CONFIG.style.chart.legend.showPercentage || FINAL_CONFIG.style.chart.legend.showValue ? ':' : ''}}
- {{
- !FINAL_CONFIG.style.chart.legend.showValue ? '' :
- applyDataLabel(
- FINAL_CONFIG.style.chart.layout.labels.dataLabels.formatter,
- legend.value,
- dataLabel({
- p: FINAL_CONFIG.style.chart.layout.labels.dataLabels.prefix,
- v: legend.value,
- s: FINAL_CONFIG.style.chart.layout.labels.dataLabels.suffix,
- r: FINAL_CONFIG.style.chart.legend.roundingValue,
- }),
- { datapoint: legend, seriesIndex: index }
- )
- }}
- {{
- !FINAL_CONFIG.style.chart.legend.showPercentage ? '' :
- !segregated.includes(legend.id)
- ? `${FINAL_CONFIG.style.chart.legend.showValue ? '(' : ''}${isNaN(legend.value / legend.total)
- ? "-"
- : dataLabel({
- v: (legend.value / legend.total) * 100,
- s: "%",
- r: FINAL_CONFIG.style.chart.legend.roundingPercentage,
- })}${FINAL_CONFIG.style.chart.legend.showValue ? ')' : ''}`
- : `${FINAL_CONFIG.style.chart.legend.showValue ? '(' : ''}- %${FINAL_CONFIG.style.chart.legend.showValue ? ')' : ''}`
- }}
-
-
-
-
+
+
+
+
+
+
segregateDonut(legend)">
+
+
+ {{ titleSet[0].arcOf }}
+
+
+
+
+ {{ legend.name }}{{ FINAL_CONFIG.style.chart.legend.showPercentage || FINAL_CONFIG.style.chart.legend.showValue ? ':' : ''}}
+ {{
+ !FINAL_CONFIG.style.chart.legend.showValue ? '' :
+ applyDataLabel(
+ FINAL_CONFIG.style.chart.layout.labels.dataLabels.formatter,
+ legend.value,
+ dataLabel({
+ p: FINAL_CONFIG.style.chart.layout.labels.dataLabels.prefix,
+ v: legend.value,
+ s: FINAL_CONFIG.style.chart.layout.labels.dataLabels.suffix,
+ r: FINAL_CONFIG.style.chart.legend.roundingValue,
+ }),
+ { datapoint: legend, seriesIndex: index }
+ )
+ }}
+ {{
+ !FINAL_CONFIG.style.chart.legend.showPercentage ? '' :
+ !segregated.includes(legend.id)
+ ? `${FINAL_CONFIG.style.chart.legend.showValue ? '(' : ''}${isNaN(legend.value / legend.total)
+ ? "-"
+ : dataLabel({
+ v: (legend.value / legend.total) * 100,
+ s: "%",
+ r: FINAL_CONFIG.style.chart.legend.roundingPercentage,
+ })}${FINAL_CONFIG.style.chart.legend.showValue ? ')' : ''}`
+ : `${FINAL_CONFIG.style.chart.legend.showValue ? '(' : ''}- %${FINAL_CONFIG.style.chart.legend.showValue ? ')' : ''}`
+ }}
+
+
+
+
+
diff --git a/src/components/vue-ui-onion.vue b/src/components/vue-ui-onion.vue
index a5bf6fdb..484746de 100644
--- a/src/components/vue-ui-onion.vue
+++ b/src/components/vue-ui-onion.vue
@@ -76,6 +76,7 @@ const titleStep = ref(0);
const tableStep = ref(0);
const legendStep = ref(0);
const resizing = ref(false);
+const readyTeleport = ref(false);
const FINAL_CONFIG = ref(prepareConfig());
@@ -197,6 +198,7 @@ const resizeObserver = shallowRef(null);
const observedEl = shallowRef(null);
onMounted(() => {
+ readyTeleport.value = true;
prepareChart();
});
@@ -681,6 +683,8 @@ defineExpose({
}"
/>
+
+
-
-
-
segregate(legend.id)"
- >
-
-
- {{ legend.name ? legend.name + ': ' : '' }} {{ (legend.percentage || 0).toFixed(FINAL_CONFIG.style.chart.legend.roundingPercentage) }}%
-
-
-
-
-
+
+
+
+
+
+
segregate(legend.id)"
+ >
+
+
+ {{ legend.name ? legend.name + ': ' : '' }} {{ (legend.percentage || 0).toFixed(FINAL_CONFIG.style.chart.legend.roundingPercentage) }}%
+
+
+
+
+
+
diff --git a/src/components/vue-ui-parallel-coordinate-plot.vue b/src/components/vue-ui-parallel-coordinate-plot.vue
index 6a05864b..b70cd122 100644
--- a/src/components/vue-ui-parallel-coordinate-plot.vue
+++ b/src/components/vue-ui-parallel-coordinate-plot.vue
@@ -82,6 +82,7 @@ const noTitle = ref(null);
const titleStep = ref(0);
const legendStep = ref(0);
const tableStep = ref(0);
+const readyTeleport = ref(false);
const xAxisLabels = ref(null);
@@ -209,6 +210,7 @@ const resizeObserver = shallowRef(null);
const observedEl = shallowRef(null);
onMounted(() => {
+ readyTeleport.value = true;
prepareChart();
});
@@ -801,6 +803,8 @@ defineExpose({
/>
+
+
-
-
-
{ segregate(legend.id); selectLegend(legend) }"
- >
-
-
- {{ legend.name }}
-
-
-
-
-
-
+
+
+
+
+
+
{ segregate(legend.id); selectLegend(legend) }"
+ >
+
+
+ {{ legend.name }}
+
+
+
+
+
+
+
+
diff --git a/src/components/vue-ui-quadrant.vue b/src/components/vue-ui-quadrant.vue
index 6ca58848..872ac679 100644
--- a/src/components/vue-ui-quadrant.vue
+++ b/src/components/vue-ui-quadrant.vue
@@ -91,6 +91,7 @@ const noTitle = ref(null);
const titleStep = ref(0);
const tableStep = ref(0);
const legendStep = ref(0);
+const readyTeleport = ref(false);
const FINAL_CONFIG = ref(prepareConfig());
@@ -284,6 +285,7 @@ function prepareChart() {
}
onMounted(() => {
+ readyTeleport.value = true;
prepareChart()
});
@@ -1137,6 +1139,8 @@ defineExpose({
/>
+
+
-
-
-
segregate(legend.id)"
- >
-
-
- {{ legend.name }}
-
-
-
-
-
+
+
+
+
+
+
+
segregate(legend.id)"
+ >
+
+
+ {{ legend.name }}
+
+
+
+
+
+
diff --git a/src/components/vue-ui-quick-chart.vue b/src/components/vue-ui-quick-chart.vue
index 9a973a19..e0eeca65 100644
--- a/src/components/vue-ui-quick-chart.vue
+++ b/src/components/vue-ui-quick-chart.vue
@@ -88,6 +88,7 @@ const noTitle = ref(null);
const segregated = ref([]);
const step = ref(0);
const slicerStep = ref(0);
+const readyTeleport = ref(false);
const timeLabelsEls = ref(null);
const scaleLabels = ref(null);
@@ -287,6 +288,7 @@ const resizeObserver = shallowRef(null);
const observedEl = shallowRef(null);
onMounted(() => {
+ readyTeleport.value = true;
prepareChart();
})
@@ -1319,6 +1321,9 @@ defineExpose({
{{ FINAL_CONFIG.title }}
+
+
+
-
-
-
-
-
-
-
-
-
-
- {{ legendItem.name }}
-
-
- {{ segregated.includes(legendItem.id) ? '-' : applyDataLabel(
- FINAL_CONFIG.formatter,
- legendItem.absoluteValue,
- dataLabel({
- p: FINAL_CONFIG.valuePrefix,
- v: legendItem.absoluteValue,
- s: FINAL_CONFIG.valueSuffix,
- r: FINAL_CONFIG.dataLabelRoundingValue,
- }),
- { datapoint: legendItem, seriesIndex: i}
- )
- }}
-
-
- ( - % )
-
-
- ( - % )
-
-
- ({{ dataLabel({
- v: legendItem.value / donut.total * 100,
- s: '%',
- r: FINAL_CONFIG.dataLabelRoundingPercentage
- }) }})
-
-
-
-
+
-
-
-
-
-
-
-
-
- {{ legendItem.name }}
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ legendItem.name }}
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ legendItem.name }}
+
+
+ {{ segregated.includes(legendItem.id) ? '-' : applyDataLabel(
+ FINAL_CONFIG.formatter,
+ legendItem.absoluteValue,
+ dataLabel({
+ p: FINAL_CONFIG.valuePrefix,
+ v: legendItem.absoluteValue,
+ s: FINAL_CONFIG.valueSuffix,
+ r: FINAL_CONFIG.dataLabelRoundingValue,
+ }),
+ { datapoint: legendItem, seriesIndex: i}
+ )
+ }}
+
+
+ ( - % )
+
+
+ ( - % )
+
+
+ ({{ dataLabel({
+ v: legendItem.value / donut.total * 100,
+ s: '%',
+ r: FINAL_CONFIG.dataLabelRoundingPercentage
+ }) }})
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ legendItem.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ legendItem.name }}
+
+
+
+
+
+
+
diff --git a/src/components/vue-ui-radar.vue b/src/components/vue-ui-radar.vue
index 3d0cfe59..6c2348ac 100644
--- a/src/components/vue-ui-radar.vue
+++ b/src/components/vue-ui-radar.vue
@@ -90,6 +90,7 @@ const noTitle = ref(null);
const titleStep = ref(0);
const tableStep = ref(0);
const legendStep = ref(0);
+const readyTeleport = ref(false);
const FINAL_CONFIG = ref(prepareConfig());
@@ -218,6 +219,7 @@ function prepareChart() {
}
onMounted(() => {
+ readyTeleport.value = true;
prepareChart();
});
@@ -760,6 +762,8 @@ defineExpose({
/>
+
+
+
+
-
-
segregate(i)"
- >
-
-
- {{ legend.name }}: {{
- dataLabel({
- v: legend.totalProportion * 100,
- s: '%',
- r: FINAL_CONFIG.style.chart.legend.roundingPercentage
- })
- }}
-
-
-
-
-
+
+
+
segregate(i)"
+ >
+
+
+ {{ legend.name }}: {{
+ dataLabel({
+ v: legend.totalProportion * 100,
+ s: '%',
+ r: FINAL_CONFIG.style.chart.legend.roundingPercentage
+ })
+ }}
+
+
+
+
+
+
diff --git a/src/components/vue-ui-rings.vue b/src/components/vue-ui-rings.vue
index 9883dd39..1c156189 100644
--- a/src/components/vue-ui-rings.vue
+++ b/src/components/vue-ui-rings.vue
@@ -94,6 +94,7 @@ const titleStep = ref(0);
const tableStep = ref(0);
const legendStep = ref(0);
const resizing = ref(false);
+const readyTeleport = ref(false);
const FINAL_CONFIG = ref(prepareConfig());
@@ -179,6 +180,7 @@ const resizeObserver = shallowRef(null);
const observedEl = shallowRef(null);
onMounted(() => {
+ readyTeleport.value = true;
prepareChart();
});
@@ -679,6 +681,8 @@ defineExpose({
/>
+
+
-
-
-
segregate(legend.uid)"
- >
-
-
-
-
-
-
- {{ legend.name }}{{ FINAL_CONFIG.style.chart.legend.showPercentage || FINAL_CONFIG.style.chart.legend.showValue ? ':' : ''}} {{ !FINAL_CONFIG.style.chart.legend.showValue ? '' : applyDataLabel(
- FINAL_CONFIG.style.chart.layout.labels.dataLabels.formatter,
- legend.value,
- dataLabel({
- p:FINAL_CONFIG.style.chart.layout.labels.dataLabels.prefix,
- v: legend.value,
- s: FINAL_CONFIG.style.chart.layout.labels.dataLabels.suffix,
- r:FINAL_CONFIG.style.chart.legend.roundingValue
- }),
- { datapoint: legend, seriesIndex: index }
- )
- }}
- {{
- !FINAL_CONFIG.style.chart.legend.showPercentage ? '' :
- !segregated.includes(legend.uid)
- ? `${FINAL_CONFIG.style.chart.legend.showValue ? '(' : ''}${isNaN(legend.value / grandTotal) ? '-' : dataLabel({
- v: legend.value / grandTotal * 100,
- s: '%',
- r: FINAL_CONFIG.style.chart.legend.roundingPercentage
- })}${FINAL_CONFIG.style.chart.legend.showValue ? ')' : ''}`
- : `${FINAL_CONFIG.style.chart.legend.showValue ? '(' : ''}- %${FINAL_CONFIG.style.chart.legend.showValue ? ')' : ''}`
- }}
-
-
-
-
-
+
+
+
+
+
+
segregate(legend.uid)"
+ >
+
+
+
+
+
+
+ {{ legend.name }}{{ FINAL_CONFIG.style.chart.legend.showPercentage || FINAL_CONFIG.style.chart.legend.showValue ? ':' : ''}} {{ !FINAL_CONFIG.style.chart.legend.showValue ? '' : applyDataLabel(
+ FINAL_CONFIG.style.chart.layout.labels.dataLabels.formatter,
+ legend.value,
+ dataLabel({
+ p:FINAL_CONFIG.style.chart.layout.labels.dataLabels.prefix,
+ v: legend.value,
+ s: FINAL_CONFIG.style.chart.layout.labels.dataLabels.suffix,
+ r:FINAL_CONFIG.style.chart.legend.roundingValue
+ }),
+ { datapoint: legend, seriesIndex: index }
+ )
+ }}
+ {{
+ !FINAL_CONFIG.style.chart.legend.showPercentage ? '' :
+ !segregated.includes(legend.uid)
+ ? `${FINAL_CONFIG.style.chart.legend.showValue ? '(' : ''}${isNaN(legend.value / grandTotal) ? '-' : dataLabel({
+ v: legend.value / grandTotal * 100,
+ s: '%',
+ r: FINAL_CONFIG.style.chart.legend.roundingPercentage
+ })}${FINAL_CONFIG.style.chart.legend.showValue ? ')' : ''}`
+ : `${FINAL_CONFIG.style.chart.legend.showValue ? '(' : ''}- %${FINAL_CONFIG.style.chart.legend.showValue ? ')' : ''}`
+ }}
+
+
+
+
+
+
diff --git a/src/components/vue-ui-scatter.vue b/src/components/vue-ui-scatter.vue
index c0d5bdf0..9d0b88d6 100644
--- a/src/components/vue-ui-scatter.vue
+++ b/src/components/vue-ui-scatter.vue
@@ -91,6 +91,7 @@ const titleStep = ref(0);
const tableStep = ref(0);
const legendStep = ref(0);
const segregated = ref([]);
+const readyTeleport = ref(false);
const xAxisLabelLeft = ref(null);
const xAxisLabelRight = ref(null);
@@ -233,6 +234,7 @@ const resizeObserver = shallowRef(null);
const observedEl = shallowRef(null);
onMounted(() => {
+ readyTeleport.value = true;
prepareChart();
});
@@ -970,6 +972,8 @@ defineExpose({
/>
+
+
-
-
-
segregate(legend.id)"
- >
-
-
- {{ legend.name }}
-
-
-
-
-
+
+
+
+
+
+
segregate(legend.id)"
+ >
+
+
+ {{ legend.name }}
+
+
+
+
+
+
diff --git a/src/components/vue-ui-stackbar.vue b/src/components/vue-ui-stackbar.vue
index dbcd0b8c..c3d3ba17 100755
--- a/src/components/vue-ui-stackbar.vue
+++ b/src/components/vue-ui-stackbar.vue
@@ -112,6 +112,7 @@ const titleStep = ref(0);
const tableStep = ref(0);
const legendStep = ref(0);
const slicerComponent = ref(null);
+const readyTeleport = ref(false);
const xAxisLabel = ref(null);
const yAxisLabel = ref(null);
@@ -121,6 +122,7 @@ const sumTop = ref(null);
const sumRight = ref(null);
onMounted(() => {
+ readyTeleport.value = true;
prepareChart();
})
@@ -1204,6 +1206,8 @@ defineExpose({
/>
+
+
-
-
legend.segregate()">
-
-
-
-
-
-
- {{ legend.name }}
-
-
-
+
+
+
+
+
+ legend.segregate()">
+
+
+
-
-
+
+
+ {{ legend.name }}
+
+
+
+
+
+
+
diff --git a/src/components/vue-ui-treemap.vue b/src/components/vue-ui-treemap.vue
index 5fdfb0d1..4238744f 100644
--- a/src/components/vue-ui-treemap.vue
+++ b/src/components/vue-ui-treemap.vue
@@ -94,6 +94,7 @@ const tableStep = ref(0);
const legendStep = ref(0);
const drillStack = ref([]);
const breadcrumbsNav = ref(null);
+const readyTeleport = ref(false);
const FINAL_CONFIG = ref(prepareConfig());
@@ -296,6 +297,7 @@ const resizeObserver = shallowRef(null);
const observedEl = shallowRef(null);
onMounted(() => {
+ readyTeleport.value = true;
prepareChart();
});
@@ -831,6 +833,8 @@ defineExpose({
/>
+
+
-
-
-
segregate(legend)"
- >
-
-
- {{ legend.name }}{{ FINAL_CONFIG.style.chart.legend.showPercentage || FINAL_CONFIG.style.chart.legend.showValue ? ':' : ''}} {{ !FINAL_CONFIG.style.chart.legend.showValue ? '' : applyDataLabel(
- FINAL_CONFIG.style.chart.layout.labels.formatter,
- legend.value,
- dataLabel({
- p: FINAL_CONFIG.style.chart.layout.labels.prefix,
- v: legend.value,
- s: FINAL_CONFIG.style.chart.layout.labels.suffix,
- r: FINAL_CONFIG.style.chart.legend.roundingValue
- }),
- { datapoint: legend }
- )
- }}
- {{
- !FINAL_CONFIG.style.chart.legend.showPercentage ? '' :
- !segregated.includes(legend.id)
- ? `${FINAL_CONFIG.style.chart.legend.showValue ? '(' : ''}${isNaN(legend.value / total) ? '-' : (legend.value / total * 100).toFixed(FINAL_CONFIG.style.chart.legend.roundingPercentage)}%${FINAL_CONFIG.style.chart.legend.showValue ? ')' : ''}`
- : `${FINAL_CONFIG.style.chart.legend.showValue ? '(' : ''}- %${FINAL_CONFIG.style.chart.legend.showValue ? ')' : ''}`
- }}
-
-
-
-
-
-
+
+
+
+
+
+
segregate(legend)"
+ >
+
+
+ {{ legend.name }}{{ FINAL_CONFIG.style.chart.legend.showPercentage || FINAL_CONFIG.style.chart.legend.showValue ? ':' : ''}} {{ !FINAL_CONFIG.style.chart.legend.showValue ? '' : applyDataLabel(
+ FINAL_CONFIG.style.chart.layout.labels.formatter,
+ legend.value,
+ dataLabel({
+ p: FINAL_CONFIG.style.chart.layout.labels.prefix,
+ v: legend.value,
+ s: FINAL_CONFIG.style.chart.layout.labels.suffix,
+ r: FINAL_CONFIG.style.chart.legend.roundingValue
+ }),
+ { datapoint: legend }
+ )
+ }}
+ {{
+ !FINAL_CONFIG.style.chart.legend.showPercentage ? '' :
+ !segregated.includes(legend.id)
+ ? `${FINAL_CONFIG.style.chart.legend.showValue ? '(' : ''}${isNaN(legend.value / total) ? '-' : (legend.value / total * 100).toFixed(FINAL_CONFIG.style.chart.legend.roundingPercentage)}%${FINAL_CONFIG.style.chart.legend.showValue ? ')' : ''}`
+ : `${FINAL_CONFIG.style.chart.legend.showValue ? '(' : ''}- %${FINAL_CONFIG.style.chart.legend.showValue ? ')' : ''}`
+ }}
+
+
+
+
+
+
diff --git a/src/components/vue-ui-waffle.vue b/src/components/vue-ui-waffle.vue
index 014c3100..0f699342 100644
--- a/src/components/vue-ui-waffle.vue
+++ b/src/components/vue-ui-waffle.vue
@@ -81,6 +81,7 @@ const noTitle = ref(null);
const titleStep = ref(0);
const tableStep = ref(0);
const legendStep = ref(0);
+const readyTeleport = ref(false);
const FINAL_CONFIG = ref(prepareConfig());
@@ -244,6 +245,7 @@ function prepareChart() {
}
onMounted(() => {
+ readyTeleport.value = true;
prepareChart();
});
@@ -969,6 +971,8 @@ defineExpose({
/>
+
+
-
-
-
segregate(legend.uid)"
- >
-
-
-
-
-
-
- {{ legend.name }}{{ FINAL_CONFIG.style.chart.legend.showPercentage || FINAL_CONFIG.style.chart.legend.showValue ? ':' : ''}} {{ !FINAL_CONFIG.style.chart.legend.showValue ? '' : applyDataLabel(
- FINAL_CONFIG.style.chart.layout.labels.dataLabels.formatter,
- legend.value,
- dataLabel({
- p:FINAL_CONFIG.style.chart.layout.labels.dataLabels.prefix,
- v: legend.value,
- s: FINAL_CONFIG.style.chart.layout.labels.dataLabels.suffix,
- r:FINAL_CONFIG.style.chart.legend.roundingValue, isAnimating
- }),
- { datapoint: legend }
- )
- }}
- {{
- !FINAL_CONFIG.style.chart.legend.showPercentage ? '' :
- !segregated.includes(legend.uid)
- ? `${FINAL_CONFIG.style.chart.legend.showValue ? '(' : ''}${isNaN(legend.value / total) ? '-' : dataLabel({v: legend.value /total * 100, s: '%', r: FINAL_CONFIG.style.chart.legend.roundingPercentage, isAnimating })}${FINAL_CONFIG.style.chart.legend.showValue ? ')' : ''}`
- : `${FINAL_CONFIG.style.chart.legend.showValue ? '(' : ''}- %${FINAL_CONFIG.style.chart.legend.showValue ? ')' : ''}`
- }}
-
-
-
+
+
+
+
+
+ segregate(legend.uid)"
+ >
+
+
+
-
-
+
+
+ {{ legend.name }}{{ FINAL_CONFIG.style.chart.legend.showPercentage || FINAL_CONFIG.style.chart.legend.showValue ? ':' : ''}} {{ !FINAL_CONFIG.style.chart.legend.showValue ? '' : applyDataLabel(
+ FINAL_CONFIG.style.chart.layout.labels.dataLabels.formatter,
+ legend.value,
+ dataLabel({
+ p:FINAL_CONFIG.style.chart.layout.labels.dataLabels.prefix,
+ v: legend.value,
+ s: FINAL_CONFIG.style.chart.layout.labels.dataLabels.suffix,
+ r:FINAL_CONFIG.style.chart.legend.roundingValue, isAnimating
+ }),
+ { datapoint: legend }
+ )
+ }}
+ {{
+ !FINAL_CONFIG.style.chart.legend.showPercentage ? '' :
+ !segregated.includes(legend.uid)
+ ? `${FINAL_CONFIG.style.chart.legend.showValue ? '(' : ''}${isNaN(legend.value / total) ? '-' : dataLabel({v: legend.value /total * 100, s: '%', r: FINAL_CONFIG.style.chart.legend.roundingPercentage, isAnimating })}${FINAL_CONFIG.style.chart.legend.showValue ? ')' : ''}`
+ : `${FINAL_CONFIG.style.chart.legend.showValue ? '(' : ''}- %${FINAL_CONFIG.style.chart.legend.showValue ? ')' : ''}`
+ }}
+
+
+
+
+
+
+
diff --git a/src/components/vue-ui-world.vue b/src/components/vue-ui-world.vue
index 37c99e4c..9716ee3d 100644
--- a/src/components/vue-ui-world.vue
+++ b/src/components/vue-ui-world.vue
@@ -3,6 +3,7 @@ import {
computed,
defineAsyncComponent,
nextTick,
+ onMounted,
ref,
toRefs,
watch,
@@ -90,6 +91,11 @@ const uid = ref(createUid());
const isTooltip = ref(false);
const tooltipContent = ref('');
const step = ref(0);
+const readyTeleport = ref(false);
+
+onMounted(() => {
+ readyTeleport.value = true;
+})
let worldGeo = WORLD_DATA;
const { projections, getProjectedBounds, setupTerritories } = geo;
@@ -736,6 +742,8 @@ defineExpose({
}" />
+
+
-
-
segregate(el)">
-
-
-
+
-
-
- {{ legend.name }}
-
-
-
-
-
+
+
+
+
segregate(el)">
+
+
+
+
+
+
+ {{ legend.name }}
+
+
+
+
+
+
diff --git a/src/components/vue-ui-xy-canvas.vue b/src/components/vue-ui-xy-canvas.vue
index 59a161be..df45ee3a 100644
--- a/src/components/vue-ui-xy-canvas.vue
+++ b/src/components/vue-ui-xy-canvas.vue
@@ -105,6 +105,7 @@ const titleStep = ref(0);
const tableStep = ref(0);
const legendStep = ref(0);
const mouseY = ref(null);
+const readyTeleport = ref(false);
const isDataset = computed(() => {
return !!props.dataset && props.dataset.length;
@@ -1343,6 +1344,7 @@ const observedEl = shallowRef(null);
const resizeObserver = shallowRef(null);
onMounted(() => {
+ readyTeleport.value = true;
prepareChart();
});
@@ -1599,6 +1601,8 @@ defineExpose({
}
}" />
+
+
-
-
-
segregate(i)">
-
-
- {{ legend.name }}
-
-
-
-
-
-
+
+
+
+
+
+
+
segregate(i)">
+
+
+ {{ legend.name }}
+
+
+
+
+
+
+
diff --git a/src/components/vue-ui-xy.vue b/src/components/vue-ui-xy.vue
index fdd7ce92..d3fd2337 100644
--- a/src/components/vue-ui-xy.vue
+++ b/src/components/vue-ui-xy.vue
@@ -142,6 +142,7 @@ const userOptionsVisible = ref(true);
const svgRef = ref(null);
const tagRefs = ref({});
const textMeasurer = ref(null);
+const readyTeleport = ref(false);
const selectedSerieIndex = ref(null);
@@ -197,6 +198,7 @@ const fontSizes = ref({
const plotRadii = ref({ plot: 3, line: 3 });
onMounted(() => {
+ readyTeleport.value = true;
if (props.dataset.length) {
props.dataset.forEach((ds, i) => {
if ([null, undefined].includes(ds.series)) {
@@ -2535,6 +2537,8 @@ defineExpose({
}" />
+
+
-
-
-
-
-
-
-
-
{{ legendItem.name }}
+
+
+
+
+
+
+
+
+
+ {{ legendItem.name }}
+
-
+
+
+
+
-
-
-
diff --git a/src/useConfig.js b/src/useConfig.js
index c1ed110b..784ec490 100755
--- a/src/useConfig.js
+++ b/src/useConfig.js
@@ -313,7 +313,10 @@ export function useConfig() {
width: 800,
padding: PADDING([12, 12, 12, 12]),
title: TITLE,
- legend: LEGEND,
+ legend: {
+ ...LEGEND,
+ position: 'bottom'
+ },
zoom: ZOOM,
tooltip: {
...TOOLTIP,
@@ -618,7 +621,8 @@ export function useConfig() {
legend: {
color: COLOR_BLACK,
show: true,
- fontSize: FONT._14
+ fontSize: FONT._14,
+ position: 'bottom', // bottom | top
},
title: {
...TITLE,
@@ -897,7 +901,8 @@ export function useConfig() {
roundingValue: 0,
roundingPercentage: 0,
showPercentage: true,
- showValue: true
+ showValue: true,
+ position: 'bottom'
},
tooltip: {
...TOOLTIP,
@@ -972,7 +977,8 @@ export function useConfig() {
roundingValue: 0,
roundingPercentage: 0,
showValue: true,
- showPercentage: true
+ showPercentage: true,
+ position: 'bottom'
},
title: TITLE,
tooltip: {
@@ -1064,7 +1070,8 @@ export function useConfig() {
roundingValue: 0,
roundingPercentage: 0,
showValue: true,
- showPercentage: true
+ showPercentage: true,
+ position: 'bottom'
}
}
},
@@ -1153,7 +1160,8 @@ export function useConfig() {
},
legend: {
...LEGEND,
- roundingPercentage: 0
+ roundingPercentage: 0,
+ position: 'bottom'
}
}
},
@@ -1299,7 +1307,10 @@ export function useConfig() {
roundingValue: 0,
showShape: true,
},
- legend: LEGEND
+ legend: {
+ ...LEGEND,
+ position: 'bottom'
+ }
}
},
table: {
@@ -1760,7 +1771,8 @@ export function useConfig() {
legend: {
...LEGEND,
roundingValue: 0,
- roundingPercentage: 0
+ roundingPercentage: 0,
+ position: 'bottom'
},
tooltip: {
...TOOLTIP,
@@ -2179,7 +2191,8 @@ export function useConfig() {
title: TITLE,
legend: {
...LEGEND,
- roundingValue: 0
+ roundingValue: 0,
+ position: 'bottom'
},
tooltip: {
...TOOLTIP,
@@ -2788,6 +2801,7 @@ export function useConfig() {
legendFontSize: FONT._12,
legendIcon: 'circleFill',
legendIconSize: FONT._12,
+ legendPosition: 'bottom',
lineAnimated: true,
lineSmooth: true,
lineStrokeWidth: 2,
@@ -3157,7 +3171,8 @@ export function useConfig() {
roundingValue: 0,
roundingPercentage: 0,
showValue: true,
- showPercentage: true
+ showPercentage: true,
+ position: 'bottom'
},
title: TITLE,
tooltip: {
@@ -3339,7 +3354,8 @@ export function useConfig() {
roundingValue: 0,
roundingPercentage: 0,
showValue: true,
- showPercentage: true
+ showPercentage: true,
+ position: 'bottom'
}
}
},
@@ -3425,7 +3441,8 @@ export function useConfig() {
legend: {
...LEGEND,
roundingValue: 0,
- roundingPercentage: 0
+ roundingPercentage: 0,
+ position: 'bottom'
}
}
},
@@ -3590,7 +3607,8 @@ export function useConfig() {
roundingValue: 0,
roundingPercentage: 0,
showValue: true,
- showPercentage: true
+ showPercentage: true,
+ position: 'bottom'
},
title: TITLE,
tooltip: {
@@ -3666,7 +3684,8 @@ export function useConfig() {
roundingValue: 0,
roundingPercentage: 0,
showValue: true,
- showPercentage: true
+ showPercentage: true,
+ position: 'bottom'
},
title: TITLE,
tooltip: {
@@ -3966,7 +3985,8 @@ export function useConfig() {
labelEnd: 'end',
labelPositive: 'positive', // v3
labelNegative: 'negative', // v3
- labelNeutral: 'neutral' // v3
+ labelNeutral: 'neutral', // v3
+ position: 'bottom'
},
title: TITLE
}
@@ -4304,7 +4324,10 @@ export function useConfig() {
showHorizontalSelector: false,
},
tooltip: TOOLTIP,
- legend: LEGEND,
+ legend: {
+ ...LEGEND,
+ position: 'bottom',
+ },
title: TITLE,
grid: {
y: {
@@ -4445,6 +4468,7 @@ export function useConfig() {
},
legend: {
...LEGEND,
+ position: 'bottom'
},
nodes: {
gap: 10,
@@ -4572,7 +4596,10 @@ export function useConfig() {
}
},
title: TITLE,
- legend: LEGEND,
+ legend: {
+ ...LEGEND,
+ position: 'bottom'
+ },
tooltip: TOOLTIP
}
},
@@ -5549,7 +5576,8 @@ export function useConfig() {
},
legend: {
...LEGEND,
- roundingValue: 0
+ roundingValue: 0,
+ position: 'bottom'
},
}
}
@@ -5806,6 +5834,7 @@ export function useConfig() {
},
legend: {
...LEGEND,
+ position: 'bottom'
},
title: TITLE,
tooltip: TOOLTIP
@@ -5973,7 +6002,10 @@ export function useConfig() {
showMinimap: true
},
title: TITLE,
- legend: LEGEND
+ legend: {
+ ...LEGEND,
+ position: 'bottom'
+ }
}
},
table: {
@@ -6189,7 +6221,10 @@ export function useConfig() {
chart: {
backgroundColor: COLOR_WHITE,
color: COLOR_BLACK,
- legend: LEGEND,
+ legend: {
+ ...LEGEND,
+ position: 'bottom'
+ },
title: TITLE,
arcs: {
innerRadiusRatio: 1,
diff --git a/types/vue-data-ui.d.ts b/types/vue-data-ui.d.ts
index 77f61758..a2479614 100644
--- a/types/vue-data-ui.d.ts
+++ b/types/vue-data-ui.d.ts
@@ -458,6 +458,7 @@ declare module "vue-data-ui" {
roundingPercentage?: number;
showValue?: boolean;
showPercentage?: boolean;
+ position?: 'bottom' | 'top';
};
title?: ChartTitle;
tooltip?: ChartTooltip & {
@@ -621,6 +622,7 @@ declare module "vue-data-ui" {
roundingPercentage?: number;
showValue?: boolean;
showPercentage?: boolean;
+ position?: 'bottom' | 'top';
};
title?: ChartTitle;
tooltip?: ChartTooltip & {
@@ -1199,6 +1201,7 @@ declare module "vue-data-ui" {
backgroundColor?: string;
roundingPercentage?: number;
roundingValue?: number;
+ position?: 'bottom' | 'top';
};
};
};
@@ -1537,6 +1540,7 @@ declare module "vue-data-ui" {
roundingValue?: number;
showValue?: boolean;
showPercentage?: boolean;
+ position?: 'bottom' | 'top';
};
};
};
@@ -1769,6 +1773,7 @@ declare module "vue-data-ui" {
roundingPercentage?: number;
showValue?: boolean;
showPercentage?: boolean;
+ position?: 'bottom' | 'top';
};
title?: ChartTitle;
tooltip?: ChartTooltip & {
@@ -2910,6 +2915,7 @@ declare module "vue-data-ui" {
legend?: ChartBaseLegend & {
backgroundColor?: string;
roundingValue?: number;
+ position?: 'bottom' | 'top';
};
tooltip?: ChartTooltip & {
roundingValue?: number;
@@ -3358,6 +3364,7 @@ declare module "vue-data-ui" {
color?: string;
show?: boolean;
fontSize?: number;
+ position?: 'bottom' | 'top';
};
title?: {
show?: boolean;
@@ -3715,6 +3722,7 @@ declare module "vue-data-ui" {
roundingPercentage?: number;
showPercentage?: boolean;
showValue?: boolean;
+ position?: 'bottom' | 'top';
};
title?: ChartTitle;
tooltip?: ChartTooltip & {
@@ -3896,6 +3904,7 @@ declare module "vue-data-ui" {
roundingPercentage?: number;
showValue?: boolean;
showPercentage?: boolean;
+ position?: 'bottom' | 'bottom';
};
title?: ChartTitle;
tooltip?: ChartTooltip & {
@@ -4095,6 +4104,7 @@ declare module "vue-data-ui" {
roundingPercentage?: number;
showValue?: boolean;
showPercentage?: boolean;
+ position?: 'bottom' | 'top';
};
};
};
@@ -4237,6 +4247,7 @@ declare module "vue-data-ui" {
legend?: ChartBaseLegend & {
backgroundColor?: string;
roundingPercentage?: number;
+ position?: 'bottom' | 'top';
};
};
};
@@ -4464,6 +4475,7 @@ declare module "vue-data-ui" {
};
legend?: ChartBaseLegend & {
backgroundColor?: string;
+ position?: 'bottom' | 'top'
};
};
};
@@ -4942,6 +4954,7 @@ declare module "vue-data-ui" {
backgroundColor?: string;
roundingValue?: number;
roundingPercentage?: number;
+ position?: 'bottom' | 'top';
};
tooltip?: ChartTooltip & {
showValue?: boolean;
@@ -6024,6 +6037,7 @@ declare module "vue-data-ui" {
legendFontSize?: number;
legendIcon?: VueUiIconName;
legendIconSize?: number;
+ legendPosition?: 'bottom' | 'top';
lineAnimated?: boolean;
lineSmooth?: boolean;
lineStrokeWidth?: number;
@@ -6574,6 +6588,7 @@ declare module "vue-data-ui" {
labelPositive?: string; // v3
labelNegative?: string; // v3
labelNeutral?: string; // v3
+ position?: 'bottom' | 'top';
};
title?: ChartTitle;
};
@@ -6802,6 +6817,7 @@ declare module "vue-data-ui" {
show?: boolean;
fontSize?: number;
bold?: boolean;
+ position?: 'bottom' | 'top';
};
title?: ChartTitle;
grid?: {
@@ -6989,6 +7005,7 @@ declare module "vue-data-ui" {
color?: string;
legend?: ChartBaseLegend & {
backgroundColor?: string;
+ position?: 'bottom' | 'top';
};
tooltip?: ChartTooltip & {
showPercentage?: boolean;
@@ -7195,6 +7212,7 @@ declare module "vue-data-ui" {
title?: ChartTitle;
legend?: ChartBaseLegend & {
backgroundColor?: string;
+ position?: 'bottom' | 'top';
};
tooltip?: ChartTooltip & {
customFormat?:
@@ -7543,6 +7561,7 @@ declare module "vue-data-ui" {
title?: ChartTitle;
legend?: ChartBaseLegend & {
backgroundColor?: string;
+ position?: 'bottom' | 'top';
};
zoom?: ChartZoom;
tooltip?: ChartTooltip & {
@@ -7776,6 +7795,7 @@ declare module "vue-data-ui" {
title?: ChartTitle;
legend?: ChartBaseLegend & {
roundingValue?: number;
+ position?: 'bottom' | 'top';
};
};
}
@@ -8077,6 +8097,7 @@ declare module "vue-data-ui" {
};
legend?: ChartBaseLegend & {
backgroundColor?: string;
+ position?: 'bottom' | 'top';
};
title?: ChartTitle;
tooltip?: ChartTooltip & {
@@ -8356,6 +8377,7 @@ declare module "vue-data-ui" {
title?: ChartTitle;
legend?: ChartBaseLegend & {
backgroundColor?: string;
+ position?: 'bottom' | 'top';
};
}
};
@@ -8663,6 +8685,7 @@ declare module "vue-data-ui" {
color?: string;
legend?: ChartBaseLegend & {
backgroundColor?: string;
+ position?: 'bottom' | 'top';
};
title?: ChartTitle;
arcs?: {