@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 = (value) => value.toLocaleString();
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, formatCellValue, opts) {
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
- title = params.name || (row && typeof row === 'object' ? row.category : '');
698
+ const categoryName = params.name || (row && typeof row === 'object' ? row.category : '');
699
+ title = categoryName;
698
700
  subtitle = serieName;
699
- valFormatted = formatCellValue(Number(rawValue ?? 0), dimensionName);
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
- if (data.dimensions.length <= 2) {
704
- subtitle = '';
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} &rarr; ${targetName}`;
715
- valFormatted = formatCellValue(Number(params.value ?? 0), dimensionName);
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 = formatCellValue(Number(params.value ?? 0), dimensionName);
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, formatCellValue, opts) {
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 = formatCellValue(Number(rawValue ?? 0), dimensionName);
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, formatCellValue, opts) {
767
+ function getTooltipFormatter(trigger, data, valueFormatter, opts) {
766
768
  return trigger === 'axis'
767
- ? getAxisTooltipFormatter(data, formatCellValue, opts)
768
- : getItemTooltipFormatter(data, formatCellValue, opts);
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 = (value) => value.toLocaleString();
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
- merge(overrides, {
952
- formatter: getTooltipFormatter(overrides.trigger, data, this.formatCellValue.bind(this)),
953
- });
954
- const tooltip = getTooltipOptions(overrides);
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 = (value, key) => value.toLocaleString();
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 = (value) => value.toLocaleString();
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
- // inyecto formateador a overrides de tooltip
1290
- merge$1(overrides, {
1291
- formatter: getTooltipFormatter(overrides.trigger, data, this.formatCellValue.bind(this)),
1292
- });
1293
- const tooltip = getTooltipOptions(overrides);
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 = (value) => value.toLocaleString();
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
- merge(overrides, {
1555
- formatter: getTooltipFormatter(overrides.trigger, data, this.formatCellValue.bind(this)),
1556
- });
1557
- const tooltip = getTooltipOptions(overrides);
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 = (value) => value.toLocaleString();
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
- merge(overrides, {
1659
- formatter: getTooltipFormatter(overrides.trigger, data, this.formatCellValue.bind(this)),
1660
- });
1661
- const tooltip = getTooltipOptions(overrides);
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 = (value) => value.toLocaleString();
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
- merge$1(overrides, {
1742
- formatter: getTooltipFormatter(overrides.trigger || 'item', data, this.valueFormatter),
1743
- });
1744
- const tooltip = getTooltipOptions(overrides);
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 = (value) => value.toLocaleString();
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
- merge$1(overrides, {
1906
- formatter: getTooltipFormatter(overrides.trigger || 'item', data, this.valueFormatter),
1907
- });
1908
- const tooltip = getTooltipOptions(overrides);
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
  ;