pace-chart-lib 1.0.70 → 1.0.72

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.
@@ -16243,6 +16243,22 @@
16243
16243
  tooltip: "",
16244
16244
  tooltipMeasure: ""
16245
16245
  };
16246
+ var VfxDataAttr = /* @__PURE__ */ ((VfxDataAttr2) => {
16247
+ VfxDataAttr2["SeriesId"] = "data-series-id";
16248
+ VfxDataAttr2["DimValue"] = "data-dim-value";
16249
+ return VfxDataAttr2;
16250
+ })(VfxDataAttr || {});
16251
+ const VFX_TOOLTIP_FONT_SIZE = "11px";
16252
+ const VFX_TOOLTIP_LINE_HEIGHT = "1.6";
16253
+ function makeVfxClickHandler(vfxPickModeActiveRef, onElementClickRef, buildPayload) {
16254
+ return (_event, datum2) => {
16255
+ if (!vfxPickModeActiveRef.current || !onElementClickRef.current) return;
16256
+ onElementClickRef.current(buildPayload(_event, datum2));
16257
+ };
16258
+ }
16259
+ function resolveCustomTooltipHTML(tooltipFormatter, dimValue, seriesProperties) {
16260
+ return tooltipFormatter?.(dimValue, seriesProperties) ?? void 0;
16261
+ }
16246
16262
  const fileName$b = "CommonFunctions.ts";
16247
16263
  [
16248
16264
  chartTypes.ColumnChart,
@@ -16374,7 +16390,7 @@
16374
16390
  logError$2(fileName$b, "calculateMaxLegendWidth", error);
16375
16391
  }
16376
16392
  }
