@visionaris-bruno/vs-echarts 9.0.4 → 9.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -185,6 +185,7 @@ function defaultOptionsOverrides() {
|
|
|
185
185
|
},
|
|
186
186
|
};
|
|
187
187
|
}
|
|
188
|
+
const defaultValueFormatter = (value) => `${value}`;
|
|
188
189
|
|
|
189
190
|
// TODO: Exportar valores por defecto de vs-echarts.config.ts por este servicio y actualizar en logica de frontend.
|
|
190
191
|
class VSEchartsConfigService {
|
|
@@ -241,7 +242,7 @@ class BaseEchartsComponent {
|
|
|
241
242
|
/** Resolver de colores dinámico (Callback) */
|
|
242
243
|
colorResolver;
|
|
243
244
|
/** Formateador de valores para etiquetas y tooltips */
|
|
244
|
-
valueFormatter =
|
|
245
|
+
valueFormatter = defaultValueFormatter;
|
|
245
246
|
chartClick = new EventEmitter();
|
|
246
247
|
/** Subject para debouncing de actualizaciones. ReplaySubject asegura no perder el primer renderizado. */
|
|
247
248
|
updateSubject = new ReplaySubject(1);
|
|
@@ -683,7 +684,7 @@ function getCellValue(val) {
|
|
|
683
684
|
/**
|
|
684
685
|
* Formatter generator for 'item' trigger strategy in tooltips.
|
|
685
686
|
*/
|
|
686
|
-
function getItemTooltipFormatter(data,
|
|
687
|
+
function getItemTooltipFormatter(data, valueFormatter, opts) {
|
|
687
688
|
return (params) => {
|
|
688
689
|
let title = '', subtitle = '', valFormatted = '', percentVal = '';
|
|
689
690
|
const showSerieName = opts?.showSerieName ?? true;
|
|
@@ -694,15 +695,16 @@ function getItemTooltipFormatter(data, formatCellValue, opts) {
|
|
|
694
695
|
return '';
|
|
695
696
|
const rawValue = (row && typeof row === 'object') ? row[dimensionName] : params.value;
|
|
696
697
|
const serieName = showSerieName ? `${params.marker} ${params.seriesName}<br/ >` : '';
|
|
697
|
-
|
|
698
|
+
const categoryName = params.name || (row && typeof row === 'object' ? row.category : '');
|
|
699
|
+
title = categoryName;
|
|
698
700
|
subtitle = serieName;
|
|
699
|
-
valFormatted =
|
|
700
|
-
// pie/funnel series
|
|
701
|
+
valFormatted = valueFormatter(Number(rawValue ?? 0), dimensionName);
|
|
702
|
+
// pie/funnel/ring series
|
|
701
703
|
if (params.percent != undefined) {
|
|
702
704
|
percentVal = ` (${params.percent}%)`;
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
}
|
|
705
|
+
// invertir titulo y subtitulo
|
|
706
|
+
title = `${params.seriesName}`;
|
|
707
|
+
subtitle = `${params.marker} ${categoryName}</br>`;
|
|
706
708
|
}
|
|
707
709
|
// sankey
|
|
708
710
|
if (params.dataType != undefined) {
|
|
@@ -712,11 +714,11 @@ function getItemTooltipFormatter(data, formatCellValue, opts) {
|
|
|
712
714
|
const sourceName = params.data.source.split('___')[0];
|
|
713
715
|
const targetName = params.data.target.split('___')[0];
|
|
714
716
|
title = `${sourceName} → ${targetName}`;
|
|
715
|
-
valFormatted =
|
|
717
|
+
valFormatted = valueFormatter(Number(params.value ?? 0), dimensionName);
|
|
716
718
|
}
|
|
717
719
|
else if (dataType === 'node') {
|
|
718
720
|
title = params.name.split('___')[0];
|
|
719
|
-
valFormatted =
|
|
721
|
+
valFormatted = valueFormatter(Number(params.value ?? 0), dimensionName);
|
|
720
722
|
}
|
|
721
723
|
}
|
|
722
724
|
// sunburst treemap
|
|
@@ -735,7 +737,7 @@ function getItemTooltipFormatter(data, formatCellValue, opts) {
|
|
|
735
737
|
/**
|
|
736
738
|
* Formatter generator for 'axis' trigger strategy in tooltips.
|
|
737
739
|
*/
|
|
738
|
-
function getAxisTooltipFormatter(data,
|
|
740
|
+
function getAxisTooltipFormatter(data, valueFormatter, opts) {
|
|
739
741
|
return (params) => {
|
|
740
742
|
if (!params)
|
|
741
743
|
return '';
|
|
@@ -753,7 +755,7 @@ function getAxisTooltipFormatter(data, formatCellValue, opts) {
|
|
|
753
755
|
continue;
|
|
754
756
|
const itemRow = item.value;
|
|
755
757
|
const rawValue = (itemRow && typeof itemRow === 'object') ? itemRow[dimensionName] : item.value;
|
|
756
|
-
const valFormatted =
|
|
758
|
+
const valFormatted = valueFormatter(Number(rawValue ?? 0), dimensionName);
|
|
757
759
|
html += `${item.marker} ${item.seriesName}: <b>${valFormatted}</b><br/>`;
|
|
758
760
|
}
|
|
759
761
|
return html;
|
|
@@ -762,10 +764,10 @@ function getAxisTooltipFormatter(data, formatCellValue, opts) {
|
|
|
762
764
|
/**
|
|
763
765
|
* Unified tooltip formatter generator that selects the appropriate strategy based on the trigger.
|
|
764
766
|
*/
|
|
765
|
-
function getTooltipFormatter(trigger, data,
|
|
767
|
+
function getTooltipFormatter(trigger, data, valueFormatter, opts) {
|
|
766
768
|
return trigger === 'axis'
|
|
767
|
-
? getAxisTooltipFormatter(data,
|
|
768
|
-
: getItemTooltipFormatter(data,
|
|
769
|
+
? getAxisTooltipFormatter(data, valueFormatter, opts)
|
|
770
|
+
: getItemTooltipFormatter(data, valueFormatter, opts);
|
|
769
771
|
}
|
|
770
772
|
function getCommons(opts) {
|
|
771
773
|
const palette = opts?.palette ?? getDefaultPalette();
|
|
@@ -852,7 +854,7 @@ function getTreeDepth(nodes) {
|
|
|
852
854
|
*/
|
|
853
855
|
class RingBuilder {
|
|
854
856
|
baseProduct;
|
|
855
|
-
valueFormatter =
|
|
857
|
+
valueFormatter = defaultValueFormatter;
|
|
856
858
|
palette = [];
|
|
857
859
|
colorResolver;
|
|
858
860
|
result = {};
|
|
@@ -948,10 +950,10 @@ class RingBuilder {
|
|
|
948
950
|
}];
|
|
949
951
|
}
|
|
950
952
|
addTooltip(data, overrides) {
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
const tooltip = getTooltipOptions(
|
|
953
|
+
const tooltipOptsOverrides = {};
|
|
954
|
+
tooltipOptsOverrides.formatter = getTooltipFormatter(overrides.trigger, data, this.valueFormatter);
|
|
955
|
+
merge(tooltipOptsOverrides, overrides);
|
|
956
|
+
const tooltip = getTooltipOptions(tooltipOptsOverrides);
|
|
955
957
|
this.result.tooltip = tooltip;
|
|
956
958
|
}
|
|
957
959
|
addLegend() {
|
|
@@ -984,15 +986,12 @@ class RingBuilder {
|
|
|
984
986
|
getResult() {
|
|
985
987
|
return this.result;
|
|
986
988
|
}
|
|
987
|
-
formatCellValue(value, key) {
|
|
988
|
-
return this.valueFormatter(value, key);
|
|
989
|
-
}
|
|
990
989
|
}
|
|
991
990
|
|
|
992
991
|
class BoxPlotBuilder {
|
|
993
992
|
baseProduct;
|
|
994
993
|
translateService;
|
|
995
|
-
valueFormatter =
|
|
994
|
+
valueFormatter = defaultValueFormatter;
|
|
996
995
|
palette = [];
|
|
997
996
|
// TODO: Hay que implementar un valor por defecto.
|
|
998
997
|
colorResolver;
|
|
@@ -1208,9 +1207,8 @@ class BoxPlotBuilder {
|
|
|
1208
1207
|
*/
|
|
1209
1208
|
class EChartBuilder {
|
|
1210
1209
|
baseProduct = undefined;
|
|
1211
|
-
valueFormatter =
|
|
1210
|
+
valueFormatter = defaultValueFormatter;
|
|
1212
1211
|
palette = [];
|
|
1213
|
-
// TODO: Hay que implementar un valor por defecto.
|
|
1214
1212
|
colorResolver;
|
|
1215
1213
|
result = {};
|
|
1216
1214
|
constructor(baseProduct) {
|
|
@@ -1263,19 +1261,21 @@ class EChartBuilder {
|
|
|
1263
1261
|
const dynamicOverrides = {
|
|
1264
1262
|
name: friendlyName,
|
|
1265
1263
|
encode,
|
|
1266
|
-
label: {
|
|
1267
|
-
formatter: (params) => {
|
|
1268
|
-
const row = params.value;
|
|
1269
|
-
const rawValue = (row && typeof row === 'object') ? row[dimKey] : params.value;
|
|
1270
|
-
return this.formatCellValue(Number(rawValue ?? 0), dimKey);
|
|
1271
|
-
}
|
|
1272
|
-
}
|
|
1273
1264
|
};
|
|
1274
1265
|
const seriesOption = merge$1(dynamicOverrides, overrides);
|
|
1275
1266
|
// Inyectar el resolver de color si existe
|
|
1276
1267
|
if (this.colorResolver && seriesOption.itemStyle) {
|
|
1277
1268
|
seriesOption.itemStyle.color = this.colorResolver;
|
|
1278
1269
|
}
|
|
1270
|
+
// Inyectar el formatter de etiquetas
|
|
1271
|
+
if (seriesOption.label && this.valueFormatter != undefined) {
|
|
1272
|
+
const valueFormatter = this.valueFormatter;
|
|
1273
|
+
seriesOption.label.formatter = (params) => {
|
|
1274
|
+
const row = params.value;
|
|
1275
|
+
const rawValue = (row && typeof row === 'object') ? row[dimKey] : params.value;
|
|
1276
|
+
return valueFormatter(Number(rawValue ?? 0), dimKey);
|
|
1277
|
+
};
|
|
1278
|
+
}
|
|
1279
1279
|
return seriesOption;
|
|
1280
1280
|
});
|
|
1281
1281
|
this.result.series = series;
|
|
@@ -1286,11 +1286,11 @@ class EChartBuilder {
|
|
|
1286
1286
|
* @param overrides
|
|
1287
1287
|
*/
|
|
1288
1288
|
addTooltip(data, overrides) {
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
const tooltip = getTooltipOptions(
|
|
1289
|
+
const optsOverrides = {};
|
|
1290
|
+
// inyecto formateador personalizado de tooltip
|
|
1291
|
+
optsOverrides.formatter = getTooltipFormatter(overrides.trigger, data, this.valueFormatter.bind(this));
|
|
1292
|
+
merge$1(optsOverrides, overrides);
|
|
1293
|
+
const tooltip = getTooltipOptions(optsOverrides);
|
|
1294
1294
|
this.result.tooltip = tooltip;
|
|
1295
1295
|
}
|
|
1296
1296
|
addPolar() {
|
|
@@ -1385,12 +1385,6 @@ class EChartBuilder {
|
|
|
1385
1385
|
return this.result;
|
|
1386
1386
|
}
|
|
1387
1387
|
;
|
|
1388
|
-
/**
|
|
1389
|
-
* Formatea un valor utilizando el callback inyectado.
|
|
1390
|
-
*/
|
|
1391
|
-
formatCellValue(value, key) {
|
|
1392
|
-
return this.valueFormatter(value, key);
|
|
1393
|
-
}
|
|
1394
1388
|
// Setters
|
|
1395
1389
|
/**
|
|
1396
1390
|
* Permite inyectar un formateador de valores externo.
|
|
@@ -1439,7 +1433,7 @@ class EChartBuilder {
|
|
|
1439
1433
|
*/
|
|
1440
1434
|
class PieBuilder {
|
|
1441
1435
|
baseProduct;
|
|
1442
|
-
valueFormatter =
|
|
1436
|
+
valueFormatter = defaultValueFormatter;
|
|
1443
1437
|
palette = [];
|
|
1444
1438
|
colorResolver;
|
|
1445
1439
|
result = {};
|
|
@@ -1551,10 +1545,10 @@ class PieBuilder {
|
|
|
1551
1545
|
this.result.series = series;
|
|
1552
1546
|
}
|
|
1553
1547
|
addTooltip(data, overrides) {
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
const tooltip = getTooltipOptions(
|
|
1548
|
+
const tooltipOptsOverrides = {};
|
|
1549
|
+
tooltipOptsOverrides.formatter = getTooltipFormatter(overrides.trigger, data, this.valueFormatter);
|
|
1550
|
+
merge(tooltipOptsOverrides, overrides);
|
|
1551
|
+
const tooltip = getTooltipOptions(tooltipOptsOverrides);
|
|
1558
1552
|
this.result.tooltip = tooltip;
|
|
1559
1553
|
}
|
|
1560
1554
|
addLegend() {
|
|
@@ -1588,9 +1582,6 @@ class PieBuilder {
|
|
|
1588
1582
|
getResult() {
|
|
1589
1583
|
return this.result;
|
|
1590
1584
|
}
|
|
1591
|
-
formatCellValue(value, key) {
|
|
1592
|
-
return this.valueFormatter(value, key);
|
|
1593
|
-
}
|
|
1594
1585
|
}
|
|
1595
1586
|
|
|
1596
1587
|
/**
|
|
@@ -1600,7 +1591,7 @@ class PieBuilder {
|
|
|
1600
1591
|
*/
|
|
1601
1592
|
class FunnelBuilder {
|
|
1602
1593
|
baseProduct;
|
|
1603
|
-
valueFormatter =
|
|
1594
|
+
valueFormatter = defaultValueFormatter;
|
|
1604
1595
|
palette = [];
|
|
1605
1596
|
colorResolver;
|
|
1606
1597
|
result = {};
|
|
@@ -1655,10 +1646,12 @@ class FunnelBuilder {
|
|
|
1655
1646
|
this.result.series = seriesOption;
|
|
1656
1647
|
}
|
|
1657
1648
|
addTooltip(data, overrides) {
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
|
-
|
|
1649
|
+
const tooltipOptsOverrides = {};
|
|
1650
|
+
if (this.valueFormatter != undefined) {
|
|
1651
|
+
tooltipOptsOverrides.formatter = getTooltipFormatter(overrides.trigger, data, this.valueFormatter);
|
|
1652
|
+
}
|
|
1653
|
+
merge(tooltipOptsOverrides, overrides);
|
|
1654
|
+
const tooltip = getTooltipOptions(tooltipOptsOverrides);
|
|
1662
1655
|
this.result.tooltip = tooltip;
|
|
1663
1656
|
}
|
|
1664
1657
|
addLegend() {
|
|
@@ -1692,14 +1685,11 @@ class FunnelBuilder {
|
|
|
1692
1685
|
getResult() {
|
|
1693
1686
|
return this.result;
|
|
1694
1687
|
}
|
|
1695
|
-
formatCellValue(value, key) {
|
|
1696
|
-
return this.valueFormatter(value, key);
|
|
1697
|
-
}
|
|
1698
1688
|
}
|
|
1699
1689
|
|
|
1700
1690
|
class SunburstBuilder {
|
|
1701
1691
|
baseProduct;
|
|
1702
|
-
valueFormatter =
|
|
1692
|
+
valueFormatter = defaultValueFormatter;
|
|
1703
1693
|
palette = [];
|
|
1704
1694
|
colorResolver;
|
|
1705
1695
|
result = {};
|
|
@@ -1738,10 +1728,10 @@ class SunburstBuilder {
|
|
|
1738
1728
|
this.result.series = serie;
|
|
1739
1729
|
}
|
|
1740
1730
|
addTooltip(data, overrides) {
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
const tooltip = getTooltipOptions(
|
|
1731
|
+
const tooltipOptsOverrides = {};
|
|
1732
|
+
tooltipOptsOverrides.formatter = getTooltipFormatter(overrides.trigger || 'item', data, this.valueFormatter);
|
|
1733
|
+
merge$1(tooltipOptsOverrides, overrides);
|
|
1734
|
+
const tooltip = getTooltipOptions(tooltipOptsOverrides);
|
|
1745
1735
|
this.result.tooltip = tooltip;
|
|
1746
1736
|
}
|
|
1747
1737
|
addCommons() {
|
|
@@ -1798,7 +1788,7 @@ class SunburstBuilder {
|
|
|
1798
1788
|
*/
|
|
1799
1789
|
class SankeyBuilder {
|
|
1800
1790
|
baseProduct;
|
|
1801
|
-
valueFormatter =
|
|
1791
|
+
valueFormatter = defaultValueFormatter;
|
|
1802
1792
|
palette = [];
|
|
1803
1793
|
colorResolver;
|
|
1804
1794
|
result = {};
|
|
@@ -1902,10 +1892,10 @@ class SankeyBuilder {
|
|
|
1902
1892
|
this.result.series = serie;
|
|
1903
1893
|
}
|
|
1904
1894
|
addTooltip(data, overrides) {
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
const tooltip = getTooltipOptions(
|
|
1895
|
+
const tooltipOptsOverrides = {};
|
|
1896
|
+
tooltipOptsOverrides.formatter = getTooltipFormatter(overrides.trigger || 'item', data, this.valueFormatter);
|
|
1897
|
+
merge$1(tooltipOptsOverrides, overrides);
|
|
1898
|
+
const tooltip = getTooltipOptions(tooltipOptsOverrides);
|
|
1909
1899
|
this.result.tooltip = tooltip;
|
|
1910
1900
|
}
|
|
1911
1901
|
addPolar() { }
|
|
@@ -3016,7 +3006,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
3016
3006
|
], template: "<div\n class=\"echarts-container\"\n echarts\n [options]=\"{}\"\n [initOpts]=\"initOptions\"\n [autoResize]=\"true\"\n (chartInit)=\"onChartInit($event)\"\n></div>\n", styles: [".echarts-container{width:100%;height:100%;position:relative}\n"] }]
|
|
3017
3007
|
}] });
|
|
3018
3008
|
|
|
3019
|
-
// Interfaces de Inputs de Base EChart Component //
|
|
3009
|
+
// Interfaces de Inputs de Base EChart Component //
|
|
3010
|
+
// TopLevelFormatterParams
|
|
3020
3011
|
|
|
3021
3012
|
;
|
|
3022
3013
|
;
|