16377
- function lineMarkers(lines, chartData, type, xScale, yScale, yScaleRight, tooltipHandle, formatOptions, chartJSON, secondaryCustomYaxisMaxValue, secondaryCustomYaxisMinValue, customYaxisMinValue, customYaxisMaxValue, isNormalizedChart) {
16393
+ function lineMarkers(lines, chartData, type, xScale, yScale, yScaleRight, tooltipHandle, formatOptions, chartJSON, secondaryCustomYaxisMaxValue, secondaryCustomYaxisMinValue, customYaxisMinValue, customYaxisMaxValue, isNormalizedChart, tooltipFormatter) {
16378
16394
  try {
16379
16395
  let hideZeroValues = formatOptions.plotArea.hideZeroValues;
16380
16396
  formatOptions.plotArea.plotAreaHideLineAndMarkers === void 0 ? formatOptions.plotArea.plotAreaHideLineAndMarkers = true : null;
@@ -16411,6 +16427,10 @@
16411
16427
  const dataPoint = d;
16412
16428
  const legendEntry = d;
16413
16429
  const parentG = select$2(this.parentNode);
16430
+ const _dimVal = String(chartJSON.formattedDimensionListMap.get(
16431
+ Array.isArray(dataPoint.dimension) ? dataPoint.dimension[0] : dataPoint.dimension
16432
+ ) ?? "");
16433
+ const _customHTML = tooltipFormatter?.(_dimVal, d) ?? void 0;
16414
16434
  showTooltipOnMouseMove(
16415
16435
  [
16416
16436
  {
@@ -16439,7 +16459,8 @@
16439
16459
  ],
16440
16460
  formatOptions,
16441
16461
  event2,
16442
- d
16462
+ d,
16463
+ _customHTML
16443
16464
  );
16444
16465
  parentG.selectAll(".halo").remove();
16445
16466
  parentG.insert("circle", ":first-child").attr("class", "halo").attr("cx", xScale(dataPoint.dimension)).attr("cy", () => {
@@ -16730,7 +16751,7 @@
16730
16751
  if (abs2 >= 1e3) return (value2 / 1e3).toFixed(2) + "K";
16731
16752
  return value2.toFixed(2);
16732
16753
  }
16733
- function showTooltipOnMouseMove(elements, chartFormatOptions, event2, prop) {
16754
+ function showTooltipOnMouseMove(elements, chartFormatOptions, event2, prop, customHTML) {
16734
16755
  try {
16735
16756
  const markerColor = prop?.color ?? prop?.markerColor ?? "blue";
16736
16757
  const markerShape = prop?.markerShape?.toLowerCase() ?? "circle";
@@ -16830,12 +16851,9 @@
16830
16851
  `;
16831
16852
  return p;
16832
16853
  }, ``);
16833
- tooltip.html(`
16834
- <div class="arrow-placeholder"></div>
16835
- <div class="tooltipInner" style="display:flex; flex-direction:column;">
16836
- ${tooltipElements}
16837
- </div>
16838
- `);
16854
+ tooltip.html(
16855
+ customHTML ? `<div class="tooltipInner" style="display:flex; flex-direction:column; font-size:${VFX_TOOLTIP_FONT_SIZE}; color:${textColor}; line-height:${VFX_TOOLTIP_LINE_HEIGHT};">${customHTML}</div>` : `<div class="arrow-placeholder"></div><div class="tooltipInner" style="display:flex; flex-direction:column;">${tooltipElements}</div>`
16856
+ );
16839
16857
  const tooltipNode = tooltip.node();
16840
16858
  const tooltipWidth = tooltipNode.offsetWidth;
16841
16859
  const tooltipHeight = tooltipNode.offsetHeight;
@@ -17497,13 +17515,22 @@
17497
17515
  data,
17498
17516
  isReportEditable,
17499
17517
  onDataLabelCoordinatesChange,
17500
- addLocalFilterFromLib
17518
+ addLocalFilterFromLib,
17519
+ tooltipFormatter,
17520
+ onElementClick,
17521
+ vfxPickModeActive
17501
17522
  }) => {
17502
17523
  const chartId = crypto.randomUUID();
17503
17524
  let columnWidth = 0;
17504
17525
  let scrollbarVisible = false;
17505
17526
  const chartType = chartTypes.ColumnChart;
17506
17527
  const svgRef = require$$0$1.useRef();
17528
+ const tooltipFormatterRef = require$$0$1.useRef(tooltipFormatter);
17529
+ tooltipFormatterRef.current = tooltipFormatter;
17530
+ const onElementClickRef = require$$0$1.useRef(onElementClick);
17531
+ onElementClickRef.current = onElementClick;
17532
+ const vfxPickModeActiveRef = require$$0$1.useRef(vfxPickModeActive);
17533
+ vfxPickModeActiveRef.current = vfxPickModeActive;
17507
17534
  const seriesData = generalizedChartData(
17508
17535
  data.ChartData,
17509
17536
  data.DimensionList
@@ -17925,7 +17952,7 @@
17925
17952
  ).style("clip-path", "inset(0px) fill-box").style("shape-rendering", "crispEdges").attr(
17926
17953
  "visibility",
17927
17954
  (d) => d.value === 0 && formatOptions.xAxisLabel.hideZeroValues ? "hidden" : "visible"
17928
- );
17955
+ ).attr(VfxDataAttr.SeriesId, () => data2.properties.legendUniqueId).attr(VfxDataAttr.DimValue, (d) => Array.isArray(d.dimension) ? String(d.dimension[0]) : String(d.dimension));
17929
17956
  const finalBars = formatOptions.animation.animationEnabled ? bars.transition().duration(formatOptions.animation.animationDuration).ease(effectsMap[formatOptions.animation.animationEffect]) : bars;
17930
17957
  finalBars.attr("y", (d) => {
17931
17958
  const yScale = data2.properties.axis === axisTypes.primary ? yScaleLeft : yScaleRight;
@@ -17936,13 +17963,17 @@
17936
17963
  });
17937
17964
  columnGroupsEnter.merge(columnGroups).on("mousemove", (event2, d) => {
17938
17965
  (data2.properties.alias || data2.properties.name || "Legend").replace(/ /g, "-");
17966
+ const _dimVal = String(
17967
+ chartJSON.formattedDimensionListMap.get(
17968
+ Array.isArray(d.dimension) ? d.dimension[0] : d.dimension
17969
+ ) ?? ""
17970
+ );
17971
+ const _customHTML = resolveCustomTooltipHTML(tooltipFormatterRef.current, _dimVal, data2.properties);
17939
17972
  showTooltipOnMouseMove(
17940
17973
  [
17941
17974
  {
17942
17975
  key: formatOptions.xAxisTitle.xAxisTitleHTML !== "" ? new DOMParser().parseFromString(formatOptions.xAxisTitle.xAxisTitleHTML, "text/html").body.textContent?.trim() : formatOptions.xAxisTitle.xAxisTitleText.includes("~$~") ? formatOptions.xAxisTitle.xAxisTitleText.split("~$~")[1] : formatOptions.xAxisTitle.xAxisTitleText,
17943
- value: chartJSON.formattedDimensionListMap.get(
17944
- Array.isArray(d.dimension) ? d.dimension[0] : d.dimension
17945
- )
17976
+ value: _dimVal
17946
17977
  },
17947
17978
  {
17948
17979
  key: formatOptions.yAxisTitle.yAxisTitleHTML !== "" ? new DOMParser().parseFromString(formatOptions.yAxisTitle.yAxisTitleHTML, "text/html").body.textContent?.trim() : d.properties?.currentMeasure ? d.properties.currentMeasure : formatOptions.yAxisTitle.yAxisTitleText || d.value,
@@ -17964,12 +17995,19 @@
17964
17995
  ],
17965
17996
  formatOptions,
17966
17997
  event2,
17967
- data2.properties
17998
+ data2.properties,
17999
+ _customHTML
17968
18000
  );
17969
18001
  }).on("mouseout", (event2, d) => {
17970
18002
  (data2.properties.alias || data2.properties.name || "Legend").replace(/ /g, "-");
17971
18003
  hideTooltipOnMouseOut();
17972
18004
  });
18005
+ columnGroupsEnter.merge(columnGroups).on("click", makeVfxClickHandler(vfxPickModeActiveRef, onElementClickRef, (_event, d) => ({
18006
+ seriesId: data2.properties.legendUniqueId,
18007
+ dimValue: Array.isArray(d.dimension) ? String(d.dimension[0]) : String(d.dimension),
18008
+ legendUniqueId: data2.properties.legendUniqueId,
18009
+ seriesDisplayName: data2.properties.alias || data2.properties.name || ""
18010
+ })));
17973
18011
  columnGroups.exit().remove();
17974
18012
  });
17975
18013
  gTag.selectAll(".parentGroup").raise();
@@ -18073,7 +18111,9 @@
18073
18111
  data,
18074
18112
  isReportEditable,
18075
18113
  onDataLabelCoordinatesChange,
18076
- addLocalFilterFromLib
18114
+ addLocalFilterFromLib,
18115
+ onElementClick,
18116
+ vfxPickModeActive
18077
18117
  }) => {
18078
18118
  const chartId = crypto.randomUUID();
18079
18119
  let columnWidth = 0;
@@ -18081,6 +18121,10 @@
18081
18121
  let stackChartData = [];
18082
18122
  const chartType = chartTypes.CustomColumnChart;
18083
18123
  const svgRef = require$$0$1.useRef();
18124
+ const onElementClickRef = require$$0$1.useRef(onElementClick);
18125
+ onElementClickRef.current = onElementClick;
18126
+ const vfxPickModeActiveRef = require$$0$1.useRef(vfxPickModeActive);
18127
+ vfxPickModeActiveRef.current = vfxPickModeActive;
18084
18128
  const seriesData = generalizedChartData(
18085
18129
  data.ChartData,
18086
18130
  data.DimensionList
@@ -18655,7 +18699,7 @@
18655
18699
  ).style("clip-path", "inset(0px) fill-box").style("shape-rendering", "crispEdges").attr(
18656
18700
  "visibility",
18657
18701
  (d) => d.value === 0 && formatOptions.xAxisLabel.hideZeroValues ? "hidden" : "visible"
18658
- ).on("mousemove", (event2, d) => {
18702
+ ).attr(VfxDataAttr.SeriesId, () => data2.properties.legendUniqueId).attr(VfxDataAttr.DimValue, (d) => Array.isArray(d.dimension) ? String(d.dimension[0]) : String(d.dimension)).on("mousemove", (event2, d) => {
18659
18703
  showTooltipOnMouseMove(
18660
18704
  [
18661
18705
  {
@@ -18686,7 +18730,12 @@
18686
18730
  event2,
18687
18731
  seriesData.filter((e) => e.legend === d.legend)[0].properties
18688
18732
  );
18689
- }).on("mouseout", hideTooltipOnMouseOut);
18733
+ }).on("mouseout", hideTooltipOnMouseOut).on("click", makeVfxClickHandler(vfxPickModeActiveRef, onElementClickRef, (_event, d) => ({
18734
+ seriesId: data2.properties.legendUniqueId,
18735
+ dimValue: Array.isArray(d.dimension) ? String(d.dimension[0]) : String(d.dimension),
18736
+ legendUniqueId: data2.properties.legendUniqueId,
18737
+ seriesDisplayName: data2.properties.alias || data2.properties.name || ""
18738
+ })));
18690
18739
  const finalBars = formatOptions.animation.animationEnabled ? bars.transition().duration(formatOptions.animation.animationDuration).ease(effectsMap[formatOptions.animation.animationEffect]) : bars;
18691
18740
  finalBars.attr("y", (d) => {
18692
18741
  const yScale = data2.properties.axis === axisTypes.primary ? yScaleLeft : yScaleRight;
@@ -18991,7 +19040,12 @@
18991
19040
  event2,
18992
19041
  seriesData.filter((e) => e.legend === d.key)[0].properties
18993
19042
  );
18994
- }).on("mouseout", hideTooltipOnMouseOut);
19043
+ }).on("mouseout", hideTooltipOnMouseOut).attr(VfxDataAttr.SeriesId, (d) => d.key ?? "").attr(VfxDataAttr.DimValue, (d) => Array.isArray(d.data.dimension) ? String(d.data.dimension[0]) : String(d.data.dimension)).on("click", makeVfxClickHandler(vfxPickModeActiveRef, onElementClickRef, (_event, d) => ({
19044
+ seriesId: d.key ?? "",
19045
+ dimValue: Array.isArray(d.data.dimension) ? String(d.data.dimension[0]) : String(d.data.dimension),
19046
+ legendUniqueId: d.key ?? "",
19047
+ seriesDisplayName: d.alias || d.key || ""
19048
+ })));
18995
19049
  const finalStackRects = formatOptions.animation.animationEnabled ? rectsEnter.transition().duration(formatOptions.animation.animationDuration).ease(effectsMap[formatOptions.animation.animationEffect]) : rectsEnter;
18996
19050
  finalStackRects.attr(
18997
19051
  "y",
@@ -19210,12 +19264,18 @@
19210
19264
  data,
19211
19265
  isReportEditable,
19212
19266
  onDataLabelCoordinatesChange,
19213
- addLocalFilterFromLib
19267
+ addLocalFilterFromLib,
19268
+ onElementClick,
19269
+ vfxPickModeActive
19214
19270
  }) => {
19215
19271
  const chartId = crypto.randomUUID();
19216
19272
  let columnWidth = 0;
19217
19273
  const chartType = chartTypes.LayeredColumnChart;
19218
19274
  const svgRef = require$$0$1.useRef();
19275
+ const onElementClickRef = require$$0$1.useRef(onElementClick);
19276
+ onElementClickRef.current = onElementClick;
19277
+ const vfxPickModeActiveRef = require$$0$1.useRef(vfxPickModeActive);
19278
+ vfxPickModeActiveRef.current = vfxPickModeActive;
19219
19279
  const seriesData = generalizedChartData(
19220
19280
  data.ChartData,
19221
19281
  data.DimensionList
@@ -19605,7 +19665,7 @@
19605
19665
  ).style("clip-path", "inset(0px) fill-box").style("shape-rendering", "crispEdges").attr("opacity", 0.7).attr(
19606
19666
  "visibility",
19607
19667
  (d) => d.value === 0 && formatOptions.xAxisLabel.hideZeroValues ? "hidden" : "visible"
19608
- );
19668
+ ).attr(VfxDataAttr.SeriesId, () => data2.properties.legendUniqueId).attr(VfxDataAttr.DimValue, (d) => Array.isArray(d.dimension) ? String(d.dimension[0]) : String(d.dimension));
19609
19669
  const finalBars = formatOptions.animation.animationEnabled ? bars.transition().duration(formatOptions.animation.animationDuration).ease(effectsMap[formatOptions.animation.animationEffect]) : bars;
19610
19670
  finalBars.attr("y", (d) => {
19611
19671
  const yScale = data2.properties.axis === axisTypes.primary ? yScaleLeft : yScaleRight;
@@ -19661,6 +19721,12 @@
19661
19721
  selectAll('[hoverId="' + legend + '"]').classed("highlight", false).classed("unhighlight", false);
19662
19722
  hideTooltipOnMouseOut();
19663
19723
  });
19724
+ columnGroupsEnter.merge(columnGroups).on("click", makeVfxClickHandler(vfxPickModeActiveRef, onElementClickRef, (_event, d) => ({
19725
+ seriesId: data2.properties.legendUniqueId,
19726
+ dimValue: Array.isArray(d.dimension) ? String(d.dimension[0]) : String(d.dimension),
19727
+ legendUniqueId: data2.properties.legendUniqueId,
19728
+ seriesDisplayName: data2.properties.alias || data2.properties.name || ""
19729
+ })));
19664
19730
  columnGroups.exit().remove();
19665
19731
  });
19666
19732
  gTag.selectAll(".parentGroup").raise();
@@ -19768,13 +19834,20 @@
19768
19834
  data,
19769
19835
  isReportEditable,
19770
19836
  onDataLabelCoordinatesChange,
19771
- addLocalFilterFromLib
19837
+ addLocalFilterFromLib,
19838
+ tooltipFormatter,
19839
+ onElementClick,
19840
+ vfxPickModeActive
19772
19841
  }) => {
19773
19842
  const chartId = crypto.randomUUID();
19774
19843
  let columnWidth = 0;
19775
19844
  let scrollbarVisible = false;
19776
19845
  const chartType = chartTypes.StackColumnChart;
19777
19846
  const svgRef = require$$0$1.useRef();
19847
+ const onElementClickRef = require$$0$1.useRef(onElementClick);
19848
+ onElementClickRef.current = onElementClick;
19849
+ const vfxPickModeActiveRef = require$$0$1.useRef(vfxPickModeActive);
19850
+ vfxPickModeActiveRef.current = vfxPickModeActive;
19778
19851
  const dimensionList = data.DimensionList;
19779
19852
  const seriesData = (generalizedChartData(data.ChartData, data.DimensionList) || []).reverse();
19780
19853
  const barChart = false;
@@ -20132,7 +20205,9 @@
20132
20205
  }).style("clip-path", "inset(0px) fill-box").style("shape-rendering", "crispEdges").attr("visibility", (d, i, nodes) => {
20133
20206
  const { props } = getPropsForRect(nodes, i);
20134
20207
  return d.data[d.key] == 0 && props?.hideZeroValues ? "hidden" : "visible";
20135
- }).on("mousemove", (event2, d) => {
20208
+ }).attr(VfxDataAttr.SeriesId, (d) => d.key ?? "").attr(VfxDataAttr.DimValue, (d) => Array.isArray(d.data.dimension) ? String(d.data.dimension[0]) : String(d.data.dimension)).on("mousemove", (event2, d) => {
20209
+ const _dimVal = String(chartJSON.formattedDimensionListMap.get(d.data.dimension) ?? "");
20210
+ const _customHTML = resolveCustomTooltipHTML(tooltipFormatter, _dimVal, d.properties);
20136
20211
  showTooltipOnMouseMove(
20137
20212
  [
20138
20213
  {
@@ -20155,11 +20230,17 @@
20155
20230
  ],
20156
20231
  formatOptions,
20157
20232
  event2,
20158
- d.properties
20233
+ d.properties,
20234
+ _customHTML
20159
20235
  );
20160
20236
  }).on("mouseout", (event2, d) => {
20161
20237
  hideTooltipOnMouseOut();
20162
- });
20238
+ }).on("click", makeVfxClickHandler(vfxPickModeActiveRef, onElementClickRef, (_event, d) => ({
20239
+ seriesId: d.key ?? "",
20240
+ dimValue: Array.isArray(d.data.dimension) ? String(d.data.dimension[0]) : String(d.data.dimension),
20241
+ legendUniqueId: d.key ?? "",
20242
+ seriesDisplayName: d.properties?.alias || d.key || ""
20243
+ })));
20163
20244
  const finalRects = formatOptions.animation.animationEnabled ? baseRects.transition().duration(formatOptions.animation.animationDuration).ease(effectsMap[formatOptions.animation.animationEffect]) : baseRects;
20164
20245
  finalRects.attr("y", (d) => d[1] >= d[0] ? yScaleLeft(d[1]) : yScaleLeft(d[0])).attr("height", (d) => Math.abs(yScaleLeft(d[0]) - yScaleLeft(d[1])));
20165
20246
  columnGroups.exit().remove();
@@ -20508,12 +20589,18 @@
20508
20589
  data,
20509
20590
  isReportEditable,
20510
20591
  onDataLabelCoordinatesChange,
20511
- addLocalFilterFromLib
20592
+ addLocalFilterFromLib,
20593
+ onElementClick,
20594
+ vfxPickModeActive
20512
20595
  }) => {
20513
20596
  const chartId = crypto.randomUUID();
20514
20597
  let columnWidth = 0;
20515
20598
  const chartType = chartTypes.NormalizedStackColumnChart;
20516
20599
  const svgRef = require$$0$1.useRef();
20600
+ const onElementClickRef = require$$0$1.useRef(onElementClick);
20601
+ onElementClickRef.current = onElementClick;
20602
+ const vfxPickModeActiveRef = require$$0$1.useRef(vfxPickModeActive);
20603
+ vfxPickModeActiveRef.current = vfxPickModeActive;
20517
20604
  const seriesData = generalizedChartData(
20518
20605
  data.ChartData,
20519
20606
  data.DimensionList
@@ -20899,7 +20986,7 @@
20899
20986
  }).style("clip-path", "inset(0px) fill-box").style("shape-rendering", "crispEdges").attr("visibility", (d, i, nodes) => {
20900
20987
  const { props } = getPropsForRect(nodes, i);
20901
20988
  return d.data[d.key] === 0 && props?.hideZeroValues ? "hidden" : "visible";
20902
- });
20989
+ }).attr(VfxDataAttr.SeriesId, (d) => d.key ?? "").attr(VfxDataAttr.DimValue, (d) => Array.isArray(d.data.dimension) ? String(d.data.dimension[0]) : String(d.data.dimension));
20903
20990
  const shouldAnimate = formatOptions.animation.animationEnabled;
20904
20991
  const applyTransition = (sel) => shouldAnimate ? sel.transition().duration(formatOptions.animation.animationDuration).ease(effectsMap[formatOptions.animation.animationEffect]) : sel;
20905
20992
  applyTransition(rectsEnter).attr("y", (d) => d[1] >= d[0] ? yScaleLeft(d[1]) : yScaleLeft(d[0])).attr("height", (d) => Math.abs(yScaleLeft(d[0]) - yScaleLeft(d[1])));
@@ -20930,7 +21017,12 @@
20930
21017
  );
20931
21018
  }).on("mouseout", (event2, d) => {
20932
21019
  hideTooltipOnMouseOut();
20933
- });
21020
+ }).on("click", makeVfxClickHandler(vfxPickModeActiveRef, onElementClickRef, (_event, d) => ({
21021
+ seriesId: d.key ?? "",
21022
+ dimValue: Array.isArray(d.data.dimension) ? String(d.data.dimension[0]) : String(d.data.dimension),
21023
+ legendUniqueId: d.key ?? "",
21024
+ seriesDisplayName: d.properties?.alias || d.key || ""
21025
+ })));
20934
21026
  columnGroups.exit().remove();
20935
21027
  gTag.selectAll(".parentGroup").raise();
20936
21028
  };
@@ -22349,12 +22441,19 @@
22349
22441
  data,
22350
22442
  isReportEditable,
22351
22443
  onDataLabelCoordinatesChange,
22352
- addLocalFilterFromLib
22444
+ addLocalFilterFromLib,
22445
+ tooltipFormatter,
22446
+ onElementClick,
22447
+ vfxPickModeActive
22353
22448
  }) => {
22354
22449
  const chartId = crypto.randomUUID();
22355
22450
  const barWidth = 0;
22356
22451
  const chartType = chartTypes.LineChart;
22357
22452
  const svgRef = require$$0$1.useRef();
22453
+ const onElementClickRef = require$$0$1.useRef(onElementClick);
22454
+ onElementClickRef.current = onElementClick;
22455
+ const vfxPickModeActiveRef = require$$0$1.useRef(vfxPickModeActive);
22456
+ vfxPickModeActiveRef.current = vfxPickModeActive;
22358
22457
  const seriesData = generalizedChartData(
22359
22458
  data.ChartData,
22360
22459
  data.DimensionList
@@ -22790,7 +22889,12 @@
22790
22889
  ).attr(
22791
22890
  "hoverId",
22792
22891
  (d.properties.alias || d.properties.name || "Legend").replace(/\s+/g, "-")
22793
- ).attr("clip-path", `url(#${chartId}-clip)`).attr("d", (d2) => lineGenerator(d2.data));
22892
+ ).attr("clip-path", `url(#${chartId}-clip)`).attr("d", (d2) => lineGenerator(d2.data)).attr(VfxDataAttr.SeriesId, (d2) => d2.properties.legendUniqueId).attr(VfxDataAttr.DimValue, (d2) => d2.properties.alias || d2.properties.name || "").on("click", makeVfxClickHandler(vfxPickModeActiveRef, onElementClickRef, (_event, d2) => ({
22893
+ seriesId: d2.properties.legendUniqueId,
22894
+ dimValue: d2.properties.alias || d2.properties.name || "",
22895
+ legendUniqueId: d2.properties.legendUniqueId,
22896
+ seriesDisplayName: d2.properties.alias || d2.properties.name || ""
22897
+ })));
22794
22898
  if (shouldAnimate) {
22795
22899
  pathSel.each(function() {
22796
22900
  const path2 = select$2(this);
@@ -22814,7 +22918,9 @@
22814
22918
  secondaryCustomYaxisMaxValue,
22815
22919
  secondaryCustomYaxisMinValue,
22816
22920
  customYaxisMinValue,
22817
- customYaxisMaxValue
22921
+ customYaxisMaxValue,
22922
+ false,
22923
+ tooltipFormatter
22818
22924
  );
22819
22925
  gTag.selectAll(".parentGroup").raise();
22820
22926
  };
@@ -22926,12 +23032,18 @@
22926
23032
  data,
22927
23033
  isReportEditable,
22928
23034
  onDataLabelCoordinatesChange,
22929
- addLocalFilterFromLib
23035
+ addLocalFilterFromLib,
23036
+ onElementClick,
23037
+ vfxPickModeActive
22930
23038
  }) => {
22931
23039
  const chartId = crypto.randomUUID();
22932
23040
  const barWidth = 0;
22933
23041
  const chartType = chartTypes.StackLineChart;
22934
23042
  const svgRef = require$$0$1.useRef();
23043
+ const onElementClickRef = require$$0$1.useRef(onElementClick);
23044
+ onElementClickRef.current = onElementClick;
23045
+ const vfxPickModeActiveRef = require$$0$1.useRef(vfxPickModeActive);
23046
+ vfxPickModeActiveRef.current = vfxPickModeActive;
22935
23047
  const dimensionList = data.DimensionList;
22936
23048
  const seriesData = (generalizedChartData(data.ChartData, data.DimensionList) || []).reverse();
22937
23049
  const barChart = false;
@@ -23332,7 +23444,12 @@
23332
23444
  ).attr(
23333
23445
  "stroke-width",
23334
23446
  seriesData[i].properties.lineStyle !== staticLineStyle.none ? seriesData[i].properties.lineWidth : 0
23335
- ).attr("fill", "none");
23447
+ ).attr("fill", "none").attr(VfxDataAttr.SeriesId, seriesData[i].properties.legendUniqueId).attr(VfxDataAttr.DimValue, seriesData[i].properties.alias || seriesData[i].properties.name || "").on("click", makeVfxClickHandler(vfxPickModeActiveRef, onElementClickRef, () => ({
23448
+ seriesId: seriesData[i].properties.legendUniqueId,
23449
+ dimValue: seriesData[i].properties.alias || seriesData[i].properties.name || "",
23450
+ legendUniqueId: seriesData[i].properties.legendUniqueId,
23451
+ seriesDisplayName: seriesData[i].properties.alias || seriesData[i].properties.name || ""
23452
+ })));
23336
23453
  const enableTransition = formatOptions.animation.animationEnabled;
23337
23454
  const totalLength = pathSel.node().getTotalLength();
23338
23455
  if (enableTransition) {
@@ -23515,12 +23632,18 @@
23515
23632
  data,
23516
23633
  isReportEditable,
23517
23634
  onDataLabelCoordinatesChange,
23518
- addLocalFilterFromLib
23635
+ addLocalFilterFromLib,
23636
+ onElementClick,
23637
+ vfxPickModeActive
23519
23638
  }) => {
23520
23639
  const chartId = crypto.randomUUID();
23521
23640
  const barWidth = 0;
23522
23641
  const chartType = chartTypes.NormalizedStackLineChart;
23523
23642
  const svgRef = require$$0$1.useRef();
23643
+ const onElementClickRef = require$$0$1.useRef(onElementClick);
23644
+ onElementClickRef.current = onElementClick;
23645
+ const vfxPickModeActiveRef = require$$0$1.useRef(vfxPickModeActive);
23646
+ vfxPickModeActiveRef.current = vfxPickModeActive;
23524
23647
  const seriesData = generalizedChartData(data.ChartData, data.DimensionList)?.reverse() || [];
23525
23648
  const dimensionList = data.DimensionList;
23526
23649
  const barChart = false;
@@ -23865,7 +23988,12 @@
23865
23988
  ).attr(
23866
23989
  "stroke-width",
23867
23990
  seriesData[i].properties.lineStyle !== staticLineStyle.none ? seriesData[i].properties.lineWidth : 0
23868
- ).attr("fill", "none");
23991
+ ).attr("fill", "none").attr(VfxDataAttr.SeriesId, seriesData[i].properties.legendUniqueId).attr(VfxDataAttr.DimValue, seriesData[i].properties.alias || seriesData[i].properties.name || "").on("click", makeVfxClickHandler(vfxPickModeActiveRef, onElementClickRef, () => ({
23992
+ seriesId: seriesData[i].properties.legendUniqueId,
23993
+ dimValue: seriesData[i].properties.alias || seriesData[i].properties.name || "",
23994
+ legendUniqueId: seriesData[i].properties.legendUniqueId,
23995
+ seriesDisplayName: seriesData[i].properties.alias || seriesData[i].properties.name || ""
23996
+ })));
23869
23997
  const enableTransition = formatOptions.animation.animationEnabled;
23870
23998
  const totalLength = pathSel.node().getTotalLength();
23871
23999
  if (enableTransition) {
@@ -24047,12 +24175,19 @@
24047
24175
  data,
24048
24176
  isReportEditable,
24049
24177
  onDataLabelCoordinatesChange,
24050
- addLocalFilterFromLib
24178
+ addLocalFilterFromLib,
24179
+ tooltipFormatter,
24180
+ onElementClick,
24181
+ vfxPickModeActive
24051
24182
  }) => {
24052
24183
  const chartId = crypto.randomUUID();
24053
24184
  let columnWidth = 0;
24054
24185
  const chartType = chartTypes.HorizontalBarChart;
24055
24186
  const svgRef = require$$0$1.useRef();
24187
+ const onElementClickRef = require$$0$1.useRef(onElementClick);
24188
+ onElementClickRef.current = onElementClick;
24189
+ const vfxPickModeActiveRef = require$$0$1.useRef(vfxPickModeActive);
24190
+ vfxPickModeActiveRef.current = vfxPickModeActive;
24056
24191
  const seriesData = generalizedChartData(
24057
24192
  data.ChartData,
24058
24193
  data.DimensionList
@@ -24464,7 +24599,7 @@
24464
24599
  ).style("clip-path", "inset(0px) fill-box").style("shape-rendering", "crispEdges").attr(
24465
24600
  "visibility",
24466
24601
  (d) => d.value === 0 && formatOptions.xAxisLabel.hideZeroValues ? "hidden" : "visible"
24467
- );
24602
+ ).attr(VfxDataAttr.SeriesId, () => data2.properties.legendUniqueId).attr(VfxDataAttr.DimValue, (d) => Array.isArray(d.dimension) ? String(d.dimension[0]) : String(d.dimension));
24468
24603
  const finalBars = formatOptions.animation.animationEnabled ? bars.transition().duration(formatOptions.animation.animationDuration).ease(effectsMap[formatOptions.animation.animationEffect]) : bars;
24469
24604
  finalBars.attr("x", (d) => {
24470
24605
  const xScaleUsed = data2.properties.axis === axisTypes.primary ? xScaleBottom : xScaleTop;
@@ -24480,6 +24615,10 @@
24480
24615
  });
24481
24616
  columnGroupsEnter.merge(columnGroups).on("mousemove", (event2, d) => {
24482
24617
  (data2.properties.alias || data2.properties.name || "Legend").replace(/ /g, "-");
24618
+ const _dimVal = String(chartJSON.formattedDimensionListMap.get(
24619
+ Array.isArray(d.dimension) ? d.dimension[0] : d.dimension
24620
+ ) ?? "");
24621
+ const _customHTML = resolveCustomTooltipHTML(tooltipFormatter, _dimVal, data2.properties);
24483
24622
  showTooltipOnMouseMove(
24484
24623
  [
24485
24624
  {
@@ -24508,12 +24647,18 @@
24508
24647
  ],
24509
24648
  formatOptions,
24510
24649
  event2,
24511
- data2.properties
24650
+ data2.properties,
24651
+ _customHTML
24512
24652
  );
24513
24653
  }).on("mouseout", (event2, d) => {
24514
24654
  (data2.properties.alias || data2.properties.name || "Legend").replace(/ /g, "-");
24515
24655
  hideTooltipOnMouseOut();
24516
- });
24656
+ }).on("click", makeVfxClickHandler(vfxPickModeActiveRef, onElementClickRef, (_event, d) => ({
24657
+ seriesId: data2.properties.legendUniqueId,
24658
+ dimValue: Array.isArray(d.dimension) ? String(d.dimension[0]) : String(d.dimension),
24659
+ legendUniqueId: data2.properties.legendUniqueId,
24660
+ seriesDisplayName: data2.properties.alias || data2.properties.name || ""
24661
+ })));
24517
24662
  columnGroups.exit().remove();
24518
24663
  });
24519
24664
  gTag.selectAll(".parentGroup").raise();
@@ -24600,12 +24745,18 @@
24600
24745
  data,
24601
24746
  isReportEditable,
24602
24747
  onDataLabelCoordinatesChange,
24603
- addLocalFilterFromLib
24748
+ addLocalFilterFromLib,
24749
+ onElementClick,
24750
+ vfxPickModeActive
24604
24751
  }) => {
24605
24752
  const chartId = crypto.randomUUID();
24606
24753
  let columnWidth = 0;
24607
24754
  const chartType = chartTypes.StackHorizontalBarChart;
24608
24755
  const svgRef = require$$0$1.useRef();
24756
+ const onElementClickRef = require$$0$1.useRef(onElementClick);
24757
+ onElementClickRef.current = onElementClick;
24758
+ const vfxPickModeActiveRef = require$$0$1.useRef(vfxPickModeActive);
24759
+ vfxPickModeActiveRef.current = vfxPickModeActive;
24609
24760
  const seriesData = generalizedChartData(
24610
24761
  data.ChartData,
24611
24762
  data.DimensionList
@@ -24960,7 +25111,7 @@
24960
25111
  ).style("clip-path", "inset(0px) fill-box").style("shape-rendering", "crispEdges").attr("x", (d) => Math.min(xScaleBottom(d[0]), xScaleBottom(d[1]))).attr("width", 0).attr("visibility", (d, i, nodes) => {
24961
25112
  const props = getPropsForRect(nodes, i).props;
24962
25113
  return d.data[d.key] === 0 && props?.hideZeroValues ? "hidden" : "visible";
24963
- }).on("mousemove", (event2, d) => {
25114
+ }).attr(VfxDataAttr.SeriesId, (d) => d.key ?? "").attr(VfxDataAttr.DimValue, (d) => Array.isArray(d.data.dimension) ? String(d.data.dimension[0]) : String(d.data.dimension)).on("mousemove", (event2, d) => {
24964
25115
  const dim = d.data.dimension;
24965
25116
  showTooltipOnMouseMove(
24966
25117
  [
@@ -24989,7 +25140,12 @@
24989
25140
  }).on("mouseout", (event2, d) => {
24990
25141
  d.data.dimension;
24991
25142
  hideTooltipOnMouseOut();
24992
- });
25143
+ }).on("click", makeVfxClickHandler(vfxPickModeActiveRef, onElementClickRef, (_event, d) => ({
25144
+ seriesId: d.key,
25145
+ dimValue: Array.isArray(d.data.dimension) ? String(d.data.dimension[0]) : String(d.data.dimension),
25146
+ legendUniqueId: d.key,
25147
+ seriesDisplayName: d.properties?.alias || d.properties?.name || ""
25148
+ })));
24993
25149
  baseRects.attr("x", (d) => xScaleBottom(0));
24994
25150
  const finalRects = formatOptions.animation.animationEnabled ? baseRects.transition().duration(formatOptions.animation.animationDuration).ease(effectsMap[formatOptions.animation.animationEffect]) : baseRects;
24995
25151
  finalRects.attr("x", (d) => Math.min(xScaleBottom(d[0]), xScaleBottom(d[1]))).attr("width", (d) => Math.abs(xScaleBottom(d[1]) - xScaleBottom(d[0])));
@@ -25325,12 +25481,18 @@
25325
25481
  data,
25326
25482
  isReportEditable,
25327
25483
  onDataLabelCoordinatesChange,
25328
- addLocalFilterFromLib
25484
+ addLocalFilterFromLib,
25485
+ onElementClick,
25486
+ vfxPickModeActive
25329
25487
  }) => {
25330
25488
  const chartId = crypto.randomUUID();
25331
25489
  let columnWidth = 0;
25332
25490
  const chartType = chartTypes.NormalizedStackHorizontalBarChart;
25333
25491
  const svgRef = require$$0$1.useRef();
25492
+ const onElementClickRef = require$$0$1.useRef(onElementClick);
25493
+ onElementClickRef.current = onElementClick;
25494
+ const vfxPickModeActiveRef = require$$0$1.useRef(vfxPickModeActive);
25495
+ vfxPickModeActiveRef.current = vfxPickModeActive;
25334
25496
  const seriesData = generalizedChartData(
25335
25497
  data.ChartData,
25336
25498
  data.DimensionList
@@ -25665,7 +25827,7 @@
25665
25827
  ).style("clip-path", "inset(0px) fill-box").style("shape-rendering", "crispEdges").attr("x", (d) => xScaleBottom(0)).attr("width", 0).attr("visibility", (d, i, nodes) => {
25666
25828
  const props = getPropsForRect(nodes, i).props;
25667
25829
  return d.data[d.key] === 0 && props?.hideZeroValues ? "hidden" : "visible";
25668
- }).on("mousemove", (event2, d) => {
25830
+ }).attr(VfxDataAttr.SeriesId, (d) => d.key ?? "").attr(VfxDataAttr.DimValue, (d) => Array.isArray(d.data.dimension) ? String(d.data.dimension[0]) : String(d.data.dimension)).on("mousemove", (event2, d) => {
25669
25831
  const dim = d.data.dimension;
25670
25832
  showTooltipOnMouseMove(
25671
25833
  [
@@ -25696,7 +25858,12 @@
25696
25858
  selectAll(".parentGroup").classed("highlight", false).classed("unhighlight", false);
25697
25859
  selectAll('[hoverId="' + legend + '"]').classed("highlight", false).classed("unhighlight", false);
25698
25860
  hideTooltipOnMouseOut();
25699
- });
25861
+ }).on("click", makeVfxClickHandler(vfxPickModeActiveRef, onElementClickRef, (_event, d) => ({
25862
+ seriesId: d.key,
25863
+ dimValue: Array.isArray(d.data.dimension) ? String(d.data.dimension[0]) : String(d.data.dimension),
25864
+ legendUniqueId: d.key,
25865
+ seriesDisplayName: d.properties?.alias || d.properties?.name || ""
25866
+ })));
25700
25867
  const finalRects = formatOptions.animation.animationEnabled ? baseRects.transition().duration(formatOptions.animation.animationDuration).ease(effectsMap[formatOptions.animation.animationEffect]) : baseRects;
25701
25868
  finalRects.attr("x", (d) => Math.min(xScaleBottom(d[0]), xScaleBottom(d[1]))).attr("width", (d) => Math.abs(xScaleBottom(d[1]) - xScaleBottom(d[0])));
25702
25869
  columnGroups.exit().remove();
@@ -25806,12 +25973,18 @@
25806
25973
  data,
25807
25974
  isReportEditable,
25808
25975
  onDataLabelCoordinatesChange,
25809
- addLocalFilterFromLib
25976
+ addLocalFilterFromLib,
25977
+ onElementClick,
25978
+ vfxPickModeActive
25810
25979
  }) => {
25811
25980
  const chartId = crypto.randomUUID();
25812
25981
  let columnWidth = 0;
25813
25982
  const chartType = chartTypes.LayeredHorizontalBarChart;
25814
25983
  const svgRef = require$$0$1.useRef();
25984
+ const onElementClickRef = require$$0$1.useRef(onElementClick);
25985
+ onElementClickRef.current = onElementClick;
25986
+ const vfxPickModeActiveRef = require$$0$1.useRef(vfxPickModeActive);
25987
+ vfxPickModeActiveRef.current = vfxPickModeActive;
25815
25988
  const seriesData = generalizedChartData(
25816
25989
  data.ChartData,
25817
25990
  data.DimensionList
@@ -26160,7 +26333,7 @@
26160
26333
  ).style("clip-path", "inset(0px) fill-box").style("shape-rendering", "crispEdges").attr("opacity", 0.7).attr(
26161
26334
  "visibility",
26162
26335
  (d) => d.value === 0 && formatOptions.xAxisLabel.hideZeroValues ? "hidden" : "visible"
26163
- );
26336
+ ).attr(VfxDataAttr.SeriesId, () => data2.properties.legendUniqueId).attr(VfxDataAttr.DimValue, (d) => Array.isArray(d.dimension) ? String(d.dimension[0]) : String(d.dimension));
26164
26337
  const finalBars = formatOptions.animation.animationEnabled ? bars.transition().duration(formatOptions.animation.animationDuration).ease(effectsMap[formatOptions.animation.animationEffect]) : bars;
26165
26338
  finalBars.attr(
26166
26339
  "x",
@@ -26203,7 +26376,12 @@
26203
26376
  );
26204
26377
  }).on("mouseout", () => {
26205
26378
  hideTooltipOnMouseOut();
26206
- });
26379
+ }).on("click", makeVfxClickHandler(vfxPickModeActiveRef, onElementClickRef, (_event, d) => ({
26380
+ seriesId: data2.properties.legendUniqueId,
26381
+ dimValue: Array.isArray(d.dimension) ? String(d.dimension[0]) : String(d.dimension),
26382
+ legendUniqueId: data2.properties.legendUniqueId,
26383
+ seriesDisplayName: data2.properties.alias || data2.properties.name || ""
26384
+ })));
26207
26385
  columnGroups.exit().remove();
26208
26386
  });
26209
26387
  gTag.selectAll(".parentGroup").raise();
@@ -27023,12 +27201,19 @@
27023
27201
  data,
27024
27202
  isReportEditable,
27025
27203
  onDataLabelCoordinatesChange,
27026
- addLocalFilterFromLib
27204
+ addLocalFilterFromLib,
27205
+ tooltipFormatter,
27206
+ onElementClick,
27207
+ vfxPickModeActive
27027
27208
  }) => {
27028
27209
  const chartId = crypto.randomUUID();
27029
27210
  const barWidth = 0;
27030
27211
  const chartType = chartTypes.AreaChart;
27031
27212
  const svgRef = require$$0$1.useRef();
27213
+ const onElementClickRef = require$$0$1.useRef(onElementClick);
27214
+ onElementClickRef.current = onElementClick;
27215
+ const vfxPickModeActiveRef = require$$0$1.useRef(vfxPickModeActive);
27216
+ vfxPickModeActiveRef.current = vfxPickModeActive;
27032
27217
  const seriesData = generalizedChartData(
27033
27218
  data.ChartData,
27034
27219
  data.DimensionList
@@ -27445,7 +27630,12 @@
27445
27630
  /\s+/g,
27446
27631
  "-"
27447
27632
  )
27448
- ).attr("d", (d) => areaGeneratorStart(d.data)).each(function(d) {
27633
+ ).attr("d", (d) => areaGeneratorStart(d.data)).attr(VfxDataAttr.SeriesId, (d) => d.properties.legendUniqueId).attr(VfxDataAttr.DimValue, (d) => d.properties.alias || d.properties.name || "").on("click", makeVfxClickHandler(vfxPickModeActiveRef, onElementClickRef, (_event, d) => ({
27634
+ seriesId: d.properties.legendUniqueId,
27635
+ dimValue: d.properties.alias || d.properties.name || "",
27636
+ legendUniqueId: d.properties.legendUniqueId,
27637
+ seriesDisplayName: d.properties.alias || d.properties.name || ""
27638
+ }))).each(function(d) {
27449
27639
  if (enableTransition) {
27450
27640
  select$2(this).transition().duration(formatOptions.animation.animationDuration).ease(effectsMap[formatOptions.animation.animationEffect]).attr("d", areaGenerator(d.data));
27451
27641
  } else {
@@ -27504,7 +27694,9 @@
27504
27694
  secondaryCustomYaxisMaxValue,
27505
27695
  secondaryCustomYaxisMinValue,
27506
27696
  customYaxisMinValue,
27507
- customYaxisMaxValue
27697
+ customYaxisMaxValue,
27698
+ false,
27699
+ tooltipFormatter
27508
27700
  );
27509
27701
  gTag.selectAll(".parentGroup").raise();
27510
27702
  gTag.selectAll(".hoverLine").raise();
@@ -27621,12 +27813,18 @@
27621
27813
  data,
27622
27814
  isReportEditable,
27623
27815
  onDataLabelCoordinatesChange,
27624
- addLocalFilterFromLib
27816
+ addLocalFilterFromLib,
27817
+ onElementClick,
27818
+ vfxPickModeActive
27625
27819
  }) => {
27626
27820
  const chartId = crypto.randomUUID();
27627
27821
  const barWidth = 0;
27628
27822
  const chartType = chartTypes.StackAreaChart;
27629
27823
  const svgRef = require$$0$1.useRef();
27824
+ const onElementClickRef = require$$0$1.useRef(onElementClick);
27825
+ onElementClickRef.current = onElementClick;
27826
+ const vfxPickModeActiveRef = require$$0$1.useRef(vfxPickModeActive);
27827
+ vfxPickModeActiveRef.current = vfxPickModeActive;
27630
27828
  const seriesData = generalizedChartData(data.ChartData, data.DimensionList)?.reverse() || [];
27631
27829
  const dimensionList = data.DimensionList;
27632
27830
  const barChart = false;
@@ -28003,7 +28201,16 @@
28003
28201
  areaGroupsEnter.append("path").attr(
28004
28202
  "hoverId",
28005
28203
  (d) => (lineData[d.index].properties.alias || lineData[d.index].properties.name || "Legend").replace(/\s+/g, "-")
28006
- ).attr("class", "area parentGroup").attr("fill", (d) => d.color !== commonColors.white ? d.color : "none").style("fill-opacity", formatOptions.plotArea.fillOpacity).style("pointer-events", "none").attr("d", (d) => areaGeneratorStart(d)).each(function(d) {
28204
+ ).attr("class", "area parentGroup").attr("fill", (d) => d.color !== commonColors.white ? d.color : "none").style("fill-opacity", formatOptions.plotArea.fillOpacity).style("pointer-events", "none").attr("d", (d) => areaGeneratorStart(d)).attr(VfxDataAttr.SeriesId, (d) => seriesData[d.index]?.properties?.legendUniqueId ?? d.key).attr(VfxDataAttr.DimValue, (d) => seriesData[d.index]?.properties?.alias || seriesData[d.index]?.properties?.name || "").on("click", makeVfxClickHandler(vfxPickModeActiveRef, onElementClickRef, (_event, d) => {
28205
+ const sid = seriesData[d.index]?.properties?.legendUniqueId ?? d.key;
28206
+ const displayName = seriesData[d.index]?.properties?.alias || seriesData[d.index]?.properties?.name || "";
28207
+ return {
28208
+ seriesId: sid,
28209
+ dimValue: displayName,
28210
+ legendUniqueId: sid,
28211
+ seriesDisplayName: displayName
28212
+ };
28213
+ })).each(function(d) {
28007
28214
  if (enableTransition) {
28008
28215
  select$2(this).transition().duration(formatOptions.animation.animationDuration).ease(effectsMap[formatOptions.animation.animationEffect]).attr("d", areaGenerator(d));
28009
28216
  } else {
@@ -28229,12 +28436,18 @@
28229
28436
  data,
28230
28437
  isReportEditable,
28231
28438
  onDataLabelCoordinatesChange,
28232
- addLocalFilterFromLib
28439
+ addLocalFilterFromLib,
28440
+ onElementClick,
28441
+ vfxPickModeActive
28233
28442
  }) => {
28234
28443
  const chartId = crypto.randomUUID();
28235
28444
  const barWidth = 0;
28236
28445
  const chartType = chartTypes.NormalizedStackAreaChart;
28237
28446
  const svgRef = require$$0$1.useRef();
28447
+ const onElementClickRef = require$$0$1.useRef(onElementClick);
28448
+ onElementClickRef.current = onElementClick;
28449
+ const vfxPickModeActiveRef = require$$0$1.useRef(vfxPickModeActive);
28450
+ vfxPickModeActiveRef.current = vfxPickModeActive;
28238
28451
  const seriesData = generalizedChartData(data.ChartData, data.DimensionList)?.reverse() || [];
28239
28452
  const dimensionList = data.DimensionList;
28240
28453
  const barChart = false;
@@ -28576,7 +28789,16 @@
28576
28789
  areaGroupsEnter.append("path").attr(
28577
28790
  "hoverId",
28578
28791
  (d) => (lineData[d.index]?.properties?.alias || lineData[d.index]?.properties?.name || "Legend").replace(/\s+/g, "-")
28579
- ).attr("class", "area parentGroup").attr("fill", (d) => d.color !== commonColors.white ? d.color : "none").style("fill-opacity", formatOptions.plotArea.fillOpacity).style("pointer-events", "none").attr("d", (d) => columnGeneratorStart(d)).each(function(d) {
28792
+ ).attr("class", "area parentGroup").attr("fill", (d) => d.color !== commonColors.white ? d.color : "none").style("fill-opacity", formatOptions.plotArea.fillOpacity).style("pointer-events", "none").attr("d", (d) => columnGeneratorStart(d)).attr(VfxDataAttr.SeriesId, (d) => seriesData[d.index]?.properties?.legendUniqueId ?? d.key).attr(VfxDataAttr.DimValue, (d) => seriesData[d.index]?.properties?.alias || seriesData[d.index]?.properties?.name || "").on("click", makeVfxClickHandler(vfxPickModeActiveRef, onElementClickRef, (_event, d) => {
28793
+ const sid = seriesData[d.index]?.properties?.legendUniqueId ?? d.key;
28794
+ const displayName = seriesData[d.index]?.properties?.alias || seriesData[d.index]?.properties?.name || "";
28795
+ return {
28796
+ seriesId: sid,
28797
+ dimValue: displayName,
28798
+ legendUniqueId: sid,
28799
+ seriesDisplayName: displayName
28800
+ };
28801
+ })).each(function(d) {
28580
28802
  const path2 = select$2(this);
28581
28803
  if (enableTransition) {
28582
28804
  path2.transition().duration(formatOptions.animation.animationDuration).ease(effectsMap[formatOptions.animation.animationEffect]).attr("d", columnGenerator(d));
@@ -28895,8 +29117,12 @@
28895
29117
  }
28896
29118
  };
28897
29119
  const fileName$8 = "PieChart.tsx";
28898
- const PieChart = ({ data, formatOptions, chartId, isReportEditable, onDataLabelCoordinatesChange, addLocalFilterFromLib }) => {
29120
+ const PieChart = ({ data, formatOptions, chartId, isReportEditable, onDataLabelCoordinatesChange, addLocalFilterFromLib, onElementClick, vfxPickModeActive }) => {
28899
29121
  const svgRef = require$$0$1.useRef();
29122
+ const onElementClickRef = require$$0$1.useRef(onElementClick);
29123
+ onElementClickRef.current = onElementClick;
29124
+ const vfxPickModeActiveRef = require$$0$1.useRef(vfxPickModeActive);
29125
+ vfxPickModeActiveRef.current = vfxPickModeActive;
28900
29126
  const seriesData = generalizedChartData(data.ChartData);
28901
29127
  let chartFormatOptions;
28902
29128
  let height;
@@ -29029,7 +29255,12 @@
29029
29255
  ).attr(
29030
29256
  "fill",
29031
29257
  (d) => d.data.properties.color !== commonColors.white ? d.data.properties.color : "none"
29032
- ).on("mouseover.arc", function(d) {
29258
+ ).attr(VfxDataAttr.SeriesId, (d) => d.data.properties.legendUniqueId ?? d.data.properties.name ?? "").attr(VfxDataAttr.DimValue, (d) => d.data.properties.alias || d.data.legend || "").on("click", makeVfxClickHandler(vfxPickModeActiveRef, onElementClickRef, (_event, d) => ({
29259
+ seriesId: d.data.properties.legendUniqueId ?? d.data.properties.name ?? "",
29260
+ dimValue: d.data.properties.alias || d.data.legend || "",
29261
+ legendUniqueId: d.data.properties.legendUniqueId ?? d.data.properties.name ?? "",
29262
+ seriesDisplayName: d.data.properties.alias || d.data.properties.name || ""
29263
+ }))).on("mouseover.arc", function(d) {
29033
29264
  select$2(this).transition().duration(100).attr("d", arcOver);
29034
29265
  }).on("mousemove. ", (d) => {
29035
29266
  showTooltipOnMouseMove(
@@ -29331,9 +29562,15 @@
29331
29562
  chartId,
29332
29563
  isReportEditable,
29333
29564
  onDataLabelCoordinatesChange,
29334
- addLocalFilterFromLib
29565
+ addLocalFilterFromLib,
29566
+ onElementClick,
29567
+ vfxPickModeActive
29335
29568
  }) => {
29336
29569
  const svgRef = require$$0$1.useRef();
29570
+ const onElementClickRef = require$$0$1.useRef(onElementClick);
29571
+ onElementClickRef.current = onElementClick;
29572
+ const vfxPickModeActiveRef = require$$0$1.useRef(vfxPickModeActive);
29573
+ vfxPickModeActiveRef.current = vfxPickModeActive;
29337
29574
  const seriesData = generalizedChartData(data.ChartData);
29338
29575
  let chartFormatOptions;
29339
29576
  let width;
@@ -29466,7 +29703,12 @@
29466
29703
  ).attr(
29467
29704
  "fill",
29468
29705
  (d) => d.data.properties.color !== commonColors.white ? d.data.properties.color : "none"
29469
- ).each(function(d) {
29706
+ ).attr(VfxDataAttr.SeriesId, (d) => d.data.properties.legendUniqueId ?? d.data.properties.name ?? "").attr(VfxDataAttr.DimValue, (d) => d.data.properties.alias || d.data.legend || "").on("click", makeVfxClickHandler(vfxPickModeActiveRef, onElementClickRef, (_event, d) => ({
29707
+ seriesId: d.data.properties.legendUniqueId ?? d.data.properties.name ?? "",
29708
+ dimValue: d.data.properties.alias || d.data.legend || "",
29709
+ legendUniqueId: d.data.properties.legendUniqueId ?? d.data.properties.name ?? "",
29710
+ seriesDisplayName: d.data.properties.alias || d.data.properties.name || ""
29711
+ }))).each(function(d) {
29470
29712
  const thisPath = d;
29471
29713
  thisPath._current = { startAngle: 0, endAngle: 0 };
29472
29714
  }).on("mouseover.arc", function() {
@@ -29829,8 +30071,12 @@
29829
30071
  ) });
29830
30072
  };
29831
30073
  const fileName$6 = "TreemapChart.tsx";
29832
- const Treemap = ({ data, formatOptions, chartId }) => {
30074
+ const Treemap = ({ data, formatOptions, chartId, onElementClick, vfxPickModeActive }) => {
29833
30075
  const svgRef = require$$0$1.useRef();
30076
+ const onElementClickRef = require$$0$1.useRef(onElementClick);
30077
+ onElementClickRef.current = onElementClick;
30078
+ const vfxPickModeActiveRef = require$$0$1.useRef(vfxPickModeActive);
30079
+ vfxPickModeActiveRef.current = vfxPickModeActive;
29834
30080
  let chartFormatOptions;
29835
30081
  let width;
29836
30082
  let height;
@@ -29997,7 +30243,16 @@
29997
30243
  void 0,
29998
30244
  getMarkerColorForTooltip(d)
29999
30245
  );
30000
- }).on("mouseout", () => hideTooltipOnMouseOut());
30246
+ }).on("mouseout", () => hideTooltipOnMouseOut()).attr(VfxDataAttr.SeriesId, (d) => String(d.data.properties?.legendUniqueId ?? d.data.legend ?? "")).attr(VfxDataAttr.DimValue, (d) => String(d.data.data[0].legend ?? "")).on("click", makeVfxClickHandler(vfxPickModeActiveRef, onElementClickRef, (_event, d) => {
30247
+ const seriesId = String(d.data.properties?.legendUniqueId ?? d.data.legend ?? "");
30248
+ const dimValue = String(d.data.data[0].legend ?? "");
30249
+ return {
30250
+ seriesId,
30251
+ dimValue,
30252
+ legendUniqueId: seriesId,
30253
+ seriesDisplayName: String(d.data.properties?.alias || d.data.properties?.name || dimValue)
30254
+ };
30255
+ }));
30001
30256
  if (shouldAnimate) {
30002
30257
  rects.transition().duration(chartFormatOptions.animation.animationDuration).ease(effectsMap[chartFormatOptions.animation.animationEffect]).attr("fill-opacity", 0.7);
30003
30258
  }
@@ -36480,12 +36735,18 @@
36480
36735
  const SankeyChart = ({
36481
36736
  formatOptions,
36482
36737
  data,
36483
- chartId
36738
+ chartId,
36739
+ onElementClick,
36740
+ vfxPickModeActive
36484
36741
  }) => {
36485
36742
  let sankeyLinks = JSON.parse(JSON.stringify(data?.sankeyLinks));
36486
36743
  let sankeyNodes = JSON.parse(JSON.stringify(data?.sankeyNodes));
36487
36744
  if (!data) return null;
36488
36745
  const svgRef = require$$0$1.useRef();
36746
+ const onElementClickRef = require$$0$1.useRef(onElementClick);
36747
+ onElementClickRef.current = onElementClick;
36748
+ const vfxPickModeActiveRef = require$$0$1.useRef(vfxPickModeActive);
36749
+ vfxPickModeActiveRef.current = vfxPickModeActive;
36489
36750
  let chartFormatOptions;
36490
36751
  let width;
36491
36752
  let height;
@@ -36772,7 +37033,15 @@
36772
37033
  } catch (error) {
36773
37034
  logError$2("SankeyChart.tsx", "Nodes.onMouseOut", error);
36774
37035
  }
36775
- });
37036
+ }).attr(VfxDataAttr.SeriesId, (d) => String(d.name ?? "")).attr(VfxDataAttr.DimValue, (d) => String(d.name ?? "")).on("click", makeVfxClickHandler(vfxPickModeActiveRef, onElementClickRef, (_event, d) => {
37037
+ const nodeName = String(d.name ?? "");
37038
+ return {
37039
+ seriesId: nodeName,
37040
+ dimValue: nodeName,
37041
+ legendUniqueId: nodeName,
37042
+ seriesDisplayName: nodeName.includes("~$~") ? nodeName.split("~$~")[1] : nodeName
37043
+ };
37044
+ }));
36776
37045
  const link2 = chartAreaTagG.append("g").attr("fill", "none").selectAll("g").data(links).enter().append("g").style("mix-blend-mode", "multiply");
36777
37046
  link2.append("path").attr("class", "sankey-links").attr("stroke-opacity", linksFillOpacity).attr("id", (d) => "Link" + d.index).attr("d", sankeyLinkCustom(curviness)).attr(
36778
37047
  "stroke",
@@ -54980,8 +55249,15 @@
54980
55249
  data,
54981
55250
  formatOptions,
54982
55251
  chartId,
54983
- addLocalFilterFromLib
55252
+ addLocalFilterFromLib,
55253
+ onElementClick,
55254
+ vfxPickModeActive
54984
55255
  }) => {
55256
+ const onElementClickRef = require$$0$1.useRef(onElementClick);
55257
+ onElementClickRef.current = onElementClick;
55258
+ const vfxPickModeActiveRef = require$$0$1.useRef(vfxPickModeActive);
55259
+ vfxPickModeActiveRef.current = vfxPickModeActive;
55260
+ const legendIndexMap = new Map((data.ChartData ?? []).map((s2, i) => [s2.legend, i]));
54985
55261
  let legendEntries = data.LegendList;
54986
55262
  const svgRef = require$$0$1.useRef();
54987
55263
  let chartFormatOptions;
@@ -55154,10 +55430,15 @@
55154
55430
  );
55155
55431
  }).attr("transform", function(d) {
55156
55432
  return `translate(${xScale(d.dimension)}, ${yScale(d.measure)})`;
55157
- }).attr("opacity", shouldAnimate ? 0 : chartFormatOptions.plotArea.fillOpacity).style(
55433
+ }).attr(VfxDataAttr.SeriesId, (d) => `${legendIndexMap.get(d.legendName)}_${d.legendName}`).attr(VfxDataAttr.DimValue, (d) => String(d.dimension)).attr("opacity", shouldAnimate ? 0 : chartFormatOptions.plotArea.fillOpacity).style(
55158
55434
  "visibility",
55159
55435
  (d, i) => d.dimension[0] === 0 || d.measure === 0 && chartFormatOptions.plotArea.hideZeroValues || d.dimension < customXaxisMinValue || d.dimension > customXaxisMaxValue || d.measure < customYaxisMinValue || d.measure > customYaxisMaxValue ? "hidden" : "visible"
55160
- ).on("mousemove", (event2, d) => {
55436
+ ).on("click", makeVfxClickHandler(vfxPickModeActiveRef, onElementClickRef, (_event, d) => ({
55437
+ seriesId: `${legendIndexMap.get(d.legendName)}_${d.legendName}`,
55438
+ dimValue: String(d.dimension),
55439
+ legendUniqueId: `${legendIndexMap.get(d.legendName)}_${d.legendName}`,
55440
+ seriesDisplayName: d.legendName
55441
+ }))).on("mousemove", (event2, d) => {
55161
55442
  showTooltipOnMouseMove(
55162
55443
  [
55163
55444
  {
@@ -55440,10 +55721,17 @@
55440
55721
  const ScatterChart = ({
55441
55722
  data,
55442
55723
  formatOptions,
55443
- chartId
55724
+ chartId,
55725
+ onElementClick,
55726
+ vfxPickModeActive
55444
55727
  }) => {
55728
+ const onElementClickRef = require$$0$1.useRef(onElementClick);
55729
+ onElementClickRef.current = onElementClick;
55730
+ const vfxPickModeActiveRef = require$$0$1.useRef(vfxPickModeActive);
55731
+ vfxPickModeActiveRef.current = vfxPickModeActive;
55445
55732
  const colorsList = data.ColorElements ?? [];
55446
55733
  const shapesList = data.ShapeElements ?? [];
55734
+ const colorIndexMap = new Map(colorsList.map((c2, i) => [c2.name, i]));
55447
55735
  let modifiedData = [];
55448
55736
  const svgRef = require$$0$1.useRef();
55449
55737
  let chartFormatOptions;
@@ -55609,10 +55897,15 @@
55609
55897
  );
55610
55898
  }).attr("transform", function(d) {
55611
55899
  return `translate(${xScale(d.dimension)}, ${yScale(d.measure)})`;
55612
- }).attr("opacity", shouldAnimate ? 0 : chartFormatOptions.plotArea.fillOpacity).style(
55900
+ }).attr(VfxDataAttr.SeriesId, (d) => `${colorIndexMap.get(d.colorName)}_${d.colorName}`).attr(VfxDataAttr.DimValue, (d) => String(d.dimension)).attr("opacity", shouldAnimate ? 0 : chartFormatOptions.plotArea.fillOpacity).style(
55613
55901
  "visibility",
55614
55902
  (d, i) => d.dimension[0] === 0 || d.measure === 0 && chartFormatOptions.plotArea.hideZeroValues || d.dimension < customXaxisMinValue || d.dimension > customXaxisMaxValue || d.measure < customYaxisMinValue || d.measure > customYaxisMaxValue ? "hidden" : "visible"
55615
- ).on("mousemove", (event2, d) => {
55903
+ ).on("click", makeVfxClickHandler(vfxPickModeActiveRef, onElementClickRef, (_event, d) => ({
55904
+ seriesId: `${colorIndexMap.get(d.colorName)}_${d.colorName}`,
55905
+ dimValue: String(d.dimension),
55906
+ legendUniqueId: `${colorIndexMap.get(d.colorName)}_${d.colorName}`,
55907
+ seriesDisplayName: d.colorName
55908
+ }))).on("mousemove", (event2, d) => {
55616
55909
  showTooltipOnMouseMove(
55617
55910
  [
55618
55911
  ...[
@@ -56080,13 +56373,19 @@
56080
56373
  isDateType,
56081
56374
  formatOptions,
56082
56375
  data,
56083
- isAdvancedAnalyticsWaterFall = false
56376
+ isAdvancedAnalyticsWaterFall = false,
56377
+ onElementClick,
56378
+ vfxPickModeActive
56084
56379
  }) => {
56085
56380
  const chartId = crypto.randomUUID?.();
56086
56381
  let columnWidth = 0;
56087
56382
  let colorScale;
56088
56383
  const chartType = chartTypes.WaterfallChart;
56089
56384
  const svgRef = require$$0$1.useRef();
56385
+ const onElementClickRef = require$$0$1.useRef(onElementClick);
56386
+ onElementClickRef.current = onElementClick;
56387
+ const vfxPickModeActiveRef = require$$0$1.useRef(vfxPickModeActive);
56388
+ vfxPickModeActiveRef.current = vfxPickModeActive;
56090
56389
  const isAdvancedWaterfall = isAdvancedAnalyticsWaterFall ?? false;
56091
56390
  const seriesData = isAdvancedWaterfall ? [] : generalizedChartData(data.ChartData, data.DimensionList);
56092
56391
  const dimensionList = data.DimensionList;
@@ -56532,7 +56831,14 @@
56532
56831
  );
56533
56832
  }).on("mouseout", () => {
56534
56833
  hideTooltipOnMouseOut();
56535
- });
56834
+ }).attr(VfxDataAttr.SeriesId, (d) => String(d.key ?? d.Key ?? "")).attr(
56835
+ VfxDataAttr.DimValue,
56836
+ (d) => !isAdvancedWaterfall ? String(d.data.dimension || d.data.legend || "") : String(d.data.xKey || "")
56837
+ ).on("click", makeVfxClickHandler(vfxPickModeActiveRef, onElementClickRef, (_event, d) => {
56838
+ const seriesId = String(d.key ?? d.Key ?? "");
56839
+ const dimValue = !isAdvancedWaterfall ? String(d.data.dimension || d.data.legend || "") : String(d.data.xKey || "");
56840
+ return { seriesId, dimValue, legendUniqueId: seriesId, seriesDisplayName: seriesId };
56841
+ }));
56536
56842
  const finalRects = shouldAnimate ? rectsEnter.transition().duration(formatOptions.animation.animationDuration).ease(effectsMap[formatOptions.animation.animationEffect]) : rectsEnter;
56537
56843
  finalRects.attr("y", (d) => d[1] ? yScaleLeft(d[1]) : 0).attr("height", (d) => d[1] ? yScaleLeft(d[0]) - yScaleLeft(d[1]) : 0);
56538
56844
  rects.exit().remove();
@@ -56759,13 +57065,19 @@
56759
57065
  formatOptions,
56760
57066
  data,
56761
57067
  isReportEditable,
56762
- onDataLabelCoordinatesChange
57068
+ onDataLabelCoordinatesChange,
57069
+ onElementClick,
57070
+ vfxPickModeActive
56763
57071
  }) => {
56764
57072
  const chartId = crypto.randomUUID();
56765
57073
  let columnWidth = 0;
56766
57074
  const chartType = chartTypes.TornadoChart;
56767
57075
  const isAdvanceAnalyticsChart = data.IsadvanceanalyticsChart ?? data.IsCalCSensitivity;
56768
57076
  const svgRef = require$$0$1.useRef();
57077
+ const onElementClickRef = require$$0$1.useRef(onElementClick);
57078
+ onElementClickRef.current = onElementClick;
57079
+ const vfxPickModeActiveRef = require$$0$1.useRef(vfxPickModeActive);
57080
+ vfxPickModeActiveRef.current = vfxPickModeActive;
56769
57081
  let seriesData = generalizedChartData(
56770
57082
  data.ChartData,
56771
57083
  data.DimensionList,
@@ -57219,7 +57531,12 @@
57219
57531
  event2,
57220
57532
  !data.IsCalCSensitivity ? d.properties : d.properties.legend === "Calculated Low(-ve)" ? { markerColor: formatOptions.plotArea.plotAreaCalculatedLow } : { markerColor: formatOptions.plotArea.plotAreaCalculatedHigh }
57221
57533
  );
57222
- }).on("mouseout", hideTooltipOnMouseOut);
57534
+ }).on("mouseout", hideTooltipOnMouseOut).attr(VfxDataAttr.SeriesId, (d) => String(d.properties?.legendUniqueId ?? "")).attr(VfxDataAttr.DimValue, (d) => String(d.legend ?? d.legendText ?? "")).on("click", makeVfxClickHandler(vfxPickModeActiveRef, onElementClickRef, (_event, d) => ({
57535
+ seriesId: String(d.properties?.legendUniqueId ?? ""),
57536
+ dimValue: String(d.legend ?? d.legendText ?? ""),
57537
+ legendUniqueId: String(d.properties?.legendUniqueId ?? ""),
57538
+ seriesDisplayName: String(d.properties?.alias || d.properties?.name || d.legendText || "")
57539
+ })));
57223
57540
  const finalBars = shouldAnimate ? bars.transition().duration(formatOptions.animation.animationDuration).ease(effectsMap[formatOptions.animation.animationEffect]) : bars;
57224
57541
  finalBars.attr("x", (d) => d.value >= 0 ? xScale(0) : xScale(d.value)).attr("width", (d) => Math.abs(xScale(d.value) - xScale(0)));
57225
57542
  };